Граф коммитов

77321 Коммитов

Автор SHA1 Сообщение Дата
Takashi Kokubun 19506650ef RJIT: Add --rjit-verify-ctx option 2023-04-04 00:35:29 -07:00
Takashi Kokubun 2c560b976e RJIT: Fix arguments to SPECIAL_CONST_P 2023-04-04 00:30:57 -07:00
Koichi Sasada f3acaf312c `rb_th_serial(th)` allows `th == NULL` 2023-04-04 15:42:37 +09:00
Hiroshi SHIBATA 822f01b36c [rubygems/rubygems] Disabled to test rustc with msys2 platform.
https://github.com/rubygems/rubygems/actions/runs/4598776839/jobs/8123290246

https://github.com/rubygems/rubygems/commit/5c3b0a112e
2023-04-04 06:08:04 +00:00
Takashi Kokubun 6a4087702b RJIT: Update type information on setlocal 2023-04-03 22:42:21 -07:00
Takashi Kokubun 6ab86e4626 RJIT: Fix arguments for shift_stack 2023-04-03 21:26:40 -07:00
Nobuyoshi Nakada 1d529f382c
PID cache is never cleared where `fork` is not used 2023-04-04 11:29:57 +09:00
Nobuyoshi Nakada 05b7bbecc6
Suppress `-Wdiscarded-qualifiers` warning where `fchdir` is unusable 2023-04-04 11:27:43 +09:00
Koichi Sasada b2e848193a fix deadlock on `Thread#join`
because of 9720f5ac89

http://rubyci.s3.amazonaws.com/solaris11-sunc/ruby-master/log/20230403T130011Z.fail.html.gz

```
  1) Failure:
TestThread#test_signal_at_join [/export/home/chkbuild/chkbuild-sunc/tmp/build/20230403T130011Z/ruby/test/ruby/test_thread.rb:1488]:
Exception raised:
<#<fatal:"No live threads left. Deadlock?\n1 threads, 1 sleeps current:0x00891288 main thread:0x00891288\n* #<Thread:0xfef89a18 sleep_forever>\n   rb_thread_t:0x00891288 native:0x00000001 int:0\n   \n">>
Backtrace:
  -:30:in `join'
  -:30:in `block (3 levels) in <main>'
  -:21:in `times'
  -:21:in `block (2 levels) in <main>'.
```

The mechanism:

* Main thread (M) calls `Thread#join`
* M: calls `sleep_forever()`
* M: set `th->status = THREAD_STOPPED_FOREVER`
* M: do `checkints`
* M: handle a trap handler with `th->status = THREAD_RUNNABLE`
* M: thread switch at the end of the trap handler
* Another thread (T) will process `Thread#kill` by M.
* T: `rb_threadptr_join_list_wakeup()` at the end of T tris to wakeup M,
     but M's state is runnable because M is handling trap handler and
     just ignore the waking up and terminate T$a
* T: switch to M.
* M: after the trap handler, reset `th->status = THREAD_STOPPED_FOREVER`
     and check deadlock -> Deadlock because only M is living.

To avoid such situation, add new sleep flags `SLEEP_ALLOW_SPURIOUS`
and `SLEEP_NO_CHECKINTS` to skip any check ints.

