| Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/csv/commit/9c4add0d31
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
The implementation of the `CSV` shortcut method is broken in Ruby 3
for calls that look like this:
```ruby
CSV(write_stream, col_sep: "|", headers: headers, write_headers: true) do |csv|
...
end
```
The above will result in the following error when the `CSV` method attempts to pass
on arguments to `CSV#instance`:
```
ArgumentError: wrong number of arguments (given 2, expected 0..1)
```
The issue is due to the changes in Ruby 3 relating to positional & keyword arguments.
This commit updates the `CSV()` shortcut implementation to work with Ruby 3, and also
updates the documentation for the shortcut method.
https://github.com/ruby/csv/commit/310dee45fa
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
https://github.com/ruby/csv/commit/5ff3b95018
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
https://github.com/ruby/csv/commit/1f9cbc170e
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
a single entry when row is faulty (https://github.com/ruby/csv/pull/220)
https://github.com/ruby/csv/commit/29cef9ea9d
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
It's for Ractor. If you want to use the built-in converters, you
should call Ractor.make_shareable(CSV::Converters) and/or
Ractor.make_shareable(CSV::HeaderConverters).
https://github.com/ruby/csv/commit/b0b1325d6b
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
(https://github.com/ruby/csv/pull/217)
https://github.com/ruby/csv/commit/744e41130c
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
https://github.com/ruby/csv/commit/3025070cea
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
|
|
|
|
|
|
This reverts commit e22d293e06966733e71a7fd9725eee06c03d0177.
|
|
|
|
https://github.com/ruby/mutex_m/commit/a839e29d04
|
|
(https://github.com/ruby/uri/pull/30)
https://github.com/ruby/uri/commit/bf13946c32
Co-authored-by: Samuel Williams <samuel.williams@oriontransfer.co.nz>
|
|
https://github.com/ruby/delegate/commit/81a3c32140
|
|
I am not sure why this flag was turned off (it wasn't explained in my commit message in 0365dc852767ae589376a7aad1fb129738e408b0 or in my PR in #4411).
Whatever the reason, without `default_ignores` turned on, most default CI configurations will immediately fail, as they most likely vendor and cache their dependencies under `vendor`, which will cause standard to run against all the vendored gems and (most likely) fail. I think we should remove this before this feature is released.
https://github.com/rubygems/rubygems/commit/677f74be48
|
|
https://github.com/ruby/prettyprint/commit/0e8eee5f5f
|
|
https://github.com/ruby/pp/commit/06b839b9ca
|
|
https://github.com/ruby/securerandom/commit/5f9d3d1dfa
|
|
https://github.com/ruby/rinda/commit/d394ba107e
|
|
https://github.com/ruby/optparse/commit/1226b670e6
|
|
https://github.com/ruby/net-http/commit/f3e65e2a31
|
|
https://github.com/ruby/net-protocol/commit/088e52609a
|
|
https://github.com/ruby/uri/commit/1619f713e6
|
|
https://github.com/ruby/ostruct/commit/c535a406f8
|
|
https://github.com/ruby/fileutils/commit/918d19e4f2
|
|
https://github.com/ruby/racc/commit/0c5fe2637c
|
|
https://github.com/ruby/logger/commit/82a59c8d3f
|
|
https://github.com/ruby/tempfile/commit/e5ec902256
|
|
This change fixes alias call-seq to return nil if the method's
call-seq does not specify the alias.
Previously, the alias's call-seq would be an empty string in this case
which broke darkfish rendering.
This change also backfills test coverage for 0ead786 which moved
call-seq deduplication into AnyMethod.
https://github.com/ruby/rdoc/commit/5ce2789b6f
|
|
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
|
|
|
|
Bundler::Fetcher::CertificateFailureError
https://github.com/rubygems/rubygems/commit/11b5d479cb
|
|
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/base64/commit/b9e23b27f9
|
|
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
|
|
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/97241e0ea4
|
|
https://github.com/rubygems/rubygems/commit/32aa540163
|