Age | Commit message (Collapse) | Author |
|
https://github.com/ruby/rdoc/commit/40a6690010
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11331
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11331
|
|
Unlike in older revisions in the year, GCC 11 isn't inlining the call
to vm_push_frame() inside invoke_iseq_block_from_c() anymore. We do
want it to be inlined since rb_yield() speed is fairly important.
Logs from -fopt-info-optimized-inline reveal that GCC was blowing its
code size budget inlining invoke_block_from_c_bh() into its various
callers, leaving suboptimal code for its body.
Take away some uses of the `inline` keyword and merge a common tail
call to vm_exec() for overall better code.
This tweak gives about 18% on a micro benchmark and 1% on the
chunky-png benchmark from yjit-bench. I tested on a Skylake server.
```
$ cat c-to-ruby-call.yml
benchmark:
- 0.upto(10_000_000) {}
$ benchmark-driver --chruby '+patch;master' c-to-ruby-call.yml
Warming up --------------------------------------
0.upto(10_000_000) {} 2.299 i/s - 3.000 times in 1.304689s (434.90ms/i)
Calculating -------------------------------------
+patch master
0.upto(10_000_000) {} 2.299 1.943 i/s - 6.000 times in 2.609393s 3.088353s
Comparison:
0.upto(10_000_000) {}
+patch: 2.3 i/s
master: 1.9 i/s - 1.18x slower
$ ruby run_benchmarks.rb --chruby 'master;+patch' chunky-png
<snip>
---------- ----------- ---------- ----------- ---------- -------------- -------------
bench master (ms) stddev (%) +patch (ms) stddev (%) +patch 1st itr master/+patch
chunky-png 1156.1 0.1 1142.2 0.2 1.01 1.01
---------- ----------- ---------- ----------- ---------- -------------- -------------
```
Notes:
Merged: https://github.com/ruby/ruby/pull/11321
|
|
The following memory leak gets reported with RUBY_FREE_AT_EXIT and YJIT
enabled because the memory for yjit_root is never freed.
STACK OF 1 INSTANCE OF 'ROOT LEAK: <calloc in rb_gc_impl_calloc>':
11 dyld 0x18067e0e0 start + 2360
10 miniruby 0x1024b67d8 main + 100 main.c:62
9 miniruby 0x10256e0ec ruby_options + 156 eval.c:117
8 miniruby 0x102681164 ruby_process_options + 5140 ruby.c:3097
7 miniruby 0x10256f7dc rb_ensure + 180 eval.c:0
6 miniruby 0x102681c64 load_file_internal + 996 ruby.c:2685
5 miniruby 0x102682368 ruby_opt_init + 380 ruby.c:1817
4 miniruby 0x102848e38 yjit::yjit::yjit_init::h3cea491822b80cef + 360 yjit.rs:84
3 miniruby 0x10278f7d4 rb_yjit_init_gc_hooks + 28 yjit.c:1273
2 miniruby 0x10258a228 rb_data_typed_object_zalloc + 132 gc.c:989
1 miniruby 0x102586d88 rb_gc_impl_calloc + 148 default.c:8517
0 libsystem_malloc.dylib 0x180840cac _malloc_zone_calloc_instrumented_or_legacy + 128
Notes:
Merged: https://github.com/ruby/ruby/pull/11326
|
|
Notes:
Merged-By: peterzhu2118 <[email protected]>
|
|
Notes:
Merged-By: peterzhu2118 <[email protected]>
|
|
|
|
When building with the `--shared` option, most functionality is kept in
`libruby.so`. Therefore also run annocheck for `libruby.so`.
Use `ARG IN_DIR` to propagate multiple files into the container instead of
`ARG FILES` in the `Dockerfile-copy`. Because the `COPY` syntax in Dockerfile
doesn't support copying the multiple files.
https://stackoverflow.com/questions/61599384/specify-multiple-files-in-arg-to-copy-in-dockerfile
Co-authored-by: Vít Ondruch <[email protected]>
|
|
For example, the following code leaks:
class MyRipper < Ripper
def initialize(src, &blk)
super(src)
@blk = blk
end
def warn(msg, *args) = @blk.call(msg)
end
$VERBOSE = true
def call_parse = MyRipper.new("if true\n end\n") { |msg| return msg }.parse
10.times do
500_000.times do
call_parse
end
puts `ps -o rss= -p #{$$}`
end
Before:
37536
53744
70064
86448
102576
119120
135248
151216
167744
183824
After:
19280
19696
19728
20336
20448
21408
21616
21616
21824
21840
Notes:
Merged: https://github.com/ruby/ruby/pull/11289
|
|
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.15 to 3.26.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/afb54ba388a7dca6ecae48f608c4ff05ff4cc77a...eb055d739abdc2e8de2e5f4ba1a8b246daa779aa)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/11320
|
|
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.5 to 4.3.6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/89ef406dd8d7e03cfd12d9e0a4a378f454709029...834a144ee995460fba8ed112a2fc961b36a5ec5a)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/11319
|
|
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11305
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11304
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11301
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11300
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11299
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11298
|
|
|
|
|
|
For example, the following code leaks:
class MyRipper < Ripper
def initialize(src, &blk)
super(src)
@blk = blk
end
def warn(msg, *args) = @blk.call(msg)
end
$VERBOSE = true
def call_parse = MyRipper.new("if true\n end\n") { |msg| return msg }.parse
10.times do
500_000.times do
call_parse
end
puts `ps -o rss= -p #{$$}`
end
Before:
34832
51952
69760
88048
105344
123040
141152
159152
176656
194272
After:
18400
20256
20272
20272
20272
20304
20368
20368
20368
20400
Notes:
Merged: https://github.com/ruby/ruby/pull/11288
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11315
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11315
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11312
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11312
|
|
(https://github.com/ruby/uri/pull/113)
* Fallback missing constants with RFC3986_PARSER
* raise missing constant
* Update test/uri/test_common.rb
Co-authored-by: Nobuyoshi Nakada <[email protected]>
* Update lib/uri/common.rb
Co-authored-by: Nobuyoshi Nakada <[email protected]>
* Update lib/uri/common.rb
Co-authored-by: Nobuyoshi Nakada <[email protected]>
---------
https://github.com/ruby/uri/commit/c2fdec079a
Co-authored-by: Nobuyoshi Nakada <[email protected]>
|
|
|
|
OpenSSL running in the FIPS mode will stop supporting DSA key
generation and signature generation due to a FIPS 140-3 requirement.
Although it appears that FIPS 186-5 still allows signature
verification in some cases, there would be little point in writing such
a specific test case.
DSA will still be tested if OpenSSL is not running in the FIPS mode.
test_generate_on_non_fips is merged to test_generate again.
https://github.com/ruby/openssl/commit/3651884fd2
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11311
|
|
section is badly indented
https://github.com/rubygems/rubygems/commit/ec099ebf1e
|
|
update <specific_gem>` is run
https://github.com/rubygems/rubygems/commit/eec6830c04
|
|
https://github.com/rubygems/rubygems/commit/d8cf4aa0cd
|
|
https://github.com/rubygems/rubygems/commit/651cf3ea7a
|
|
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.99 to 0.9.100.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.99...v0.9.100)
---
updated-dependencies:
- dependency-name: rb-sys
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
https://github.com/rubygems/rubygems/commit/dd5df7d614
|
|
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.98 to 0.9.100.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.98...v0.9.100)
---
updated-dependencies:
- dependency-name: rb-sys
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
https://github.com/rubygems/rubygems/commit/6f05927746
|
|
(https://github.com/ruby/reline/pull/732)
Hash#inspect is proposed to change to {key: value, non_symbol_key => value} in https://bugs.ruby-lang.org/issues/20433#note-10
https://github.com/ruby/reline/commit/1fd73b358a
|
|
https://github.com/ruby/uri/commit/9f2c7ed5f2
|
|
https://github.com/ruby/uri/commit/28af4e155a
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11296
|
|
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.3.5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...89ef406dd8d7e03cfd12d9e0a4a378f454709029)
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/11309
|
|
When resolving on truffleruby, and multiple platforms are included in
the lockfile, Bundler will not respect existing platforms, but always
force ruby variants. That means removal of existing version specific
variants, introducing lockfile churn between implementations.
To prevent this, we introduce the distinction between
`Dependency#force_ruby_platform`, only settable via Gemfile, and
`Dependency#default_force_ruby_platform`, which is always true on
truffleruby for certain dependency names. This way, when resolving
lockfile gems for other platforms on truffleruby, we keep platform
specific variants in the lockfile.
However, that introduces the problem that if only platform specific
variants are locked in the lockfile, Bundler won't be able to
materialize on truffleruby because the generic variant will be missing.
To fix this additional problem, we make sure the generic "ruby" platform
is always added when resolving on truffleruby.
|
|
https://github.com/ruby/optparse/commit/19700e96d8
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11308
|
|
(https://github.com/ruby/irb/pull/985)
https://github.com/ruby/irb/commit/9ce6972e71
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11307
|
|
|