| Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/optparse/commit/080360ffd4
|
|
|
|
https://github.com/ruby/pstore/commit/a63a70a830
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12015
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12015
|
|
|
|
https://github.com/ruby/singleton/commit/256c91171b
|
|
|
|
(https://github.com/ruby/reline/pull/777)
https://github.com/ruby/reline/commit/4d90743409
|
|
* test_yamatanooroti: close tempfile before unlink
* test_yamatanooroti: omit because of windows does not support job control
* test_yamatanooroti: change startup message detection for windows
* windows.rb: can call win32api using nil as NULL for pointer argument
Exception occurred when interrupted with Ctrl+C on legacy conhost
* windows.rb: fix get_screen_size
return [window height, buffer width] insted of [buffer height, buffer width]
* windows.rb: import scroll_down() from ansi.rb
* windows.rb: add auto linewrap control if VT output not supported (legacy console)
* unfreeze WIN32API pointer arguments
They internally duplicate arguments so api functions write to another place.
This breaks the console mode detection with ruby-head.
* remove useless code from Win32API#call
argument repacking and return value tweaking is not needed for Reline::Windows requirements.
* Correctly handle top of console viewport
* Revert "remove useless code from Win32API#call"
This reverts commit https://github.com/ruby/reline/commit/060ba140ed43.
* Revert "windows.rb: can call win32api using nil as NULL for pointer argument"
This reverts commit https://github.com/ruby/reline/commit/93a23bc5d0c9.
https://github.com/ruby/reline/commit/47c1ffbabe
|
|
|
|
https://github.com/ruby/benchmark/commit/a5d77ceae0
|
|
highest length among the labels to adjust the correct ljust. Instead of printing the result during the report generation, now it is waiting to print the result once it is generated.
Benchmark.bm { |x|
x.item("aaaa") { 1 }
x.item("aaaaaaaa") { 0 }
}
After
user system total real
aaaa 0.000005 0.000002 0.000007 ( 0.000003)
aaaaaaaa 0.000001 0.000001 0.000002 ( 0.000002)
Before
user system total real
aaaa 0.000005 0.000001 0.000006 ( 0.000003)
aaaaaaaa 0.000002 0.000001 0.000003 ( 0.000003)
https://github.com/ruby/benchmark/commit/3e74533ead
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12032
|
|
|
|
https://github.com/ruby/ostruct/commit/b38680089f
|
|
https://github.com/ruby/ostruct/commit/85a773bb41
|
|
Previously, it always used stderr. Slight shuffle of the first line
of the crash due to reusing code from rb_bug():
```diff
-Assertion Failed: /ruby/object.c:649:rb_obj_itself:false
+/ruby/object.c:649: Assertion Failed: rb_obj_itself:false
```
Tested locally to confirm that it writes to the file given with
RUBY_CRASH_REPORT. Follow-up for [Feature #19790].
Notes:
Merged: https://github.com/ruby/ruby/pull/12019
Merged-By: XrXr
|
|
(https://github.com/ruby/irb/pull/1029)
https://github.com/ruby/irb/commit/b21432daf7
|
|
* See discussion on https://github.com/ruby/spec/pull/1210
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12023
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12022
|
|
After having a second look at this deprecation, the explanation that
we're giving does not make a lot of sense. When working only with local
gems, Bundler will indeed generate a different lockfile depending on
the latest installed version of each gem is at `bundle install` time.
That's the same situation that happens with remote sources: Bundler will
generate a different lockfile depending on the latest version of each
gem available remotely.
So, I don't think "a consistent lockfile not getting generated" is a
good motivation for deprecating this.
Also, this deprecation brings additional challenges, since for example,
it should arguably not get printed when using `bundle install --local`?
The original problem when this deprecation was introduced was an
incorrect message about a missing gem having been yanked.
So, I think a better solution is to, as long as we give proper error
messages when things go wrong, let users do what's best for them and
undo the deprecation.
https://github.com/rubygems/rubygems/commit/17499cb83f
|
|
https://github.com/ruby/fcntl/commit/9e14019f53
|
|
|
|
https://github.com/ruby/uri/commit/af8d9d6bb1
|
|
|
|
https://github.com/ruby/psych/commit/d9e18aaab7
|
|
|
|
https://github.com/ruby/psych/commit/a0c353ec97
|
|
|
|
|
|
|
|
https://github.com/ruby/fcntl/commit/3292a8a862
|
|
Notes:
Merged-By: peterzhu2118 <peter@peterzhu.ca>
|
|
|
|
https://github.com/ruby/net-http/commit/28a4bf9295
|
|
Notes:
Merged-By: ioquatix <samuel@codeotaku.com>
|
|
|
|
https://github.com/ruby/delegate/commit/713059a5e9
|
|
https://github.com/ruby/delegate/commit/6daeb4248f
|
|
The test was too flaky
|
|
(https://github.com/ruby/logger/pull/103)
`Logger#with_level` was recently added to enable configuring a
`Logger`'s level for the duration of a block. However, the configured
level is always tied to the currently running `Fiber`, which is not
always ideal in applications that mix `Thread`s and `Fiber`s.
For example, Active Support has provided a similar feature
(`ActiveSupport::Logger#log_at`) which, depending on configuration, can
be isolated to either `Thread`s or `Fiber`s.
This commit enables subclasses of `Logger` to customize the level
isolation. Ideally, it will enable replacing most of Active Support's
`#log_at`, since both methods end up serving the same purpose.
https://github.com/ruby/logger/commit/dae2b832cd
|
|
|
|
|
|
https://github.com/ruby/json/commit/8071cc6f09
|
|
`rb_cstr2inum` isn't very fast because it handles tons of
different scenarios, and also require a NULL terminated string
which forces us to copy the number into a secondary buffer.
But since the parser already computed the length, we can much more
cheaply do this with a very simple function as long as the number
is small enough to fit into a native type (`long long`).
If the number is too long, we can fallback to the `rb_cstr2inum`
slowpath.
Before:
```
== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 40.000 i/100ms
oj 35.000 i/100ms
Oj::Parser 45.000 i/100ms
rapidjson 38.000 i/100ms
Calculating -------------------------------------
json 425.941 (± 1.9%) i/s (2.35 ms/i) - 2.160k in 5.072833s
oj 349.617 (± 1.7%) i/s (2.86 ms/i) - 1.750k in 5.006953s
Oj::Parser 464.767 (± 1.7%) i/s (2.15 ms/i) - 2.340k in 5.036381s
rapidjson 382.413 (± 2.4%) i/s (2.61 ms/i) - 1.938k in 5.070757s
Comparison:
json: 425.9 i/s
Oj::Parser: 464.8 i/s - 1.09x faster
rapidjson: 382.4 i/s - 1.11x slower
oj: 349.6 i/s - 1.22x slower
```
After:
```
== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 46.000 i/100ms
oj 33.000 i/100ms
Oj::Parser 45.000 i/100ms
rapidjson 39.000 i/100ms
Calculating -------------------------------------
json 462.332 (± 3.2%) i/s (2.16 ms/i) - 2.346k in 5.080504s
oj 351.140 (± 1.1%) i/s (2.85 ms/i) - 1.782k in 5.075616s
Oj::Parser 473.500 (± 1.3%) i/s (2.11 ms/i) - 2.385k in 5.037695s
rapidjson 395.052 (± 3.5%) i/s (2.53 ms/i) - 1.989k in 5.042275s
Comparison:
json: 462.3 i/s
Oj::Parser: 473.5 i/s - same-ish: difference falls within error
rapidjson: 395.1 i/s - 1.17x slower
oj: 351.1 i/s - 1.32x slower
```
https://github.com/ruby/json/commit/3a4dc9e1b4
|
|
Ignoring `CHAR_BITS` > 8 platform, as far as `ch` indexes
`escape_table` that is hard-coded as 256 elements.
```
../../../../src/ext/json/generator/generator.c(121): warning C4333: '>>': right shift by too large amount, data loss
../../../../src/ext/json/generator/generator.c(122): warning C4333: '>>': right shift by too large amount, data loss
../../../../src/ext/json/generator/generator.c(243): warning C4333: '>>': right shift by too large amount, data loss
../../../../src/ext/json/generator/generator.c(244): warning C4333: '>>': right shift by too large amount, data loss
../../../../src/ext/json/generator/generator.c(291): warning C4333: '>>': right shift by too large amount, data loss
../../../../src/ext/json/generator/generator.c(292): warning C4333: '>>': right shift by too large amount, data loss
```
https://github.com/ruby/json/commit/fb82373612
|
|
If we assume most string don't contain any escape sequence we can avoid
a lot of costly operations when it holds true.
Before:
```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 884.000 i/100ms
oj 789.000 i/100ms
Oj::Parser 943.000 i/100ms
rapidjson 584.000 i/100ms
Calculating -------------------------------------
json 8.897k (± 1.3%) i/s (112.40 μs/i) - 45.084k in 5.068520s
oj 7.967k (± 1.5%) i/s (125.52 μs/i) - 40.239k in 5.051985s
Oj::Parser 9.564k (± 1.4%) i/s (104.56 μs/i) - 48.093k in 5.029626s
rapidjson 5.947k (± 1.4%) i/s (168.16 μs/i) - 29.784k in 5.009437s
Comparison:
json: 8896.5 i/s
Oj::Parser: 9563.8 i/s - 1.08x faster
oj: 7966.8 i/s - 1.12x slower
rapidjson: 5946.7 i/s - 1.50x slower
== Parsing twitter.json (567916 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 83.000 i/100ms
oj 64.000 i/100ms
Oj::Parser 77.000 i/100ms
rapidjson 54.000 i/100ms
Calculating -------------------------------------
json 823.083 (± 1.8%) i/s (1.21 ms/i) - 4.150k in 5.043805s
oj 632.538 (± 1.4%) i/s (1.58 ms/i) - 3.200k in 5.060073s
Oj::Parser 769.122 (± 1.8%) i/s (1.30 ms/i) - 3.850k in 5.007501s
rapidjson 548.494 (± 1.5%) i/s (1.82 ms/i) - 2.754k in 5.022153s
Comparison:
json: 823.1 i/s
Oj::Parser: 769.1 i/s - 1.07x slower
oj: 632.5 i/s - 1.30x slower
rapidjson: 548.5 i/s - 1.50x slower
== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 41.000 i/100ms
oj 34.000 i/100ms
Oj::Parser 45.000 i/100ms
rapidjson 39.000 i/100ms
Calculating -------------------------------------
json 427.162 (± 1.2%) i/s (2.34 ms/i) - 2.173k in 5.087666s
oj 351.463 (± 2.8%) i/s (2.85 ms/i) - 1.768k in 5.035149s
Oj::Parser 461.849 (± 3.7%) i/s (2.17 ms/i) - 2.340k in 5.074461s
rapidjson 395.155 (± 1.8%) i/s (2.53 ms/i) - 1.989k in 5.034927s
Comparison:
json: 427.2 i/s
Oj::Parser: 461.8 i/s - 1.08x faster
rapidjson: 395.2 i/s - 1.08x slower
oj: 351.5 i/s - 1.22x slower
```
After:
```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 953.000 i/100ms
oj 813.000 i/100ms
Oj::Parser 956.000 i/100ms
rapidjson 563.000 i/100ms
Calculating -------------------------------------
json 9.525k (± 1.2%) i/s (104.98 μs/i) - 47.650k in 5.003252s
oj 8.117k (± 0.5%) i/s (123.20 μs/i) - 40.650k in 5.008283s
Oj::Parser 9.590k (± 3.2%) i/s (104.27 μs/i) - 48.756k in 5.089794s
rapidjson 6.020k (± 0.9%) i/s (166.10 μs/i) - 30.402k in 5.050155s
Comparison:
json: 9525.3 i/s
Oj::Parser: 9590.1 i/s - same-ish: difference falls within error
oj: 8116.7 i/s - 1.17x slower
rapidjson: 6020.5 i/s - 1.58x slower
== Parsing twitter.json (567916 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 87.000 i/100ms
oj 64.000 i/100ms
Oj::Parser 75.000 i/100ms
rapidjson 55.000 i/100ms
Calculating -------------------------------------
json 866.563 (± 0.8%) i/s (1.15 ms/i) - 4.350k in 5.020138s
oj 643.567 (± 0.8%) i/s (1.55 ms/i) - 3.264k in 5.072101s
Oj::Parser 777.346 (± 3.5%) i/s (1.29 ms/i) - 3.900k in 5.023933s
rapidjson 557.158 (± 0.7%) i/s (1.79 ms/i) - 2.805k in 5.034731s
Comparison:
json: 866.6 i/s
Oj::Parser: 777.3 i/s - 1.11x slower
oj: 643.6 i/s - 1.35x slower
rapidjson: 557.2 i/s - 1.56x slower
== Parsing citm_catalog.json (1727030 bytes)
ruby 3.4.0dev (2024-11-06T07:59:09Z precompute-hash-wh.. https://github.com/ruby/json/commit/7943f98a8a) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
json 41.000 i/100ms
oj 35.000 i/100ms
Oj::Parser 40.000 i/100ms
rapidjson 39.000 i/100ms
Calculating -------------------------------------
json 429.216 (± 1.2%) i/s (2.33 ms/i) - 2.173k in 5.063351s
oj 354.755 (± 1.1%) i/s (2.82 ms/i) - 1.785k in 5.032374s
Oj::Parser 465.114 (± 3.7%) i/s (2.15 ms/i) - 2.360k in 5.081634s
rapidjson 387.135 (± 1.3%) i/s (2.58 ms/i) - 1.950k in 5.037787s
Comparison:
json: 429.2 i/s
Oj::Parser: 465.1 i/s - 1.08x faster
rapidjson: 387.1 i/s - 1.11x slower
oj: 354.8 i/s - 1.21x slower
```
https://github.com/ruby/json/commit/96bd97c61e
|
|
https://github.com/ruby/json/commit/1acce7aceb
|