| Age | Commit message (Collapse) | Author |
|
If `long` and `int` are the same size, `unsigned int` max would exceed
`signed long` range. It is guaranteed by `RB_POSFIXABLE` that `v` can
be casted to `long` safely here.
Notes:
Merged: https://github.com/ruby/ruby/pull/12045
|
|
It is not expected that `target_os` will change going forward.
|
|
The "target" in `RbConfig::CONFIG` is being changed from config.sub to
align to the system `uname`. Use the value modified by config.sub, and
make the directory same as GNU utilities, such as binutils.
Notes:
Merged: https://github.com/ruby/ruby/pull/12043
|
|
From under "libexec", under `$(target)/bin` like as binutils.
Notes:
Merged: https://github.com/ruby/ruby/pull/12043
|
|
"libexec" means the directory for executable or binary files already.
Notes:
Merged: https://github.com/ruby/ruby/pull/12043
|
|
|
|
This test was relying on a sleep to synchronise the parent and child
processes. By having the child be the process that stops itself with
SIGSTOP, instead of the parent, we can actually properly wait for that
using waitpid2 and be notified of the stop.
This use of sleep to synchronise processes is potentially flaky and
caused failures under rr's `--chaos` mode.
Notes:
Merged: https://github.com/ruby/ruby/pull/12042
|
|
Previously we always reserved one more byte than necessary in the
sprintf output string.
Notes:
Merged: https://github.com/ruby/ruby/pull/12029
|
|
Although a binary (aka ASCII-8BIT) string will never have a broken
coderange, it still has to differentiate between "valid" and "7bit".
On Ruby 3.4/trunk this problem is masked because we now clear the
coderange more agressively in rb_str_resize, and we happened to always
be strinking this string, but we should not assume that.
On Ruby 3.3 this created strings where `ascii_only?` was true in cases
it shouldn't be as well as other problems.
Fixes [Bug #20883]
Co-authored-by: Daniel Colson <danieljamescolson@gmail.com>
Co-authored-by: Matthew Draper <matthew@trebex.net>
Notes:
Merged: https://github.com/ruby/ruby/pull/12029
|
|
If there's a syntax error during iseq compilation then prism would leak
memory because it would not free the pm_parse_result_t.
This commit changes pm_iseq_new_with_opt to have a rb_protect to catch
when an error is raised, and return NULL and set error_state to a value
that can be raised by calling rb_jump_tag after memory has been freed.
For example:
10.times do
10_000.times do
eval("/[/=~s")
rescue SyntaxError
end
puts `ps -o rss= -p #{$$}`
end
Before:
39280
68736
99232
128864
158896
188208
217344
246304
275376
304592
After:
12192
13200
14256
14848
16000
16000
16000
16064
17232
17952
Notes:
Merged: https://github.com/ruby/ruby/pull/12036
|
|
Notes:
Merged-By: peterzhu2118 <peter@peterzhu.ca>
|
|
In [1], we started checking for gen_branch failures, but I made two
crucial mistakes. One, defer_compilation() had the same issue as
gen_branch() but wasn't checked. Two, returning None from a codegen
function does not throw away the block. Checking how gen_single_block()
handles codegen functions, you can see that None terminates the block
with an exit, but does not overall return an Err. This handling is fine
for unimplemented instructions, for example, but incorrect in case
gen_branch() fails. The missing branch essentially corrupts the
block; adding more code after a missing branch doesn't correct the code.
Always abandon the block when defer_compilation() or gen_branch() fails.
[1]: cb661d7d82984cdb54485ea3f4af01ac21960882
Fixup: [1]
Notes:
Merged: https://github.com/ruby/ruby/pull/12035
Merged-By: XrXr
|
|
https://github.com/ruby/prism/commit/70c1cd480f
|
|
Because tests might not use the command-line --parser option, or be
aware that they should be, it's better to test with the default
parser set.
Notes:
Merged: https://github.com/ruby/ruby/pull/12025
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12034
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12034
|
|
So that the Rust panic message is forwarded to the RUBY_CRASH_REPORT
system, instead of only the static "YJIT panicked" message done so
previously. This helps with triaging crashes since it's easier than
trying to parse stderr output.
Sample:
<internal:yjit_hook>:2: [BUG] YJIT: panicked at src/codegen.rs:1197:5:
explicit panic
...
Notes:
Merged: https://github.com/ruby/ruby/pull/12027
|
|
https://github.com/rubygems/rubygems/commit/d070fa10c1
Co-authored-by: Artem Ignatyev <zazubrik@gmail.com>
|
|
https://github.com/rubygems/rubygems/commit/bc2537de71
|
|
https://github.com/rubygems/rubygems/commit/f68a2c30bb
|
|
platform
Using an old bundler version was necessary at the beginning because we
checked the version of Bundler being run in order to enable the new
behavior. But we removed that a long time ago and now we only look at
whether the lockfile only includes "ruby" as a platform or not.
https://github.com/rubygems/rubygems/commit/8fc3d38ff3
|
|
https://github.com/rubygems/rubygems/commit/98641d21a2
|
|
https://github.com/rubygems/rubygems/commit/43c0c41c6b
|
|
It's defined in the superclass already.
https://github.com/rubygems/rubygems/commit/e269f5477b
|
|
set source
https://github.com/rubygems/rubygems/commit/3749273ec6
|
|
https://github.com/rubygems/rubygems/commit/ffd2fbaf6c
|
|
https://github.com/rubygems/rubygems/commit/99b4ac4548
|
|
... for slow CI machines like macOS.
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/12033
|
|
... instead, just calculate the value unless it is too big.
Also, this change raises an ArgumentError if it is expected to exceed
16 GB in a 64-bit environment.
(It is possible to calculate it straightforward, but it would likely be
out-of-memory, so I didn't think it would make sense.)
[Feature #20811]
Notes:
Merged: https://github.com/ruby/ruby/pull/12033
|
|
existing lockfile
https://github.com/rubygems/rubygems/commit/0a9c1ce60d
|
|
We did this because RubyGems `require` would call `gem` on self, so
defining a `gem` method in the CLI would cause conflicts. However, this
is not the case since
https://github.com/rubygems/rubygems/commit/439c4464890958fec17b3aa65b9d3a4dbdd3bf90,
so this should no longer be necessary.
https://github.com/rubygems/rubygems/commit/3e5c861046
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
with -O0 build, prism parser consumes a lot of machine stack and
it doesn't work with minimum machine stack for threads, which
specified with `RUBY_THREAD_MACHINE_STACK_SIZE=1`.
So simply ignore `SystemStackError` for btest.
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
to avoid TLS issue with N:M threads.
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
`Ractor.receive` and `Ractor.yield` should stop when the
incoming/outgoing port is closed.
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
Many libraries should be loaded on the main ractor because of
setting constants with unshareable objects and so on.
This patch allows to call `requore` on non-main Ractors by
asking the main ractor to call `require` on it. The calling ractor
waits for the result of `require` from the main ractor.
If the `require` call failed with some reasons, an exception
objects will be deliverred from the main ractor to the calling ractor
if it is copy-able.
Same on `require_relative` and `require` by `autoload`.
Now `Ractor.new{pp obj}` works well (the first call of `pp` requires
`pp` library implicitly).
[Feature #20627]
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
`Ractor#[]/[]=` is only for accessors to the current ractor, so that
`Ractor.[]/[]=` is simpler.
[Feature #20715]
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
to return the current ractor is the main ractor.
(== `Ractor.current == Ractor.main`)
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
introduce
- rb_threadptr_interrupt_exec
- rb_ractor_interrupt_exec
to intercept the thread/ractor execution.
Notes:
Merged: https://github.com/ruby/ruby/pull/11142
|
|
|
|
https://github.com/ruby/uri/commit/3011eb6f6e
|
|
Fixed https://github.com/ruby/uri/issues/125
https://github.com/ruby/uri/commit/1f3d3df02a
|
|
|
|
https://github.com/ruby/win32-registry/commit/a87076ee42
|
|
|
|
https://github.com/ruby/time/commit/539b151049
|
|
|