summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-08-08[ruby/rdoc] Use ascii chatacter in HTML filetompng
https://github.com/ruby/rdoc/commit/40a6690010
2024-08-07Make rb_vm_invoke_bmethod() staticAlan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/11331
2024-08-07Delete unused rb_check_funcall_with_hook()Alan Wu
Notes: Merged: https://github.com/ruby/ruby/pull/11331
2024-08-07Tune codegen for rb_yield() calls landing in ISeqsYour Name
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
2024-08-07Fix memory leak reported with YJITPeter Zhu
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
2024-08-07[DOC] Tweaks to Array#- (#11303)Burdette Lamar
Notes: Merged-By: peterzhu2118 <[email protected]>
2024-08-07[DOC] Tweaks to Array#+ (#11302)Burdette Lamar
Notes: Merged-By: peterzhu2118 <[email protected]>
2024-08-07tool/test-annocheck.sh: Refactor with double-quotes.Jun Aruga
2024-08-07CI: Run annocheck for libruby.soJun Aruga
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]>
2024-08-07Fix leak of token_info when Ripper#warn jumpsPeter Zhu
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
2024-08-07Bump github/codeql-action from 3.25.15 to 3.26.0dependabot[bot]
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
2024-08-07Bump actions/upload-artifact from 4.3.5 to 4.3.6dependabot[bot]
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
2024-08-07Use 20min for parallel test worker timeoutYusuke Endoh
2024-08-07Use SIGSEGV to kill a parallel test worker (to dump backtrace)Yusuke Endoh
2024-08-06[DOC] Tweaks to Array#<=>BurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/11305
2024-08-06[DOC] Tweaks for Array#<<BurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/11304
2024-08-06[DOC] Tweaks to Array#*BurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/11301
2024-08-06[DOC] Tweak to Array#&BurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/11300
2024-08-06Tweaks to Array::try_convertBurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/11299
2024-08-07Wait a bit longer for worker quitYusuke Endoh
2024-08-06[DOC] Tweak for Array::[]BurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/11298
2024-08-07Add a log when SIGKILL is sent to a test parallel workerYusuke Endoh
2024-08-07Fix a typoYusuke Endoh
2024-08-06Fix leak in warning of duplicate keys when Ripper#warn jumpsPeter Zhu
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
2024-08-06Use 3min for test parallel worker timeout againYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/11315
2024-08-06Dump all-thread backtraces when test parallel worker exceeds time limitYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/11315
2024-08-06tool/gen-github-release.rb required recent version of RubyHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/11312
2024-08-06Create GitHub Releases with GitHub ActionsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/11312
2024-08-06[ruby/uri] Fallback missing constants with RFC3986_PARSERHiroshi SHIBATA
(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]>
2024-08-06Extend the default timeout of parallel testing to one hourYusuke Endoh
2024-08-06[ruby/openssl] test/openssl/test_pkey_dsa.rb: skip all tests in FIPS modeKazuki Yamaguchi
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
2024-08-06Extend the default timeout of parallel testingYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/11311
2024-08-05[rubygems/rubygems] Don't remove existing platform gems when PLATFORMS ↵David Rodríguez
section is badly indented https://github.com/rubygems/rubygems/commit/ec099ebf1e
2024-08-05[rubygems/rubygems] Fix locked source not getting respected when `bundle ↵David Rodríguez
update <specific_gem>` is run https://github.com/rubygems/rubygems/commit/eec6830c04
2024-08-05[rubygems/rubygems] Extract a `build_repo3` helperDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d8cf4aa0cd
2024-08-05[rubygems/rubygems] Move private reader to private sectionDavid Rodríguez
https://github.com/rubygems/rubygems/commit/651cf3ea7a
2024-08-05[rubygems/rubygems] Bump rb-sysdependabot[bot]
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
2024-08-05[rubygems/rubygems] Bump rb-sysdependabot[bot]
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
2024-08-05[ruby/reline] Accept colon-style hash in test assertiontomoya ishida
(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
2024-08-05[ruby/uri] Add space after `bad URI`Josh Soref
https://github.com/ruby/uri/commit/9f2c7ed5f2
2024-08-05[ruby/uri] Use DEFAULT_PARSER at split, parse, joinHiroshi SHIBATA
https://github.com/ruby/uri/commit/28af4e155a
2024-08-05Clean up empty directoryHiroshi SHIBATA
2024-08-05Make sure to always use the right `warn`David Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/11296
2024-08-05Bump actions/upload-artifact from 4.3.4 to 4.3.5dependabot[bot]
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
2024-08-05Fix truffleruby removing gems from lockfileDavid Rodríguez
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.
2024-08-05[ruby/optparse] Fix parsing array arguments with `:into` optionfatkodima
https://github.com/ruby/optparse/commit/19700e96d8
2024-08-05Sync rdocStan Lo
Notes: Merged: https://github.com/ruby/ruby/pull/11308
2024-08-04[ruby/irb] Remove Ruby version checksRicardo Trindade
(https://github.com/ruby/irb/pull/985) https://github.com/ruby/irb/commit/9ce6972e71
2024-08-03Extend timeout in test/ruby/test_file_exhaustive.rbYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/11307
2024-08-03Update bundled gems list as of 2024-08-02git