Commit graph

77079 commits

Author SHA1 Message Date
Takashi Kokubun
70ba310212
YJIT: Introduce no_gc attribute (#7511) 2023-03-14 15:38:58 -07:00
Takashi Kokubun
868f03cce1 Remove unused jit_enable_p flag
This was used only by MJIT.
2023-03-14 14:01:53 -07:00
Takashi Kokubun
9a43c63d43
YJIT: Implement throw instruction (#7491)
* Break up jit_exec from vm_sendish

* YJIT: Implement throw instruction

* YJIT: Explain what rb_vm_throw does [ci skip]
2023-03-14 13:39:06 -07:00
Takashi Kokubun
76f2031884
YJIT: Allow testing assembler with disasm (#7470)
* YJIT: Allow testing assembler with disasm

* YJIT: Drop new dependencies

* YJIT: Avoid address manipulation

* YJIT: Introduce assert_disasm! macro

* YJIT: Update the comment about assert_disasm
2023-03-14 13:26:05 -04:00
Jean Boussier
548086b34e ObjectSpace::WeakMap: fix compaction support
[Bug #19529]

`rb_gc_update_tbl_refs` can't be used on `w->obj2wmap` because it's
not a `VALUE -> VALUE` table, but a `VALUE -> VALUE *` table, so
we need some dedicated iterator.
2023-03-14 16:49:23 +01:00
Samuel Williams
ac65ce16e9
Revert SIGCHLD changes to diagnose CI failures. (#7517)
* Revert "Remove special handling of `SIGCHLD`. (#7482)"

This reverts commit 44a0711eab.

* Revert "Remove prototypes for functions that are no longer used. (#7497)"

This reverts commit 4dce12bead.

* Revert "Remove SIGCHLD `waidpid`. (#7476)"

This reverts commit 1658e7d966.

* Fix change to rjit variable name.
2023-03-14 20:07:59 +13:00
Hiroshi SHIBATA
b27793835b Try to use https://github.com/ruby/rbs/pull/1273 2023-03-14 13:58:50 +09:00
Takashi Kokubun
278b639b77 Disable RJIT_FORCE_ENABLE CI for now
Somehow btest-ruby is running miniruby. Not sure why.
7731124729 (step):16:402

For RJIT's experimental purposes, having just one CI is enough. I'd like
to focus on keeping .github/workflows/rjit.yml green.
2023-03-13 21:49:38 -07:00
dependabot[bot]
5868a7843a [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.65 to 0.9.67.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.65...v0.9.67)

---
updated-dependencies:
- dependency-name: rb-sys
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 04:08:17 +00:00
Takashi Kokubun
4ad171bb25 Remove an unused VM option
This seems to be used nowhere today.
2023-03-13 20:54:00 -07:00
Hiroshi SHIBATA
c58759f494
Removed to load jit_support.rb
It's removed at 4445b9e2a2
2023-03-14 12:51:58 +09:00
Takashi Kokubun
d8344559b2 RJIT: Simplify how Capstone is used in tests 2023-03-13 20:42:19 -07:00
dependabot[bot]
1c8e69d602 Bump ruby/action-slack from 3.0.0 to 3.2.1
Bumps [ruby/action-slack](https://github.com/ruby/action-slack) from 3.0.0 to 3.2.1.
- [Release notes](https://github.com/ruby/action-slack/releases)
- [Commits](b6882ea6ef...0bd85c7223)

---
updated-dependencies:
- dependency-name: ruby/action-slack
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 12:39:51 +09:00
pkubaj
4e6c956741 Use __builtin_ppc_get_timebase on POWER with clang 2023-03-14 10:42:42 +09:00
Yusuke Endoh
56dbf83a85 Prevent a warning: assigned but unused variable
... which made a test fail

20230313T213003Z.fail.html.gz

```
  1) Failure:
TestRubyOptions#test_enable [/home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/test/ruby/test_rubyoptions.rb:176]:
pid 1208 exit 0
| /home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1257: warning: assigned but unused variable - argc
| /home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1258: warning: assigned but unused variable - flags
.

1. [2/2] Assertion for "stderr"
   | <[]> expected but was
   | <["/home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1257: warning: assigned but unused variable - argc",
   |  "/home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1258: warning: assigned but unused variable - flags"]>.
```
2023-03-13 22:07:25 +09:00
Takashi Kokubun
4976b1a049 Fork rbs to fix test failures
https://github.com/ruby/rbs/pull/1274
2023-03-13 15:33:01 -07:00
Takashi Kokubun
c7822b8dbb
YJIT: Merge add/sub/and/or/xor and mov on x86_64 (#7492) 2023-03-13 16:32:45 -04:00
Stan Lo
309ff928f5 [ruby/irb] Replace METHOD_IS_A with ===
(https://github.com/ruby/irb/pull/542)

edd6c30e16
2023-03-13 18:11:58 +00:00
Burdette Lamar
1a8a24a633
[DOC] Enhanced RDoc for NilClass (#7500) 2023-03-13 12:55:59 -04:00
Jimmy Miller
45127c84d9
YJIT: Handle rest+splat where non-splat < required (#7499) 2023-03-13 11:12:23 -04:00
Stan Lo
1095baed34 [ruby/irb] Support inspecting BasicObject
(https://github.com/ruby/irb/pull/541)

1dc2a406a3
2023-03-13 14:31:37 +00:00
Hiroshi SHIBATA
8c6b349805 [rubygems/rubygems] Removed Gem.datadir.
https://github.com/rubygems/rubygems/pull/2216 is imcomplete to remove this method.

34ef915d12
2023-03-13 09:54:04 +00:00
TSUYUSATO Kitsune
dddc542e9b
[Bug #19476]: correct cache index computation for repetition (#7457) 2023-03-13 18:31:13 +09:00
git
1e73bdbfc4 Update bundled gems list at 2023-03-13 2023-03-13 07:02:11 +00:00
Takashi Kokubun
e10218862a Add btest-bruby target
btest can't be used for testing RJIT because RJIT doesn't work on
miniruby. However, btest-ruby is not necessarily useful for testing RJIT
because both the runner could crash as well as the target.

TBH I'm not sure why we want to use RUNRUBY instead of BOOTSTRAPRUBY on
btest-ruby. However, to achieve what I want to do while keeping the
current behavior, I'm just introducing a new target.
2023-03-12 23:56:21 -07:00
git
7686687a79 * remove trailing spaces. [ci skip] 2023-03-13 06:46:54 +00:00
TSUYUSATO Kitsune
e22c4e8877
[Bug #19467] correct cache points and counting failure on OP_ANYCHAR_STAR_PEEK_NEXT (#7454) 2023-03-13 15:46:41 +09:00
Takashi Kokubun
ed269c81aa RJIT: Count invokeblock exit types 2023-03-12 23:38:11 -07:00
Takashi Kokubun
da9c84f859 RJIT: Rename a side exit counter 2023-03-12 22:15:58 -07:00
Takashi Kokubun
d27b594841 RJIT: Fix a typo
and import a missing function
2023-03-12 22:09:05 -07:00
Takashi Kokubun
330086d3f6 RJIT: Implement definedivar 2023-03-12 22:07:02 -07:00
Takashi Kokubun
3938efa70f RJIT: Fix block param proxy on send
peek_at_stack was doubly accounting for C::VM_CALL_ARGS_BLOCKARG, which
made that case always side-exit and hide this bug.

When a block handler is block param proxy, you have to set LEP's specval
as next specval instead of block param proxy itself.
2023-03-12 22:01:38 -07:00
Takashi Kokubun
a23f64221e RJIT: Fix block finding logic
like YJIT does
2023-03-12 21:14:43 -07:00
Takashi Kokubun
e28f83703a RJIT: Update dependencies 2023-03-12 20:49:44 -07:00
Takashi Kokubun
07d3af22d0 RJIT: Fix -Wshorten-64-to-32 2023-03-12 20:41:07 -07:00
dependabot[bot]
45fdc18053 Bump github/codeql-action from 2.2.5 to 2.2.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.5 to 2.2.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](32dc499307...16964e90ba)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 12:34:43 +09:00
Takashi Kokubun
9cd5441d28 RJIT: Implement --rjit-trace-exits 2023-03-12 15:15:08 -07:00
Takashi Kokubun
bbd9221e46 RJIT: Give up freezing InsnCompiler
for memoization
2023-03-12 13:31:15 -07:00
Nobuyoshi Nakada
7ce4b716bd
Add test for linear performance 2023-03-12 18:50:39 +09:00
Nobuyoshi Nakada
781222a8bc
core_assertions.rb: Consider backward compatibilities
This file is copied to default gems, which might support older
versions.
2023-03-12 18:40:41 +09:00
Takashi Kokubun
c9db9c8abd Revert "Update ruby/action-slack v3.1.1 (#7505)"
This reverts commit 2570374bc8.

Revert "Bump ruby/action-slack from 3.0.0 to 3.1.0"

This reverts commit 39511b8b23.

Neither v3.1.0 nor v3.1.1 seems working correctly.
2023-03-11 23:52:49 -08:00
Takashi Kokubun
d50d136499 Investigate which test hangs on MinGW
7698424613
2023-03-11 23:51:16 -08:00
Takashi Kokubun
3efe4639ec RJIT: Handle Mod 10 for CMP r/m64, r64 2023-03-11 23:47:11 -08:00
Takashi Kokubun
9c220bf5e1 RJIT: Use lambda constants to match operands 2023-03-11 23:35:58 -08:00
Takashi Kokubun
8835f9d3bf RJIT: Define QwordPtr for in-clause readability 2023-03-11 22:30:54 -08:00
Takashi Kokubun
9501283dea RJIT: Leave it to NoMatchingPatternError
instead of manually implementing NotImplementedError
2023-03-11 22:25:00 -08:00
Takashi Kokubun
846fc356cb RJIT: Use case-in for exhaustive matches 2023-03-11 22:17:06 -08:00
Takashi Kokubun
fe34db5a1b RJIT: Migrate SIZET values to RJIT::C constants 2023-03-11 22:04:30 -08:00
Takashi Kokubun
50c5f94ed7 RJIT: Introduce constants under RubyVM::RJIT::C 2023-03-11 21:48:28 -08:00
Takashi Kokubun
58f7e8b7f8 RJIT: Automate function pointer imports 2023-03-11 21:26:40 -08:00