Age | Commit message (Collapse) | Author |
|
See related commits:
- ebc66662 for #===
- 4943d208 for #[], #[]=, #<<, and #>>
https://github.com/ruby/rdoc/commit/8e47f7840a
|
|
https://github.com/ruby/rdoc/commit/45c92005fe
|
|
|
|
Previously, Parser::C comments all defaulted to "rdoc" format, even
when the user had set a different default with the `--markup=<choice>`
option.
https://github.com/ruby/rdoc/commit/4643b08a26
|
|
This is a prefactor for fixing comment format handling.
https://github.com/ruby/rdoc/commit/a3d366feed
|
|
https://github.com/ruby/rdoc/commit/3b8334a796
|
|
|
|
|
|
|
|
See also: https://github.com/ruby/csv/issues/117#issuecomment-933289373
How to reproduce with x.csv.gz in the issue comment:
Zlib::GzipReader.open("x.csv.gz") do |rio|
rio.gets(nil, 1024)
while line = rio.gets(nil, 8192)
raise line unless line.valid_encoding?
end
end
Reported by Dimitrij Denissenko. Thanks!!!
https://github.com/ruby/zlib/commit/b1f182e98f
|
|
|
|
Bundler::Fetcher::CertificateFailureError
https://github.com/rubygems/rubygems/commit/11b5d479cb
|
|
|
|
|
|
|
|
|
|
https://github.com/ruby/date/commit/e0a4cbc8f6
|
|
https://github.com/ruby/drb/commit/e4b7b68d67
|
|
https://github.com/ruby/drb/commit/7edf67654c
|
|
https://github.com/ruby/time/commit/b9dd593b23
|
|
https://github.com/ruby/open-uri/commit/ec4275a1eb
|
|
https://github.com/ruby/pathname/commit/e6b3b3ed25
|
|
https://github.com/ruby/base64/commit/b9e23b27f9
|
|
https://github.com/ruby/nkf/commit/9aa7c6b841
|
|
https://github.com/ruby/find/commit/90c35c477a
|
|
https://github.com/ruby/yaml/commit/cef5360823
|
|
|
|
|
|
https://github.com/ruby/timeout/commit/02e792ddd8
|
|
https://github.com/ruby/cgi/commit/95324433b4
|
|
https://github.com/ruby/benchmark/commit/eea1657fa2
|
|
https://github.com/ruby/etc/commit/c989bacc4c
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4968
|
|
https://github.com/ruby/fcntl/commit/0bcc0c4518
|
|
https://github.com/flori/json/commit/1942689b67
|
|
https://github.com/ruby/zlib/commit/dd593acaee
|
|
https://github.com/ruby/zlib/commit/434eba55ae
|
|
Notes:
Merged-By: k0kubun <takashikkbn@gmail.com>
|
|
|
|
|
|
|
|
- this change get rid of a warning of mswin build.
see include/ruby/internal/encoding/encoding.h(116)
|
|
I think it's debatable which is the most common usage of
`FileUtils.mkdir_p`, but even assuming the most common use case is
creating a folder when it doesn't previously exist but the parent does,
this optimization doesn't seem to have a noticiable effect there while
harming other use cases.
For benchmarks, I created this script
```ruby
require "benchmark/ips"
Benchmark.ips do |x|
x.report("old mkdir_p - exists") do
FileUtils.mkdir_p "/tmp"
end
x.report("new_mkdir_p - exists") do
FileUtils.mkdir_p_new "/tmp"
end
x.compare!
end
FileUtils.rm_rf "/tmp/foo"
Benchmark.ips do |x|
x.report("old mkdir_p - doesnt exist, parent exists") do
FileUtils.mkdir_p "/tmp/foo"
FileUtils.rm_rf "/tmp/foo"
end
x.report("new_mkdir_p - doesnt exist, parent exists") do
FileUtils.mkdir_p_new "/tmp/foo"
FileUtils.rm_rf "/tmp/foo"
end
x.compare!
end
Benchmark.ips do |x|
x.report("old mkdir_p - doesnt exist, parent either") do
FileUtils.mkdir_p "/tmp/foo/bar"
FileUtils.rm_rf "/tmp/foo"
end
x.report("new_mkdir_p - doesnt exist, parent either") do
FileUtils.mkdir_p_new "/tmp/foo/bar"
FileUtils.rm_rf "/tmp/foo"
end
x.compare!
end
Benchmark.ips do |x|
x.report("old mkdir_p - more levels") do
FileUtils.mkdir_p "/tmp/foo/bar/baz"
FileUtils.rm_rf "/tmp/foo"
end
x.report("new_mkdir_p - more levels") do
FileUtils.mkdir_p_new "/tmp/foo/bar/baz"
FileUtils.rm_rf "/tmp/foo"
end
x.compare!
end
```
and copied the method with the "optimization" removed as
`FileUtils.mkdir_p_new`. The results are as below:
```
Warming up --------------------------------------
old mkdir_p - exists 15.914k i/100ms
new_mkdir_p - exists 46.512k i/100ms
Calculating -------------------------------------
old mkdir_p - exists 161.461k (± 3.2%) i/s - 811.614k in 5.032315s
new_mkdir_p - exists 468.192k (± 2.9%) i/s - 2.372M in 5.071225s
Comparison:
new_mkdir_p - exists: 468192.1 i/s
old mkdir_p - exists: 161461.0 i/s - 2.90x (± 0.00) slower
Warming up --------------------------------------
old mkdir_p - doesnt exist, parent exists
2.142k i/100ms
new_mkdir_p - doesnt exist, parent exists
1.961k i/100ms
Calculating -------------------------------------
old mkdir_p - doesnt exist, parent exists
21.242k (± 6.7%) i/s - 107.100k in 5.069206s
new_mkdir_p - doesnt exist, parent exists
19.682k (± 4.2%) i/s - 100.011k in 5.091961s
Comparison:
old mkdir_p - doesnt exist, parent exists: 21241.7 i/s
new_mkdir_p - doesnt exist, parent exists: 19681.7 i/s - same-ish: difference falls within error
Warming up --------------------------------------
old mkdir_p - doesnt exist, parent either
945.000 i/100ms
new_mkdir_p - doesnt exist, parent either
1.002k i/100ms
Calculating -------------------------------------
old mkdir_p - doesnt exist, parent either
9.689k (± 4.4%) i/s - 49.140k in 5.084342s
new_mkdir_p - doesnt exist, parent either
10.806k (± 4.6%) i/s - 54.108k in 5.020714s
Comparison:
new_mkdir_p - doesnt exist, parent either: 10806.3 i/s
old mkdir_p - doesnt exist, parent either: 9689.3 i/s - 1.12x (± 0.00) slower
Warming up --------------------------------------
old mkdir_p - more levels
702.000 i/100ms
new_mkdir_p - more levels
775.000 i/100ms
Calculating -------------------------------------
old mkdir_p - more levels
7.046k (± 3.5%) i/s - 35.802k in 5.087548s
new_mkdir_p - more levels
7.685k (± 5.5%) i/s - 38.750k in 5.061351s
Comparison:
new_mkdir_p - more levels: 7685.1 i/s
old mkdir_p - more levels: 7046.4 i/s - same-ish: difference falls within error
```
I think it's better to keep the code simpler is the optimization is not
so clear like in this case.
https://github.com/ruby/fileutils/commit/e842a0e70e
|
|
Doing it this way is simpler and it doesn't end up adding "/" to the
list of folders, so it doesn't need to be removed later.
https://github.com/ruby/fileutils/commit/df08e124ce
|
|
https://github.com/rubygems/rubygems/commit/f5e408f83d
|
|
Now `$LOADED_FEATURES` list is being maintained by `setup` and
`teardown` and, only libaries under the temporary directory will
be removed. As `save_loaded_features` removes the rest libraries
other than this test directory, ordinary libraries loaded from
files under rubygems also removed, and often causes constant
redefinition warnings.
https://github.com/rubygems/rubygems/commit/9e1f92aafd
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4963
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/4963
|