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

80256 Коммитов

Автор SHA1 Сообщение Дата
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
Takashi Kokubun 16d14f425f Avoid using MATZBOT_GITHUB_TOKEN for pull requests 2023-10-13 20:53:23 -07:00
Kouhei Yanagita b28c1d2c56 [Bug #19926] Fix Range#size for ranges with a Rational endpoint 2023-10-14 11:22:42 +09:00
yui-knk 25072d2e87 Fix node type casts
Use new node type set by nd_set_type.
2023-10-14 11:12:20 +09:00
Nobuyoshi Nakada a405b28e85 Delete heredoc line mark references 2023-10-14 11:08:43 +09:00
Nobuyoshi Nakada 5fc9810bf3 Shorten `rb_strterm_literal_t` members 2023-10-14 11:08:43 +09:00
Nobuyoshi Nakada a075c55d0c Manage `rb_strterm_t` without imemo 2023-10-14 11:08:43 +09:00
Nobuyoshi Nakada cb06b6632a Remove unions in `rb_strterm` structs for alignment 2023-10-14 11:08:43 +09:00
Takashi Kokubun 82c8f22a36 Use the variable to skip the checkout 2023-10-13 16:33:07 -07:00
Takashi Kokubun 9d6ff9c175 Skip a duplicated checkout 2023-10-13 16:31:07 -07:00
git d67880abeb Update default gems list at 0950f22cc0 [ci skip] 2023-10-13 23:19:52 +00:00