78911 Commits

Author SHA1 Message Date
Takashi Kokubun
72a16c61dc Move the dependency of node.rb and serialize.rb
to `main`.

This is what lib/ruby_vm/rjit/instruction.rb currently does. Letting
.time depend on those files was just a workaround.
2023-08-17 14:52:23 -07:00
Takashi Kokubun
67b5f63e97
Render YARP templates in the build process (#8228) 2023-08-17 14:39:04 -07:00
Alan Wu
5d48825d55 YJIT: Fix String#<< return type
We previously falsely asserted that String#<< always returns a ::String
instance. Issue was discovered on CI with `--yjit-verify-ctx`.

https://github.com/ruby/ruby/actions/runs/5893760435/job/15986002531
2023-08-17 17:17:31 -04:00
Alan Wu
518d5ab5c8 Add note about rb_f_notimplement [ci skip]
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2023-08-17 17:14:46 -04:00
Alan Wu
9683eb06cf YJIT: Fix Kernel#respond_to? handling of rb_f_notimplement
We should return false for this type of special methods but wasn't
previously. Was reproducible with:

    make test-all TESTS=../test/-ext-/test_notimplement.rb RUN_OPTS='--yjit-call-threshold=1'
2023-08-17 17:14:46 -04:00
Takashi Kokubun
57ec167306 YARP: Ignore Rust sync failures 2023-08-17 13:57:11 -07:00
Peter Zhu
5db8b9b366 Move total_freed_objects to size pool
This commit moves the `total_freed_objects` statistic to the size pool
which allows for `total_freed_objects` key in `GC.stat_heap`.
2023-08-17 15:53:00 -04:00
Peter Zhu
52506cbf51 Move total_allocated_objects to size pool
This commit moves the `total_allocated_objects` statistic to the size
pool which allows for `total_allocated_objects` key in `GC.stat_heap`.
2023-08-17 15:53:00 -04:00
Takashi Kokubun
818998b41b Refactor YARP_IGNORE_FILE_PATTERN
`.git.*` covers those two cases.

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-08-17 10:27:33 -07:00
Takashi Kokubun
f50e814dae Resync YARP to https://github.com/ruby/yarp/commit/11ad3fb590 2023-08-17 10:01:57 -07:00
Takashi Kokubun
40002dd7dc Resync YARP 2023-08-17 09:58:56 -07:00
Kevin Newton
81d715099c [ruby/yarp] Treat yp_buffer_t as an opaque pointer
Right now, we have to keep the buffer FFI object in sync with the
definition of yp_buffer_t because we access its fields directly. If
we add more fields or change the order, things will get out of sync.

Instead, let's treat yp_buffer_t as an opaque pointer and access
its fields through accessor functions directly. This is more
consistent with how we handle strings anyway.

https://github.com/ruby/yarp/commit/878d845eff
2023-08-17 09:58:56 -07:00
Ngan Pham
75a4767525 [rubygems/rubygems] Add file option to ruby method in Gemfile
https://github.com/rubygems/rubygems/commit/fb9354b7bf
2023-08-17 16:07:54 +00:00
Maxime Chevalier-Boisvert
30a5b94517
YJIT: implement side chain fallback for setlocal to avoid exiting (#8227)
* YJIT: implement side chain fallback for setlocal to avoid exiting

* Update yjit/src/codegen.rs

Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>

---------

Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2023-08-17 10:11:17 -04:00
Manu
7433c8f7dd [rubygems/rubygems] Clarify that bundle info takes a gem name
https://github.com/rubygems/rubygems/commit/09ef74ef73
2023-08-17 10:39:31 +00:00
yui-knk
8c447cffe4 Lrama v0.5.4 2023-08-17 19:29:36 +09:00
Nobuyoshi Nakada
d26b015e83 [Bug #19831] Remove duplicate library options
`$(LIBRUBYARG_SHARED)` is included in `$(LIBS)` in extension
libraries.
2023-08-17 16:30:01 +09:00
Takashi Kokubun
e210b899dc
Move the PC regardless of the leaf flag (#8232)
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
2023-08-16 20:28:33 -07:00
Nobuyoshi Nakada
5bb9462285 [Bug #19831] Remove duplicate library options
`$(MAINLIBS)` should be included in `$(LIBRUBYARG)` in cases it is
needed.
2023-08-17 10:57:09 +09:00
Kevin Newton
48b241e53f [ruby/yarp] Fix errors on locals test caused by LANG=C
https://github.com/ruby/yarp/commit/8fae286bc9
2023-08-17 01:16:00 +00:00
Takashi Kokubun
1c53e64c51 Fix a regexp error 2023-08-16 17:55:56 -07:00
Takashi Kokubun
cdb757f817 Avoid synchronizing GitHub Actions from YARP 2023-08-16 17:55:32 -07:00
Takashi Kokubun
7183cf53f8 Revert an unintended revert 2023-08-16 17:51:52 -07:00
git
f1778870bd Update default gems list at 45740e7a248b4b995644646e38d94b [ci skip] 2023-08-17 00:48:19 +00:00
Jemma Issroff
45740e7a24 [ruby/yarp] Use _snprintf when using Windows versions prior to 2015 (< 1900)
Ruby CI has informed us that snprintf is not available on Windows
versions, but _sprintf is supported. This commit allows us to use
_sprintf where applicable

https://github.com/ruby/yarp/commit/818cc96afe
2023-08-16 17:47:32 -07:00
Jemma Issroff
c989c1b068 [ruby/yarp] Omit locals test if running on a 32 bit machine
https://github.com/ruby/yarp/commit/809d046f36
2023-08-16 17:47:32 -07:00
Takashi Kokubun
87f74a349e Update dependencies 2023-08-16 17:47:32 -07:00
Takashi Kokubun
f20dfd0803 Fix the YARP init path 2023-08-16 17:47:32 -07:00
Takashi Kokubun
3873b1eb39 Resync YARP 2023-08-16 17:47:32 -07:00
Kevin Newton
957cd369fa [ruby/yarp] Add test for empty heredoc
https://github.com/ruby/yarp/commit/e49b63a79e
2023-08-16 17:47:32 -07:00
Benoit Daloze
3536cad902 [ruby/yarp] Fixes so bundle exec rake can run on JRuby and TruffleRuby
https://github.com/ruby/yarp/commit/e6cea4fa08
2023-08-16 17:47:32 -07:00
Benoit Daloze
958ac8d586 [ruby/yarp] Test all methods of the YARP Ruby API
https://github.com/ruby/yarp/commit/a723f40baf
2023-08-16 17:47:32 -07:00
HParker
a8c70ed2b4 [ruby/yarp] add a diagnostic for *rest in order after optional state
https://github.com/ruby/yarp/commit/908244ba12
2023-08-16 17:47:32 -07:00
Kevin Newton
bf723b21cc [ruby/yarp] More flip flop flags
Whenever you see a `not` or a `!`, the receiver of that method should
potentially be marked as a flip-flop.

https://github.com/ruby/yarp/commit/ba5977a40a
2023-08-16 17:47:32 -07:00
Kevin Newton
fb287fa425 [ruby/yarp] Support the flipflop flag
https://github.com/ruby/yarp/commit/6315890390
2023-08-16 17:47:32 -07:00
Kevin Newton
ecf2e84c05 [ruby/yarp] Add a CHANGELOG
https://github.com/ruby/yarp/commit/b490ff0919
2023-08-16 17:47:32 -07:00
Jemma Issroff
86cc82a1ab [ruby/yarp] Improved comments, moved flags after type
https://github.com/ruby/yarp/commit/4815d77e82
2023-08-16 17:47:32 -07:00
Jemma Issroff
383c47f538 [ruby/yarp] Separate yp_node_flags_t from yp_node_type_t
Prior to this commit, we folded the flags into the type. This created
extra overhead when calculating the type and setting the flags. This
commit separates them.

https://github.com/ruby/yarp/commit/b783a5678c
2023-08-16 17:47:32 -07:00
Kevin Newton
89de544442 [ruby/yarp] Set constant path write node target type
https://github.com/ruby/yarp/commit/771f7ed789
2023-08-16 17:47:32 -07:00
Kevin Newton
ee885237f6 [ruby/yarp] Fix string concat parsing
https://github.com/ruby/yarp/commit/58f839a3eb
2023-08-16 17:47:32 -07:00
Kevin Newton
77e52735f0 [ruby/yarp] Fix warnings found from gcc-analyzer and clang-analyzer
https://github.com/ruby/yarp/commit/1f9a6e05c4
2023-08-16 17:47:32 -07:00
Kevin Newton
9b952670bb [ruby/yarp] Less const_get
Right now whenever you go to create a Ruby object from a C struct
we dynamically look up the constants. This is not great for
performance. Now instead we template out a constant for each VALUE
that holds the classes, and then directly reference it.

https://github.com/ruby/yarp/commit/f4756cda77
2023-08-16 17:47:32 -07:00
Thomas E. Enebo
96aebb4265 [ruby/yarp] Address PR comments
- odd whitespace
- a couple of name changes
- properly read uint32_t when not properly aligned

https://github.com/ruby/yarp/commit/3208ee3983
2023-08-16 17:47:32 -07:00
Kevin Newton
d6f9f3e498 [ruby/yarp] Rename RescueNode#exception to RescueNode#reference
https://github.com/ruby/yarp/commit/ad0eb4b2c3
2023-08-16 17:47:32 -07:00
Kevin Newton
a793260c15 [ruby/yarp] Also rework regexp lexer to check terminators properly
https://github.com/ruby/yarp/commit/4b157a8352
2023-08-16 17:47:32 -07:00
Kevin Newton
2ef54d3855 [ruby/yarp] Rework the list lexer to check terminators properly
https://github.com/ruby/yarp/commit/60315d0f13
2023-08-16 17:47:32 -07:00
Kevin Newton
5e9397279b [ruby/yarp] Handle escaping in regexp slow path
https://github.com/ruby/yarp/commit/8dd0a1b281
2023-08-16 17:47:32 -07:00
Thomas E. Enebo
7257145320 [ruby/yarp] Clang beats gcc in pedantry
Accidentally declared int32_t and not uint32_t and it was caught
on macos.

https://github.com/ruby/yarp/commit/6581520793
2023-08-16 17:47:32 -07:00
Thomas E. Enebo
1e0749e032 [ruby/yarp] Addressed review comments.
Missing any tests and in fact this is untested so still a WIP.

https://github.com/ruby/yarp/commit/5411abd651
2023-08-16 17:47:32 -07:00
Kevin Newton
0b6a26abff [ruby/yarp] Provide slow path for finding ) in regexp when encoding changes
https://github.com/ruby/yarp/commit/c1064a65e3
2023-08-16 17:47:32 -07:00