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

80266 Коммитов

Автор SHA1 Сообщение Дата
Adam Hess 6e88b72d7b
[PRISM] prevent underflow on popped splatarray (#8657)
prevent underflow on popped splatarray

This only emits the splat array node when not popped
2023-10-16 05:22:07 -07:00
Nobuyoshi Nakada 06a4011964 [ruby/irb] Suppress "Switch to inspect mode" messages
This message is displayed if STDIN is not a tty.  The parallel test is
the case.

https://github.com/ruby/irb/commit/e26e90e3fb
2023-10-16 12:09:05 +00:00
git 598af0e73a Update default gems list at d1f781b0d4 [ci skip] 2023-10-16 11:56:30 +00:00
Hiroshi SHIBATA d1f781b0d4 [ruby/psych] Bump up v5.1.1.1
https://github.com/ruby/psych/commit/51cc86ff3f
2023-10-16 11:55:01 +00:00
Nobuyoshi Nakada ab5c1230db
Wait on ubuntu [ci skip]
macos-arm-oss is unavailable for forked reopsitories other than
ruby/ruby.
2023-10-16 20:53:04 +09:00
Nobuyoshi Nakada f6e2f32a96 Build `rb_dynamic_description` at runtime
To avoid creating literals for all combinations.
2023-10-16 19:57:34 +09:00
Mau Magnaguagno 55a0d2c63b [ruby/prism] Avoid unnecessary delete_prefix in LibRubyParser.resolve_type
Only remove const prefix from non-pointer types.

https://github.com/ruby/prism/commit/97c9ffeb42
2023-10-16 10:39:44 +00:00
Kazuhiro NISHIYAMA fe08839d8a
Fix typos [ci skip] 2023-10-16 18:29:59 +09:00
Nobuyoshi Nakada d4ac62f3e9
Give needed tools via the environment variable [ci skip] 2023-10-16 14:27:52 +09:00
Nobuyoshi Nakada cc5a916fa3
Check if any tools needed [ci skip]
Because of a trap of cmd.exe that `echo something > output` prints not
only "something" also the space before `>`, remove unexpected spaces.
2023-10-16 14:27:51 +09:00
David Rodríguez 77ffa1a7c3 [rubygems/rubygems] Raise an error when top level dependency does not resolve under all locked platforms
https://github.com/rubygems/rubygems/commit/25304f3e8d
2023-10-16 13:52:57 +09:00
David Rodríguez 73ba4b76c2 [rubygems/rubygems] Automatically remove invalid platforms before re-resolving
https://github.com/rubygems/rubygems/commit/40989271dd
2023-10-16 13:52:56 +09:00
David Rodríguez b7ad9eda3c [rubygems/rubygems] Tweak platform mismatch resolution errors
https://github.com/rubygems/rubygems/commit/20460bc1ee
2023-10-16 13:52:56 +09:00
David Rodríguez a1c73f1c88 [rubygems/rubygems] Consistent usage of `local_platform` in Definition
https://github.com/rubygems/rubygems/commit/5f28a68d79
2023-10-16 13:52:55 +09:00
David Rodríguez a05904c8ce [rubygems/rubygems] The `lock` command should not be affected by frozen setting
The `lock` command is specifically designed to manage the lockfile, so
running it should take precedence over any "frozen" setting.

Besides that, "frozen" is not specifically designed as "lockfile cannot
be updated" but as "installation of gems should be prevented if gemfile
is not in sync with the lockfile".

The lock command does not install any gems and preserves the property of
the lockfile being in sycn with its gemfile, so I think frozen should
not influence it.

The current behavior is quite confusing when frozen is set. On an app
where rubocop can get lockfile updates

```
$ bundle lock --update rubocop
Writing lockfile to /path/to/Gemfile.lock
```

Completely silent, it makes you think that it has written the lockfile,
but still no updates.

In verbose mode, it gives a bit more information, but still confusing
and unexpected, and does not change the lockfile:

```
$ bundle lock --update rubocop --verbose
Running `bundle lock --update "rubocop" --verbose` with bundler 2.4.20
Frozen, using resolution from the lockfile
Writing lockfile to /path/to/Gemfile.lock
```

With this commit, it updates the lockfile as expected.

https://github.com/rubygems/rubygems/commit/1d501ae8ea
2023-10-16 13:52:12 +09:00
David Rodríguez 4dbee36f84 [rubygems/rubygems] Use instantiated definition directly
https://github.com/rubygems/rubygems/commit/bc233af4d2
2023-10-16 13:52:11 +09:00
Ellen Marie Dash f37e9f42b9 [rubygems/rubygems] [PathSupport] Simplify logic: If `Gem.default_dir` is writable, use it.
I couldn't find a cross-platform way to check "can I create this directory?"

So I removed that, and went back to the original simpler logic of
"if the directory is writable, use it."

https://github.com/rubygems/rubygems/commit/3aa86a56db
2023-10-16 13:51:09 +09:00
Ellen Marie Dash 45a5ea5a0a [rubygems/rubygems] Remove kludge that should be unnecessary.
https://github.com/rubygems/rubygems/commit/f1d44ecb62
2023-10-16 13:51:08 +09:00
Ellen Marie Dash 724398cce6 [rubygems/rubygems] Remove outdated/incorrect comment.
The function is also significantly simpler than it used to be,
to the point I'm not sure it needs a comment.

https://github.com/rubygems/rubygems/commit/29a0551e37
2023-10-16 13:51:08 +09:00
Ellen Marie Dash 3f5da31760 [rubygems/rubygems] Rephrase "Defaulting to user installation" message.
https://github.com/rubygems/rubygems/commit/b7c531347e

Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
2023-10-16 13:51:07 +09:00
David Rodriguez cbf2e133c1
Re-resolve when lockfile is invalid
Move the check for unmet dependencies in lockfile just in time to be
able to re-resolve if unmet dependencies are found.
2023-10-16 13:49:49 +09:00
Nobuyoshi Nakada 7e51cadc2e Fix method coverage comparisons
Although Ruby's hashes preserve the insertion order, the ordering of
method coverage results is inherently nondeterministic, because they
are collected using `ObjectSpace`.
2023-10-16 09:48:05 +09:00
Yusuke Endoh 833c930bd6 Remove unneeded checks
Follow up of 591336a0f2
2023-10-16 03:58:30 +09:00
yui-knk 606452d1a9 Remove not used fields from STR 2023-10-15 16:16:06 +09:00
yui-knk 5342dbf00b Check node type before accessing nd_next
This is also a preparation for removing not_used members from
STR NODE. Current codes work without node type check because NODE_STR
has not_used2 member corresponding to nd_next of NODE_LIST and
NODE_DSTR. However it causes problme once not_used members are
removed from NODE_STR.
2023-10-15 16:16:06 +09:00
yui-knk e7e31d7784 Stop updating node type from NODE_STR to NODE_DSTR
This is a preparation for removing not_used members from STR NODE.
Once not_used members are removed from STR NODE, STR NODE is smaller than
DSTR NODE. Therefore allocate NODE_DSTR instead of reusing NODE_STR.
2023-10-15 16:16:06 +09:00
yui-knk a4e3d595cd Remove not used fields from XSTR 2023-10-15 16:16:06 +09:00
yui-knk cab67d227a Remove not used fields from LIT 2023-10-15 16:16:06 +09:00
yui-knk dc8742f5cc Remove not used fields from MATCH 2023-10-15 16:16:06 +09:00
Yusuke Endoh 591336a0f2 Avoid the pointer hack in RCLASS_EXT
... because GCC 13 warns it.

```
In file included from class.c:24:
In function ‘RCLASS_SET_ALLOCATOR’,
    inlined from ‘class_alloc’ at class.c:251:5,
    inlined from ‘rb_module_s_alloc’ at class.c:1045:17:
internal/class.h:159:43: warning: array subscript 0 is outside array bounds of ‘rb_classext_t[0]’ {aka ‘struct rb_classext_struct[]’} [-Warray-bounds=]
  159 |     RCLASS_EXT(klass)->as.class.allocator = allocator;
      |                                           ^
```
https://rubyci.s3.amazonaws.com/arch/ruby-master/log/20231015T030003Z.log.html.gz
2023-10-15 15:35:45 +09:00
Takashi Kokubun 985b0244da Revert an unneeded if on check_misc
nobu says he wants to run this on [DOC] commits as well.
2023-10-14 23:27:05 -07:00
Jun Aruga 13dafb210e [DOC] testing_ruby.md: Add spec/ for the explanation of the `make check`. 2023-10-14 22:43:41 -07:00
Jun Aruga df1887414a [DOC] testing_ruby.md: Remove the command prompt '$ ` aligning with other parts.
Remove the command prompt '$ ` aligning with other parts in the document.
2023-10-14 22:43:41 -07:00
Takashi Kokubun ddd5be9efa Use the same if: guard for all jobs 2023-10-14 22:33:40 -07:00
Takashi Kokubun 341d2ad95c Use unique names for result jobs
If these jobs have the same name, GitHub allows merging a pull request
as soon as one of these jobs finishes.

We want to wait for all these jobs, so we have to use different names.
Since we don't skip this result job on [DOC], it's okay to use a
templated variable for this name.
2023-10-14 22:24:24 -07:00
Takashi Kokubun 222c4b8568 Add result job for required status checks
We've been using matrix jobs as required status checks. However, when
[DOC] pull requests are created, the matrix content and templated
variables are not executed, which results in changing the name of the
matrix jobs. Then required status checks are considered missing because
of the different names. So we can't merge [DOC] PRs right now.

This `result` is a known technique to check the composite status of
matrix jobs. https://github.com/orgs/community/discussions/26822
The `result` job is not only a non-matrix job, which doesn't have the
above problem, but also an independent job that is not skipped by [DOC].
`needs` works even if all dependent jobs are skipped, so this trick
works well.

This is also useful when we want to change the content of matrix. When
we change one, we usually have to update branches of old pull requests
so that they get newly required jobs. However, with this method, only
`result` jobs are required, so you don't need to update old pull
requests.

I still don't like the fact that now you cannot visualize which matrix
jobs are "Required", but this seems like the best compromise.
2023-10-14 22:24:24 -07:00
Takashi Kokubun 28bd3a96b9 The needs != '' check is broken 2023-10-14 22:06:42 -07:00
Nobuyoshi Nakada 259747e1e6
Fix typo in steps references [ci skip] 2023-10-15 13:53:20 +09:00
Kouhei Yanagita 5cb76754ab [DOC] Fix the argument name in the Numeric#step doc 2023-10-15 13:47:58 +09:00
Samuel Giddins 83f929316e [rubygems/rubygems] Fix force_ruby_platform: when the lockfile only locks the ruby platform
https://github.com/rubygems/rubygems/commit/7c50064c3c
2023-10-15 04:46:32 +00:00
Takashi Kokubun 48c6cea330
YJIT: Count cold_iseq_entry by default (#8654) 2023-10-14 21:00:50 -07:00
Koichi Sasada 55c5ebe0a0 disable MN threads on s390s-linux
I check the s390s-linux/Ubuntu system and I found that MN threads
doesn't work with:

* function inlining (-O0 doesn't repro)
* Thread local specifier (`_Thread_local`.
  With `pthread_get_specific works)
  (it is not an issue of `__tls_get_addr()` written in thread.c)
* swap context with ucontext (coroutine/ucontext)

I couldn't find out what is the root cause of this issue but
disable MN threads to make CI healthy.
2023-10-15 04:35:17 +09:00
Alexandre ZANNI 7865cebfb7 [ruby/cgi] doc: fix method name
there was probably a copy paste mistake in the example of unescapeURIComponent (copied from unescape)

https://github.com/ruby/cgi/commit/f8fb627e90
2023-10-14 16:46:14 +00:00
tomoya ishida 75fb3cf458 [ruby/irb] Restore encoding in InputCompletor test
(https://github.com/ruby/irb/pull/732)

https://github.com/ruby/irb/commit/ef77c232cf
2023-10-14 15:02:38 +00:00
git eb3be1dfef Update default gems list at 177d8ee056 [ci skip] 2023-10-14 14:43:44 +00:00
tomoya ishida 177d8ee056 [ruby/irb] Bump version to 1.8.3
(https://github.com/ruby/irb/pull/731)

https://github.com/ruby/irb/commit/de79375ac1
2023-10-14 14:42:37 +00:00
Kevin Newton 8e477af1d4 [ruby/prism] Put names on back reference read nodes
https://github.com/ruby/prism/commit/10a6403293
2023-10-14 14:15:54 +00:00
tomoya ishida 4e5c505bad [ruby/irb] Restore IRB::InputCompletor for compatibility
(https://github.com/ruby/irb/pull/730)

https://github.com/ruby/irb/commit/77265efc5f
2023-10-14 14:12:43 +00:00
Nobuyoshi Nakada 96cd73d78f
Ignore symbols even in empty shared library
On some platforms, such as FreeBSD and Oracle Linux, symbols defined
in the crt0 setup routine are exported from shared libraries.  So
ignore the symbols that would be exported even in an empty shared
library.
2023-10-14 18:38:24 +09:00
Koichi Sasada eb79b0319b release sched_lock before VM lock
to avoid deadlock

```ruby
r = Ractor.new do
  obj = Thread.new{}
  Ractor.yield obj
rescue => e
  e.message
end
p r.take
```

```
(lldb) bt
* thread #1, name = 'miniruby', stop reason = signal SIGSTOP
  * frame #0: 0x0000ffff44881410 libpthread.so.0`__lll_lock_wait + 88
    frame #1: 0x0000ffff4487a078 libpthread.so.0`__pthread_mutex_lock + 232
    frame #2: 0x0000aaab617c0980 miniruby`rb_native_mutex_lock(lock=<unavailable>) at thread_pthread.c:109:14
    frame #3: 0x0000aaab617c1d58 miniruby`ubf_event_waiting [inlined] thread_sched_lock_(th=0x0000aaab9df82980, file=<unavailable>, line=46, sched=0x0000aaab9dec79b8) at thread_pthread.c:351:5
    frame #4: 0x0000aaab617c1d50 miniruby`ubf_event_waiting(ptr=0x0000aaab9df82980) at thread_pthread_mn.c:46:5
    frame #5: 0x0000aaab617c6020 miniruby`rb_threadptr_interrupt [inlined] rb_threadptr_interrupt_common(trap=0, th=0x0000aaab9df82980) at thread.c:352:25
    frame #6: 0x0000aaab617c5fec miniruby`rb_threadptr_interrupt(th=0x0000aaab9df82980) at thread.c:365:5
    frame #7: 0x0000aaab617379b0 miniruby`rb_ractor_terminate_all at ractor.c:2364:13
    frame #8: 0x0000aaab6173797c miniruby`rb_ractor_terminate_all at ractor.c:2383:17
    frame #9: 0x0000aaab61737958 miniruby`rb_ractor_terminate_all [inlined] ractor_terminal_interrupt_all(vm=0x0000aaab9dea3320) at ractor.c:2375:1
    frame #10: 0x0000aaab61737950 miniruby`rb_ractor_terminate_all at ractor.c:2424:13
    frame #11: 0x0000aaab6164f108 miniruby`rb_ec_cleanup(ec=0x0000aaab9dea5900, ex=RUBY_TAG_NONE) at eval.c:239:9
    frame #12: 0x0000aaab6164fa3c miniruby`ruby_run_node(n=0x0000ffff417ed178) at eval.c:328:12
    frame #13: 0x0000aaab615a5ab0 miniruby`main at main.c:39:12
    frame #14: 0x0000aaab615a5a98 miniruby`main(argc=<unavailable>, argv=<unavailable>) at main.c:58:12
    frame #15: 0x0000ffff44714b2c libc.so.6`__libc_start_main + 228
    frame #16: 0x0000aaab615a5b0c miniruby`_start + 52
(lldb) thread select 3
* thread #3, name = 'bootstraptest.*', stop reason = signal SIGSTOP
    frame #0: 0x0000ffff448813ec libpthread.so.0`__lll_lock_wait + 52
libpthread.so.0`__lll_lock_wait:
->  0xffff448813ec <+52>: svc    #0
    0xffff448813f0 <+56>: eor    w20, w20, #0x80
    0xffff448813f4 <+60>: sxtw   x20, w20
    0xffff448813f8 <+64>: b      0xffff44881414            ; <+92>
(lldb) bt
* thread #3, name = 'bootstraptest.*', stop reason = signal SIGSTOP
  * frame #0: 0x0000ffff448813ec libpthread.so.0`__lll_lock_wait + 52
    frame #1: 0x0000ffff4487a078 libpthread.so.0`__pthread_mutex_lock + 232
    frame #2: 0x0000aaab617c0980 miniruby`rb_native_mutex_lock(lock=<unavailable>) at thread_pthread.c:109:14
    frame #3: 0x0000aaab61823d68 miniruby`rb_vm_lock_enter_body [inlined] vm_lock_enter(no_barrier=false, lev=0x0000ffff215bfbe4, locked=false, vm=0x0000aaab9dea3320, cr=0x0000aaab9dec7890) at vm_sync.c:57:9
    frame #4: 0x0000aaab61823d60 miniruby`rb_vm_lock_enter_body(lev=0x0000ffff215bfbe4) at vm_sync.c:119:9
    frame #5: 0x0000aaab617c1b30 miniruby`thread_sched_setup_running_threads [inlined] rb_vm_lock_enter(file=<unavailable>, line=597, lev=0x0000ffff215bfbe4) at vm_sync.h:75:9
    frame #6: 0x0000aaab617c1b14 miniruby`thread_sched_setup_running_threads(vm=0x0000aaab9dea3320, add_th=0x0000aaab9df82980, del_th=<unavailable>, add_timeslice_th=0x0000000000000000, cr=<unavailable>, sched=<unavailable>, sched=<unavailable>) at thread_pthread.c:597:9
    frame #7: 0x0000aaab617c29b4 miniruby`thread_sched_wait_running_turn at thread_pthread.c:614:5
    frame #8: 0x0000aaab617c298c miniruby`thread_sched_wait_running_turn(sched=0x0000aaab9dec79b8, th=0x0000aaab9df82980, can_direct_transfer=true) at thread_pthread.c:868:9
    frame #9: 0x0000aaab617c6f0c miniruby`thread_sched_wait_events(sched=0x0000aaab9dec79b8, th=0x0000aaab9df82980, fd=<unavailable>, events=<unavailable>, rel=<unavailable>) at thread_pthread_mn.c:90:17
    frame #10: 0x0000aaab617c7354 miniruby`rb_thread_terminate_all at thread_pthread.c:3248:13
    frame #11: 0x0000aaab617c733c miniruby`rb_thread_terminate_all(th=0x0000aaab9df82980) at thread.c:466:13
    frame #12: 0x0000aaab617c7a64 miniruby`thread_start_func_2(th=0x0000aaab9df82980, stack_start=<unavailable>) at thread.c:713:9
    frame #13: 0x0000aaab617c7d1c miniruby`co_start [inlined] call_thread_start_func_2(th=0x0000aaab9df82980) at thread_pthread.c:2165:5
    frame #14: 0x0000aaab617c7cd0 miniruby`co_start(from=<unavailable>, self=0x0000aaab9df0f760) at thread_pthread_mn.c:421:9
```
2023-10-14 13:26:02 +09:00