BTW this is instentional to leave second `vm_check_ints_blocking()`
without checking `SLEEP_NO_CHECKINTS` because `SLEEP_ALLOW_SPURIOUS`
should be specified with `SLEEP_NO_CHECKINTS` and skipping this
checkints can skip any interrupts.
2023-04-04 07:57:51 +09:00
Takashi Kokubun 38209ffdca
YJIT: Add codegen for Array#<< (#7645) 2023-04-03 14:10:35 -07:00
Takashi Kokubun ba4ff2552e Avoid failing test_enable on warnings
This fails on RubyCI due to RJIT warnings too often. It should be enough
to test RJIT feature in test_rjit_version. We only want warnings instead
of test failures when there are warnings, at least for this case.
2023-04-03 08:59:05 -07:00
Takashi Kokubun 3cb5e7558d Fix a test_rubyoptions failure 2023-04-03 08:44:16 -07:00
Takashi Kokubun 46e93ef53d RJIT: Propagate self's type information 2023-04-03 00:49:10 -07:00
Takashi Kokubun ca8102355a RJIT: Upgrade type on jit_guard_known_class 2023-04-03 00:39:29 -07:00
Takashi Kokubun 1d452c2cf8 RJIT: Upgrade type to Fixnum after guard 2023-04-03 00:02:45 -07:00
Takashi Kokubun 0abe9d8b32 RJIT: Upgrade type to String after guard 2023-04-02 23:54:08 -07:00
Takashi Kokubun f0b69eb14f RJIT: Upgrade type to Array after guard 2023-04-02 23:49:55 -07:00
Takashi Kokubun d876c008ec RJIT: Limit the number of versions per block 2023-04-02 23:37:15 -07:00
Takashi Kokubun 3bacc3877a RJIT: Find a best matching block version 2023-04-02 23:24:14 -07:00
Takashi Kokubun eb51248c4c RJIT: Upgrade type to UnknownHeap after guard 2023-04-02 23:11:18 -07:00
Takashi Kokubun be4e16bc1a RJIT: Update type information on setn insn 2023-04-02 23:07:58 -07:00
Takashi Kokubun 50285d2864 RJIT: Swap type information on swap insn 2023-04-02 23:06:30 -07:00
git 0276c1d935 * remove trailing spaces. [ci skip] 2023-04-03 05:32:32 +00:00
Takashi Kokubun d546f8c518 RJIT: Store type information in Context 2023-04-02 22:32:16 -07:00
git 09ad7e20d3 Update default gems list at 6fb6d85aee [ci skip] 2023-04-03 05:20:16 +00:00
Hiroshi SHIBATA 6fb6d85aee [ruby/fileutils] Bump up v1.7.1
https://github.com/ruby/fileutils/commit/7138d85156
2023-04-03 05:19:00 +00:00
Hiroshi SHIBATA 27f709aa3c
Rename YAML::VERSION. It's conflict with Psych::VERSION 2023-04-03 12:43:11 +09:00
Hiroshi SHIBATA b5c8c73f66
Fixed version detection paths in ruby repository 2023-04-03 12:00:59 +09:00
Hiroshi SHIBATA 14f442a958 [ruby/base64] Expose Base64::VERSION
https://github.com/ruby/base64/commit/dda85a0839
2023-04-03 02:45:42 +00:00
Hiroshi SHIBATA ba4f01f0a0 [ruby/yaml] Expose YAML::VERSION
https://github.com/ruby/yaml/commit/8776bc2634
2023-04-03 02:45:18 +00:00
Hiroshi SHIBATA 6dcd399976 [ruby/tsort] Expose TSort::VERSION
https://github.com/ruby/tsort/commit/09f2275958
2023-04-03 02:41:44 +00:00
Hiroshi SHIBATA a70653ca7f [ruby/find] Expose Find::VERSION
https://github.com/ruby/find/commit/a24124a08a
2023-04-03 02:40:37 +00:00
Nobuyoshi Nakada 2f1586f6f2 Check leaked global symbols by default 2023-04-03 10:07:22 +09:00
Takashi Kokubun 8968b47ba8 RJIT: Refactor getlocal and setlocal 2023-04-02 16:50:54 -07:00
Takashi Kokubun 6002b12611 RJIT: Support entry with different PCs 2023-04-02 15:27:40 -07:00
Takashi Kokubun 4fc336127e RJIT: Support has_opt ISEQs 2023-04-02 14:47:23 -07:00
Takashi Kokubun ad2b719fc2 RJIT: C::FL_TEST_RAW returns RBOOL 2023-04-02 14:32:51 -07:00
Takashi Kokubun 57ee627929 RJIT: Lazily guard block arg
to simplify the implementation
2023-04-02 14:22:42 -07:00
Takashi Kokubun 66f8efc342 RJIT: Simplify cfunc implementation 2023-04-02 13:58:39 -07:00
Takashi Kokubun 284a0ff96c RJIT: Remove an unneeded branch 2023-04-02 12:28:49 -07:00
Takashi Kokubun 3fe134759c Skip assert_linear_performance for RJIT 2023-04-02 12:23:23 -07:00
Takashi Kokubun bf7587748d RJIT: Simplify invokesuper implementation 2023-04-02 11:42:16 -07:00
Takashi Kokubun 5cc644b147 RJIT: Group blockarg exit reasons 2023-04-02 11:01:23 -07:00
Takashi Kokubun cd1cd8030c RJIT: Support splat args 2023-04-02 10:55:03 -07:00
Takashi Kokubun 6f2535deda RJIT: Prefix a constant with C namespace 2023-04-02 10:40:37 -07:00
Takashi Kokubun 62188c8584 RJIT: Update exit reasons 2023-04-02 10:27:17 -07:00
Takashi Kokubun 7778c292c4 RJIT: Support keyword arguments 2023-04-02 10:26:22 -07:00
Stan Lo cd94bcdc46 [ruby/irb] Don't check RUBY_ENGINE when deciding whether to accept kargs
Ruby implementations like JRuby and TruffleRuby already indicate their
compatibility target with RUBY_VERSION. We don't need to exclude
them from accepting keyword arguments as long as they target 2.7+.

https://github.com/ruby/irb/commit/bf20faa4e6

Co-authored-by: Kevin Menard <kevin@nirvdrum.com>
2023-04-02 15:34:28 +00:00
Stan Lo f25791884c [ruby/irb] Remove dead code (https://github.com/ruby/irb/pull/554)
* Remove unused ATTR_TTY and ATTR_PLAIN constants

They were added in d7d26b51bf

But the references were removed in 1c76845cca

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>

* Remove unused MethodExtender module

It was added in 6cc5d718d7
but it's not used anywhere.

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>

* Remove unused IRB.irb_at_exit

It's not used after aaf4eb4e98

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>

* Remove unused InputCompletor.ignored_modules

It was added in 88311ce3c8
but the reference was removed in 78c74d2425

* Remove unused TracerLoadError constant

This constant was added in cb50fa3738
but never referenced.

---------

https://github.com/ruby/irb/commit/7de0234325

Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>
2023-04-02 14:11:12 +00:00
Nobuyoshi Nakada 9e1ff2462b
leaked-globals: check for nm before files under missing [ci skip]
Abort if `nm` is not available, since it is needed by configure.ac to
check for prefix of external symbols.
2023-04-02 18:11:59 +09:00