summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-01[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.34 to 0.9.35. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.34...v0.9.35) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/73268e7af5
2022-10-31Always lookup IV buffers when iteratingAaron Patterson
Always look up instance variable buffers when iterating. It is possible for the instance variable buffer to change out from under the object during iteration, so we cannot cache the buffer on the stack. In the case of Bug #19095, the transient heap moved the buffer during iteration: ``` Watchpoint 1 hit: old value: 0x0000000107c00df8 new value: 0x00000001032743c0 Process 31720 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = watchpoint 1 frame #0: 0x00000001006e5178 miniruby`rb_obj_transient_heap_evacuate(obj=0x000000010d6b94b0, promote=1) at variable.c:1361:5 1358 } 1359 MEMCPY(new_ptr, old_ptr, VALUE, len); 1360 ROBJECT(obj)->as.heap.ivptr = new_ptr; -> 1361 } 1362 } 1363 #endif 1364 miniruby`rb_obj_transient_heap_evacuate: -> 0x1006e5178 <+328>: b 0x1006e517c ; <+332> at variable.c:1362:1 0x1006e517c <+332>: ldp x29, x30, [sp, #0x50] 0x1006e5180 <+336>: add sp, sp, #0x60 0x1006e5184 <+340>: ret Target 0: (miniruby) stopped. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = watchpoint 1 * frame #0: 0x00000001006e5178 miniruby`rb_obj_transient_heap_evacuate(obj=0x000000010d6b94b0, promote=1) at variable.c:1361:5 frame #1: 0x00000001006cb150 miniruby`transient_heap_block_evacuate(theap=0x0000000100b196c0, block=0x0000000107c00000) at transient_heap.c:734:17 frame #2: 0x00000001006c854c miniruby`transient_heap_evacuate(dmy=0x0000000000000000) at transient_heap.c:808:17 frame #3: 0x00000001007fe6c0 miniruby`rb_postponed_job_flush(vm=0x0000000104402900) at vm_trace.c:1773:21 frame #4: 0x0000000100637a84 miniruby`rb_threadptr_execute_interrupts(th=0x0000000103803bc0, blocking_timing=0) at thread.c:2316:13 frame #5: 0x000000010078b730 miniruby`rb_vm_check_ints(ec=0x00000001048038d0) at vm_core.h:2025:9 frame #6: 0x00000001006fbd10 miniruby`vm_pop_frame(ec=0x00000001048038d0, cfp=0x0000000104a04440, ep=0x0000000104904a28) at vm_insnhelper.c:422:5 frame #7: 0x00000001006fbca0 miniruby`rb_vm_pop_frame(ec=0x00000001048038d0) at vm_insnhelper.c:431:5 frame #8: 0x00000001007d6420 miniruby`vm_call0_cfunc_with_frame(ec=0x00000001048038d0, calling=0x000000016fdcc6a0, argv=0x0000000000000000) at vm_eval.c:153:9 frame #9: 0x00000001007d44cc miniruby`vm_call0_cfunc(ec=0x00000001048038d0, calling=0x000000016fdcc6a0, argv=0x0000000000000000) at vm_eval.c:164:12 frame #10: 0x0000000100766e80 miniruby`vm_call0_body(ec=0x00000001048038d0, calling=0x000000016fdcc6a0, argv=0x0000000000000000) at vm_eval.c:210:15 frame #11: 0x00000001007d76f0 miniruby`vm_call0_cc(ec=0x00000001048038d0, recv=0x000000010d6b49d8, id=2769, argc=0, argv=0x0000000000000000, cc=0x000000010d6b2e58, kw_splat=0) at vm_eval.c:87:12 frame #12: 0x0000000100769e48 miniruby`rb_funcallv_scope(recv=0x000000010d6b49d8, mid=2769, argc=0, argv=0x0000000000000000, scope=CALL_FCALL) at vm_eval.c:1051:16 frame #13: 0x0000000100760a54 miniruby`rb_funcallv(recv=0x000000010d6b49d8, mid=2769, argc=0, argv=0x0000000000000000) at vm_eval.c:1066:12 frame #14: 0x000000010037513c miniruby`rb_inspect(obj=0x000000010d6b49d8) at object.c:633:34 frame #15: 0x000000010002c950 miniruby`inspect_ary(ary=0x000000010d6b4938, dummy=0x0000000000000000, recur=0) at array.c:3091:13 frame #16: 0x0000000100642020 miniruby`exec_recursive(func=(miniruby`inspect_ary at array.c:3084), obj=0x000000010d6b4938, pairid=0x0000000000000000, arg=0x0000000000000000, outer=0, mid=2769) at thread.c:5177:23 frame #17: 0x00000001006412fc miniruby`rb_exec_recursive(func=(miniruby`inspect_ary at array.c:3084), obj=0x000000010d6b4938, arg=0x0000000000000000) at thread.c:5205:12 frame #18: 0x00000001000127f0 miniruby`rb_ary_inspect(ary=0x000000010d6b4938) at array.c:3117:12 ``` In general though, any calls back out to the interpreter could change the IV buffer, so it's not safe to cache. [Bug #19095] Notes: Merged: https://github.com/ruby/ruby/pull/6650
2022-10-31Implement object shapes for T_CLASS and T_MODULE (#6637)John Hawthorn
* Avoid RCLASS_IV_TBL in marshal.c * Avoid RCLASS_IV_TBL for class names * Avoid RCLASS_IV_TBL for autoload * Avoid RCLASS_IV_TBL for class variables * Avoid copying RCLASS_IV_TBL onto ICLASSes * Use object shapes for Class and Module IVs Notes: Merged-By: jhawthorn <john@hawthorn.email>
2022-10-31YJIT: Add RubyVM::YJIT.code_gc (#6644)Takashi Kokubun
* YJIT: Add RubyVM::YJIT.code_gc * Rename compiled_page_count to live_page_count Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-31YJIT: reduce default `--yjit-exec-mem-size` to 128MiB instead of 256 (#6649)Maxime Chevalier-Boisvert
Reduce default --yjit-exec-mem-size to 128MiB instead of 256 Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-31Reuse FIBER_RESUMED_P macroS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6635
2022-10-31[ruby/error_highlight] Support nodes in `spot`eileencodes
Fixes a bug where `spot` was using the wrong local variable. We want to use error highlight with code that has been eval'd, specifically ERB templates. We can recover the compiled source code of the ERB template but we need an API to pass the node into error highlight's `spot`. Required Ruby PR: https://github.com/ruby/ruby/pull/6593 https://github.com/ruby/error_highlight/commit/0b1b650a59 Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2022-10-31Add `node_id_for_backtrace_location` functioneileencodes
We want to use error highlight with eval'd code, specifically ERB templates. We're able to recover the generated code for eval'd templates and can get a parse tree for the ERB generated code, but we don't have a way to get the node id from the backtrace location. So we can't pass the right node into error highlight. This patch gives us an API to get the node id from the backtrace location so we can find the node in the AST. Error Highlight PR: https://github.com/ruby/error_highlight/pull/26 Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/6593
2022-10-30[ruby/bigdecimal] Suppress macro redefinition warningsNobuyoshi Nakada
`HAVE_` macros by autoconf are defined as 1. https://github.com/ruby/bigdecimal/commit/cd35868aa6
2022-10-30Ignore failure at moving revision.h [ci skip]Nobuyoshi Nakada
The source directory may be read-only.
2022-10-30Try -fstack-protector-strong on MinGWNobuyoshi Nakada
The CI for MinGW has used it.
2022-10-30Run spec_guards only when spec files changed [ci skip]Nobuyoshi Nakada
2022-10-30vcs.rb: copy safe directory configurationNobuyoshi Nakada
Now revision.tmp will be regenerated always and every times, even if the recent file exists in the source directory, as far as using git. On the other hand, VirtualBox mounts shared folders as root, and git rejects the repository there as dubious ownership. Notes: Merged: https://github.com/ruby/ruby/pull/6647
2022-10-30vcs.rb: prettify debug printNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6647
2022-10-30Update bundled gems list at 2022-10-30git
2022-10-29[DOC] Enhanced RDOc for IO (#6642)Burdette Lamar
In io.c treats: #close #close_read #close_write #closed Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2022-10-30Fix links and sort [ci skip]Kazuhiro NISHIYAMA
2022-10-29[ruby/optparse] Add tests for `load(into:)`Nobuyoshi Nakada
https://github.com/ruby/optparse/commit/51f7e060ee
2022-10-29[ruby/optparse] #load() into hashWhyme Lyu
(https://github.com/ruby/optparse/pull/42) OptionParser#load learns .load(into: Hash) https://github.com/ruby/optparse/commit/2ea626fcff Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2022-10-29[ruby/optparse] Add tests for `OptionParser#load`Nobuyoshi Nakada
https://github.com/ruby/optparse/commit/fb34a1d3a3
2022-10-29[ruby/digest] Use CommonDigest by default if availableNobuyoshi Nakada
https://github.com/ruby/digest/commit/cce9ada85e
2022-10-29Clear `_FORTIFY_SOURCE` before definitionNobuyoshi Nakada
As clang on macOS defines this macro as 0 internally when a sanitizer option is given, clear it before definition to suppress redefinition warnings. Notes: Merged: https://github.com/ruby/ruby/pull/6646
2022-10-28fix ASAN error in GCAaron Patterson
2022-10-28Follow up "Rework `first_lineno` to be `int`."Nobuyoshi Nakada
2022-10-28sync_default_gems.rb: do not add extra empty lines [ci skip]Nobuyoshi Nakada
2022-10-28[ruby/irb] Do not make non-existent XDG directory on startNobuyoshi Nakada
(https://github.com/ruby/irb/pull/357) https://github.com/ruby/irb/commit/298b134792
2022-10-28[ruby/irb] Update regarding NO_COLOR valueNobuyoshi Nakada
https://no-color.org has been updated (jcs/no_color#83): > Command-line software which adds ANSI color to its output by default should check for a `NO_COLOR` environment variable that, when present and **not an empty string** (regardless of its value), prevents the addition of ANSI color. https://github.com/ruby/irb/commit/46e0f7e370 Co-authored-by: Stan Lo <stan001212@gmail.com>
2022-10-28[ruby/irb] Suppress sequence to inspect asian ambiguous width Nobuyoshi Nakada
https://github.com/ruby/irb/commit/a7097c5b80
2022-10-28[ruby/irb] Suppress "switching inspect mode" messages Nobuyoshi Nakada
https://github.com/ruby/irb/commit/565eeb3c19
2022-10-28sync_default_gems.rb: append orignal commit URLs to subject only logNobuyoshi Nakada
2022-10-27YJIT: Use guard_known_class() for opt_aref on Arrays (#6643)Alan Wu
This code used to roll its own heap object check before we made a better version in guard_known_class(). The improved version uses one fewer comparison, so let's use that. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-27Update docs wrt YJIT limitations and building YJIT (#6641)Maxime Chevalier-Boisvert
* Update docs wrt YJIT limitations and building YJIT * Update building_ruby.md Fix relative link Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-27[ruby/irb] Fix warnings in test_cmd.rbPeter Zhu
Fixes this warning: warning: assigned but unused variable - err https://github.com/ruby/irb/commit/298fcb57a3
2022-10-27[ruby/irb] Remove unnecessary test setup Stan Lo
2022-10-27[ruby/irb] Suppress warning for test which uses a locale non-existing on ↵Benoit Daloze
GitHub Actions
2022-10-27[ruby/irb] Remove unecesary and harmful pend for TruffleRuby in ↵Benoit Daloze
TestRaiseNoBacktraceException * Specifically the second one causes `$HOME` to be unset, which breaks `File.expand_path('~')`. https://github.com/ruby/irb/commit/61963305f5
2022-10-27Improve performance some `Integer` and `Float` methods [Feature #19085] (#6638)S.H
* Improve some Integer and Float methods * Using alias and Remove unnecessary code * Remove commentout code Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-10-27[ruby/irb] Add missing require Stan Lo
2022-10-27[ruby/irb] Add test for IRB::InputCompletor::PerfectMatchedProcst0012
This proc displays rdoc document when the input matches certain symbols perfectly, like "String". It's commonly triggered with autocompletion but only has 1 test case. So this commit increases its test coverage. https://github.com/ruby/irb/commit/d85d719313
2022-10-27[ruby/rdoc] Delay `require "readline"` in case the terminal is in raw mode Shugo Maeda
2022-10-27[ruby/date] Check month range as civilNobuyoshi Nakada
2022-10-27[ruby/tmpdir] Warnings should contain the environment variable name Nobuyoshi Nakada
2022-10-26YJIT: Test --yjit-verify-ctx on GitHub Actions as well (#6639)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-26Fix the url of Cirrus failure notifications [ci skip]Takashi Kokubun
The previous one was the url of this notification action, but we want to see a link to Cirrus CI. This code follows https://cirrus-ci.org/guide/notifications/. Also, head_branch was null only for pull requests from a fork, so we can use it for branch-based filtering, which is good.
2022-10-26YJIT: Support nil and blockparamproxy as blockarg in send (#6492)Matthew Draper
Co-authored-by: John Hawthorn <john@hawthorn.email> Co-authored-by: John Hawthorn <john@hawthorn.email> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-26YJIT: Invalidate i-cache for the other cb on next_page (#6631)Takashi Kokubun
* YJIT: Invalidate i-cache for the other cb on next_page * YJIT: Invalidate only what's written by jmp_ptr * YJIT: Move the code to the arm64 backend Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-26[ruby/irb] Remove unnecessary warning check on help commandStan Lo
It's not an intentional behavior of the command and it behaves differently in different environments. So checking it actually brings more problem than benefit. https://github.com/ruby/irb/commit/b3203bc784
2022-10-26[ruby/irb] Rename test_helper.rb to helper.rbPeter Zhu
The name test_helper.rb conflicts with the test_helper.rb in JSON, causing build failures. This commit renames test_helper.rb to helper.rb. https://github.com/ruby/irb/commit/b6a92bf6b3 Co-Authored-By: Stan Lo <stan001212@gmail.com>
2022-10-26[ruby/irb] Don't insert new methods to Test::Unit::TestCasest0012
Ruby CI runs irb and other Ruby core/stdlib tests in the same process. So adding irb-specific helper to Test::Unit::TestCase could potentially pollute other components' tests and should be avoided.
2022-10-26[ruby/irb] Suppress warningsStan Lo
Co-authored-by: Peter Zhu <peter@peterzhu.ca>