summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-15Rewrite Symbol#to_sym and #intern in Ruby (#6683)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15YJIT: Always encode Opnd::Value in 64 bits on x86_64 for GC offsets (#6733)Takashi Kokubun
* YJIT: Always encode Opnd::Value in 64 bits on x86_64 for GC offsets Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> * Introduce heap_object_p * Leave original mov intact * Remove unneeded branches * Add a test for movabs Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15YJIT: Include actual memory region size in stats (#6736)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15YJIT: Count getivar side exits by receiver flag changes (#6735)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15YJIT: Invalidate redefined methods only through cme (#6734)Takashi Kokubun
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15[ruby/irb] Improve testing infraStan Lo
(https://github.com/ruby/irb/pull/442) * Add test_in_isolation task to run tests in isolation This simulates how tests are run in Ruby CI and can detect some issues before they're merged and break Ruby CI later. * Run test_in_isolation task on CI * Fix TestRaiseNoBacktraceException's setup https://github.com/ruby/irb/commit/51f23c58b0
2022-11-16Depending on revision.h with VPATHNobuyoshi Nakada
2022-11-15Fix buffer overrun in ivars when rebuilding shapesPeter Zhu
In rb_shape_rebuild_shape, we need to increase the capacity when capacity == next_iv_index since the next ivar will be writing at index next_iv_index. This bug can be reproduced when assertions are turned on and you run the following code: class Foo def initialize @a1 = 1 @a2 = 1 @a3 = 1 @a4 = 1 @a5 = 1 @a6 = 1 @a7 = 1 end def add_ivars @a8 = 1 @a9 = 1 end end class Bar < Foo end foo = Foo.new foo.add_ivars bar = Bar.new GC.start bar.add_ivars bar.clone You will get the following crash: Assertion Failed: object.c:301:rb_obj_copy_ivar:src_num_ivs <= shape_to_set_on_dest->capacity Notes: Merged: https://github.com/ruby/ruby/pull/6725
2022-11-15Added empty class for test methods in TestIRB casesHiroshi SHIBATA
2022-11-15[ruby/irb] Deprecate USE_RELINE and USE_REIDLINEst0012
Based on this commit: https://github.com/ruby/irb/commit/93f87ec65344b44123b0150a5fc07de1fd4c80c4 It appears that the maintainer @aycabta wanted to deprecate any `USE_*LINE` configs in favor of `USE_MULTILINE`. So we should deprecate `USE_RELINE` as well. https://github.com/ruby/irb/commit/478f19f3ae
2022-11-15[ruby/irb] Deprecate reidline flagsst0012
https://github.com/ruby/irb/commit/9957e83f7d
2022-11-15[ruby/irb] Rename leftover Reidline referencesst0012
https://github.com/ruby/irb/commit/0ed8b103ed
2022-11-15[ruby/irb] Remove duplicated TestInputMethod definitionsst0012
https://github.com/ruby/irb/commit/4b831d02e1
2022-11-15MJIT: Fix vm_cc_cme(cc).def.type to use bit fieldTakashi Kokubun
access properly. Because the libclang node had two children, it wasn't handled well by the pattern matching for the bit field case. In addition to that, this bit field has a non-1 width. Because we're returning true/false for a width-1 bit field, I added another behavior that works like a char value for bit fields with width 2-8.
2022-11-15Handle more MJIT compilation failuresTakashi Kokubun
NotImplementedError is not part StandardError, for example. When that kind of exception happens, current_cc_unit remains not NULL, and mjit_finish ends up waiting for 5 seconds, which is inconvenient.
2022-11-15[ruby/racc] Update racc.gemspecJohnny Willemsen
Updated homepage to https://github.com/ruby/racc
2022-11-14MJIT: Remove reference to ROBJECT_EMBED_LEN_MAXTakashi Kokubun
maybe not used since some shape changes?
2022-11-14Rename --mjit-min-calls to --mjit-call-threshold (#6731)Takashi Kokubun
for consistency with YJIT Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15[ruby/bigdecimal] Add fallback definition of MAYBE_UNUSEDKenta Murata
https://github.com/ruby/bigdecimal/commit/b2123faa52
2022-11-15Update RSpec gemsDavid Rodríguez
2022-11-15[ruby/bigdecimal] Replace sprintf by snprintfKenta Murata
https://github.com/ruby/bigdecimal/commit/d6f5bb40c7
2022-11-14Implement LDURH on Aarch64Aaron Patterson
When RUBY_DEBUG is enabled, shape ids are 16 bits. I would like to do 16 bit comparisons, so I need to load halfwords sometimes. This commit adds LDURH so that I can load halfwords. https://developer.arm.com/documentation/ddi0596/2021-12/Base-Instructions/LDURH--Load-Register-Halfword--unscaled--?lang=en I verified the bytes using clang: ``` $ cat asmthing.s .global _start .align 2 _start: ldurh w10, [x1] ldurh w10, [x1, #123] $ as asmthing.s -o asmthing.o && objdump --disassemble asmthing.o asmthing.o: file format mach-o arm64 Disassembly of section __TEXT,__text: 0000000000000000 <ltmp0>: 0: 2a 00 40 78 ldurh w10, [x1] 4: 2a b0 47 78 ldurh w10, [x1, #123] ``` Notes: Merged: https://github.com/ruby/ruby/pull/6729
2022-11-14Try to let dependabot maintain the version commentTakashi Kokubun
It seems like dependabot supports updating the `# vX.Y.Z` comment. The reason why I disabled this was that it failed to update this, but maybe it was because it had `, checking sha`. Let me try it again with that removed.
2022-11-15[ruby/bigdecimal] Mark some functions MAYBE_UNUSEDKenta Murata
https://github.com/ruby/bigdecimal/commit/d70a4d53e5
2022-11-15Re-order checks for colons in UTC offsetNobuyoshi Nakada
2022-11-14Remove USE_RVARGC codeAaron Patterson
We don't need this constant to be exposed anymore, so remove it Notes: Merged: https://github.com/ruby/ruby/pull/6728
2022-11-14[rubygems/rubygems] Update comment by the review commentShohei YOSHIDA
https://github.com/rubygems/rubygems/commit/7c54dc56f6
2022-11-14[rubygems/rubygems] Fix '--force' option documentation of 'bundle clean'Shohei YOSHIDA
'--path' option is no longer used. https://github.com/rubygems/rubygems/commit/43b3d5f7bc
2022-11-14Use string's capacity to determine if reembeddablePeter Zhu
During auto-compaction, using length to determine whether or not a string can be re-embedded may be a problem for newly created strings. This is because usually it requires a malloc before setting the length. If the malloc triggers compaction, then the string may be re-embedded and can cause crashes.
2022-11-14Set array capacity/shared immediately after allocPeter Zhu
If auto-compaction is enabled, then we have to set the capacity/shared immediately after allocating a heap array. If compaction runs before capacity/shared is set then it could cause the array to be re-embedded, which can cause crashes.
2022-11-14Remove unused function rb_shape_transition_shapePeter Zhu
Notes: Merged: https://github.com/ruby/ruby/pull/6717
2022-11-14Clean YJIT libraries [ci skip]Nobuyoshi Nakada
2022-11-14[Bug #19127] Fix revision.h dependency when no baserubyNobuyoshi Nakada
Disconnect the dependency of revision.h on the timestamp file if no baseruby is available Notes: Merged: https://github.com/ruby/ruby/pull/6724 Merged-By: nobu <nobu@ruby-lang.org>
2022-11-14Import shape constants with mjit-bindgenTakashi Kokubun
2022-11-14Import class constants with mjit-bindgenTakashi Kokubun
2022-11-14Update default gems list at d019c3a4bd7b0955c630195c585f3f [ci skip]git
2022-11-14[ruby/error_highlight] Bump versionYusuke Endoh
https://github.com/ruby/error_highlight/commit/5275078dc6
2022-11-14[ruby/error_highlight] Enable tests for TypeError and ArgumentErrorYusuke Endoh
These tests were unintentionally disabled by `if false` https://github.com/ruby/error_highlight/commit/fa6d00d80d
2022-11-14[ruby/error_highlight] Enable ErrorHighlight for TypeError/ArgumentError ↵Yusuke Endoh
only after Ruby 3.2 ... because changing TypeError#message and ArgumentError#message is highly incompatible. https://github.com/ruby/error_highlight/commit/39aa897c7a
2022-11-13Fix invokebuiltin in Ruby MJITTakashi Kokubun
https://github.com/ruby/ruby/blob/45fe7f757522ed7d1d3ec754da59d41d45dd6bab/tool/ruby_vm/views/_mjit_compile_invokebuiltin.erb#L21 has not been ported correctly.
2022-11-13Reduce the number of branches in jit_exec (#6722)Takashi Kokubun
* Reduce the number of branches in jit_exec * Address build failure in some configurations * Refactor yjit.h Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-14Bump actions/upload-artifact from 3.1.0 to 3.1.1dependabot[bot]
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/3cea5372237819ed00197afe530f5a7ea3e805c8...83fd05a356d7e2593de66fc9913b3002723633cb) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Notes: Merged: https://github.com/ruby/ruby/pull/6723
2022-11-13Refactor update_global_event_hookTakashi Kokubun
It seems more readable to put JIT invalidation code together.
2022-11-13s/mjit_func_t/jit_func_t/Takashi Kokubun
2022-11-13Remove unused debug countersTakashi Kokubun
The structure and readability of jit_exec is messed up right now. I'd like to help the current situation by this for now. I'll resurrect them when I need it again.
2022-11-13YJIT: Instrument global allocations on stats build (#6712)Takashi Kokubun
* YJIT: Instrument global allocations on stats build * Just use GLOVAL_ALLOCATOR.stats() Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-11-13YJIT: Fix invalidation for c_call and c_return (#6719)Alan Wu
Follow-up for 2b8191bdad7545b71f270d2b25a34cd2b3afa02f. Since that commit, we stopped doing code invalidation the second time the call and return events are enabled. We need to do it every time these events are enabled because we might have generated code while these events are disabled. Also rename locals and edit comments to make it more clear that the iseq rewrite code path only happens the first time a particular iseq trace event is enabled. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-11-13Update yjit.mdMaxime Chevalier-Boisvert
Remove disclaimer
2022-11-13YJIT: Remove unused src_ctx from Block (#6714)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-11-13Control non-parallel parts with `.WAIT` if availableNobuyoshi Nakada