summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-02-13[rubygems/rubygems] Update SPDX license list as of 2024-02-08License Update
https://github.com/rubygems/rubygems/commit/ec3de95d79
2024-02-13Fix typo in asan section of building_ruby.md docsKJ Tsanaktsidis
s/copmiler-rt/compiler-rt/
2024-02-13Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897)Hiroya Fujinami
2024-02-13Warn duplication of `__ENCODING__` on the hashyui-knk
``` $ ruby -e 'h = { __ENCODING__ => 1, __ENCODING__ => 2 }' -e:1: warning: key #<Encoding:UTF-8> is duplicated and overwritten on line 1 ```
2024-02-12Comply with doc guideBurdetteLamar
2024-02-12YJIT: Fix kwrest calls setting SP with uninit valuesAlan Wu
We did stack_push() and then saved the SP without writing to the slots of the new values first, which caused the GC to mark uninitialized values. Should fix crashes like https://github.com/ruby/ruby/actions/runs/7877298133/job/21493179294
2024-02-12Replace assert with RUBY_ASSERT in weakmap.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in thread_sync.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in rational.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in range.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in numeric.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in load.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in id_table.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in enum.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in darray.hPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in complex.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in compile.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in bignum.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in array.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12Replace assert with RUBY_ASSERT in string.cPeter Zhu
assert does not print the bug report, only the file and line number of the assertion that failed. RUBY_ASSERT prints the full bug report, which makes it much easier to debug.
2024-02-12[ruby/prism] Fix typo in class variable name errorKevin Newton
https://github.com/ruby/prism/commit/5f6c45f6fb
2024-02-12More on auto-link (#9907)Burdette Lamar
2024-02-12Enable redefinition check for rbinc methodsNobuyoshi Nakada
2024-02-12[PRISM] Check full lines for invalid UTF-8Kevin Newton
2024-02-12YJIT: Add support for `**kwrest` parametersAlan Wu
Now that `...` uses `**kwrest` instead of regular splat and ruby2keywords, we need to support these type of methods to support `...` well.
2024-02-12[ruby/irb] Powerup show_source by enabling RubyVM.keep_script_linestomoya ishida
(https://github.com/ruby/irb/pull/862) * Powerup show_source by enabling RubyVM.keep_script_lines * Add file_content field to avoid reading file twice while show_source * Change path passed to eval, don't change irb_path. * Encapsulate source coloring logic and binary file check insode class Source * Add edit command testcase when irb_path does not exist * Memoize irb_path existence to reduce file existence check calculating eval_path https://github.com/ruby/irb/commit/239683a937
2024-02-12Allow `foo(**nil, &block_arg)`Alan Wu
Previously, `**nil` by itself worked, but if you add a block argument, it raised a conversion error. The presence of the block argument shouldn't change how keyword splat works. See: <https://bugs.ruby-lang.org/issues/20064>
2024-02-12[ruby/prism] Error messages closer to CRubyKevin Newton
https://github.com/ruby/prism/commit/19ffa0b980
2024-02-12YJIT: Prefer an overloaded cme if available (#9913)Takashi Kokubun
YJIT: Prefer an overloaded cme if applicable
2024-02-12[ruby/prism] ruby_parser translatorKevin Newton
https://github.com/ruby/prism/commit/1925b970c7
2024-02-12proc.c: get rid of `CLONESETUP`Jean Boussier
[Bug #20253] All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod` and `Binding` always had their own specific clone and dup routine. This caused various discrepancies with how other objects behave on `dup` and `clone. [Bug #20250], [Bug #20253]. This commit get rid of `CLONESETUP` and use the the same codepath as all other types, so ensure consistency. NB: It's still not accepting the `freeze` keyword argument on `clone`. Co-Authored-By: Étienne Barrié <[email protected]>
2024-02-12YJIT: Adjust the padding size of counts automatically (#9912)Takashi Kokubun
2024-02-12YJIT: Fix insufficient type guards (#9911)Takashi Kokubun
2024-02-12[ruby/prism] Fix unary not locationKevin Newton
https://github.com/ruby/prism/commit/861689f6d1
2024-02-12[ruby/prism] Move Prism::RipperCompat to Prism::Translation::RipperNoah Gibbs
https://github.com/ruby/prism/commit/c0331abe4f
2024-02-12[ruby/prism] Unary not name locationKevin Newton
https://github.com/ruby/prism/commit/78190d2999
2024-02-12[DOC] `:stopdoc:` directive must be on its own line (#9916)Nobuyoshi Nakada
2024-02-12Drill newobj cache instead of ractorPeter Zhu
2024-02-12Try `nmake install` before `nmake test-spec`Benoit Daloze
2024-02-12[ruby/irb] Fix exit! command warning and method behaviortomoya ishida
(https://github.com/ruby/irb/pull/868) * Fix exit! command warning and method behavior * Remove arg(0) from Kernel.exit and Kernel.exit! https://github.com/ruby/irb/commit/372bc59bf5
2024-02-12Try prepare-gems instead of extract-gemsBenoit Daloze
* `make install` uses prepare-gems.
2024-02-12Skip spec failing on i686Benoit Daloze
2024-02-12Exclude a problematic spec when run in CRuby via make test-spec until fixedBenoit Daloze
2024-02-12Update to ruby/spec@ce834adBenoit Daloze
2024-02-12Always extract bundled gems before running ruby/specBenoit Daloze
* Fixes https://github.com/ruby/ruby/commit/44d74f22c8da3c13aa5363769418e2f5fd29f65a#r138276491
2024-02-12Use Node for `warn_duplicate_keys` st_table keysyui-knk
2024-02-12Adjust styles [ci skip]Nobuyoshi Nakada
2024-02-11Fix crash when passing large keyword splat to method accepting keywords and ↵Jeremy Evans
keyword splat The following code previously caused a crash: ```ruby h = {} 1000000.times{|i| h[i.to_s.to_sym] = i} def f(kw: 1, **kws) end f(**h) ``` Inside a thread or fiber, the size of the keyword splat could be much smaller and still cause a crash. I found this issue while optimizing method calling by reducing implicit allocations. Given the following code: ```ruby def f(kw: , **kws) end kw = {kw: 1} f(**kw) ``` The `f(**kw)` call previously allocated two hashes callee side instead of a single hash. This is because `setup_parameters_complex` would extract the keywords from the keyword splat hash to the C stack, to attempt to mirror the case when literal keywords are passed without a keyword splat. Then, `make_rest_kw_hash` would build a new hash based on the extracted keywords that weren't used for literal keywords. Switch the implementation so that if a keyword splat is passed, literal keywords are deleted from the keyword splat hash (or a copy of the hash if the hash is not mutable). In addition to avoiding the crash, this new approach is much more efficient in all cases. With the included benchmark: ``` 1 miniruby: 5247879.9 i/s miniruby-before: 2474050.2 i/s - 2.12x slower 1_mutable miniruby: 1797036.5 i/s miniruby-before: 1239543.3 i/s - 1.45x slower 10 miniruby: 1094750.1 i/s miniruby-before: 365529.6 i/s - 2.99x slower 10_mutable miniruby: 407781.7 i/s miniruby-before: 225364.0 i/s - 1.81x slower 100 miniruby: 100992.3 i/s miniruby-before: 32703.6 i/s - 3.09x slower 100_mutable miniruby: 40092.3 i/s miniruby-before: 21266.9 i/s - 1.89x slower 1000 miniruby: 21694.2 i/s miniruby-before: 4949.8 i/s - 4.38x slower 1000_mutable miniruby: 5819.5 i/s miniruby-before: 2995.0 i/s - 1.94x slower ```
2024-02-12Fix [BUG] unknown node for NODE_ENCODINGyui-knk
It should be `return` instead of `break`, otherwise `[BUG] dump_node: unknown node: NODE_ENCODING` happens.
2024-02-12Update ASAN docs to reflect the current state of thingsKJ Tsanaktsidis
I don't really think ASAN works well at all on any version of Ruby from before https://bugs.ruby-lang.org/issues/20001 was landed. Update the docs to clarify what works, and what does not work. Also there's no need to compile at `-O0`; this was probably just hiding some of the problems with our stack scanning that were fixed in the above issue. [Bug #20248]