Project

General

Profile

Activity

From 02/11/2024 to 02/17/2024

02/17/2024

10:22 PM Feature #16495: Inconsistent quotes in error messages
For reference, so far I had to make one fix:
- https://github.com/socketry/async/commit/a6a009192399d6411ae8e5b688dd539749d1090a
It was minor and compatibility with both styles is trivial.
ioquatix (Samuel Williams)
09:53 PM Revision 00bda2aa (git): [ruby/prism] Fix up GCC analyzer
https://github.com/ruby/prism/commit/2e8bc17528 kddnewton (Kevin Newton)
08:55 PM Feature #20276 (Feedback): Introduce Fiber interfaces for Blocking operations on Ractors
### Motivation
I am trying to build a web server with Ractors. The lifecycle for a request in the current implementation is
1. main ractor sends request to worker ractor
2. worker ractor handles response
3. worker ractor sends res...
forthoney (Seong-Heon Jung)
03:35 PM Revision 13d2a3a8 (git): [ruby/prism] Fix visitor in desugar test
* The #visit method is no longer called for every node since 2e6baa3.
* As a consequence EnsureEveryNodeOnceInAST was only visiting ProgramNode
for `visitor.visit(ast)` and no nodes at all for `ast.accept(visitor)`.
https://github.com...
Eregon (Benoit Daloze)
03:27 PM Misc #20238: Use prism for mk_builtin_loader.rb
Sorry the previous link was incorrect. The correct PR is here: https://github.com/ruby/ruby/pull/10005. The comments aren't in the C file, they're in the Ruby file. The C file is relatively minimal as it is — it parses the file and if it... kddnewton (Kevin Newton)
02:11 AM Misc #20238: Use prism for mk_builtin_loader.rb
I built the C program here: https://github.com/ruby/ruby/pull/9998. It keeps `mk_builtin_loader.rb` in place and uses a new `tool/dump_ast.c` to dump the AST to JSON. Then we parse the AST and walk it in `mk_builtin_loader.rb`.
I adde...
kddnewton (Kevin Newton)
03:18 PM Revision 104100f5 (git): Split path.rb from mkrunnable.rb
nobu (Nobuyoshi Nakada)
02:28 PM Revision 3dccb716 (git): Use `defined?(yield)` and `SIZED_ENUMERATOR`
Prefer built-in features over method calls that may be overridden. nobu (Nobuyoshi Nakada)
12:17 PM Feature #20274: Add RubyVM::ASAN.enabled?
You just need the API for the Ruby test suite, right? Then, it would be enough to implement it in ext/-test-/. Introducing a method under RubyVM means making it available to Ruby users. Is that necessary?
Note, I don't think that it i...
mame (Yusuke Endoh)
11:24 AM Feature #20274: Add RubyVM::ASAN.enabled?
GCC & clang set macros indicating that asan is enabled: https://github.com/ruby/ruby/blob/df63e5bef67ff74216834f61748aa6ea8b0de22e/internal/sanitizers.h#L18
So I was going to implement `RubyVM::ASAN.enabled?` by using conditional comp...
kjtsanaktsidis (KJ Tsanaktsidis)
10:10 AM Feature #20274: Add RubyVM::ASAN.enabled?
At first, ASAN is not related to Ruby VM, neither the constant nor method under `RubyVM` do not make sense.
How are you going to detect it?
Maybe from CFLAGS?
nobu (Nobuyoshi Nakada)
06:10 AM Feature #20274: Add RubyVM::ASAN.enabled?
The other option is to define `RubyVM.asan_enabled?` as a method, rather than defining `RubyVM::ASAN` as a module. kjtsanaktsidis (KJ Tsanaktsidis)
06:06 AM Feature #20274 (Closed): Add RubyVM::ASAN.enabled?
Some parts of the Ruby test suite won't work correctly under ASAN. In particular, `assert_no_memory_leak` will need different parameters for ASAN (or be skipped, in the same way as for MJIT/RJIT).
I propose that we add a module `RubyV...
kjtsanaktsidis (KJ Tsanaktsidis)
11:51 AM Feature #20273: Disable callcc when compiled with ASAN
I think it makes sense basically. I would like to see details in PR. Do you already have a patch? mame (Yusuke Endoh)
05:42 AM Feature #20273 (Closed): Disable callcc when compiled with ASAN
Currently, all of the callcc related tests in the Ruby test suite fail when Ruby is compiled with ASAN (CFLAGS="-fsanitize=address").
Unfortunately, I don't believe it's possible for calcc to be supported with ASAN at all. callcc is i...
kjtsanaktsidis (KJ Tsanaktsidis)
10:48 AM Feature #19117: Include the method owner in backtraces, not just the method name
> I think that we should discuss further improvements in a separate ticket.
OK: #20275
Eregon (Benoit Daloze)
10:33 AM Feature #19117: Include the method owner in backtraces, not just the method name
@Dan0042 I think `block in` should stay because those must be calls and have their own frame semantically.
The quotes are around the `block in` (on master), which makes sense because that's the name of the "thing being called".
I.e. ...
Eregon (Benoit Daloze)
03:50 AM Feature #19117: Include the method owner in backtraces, not just the method name
No one seems to want to treat `rescue in` and `ensure in` as a regression.
I think that we should discuss further improvements in a separate ticket.
mame (Yusuke Endoh)
10:45 AM Feature #20275: Avoid extra backtrace entries for rescue and ensure
Same thing for `ensure`:
```ruby
begin
raise
ensure
p caller(0)
end
```
On CRuby master:
```
["-:4:in '<main>'", "-:4:in '<main>'"]
```
On CRuby 3.2:
```
["-:4:in `ensure in <main>'", "-:4:in `<main>'"]
```
Prop...
Eregon (Benoit Daloze)
10:41 AM Feature #20275 (Closed): Avoid extra backtrace entries for rescue and ensure
From https://bugs.ruby-lang.org/issues/19117#note-48:
```ruby
def raise_nested_exceptions
raise "First error"
rescue
begin
raise "Second error"
rescue
raise "Third error"
end
end
raise_nested_exceptions
```
...
Eregon (Benoit Daloze)
08:27 AM Revision df63e5be (git): [DOC] Functions for `Time#initialize` implementation
nobu (Nobuyoshi Nakada)
08:21 AM Revision 6e4bfb35 (git): Fix an argument name
nobu (Nobuyoshi Nakada)
08:16 AM Revision 3b23b45d (git): Explicitly assert that redefined backquote method is called
It has been used in some tests indirectly, but there was no direct
test for redefinition in the toplevel.
nobu (Nobuyoshi Nakada)
04:01 AM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
I'm heavily affected by this bug. Setup is Docker Desktop on Mac using the `ruby:3.3` image.
I've submitted a pull request to the `ruby` image to apply the backport fix to 3.3.0 https://github.com/docker-library/ruby/pull/439 . Still,...
osyoyu (Daisuke Aritomo)
02:05 AM Revision b56b8ec7 (git): [ruby/prism] Provide the ability to dump AST to JSON from C
https://github.com/ruby/prism/commit/d3a149efc5 kddnewton (Kevin Newton)

02/16/2024

11:16 PM Revision 075b6ac8 (git): YJIT: Remove unused counters
alanwu (Alan Wu)
11:10 PM Feature #13557: there's no way to pass backtrace locations as a massaged backtrace
> I think both `Kernel#raise` and `Exception#set_backtrace` would need to accept array of `Thread::Backtrace::Location`.
That's an idea I fully support. Although when I need to modify an error's backtrace 95% of the time it's because ...
Dan0042 (Daniel DeLorme)
05:01 PM Feature #13557: there's no way to pass backtrace locations as a massaged backtrace
I'll try to find some time to implement this in the near future, because I just ran into this today, and resorted to the following hack:
```ruby
unless exception.backtrace
begin
raise exception
rescue exception.class => ra...
byroot (Jean Boussier)
09:45 PM Feature #19117: Include the method owner in backtraces, not just the method name
If "rescue in" is removed, then what happens to the similar "block in" ?
Also in terms of quotes, what are your thoughts on
`from ./test.rb:16:in 'block in Concrete#oops'`
vs
`from ./test.rb:16:in block in 'Concrete#oops'`
Dan0042 (Daniel DeLorme)
08:31 PM Feature #19117: Include the method owner in backtraces, not just the method name
I'm in favor to keep it removed, because these are implementation details.
Although ideally in backtraces I think it would be best to hide the entry corresponding to `rescue in`/`ensure in`, i.e., instead of:
```
/tmp/foo.rb:7:in `res...
Eregon (Benoit Daloze)
11:38 AM Feature #19117: Include the method owner in backtraces, not just the method name
> I can probably restore rescue in and ensure in with the above inconsistency. Do you like it?
I honestly don't mind either way, I noticed this while updating the Rails test suite, figured I'd report it in case it wasn't intentional.
...
byroot (Jean Boussier)
11:34 AM Feature #19117: Include the method owner in backtraces, not just the method name
You've been found out!
During this work, I noticed a problem with the inconsistency of `ensure in`.
```ruby
begin
ensure
p caller(0) #=> ["test.rb:3:in `<main>'"]
end
begin
raise
ensure
p caller(0) #=> ["test.rb:9:i...
mame (Yusuke Endoh)
08:39 AM Feature #19117: Include the method owner in backtraces, not just the method name
@mame while updating the Rails test suite I noticed we may have a small regression:
```ruby
def raise_nested_exceptions
raise "First error"
rescue
begin
raise "Second error"
rescue
raise "Third error"
end
end
...
byroot (Jean Boussier)
09:34 PM Bug #19395 (Closed): Process forking within non-main Ractor hits rb_bug()
byroot (Jean Boussier)
07:19 PM Bug #19395: Process forking within non-main Ractor hits rb_bug()
I can no longer reproduce this issue, I probably had some changes in my tree that were causing the issues. Sorry! Please close. luke-gru (Luke Gruber)
09:33 PM Bug #19365 (Closed): Ractors can access non-shareable values through enumerators
byroot (Jean Boussier)
07:25 PM Bug #19365: Ractors can access non-shareable values through enumerators
This has since been fixed, please close. Thanks. luke-gru (Luke Gruber)
08:58 PM Revision 2967b7eb (git): GC guard catch_table_ary
Using RARRAY_CONST_PTR can cause the array object to not exist on the
stack, which could cause it to be GC'd or be moved by GC compaction. This
can cause RARRAY_CONST_PTR to point to the incorrect location if the
array is embedded and mo...
peterzhu2118 (Peter Zhu)
08:51 PM Feature #20266: New syntax to escape embed strings in Regexp literal
I wonder if this new syntax would open the doors to adding some kind of similar behavior to normal string interpolation too. matheusrich (Matheus Richard)
07:36 PM Feature #20266: New syntax to escape embed strings in Regexp literal
TBH I'm not entirely sure it's worth new syntax, but I've definitely felt the verbosity of `Regexp.escape` before, and I like how `#{= expr}` has similarity with erb's `<%= expr %>` Dan0042 (Daniel DeLorme)
05:35 AM Feature #20266: New syntax to escape embed strings in Regexp literal
I don't have any pro or con opinion on the feature itself; in regards to ^foo versus =foo, I think users may wonder about both:
^ specifically because many regexes may have it, such as /^foobar/, and with = they may assume some assignme...
rubyFeedback (robert heiler)
08:41 PM Revision 170058ca (git): [ruby/prism] Ignore incorrect files
https://github.com/ruby/prism/commit/d1094ac232 kddnewton (Kevin Newton)
08:41 PM Revision 13301587 (git): [ruby/prism] Fix block_pass for []=
https://github.com/ruby/prism/commit/bf79206220 kddnewton (Kevin Newton)
08:41 PM Revision 429338a2 (git): [ruby/prism] Accept newlines before ) in patterns
https://github.com/ruby/prism/commit/e5ffb7bdf8 kddnewton (Kevin Newton)
08:27 PM Revision b4327c11 (git): YJIT: Support empty splat
Previously we rejected empty splat calls to methods with no parameters
as `iseq_arity_error` which didn't work well with delegated calls.
alanwu (Alan Wu)
08:27 PM Revision c4e30d28 (git): YJIT: Support `**nil`
This adds YJIT support for VM_CALL_KW_SPLAT with nil, specifically for
when we already know from the context that it's done with a nil. This is
enough to support forwarding with `...` when there no keyword arguments
are present.
Amend t...
alanwu (Alan Wu)
08:02 PM Revision 777c4da0 (git): [PRISM] GC guard strings
Using RSTRING_PTR can cause the string object to not exist on the stack,
which could cause it to be GC'd or be moved by GC compaction. This can
cause RSTRING_PTR to point to the incorrect location if the string is
embedded and moved by G...
peterzhu2118 (Peter Zhu)
07:47 PM Revision fbe63047 (git): Fix PRISM build dependencies
alanwu (Alan Wu)
07:34 PM Revision 6f4bb638 (git): [ruby/prism] Builtins
https://github.com/ruby/prism/commit/851f2571ff kddnewton (Kevin Newton)
07:12 PM Bug #19408: Object no longer frozen after moved from a ractor
I created a PR for this: https://github.com/ruby/ruby/pull/9996 luke-gru (Luke Gruber)
06:57 PM Revision bac692f5 (git): CI: Fix the no such file or directory error with the working directory.
Fix the error with the working directory in the result job in some GitHub
Actions YAML files. I hit this error on my forked repository below.
https://github.com/junaruga/ruby/actions/runs/7921897724/job/21628462038?pr=2#step:2:11
```
Er...
Jun Aruga
06:27 PM Revision 24645cff (git): Removed duplicated variable in push_mark_stack
peterzhu2118 (Peter Zhu)
06:26 PM Misc #20272 (Open): Ambiguity around Ractor message sending FIFO semantics
The docs should explicitly state the semantics/properties of Ractor message, especially when it comes to FIFO.
For example, assume I have two Ractors, Ractor A and Ractor B. Ractor A sends two messages `"hello"` and `"world"` in this or...
forthoney (Seong-Heon Jung)
05:50 PM Revision 8e4d1ff5 (git): [ruby/prism] Disallow numbered parameters within given scopes
https://github.com/ruby/prism/commit/a218a0f265 kddnewton (Kevin Newton)
05:50 PM Revision e801ccb3 (git): [ruby/prism] More rescue and ensure; constant handling
https://github.com/ruby/prism/commit/207f579e70 noahgibbs (Noah Gibbs)
05:50 PM Revision 7d3e889b (git): [ruby/prism] Move visit methods into a Ripper Compiler
https://github.com/ruby/prism/commit/44c4dc5268 noahgibbs (Noah Gibbs)
05:44 PM Revision 6084adbc (git): Use travis_wait for test-spec as well
rubyspec seems very slow or getting stuck on s390-linux.
https://app.travis-ci.com/github/ruby/ruby/jobs/617916019
No output has been received in the last 10m0s, this potentially
indicates a stalled build or something wrong with the bui...
k0kubun (Takashi Kokubun)
05:11 PM Misc #20242 (Closed): `--parser=prism_without_warning`
kddnewton (Kevin Newton)
04:56 PM Revision 8414c26f (git): [PRISM] Make prism compiler warning experimental
kddnewton (Kevin Newton)
04:47 PM Revision f5801e2b (git): [ruby/irb] Standardize command related names
(https://github.com/ruby/irb/pull/873)
* Replace ExtendCommand with Command and standardize command related names
1. Rename lib/irb/extend-command.rb to lib/irb/command.rb
2. Rename lib/irb/cmd/*.rb to lib/irb/command/*.rb
3. Rename te...
st0012 (Stan Lo)
04:44 PM Revision 4411cdee (git): Fix typo in gc.c
peterzhu2118 (Peter Zhu)
04:34 PM Bug #20271: Issue with moving embedded string across ractors
PR here: https://github.com/ruby/ruby/pull/9993 luke-gru (Luke Gruber)
04:29 PM Bug #20271 (Closed): Issue with moving embedded string across ractors
When embedded strings are moved, not all the embedded bytes are copied over to the new embedded string. This shows itself when
an embedded string has more than 16 characters.
For example:
```ruby
r = Ractor.new {
foo = receive...
luke-gru (Luke Gruber)
04:26 PM Misc #20260: ISEQ flag for prism compiler
@matz The work is done to add support for the flag on the ISEQ, but I think we additionally need your approval on adding `Thread::Backtrace::Location#node_id`. kddnewton (Kevin Newton)
04:12 PM Revision b3158263 (git): [ruby/irb] Support repeating debugger input by passing empty input
to it
(https://github.com/ruby/irb/pull/856)
* Test IRB's behaviour with empty input
* Handle empty input and pass it to debugger
Since `rdbg` accepts empty input to repeat the previous command, IRB
should take empty input in `irb:rdb...
st0012 (Stan Lo)
03:49 PM Revision ff4f5c0c (git): [ruby/prism] Style/renaming
https://github.com/ruby/prism/commit/53763d67d5 kddnewton (Kevin Newton)
03:35 PM Revision 04e7c574 (git): [ruby/prism] Fix pattern with constant, (, and newlines
https://github.com/ruby/prism/commit/d69d1b6f17 kddnewton (Kevin Newton)
03:33 PM Revision f4f57e11 (git): [ruby/prism] Add warning for assignments to literals in conditionals
https://github.com/ruby/prism/commit/ee87ed08fb Haldun Bayhantopcu
03:15 PM Revision c5f22b5b (git): Make all fields in AST movable
peterzhu2118 (Peter Zhu)
02:08 PM Revision f012ce0d (git): [ruby/prism] Fix lexing of `foo!` when it's a first thing to parse
https://github.com/ruby/prism/commit/7597aca76a Max Prokopiev
09:55 AM Bug #20269: bignum too big to convert into `long' when running String#byteslice on Windows
many thanks for your reply.
I found an explanation on [Reddit](https://www.reddit.com/r/C_Programming/comments/4kjd0c/comment/d3fd0vp/). The reason it works on Linux / Mac is that the compiler expands `long` to 64-bit if running on a ...
Anonymous
09:11 AM Bug #20269: bignum too big to convert into `long' when running String#byteslice on Windows
On Windows, `long` is a 32-bit integer.
The error message says the length exceeds that limit.
nobu (Nobuyoshi Nakada)
09:16 AM Revision fbc29ce0 (git): Avoid to fail with race condition
hsbt (Hiroshi SHIBATA)
08:59 AM Revision 0301473f (git): Fixed dependencies list format
hsbt (Hiroshi SHIBATA)
08:57 AM Revision e3f452e5 (git): Adjust indent
hsbt (Hiroshi SHIBATA)
08:28 AM Revision 9f4d5eb1 (git): Try to find gemspec from `.bundle/specifications
hsbt (Hiroshi SHIBATA)
08:28 AM Revision 38cc9dac (git): We can test bundled gems without default gems installation
hsbt (Hiroshi SHIBATA)
08:28 AM Revision 62ab9335 (git): Try to test net-ftp examples again
hsbt (Hiroshi SHIBATA)
08:28 AM Revision 9f708d48 (git): Clear runtime dependencies if default gems is specified.
The current build system uses runtime dependencies from only
`.bundle` directory. We shouldn't install runtime dependencies
from rubygems.org when `make test-bundled-gems` is invoked.
hsbt (Hiroshi SHIBATA)
08:28 AM Revision 4047222a (git): Try to load original gemspec from `.bundle/gems/foo-x.y.z/foo.gemspec`.
`.bundle/specification/foo-x.y.z.gemspec` may be changed our toolchain hsbt (Hiroshi SHIBATA)
07:13 AM Revision bc7266c5 (git): Bump the required BASERUBY version to 3.0 (#9976)
k0kubun (Takashi Kokubun)
06:55 AM Bug #20270: Options with `--parser=prism`
JFYI: It just so happens that the second issue is not a segmentation fault.
In `pm_parse_string` call just after the warning:
```
(lldb) rp source
bits: [ U]
(struct RFile) $1 = {
basic = (flags = 11, klass = 4301593320)
...
nobu (Nobuyoshi Nakada)
05:50 AM Bug #20270 (Closed): Options with `--parser=prism`
### `--dump` option
Currently `parsetree` and `prism_parsetree` bits are separated, but it seems meaningless as far as `--parser` option selects only one parser.
Why doesn't simply `--dump=parsetree` dump AST by parse.y, or PRISM AST...
nobu (Nobuyoshi Nakada)
06:26 AM Revision 81752d20 (git): Abort when streaming code from stdin with Prism
Do not read STDIN as a String instance. nobu (Nobuyoshi Nakada)
06:26 AM Revision a64e93a8 (git): Use ID without cache and fix conversion of offset
nobu (Nobuyoshi Nakada)
06:26 AM Revision e0d068aa (git): Extract `process_options_global_setup`
nobu (Nobuyoshi Nakada)
06:26 AM Revision 839ccad2 (git): Extract functions depending on `--parser` option
nobu (Nobuyoshi Nakada)
06:16 AM Misc #20254: Add Launchable into Ruby CI
@ono-max About customizing options, whatever results in less email by default is highly preferable. duerst (Martin Dürst)
05:27 AM Misc #20254: Add Launchable into Ruby CI
I wonder if I should introduce the following options to customize the behavior of the GitHub comments feature in the Launchable Web Console:
**Configurable Option 1:**
Allow users to choose when Launchable creates a GitHub comment.
...
ono-max (Naoto Ono)
05:41 AM Revision 785b7ee1 (git): Rename the annocheck job
gcc-11 is not the point of this job. k0kubun (Takashi Kokubun)
05:38 AM Revision cf16a704 (git): [rubygems/rubygems] Relax regexp for Ruby 3.3 or before
https://github.com/rubygems/rubygems/commit/89d37e670c hsbt (Hiroshi SHIBATA)
05:38 AM Revision 7b568b1f (git): [rubygems/rubygems] bin/rubocop -a
https://github.com/rubygems/rubygems/commit/f79a6a004d hsbt (Hiroshi SHIBATA)
05:36 AM Revision 0ae4d9c1 (git): Let annocheck workflow run only test-annocheck (#9990)
The test of other tasks seems duplicated. k0kubun (Takashi Kokubun)
04:53 AM Revision 6f224d66 (git): [rubygems/rubygems] Add `gitlab:` Git source shorthand
This new shorthand, similar to the existing `github:` shorthand, adds
support for Gitlab repositories with a notable difference. Gitlab
projects may be organized into projects and subprojects. An example
Ruby gem exists at:
https://gitl...
jgarber (Jason Garber)
02:57 AM Revision df8ae937 (git): Bump github/codeql-action from 3.24.1 to 3.24.3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.1 to 3.24.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md...
dependabot[bot]
02:20 AM Revision 574312de (git): Extract `show_help` function
nobu (Nobuyoshi Nakada)
02:20 AM Revision 7ac8d3d6 (git): Dispose AST before exit by yydebug
nobu (Nobuyoshi Nakada)
02:12 AM Revision 1c41dc40 (git): [ruby/forwardable] Relax regexp for Ruby 3.3 or before
https://github.com/ruby/forwardable/commit/42b50c2111 hsbt (Hiroshi SHIBATA)
12:38 AM Revision 9d81741f (git): Pop the operand at the end
k0kubun (Takashi Kokubun)
12:38 AM Revision cdc07236 (git): Update a comment on spill_temps()
k0kubun (Takashi Kokubun)
12:38 AM Revision bda4192e (git): Remove duplicated spill_temps()
k0kubun (Takashi Kokubun)
12:38 AM Revision cfe77db0 (git): Spill fewer temps on iv writes
Not all IV writes require calling a C function. If we don't need to
execute a write barrier (IOW the written value is an immediate), and we
don't need to expand the object to accommodate a new IV, we won't need
to make a C call and we ca...
tenderlovemaking (Aaron Patterson)

02/15/2024

11:45 PM Feature #20080: Introduce #bounds method on Range
Actually, I don't see the clear benefit of the proposal. `first, last = range.bounds` can be `first = range.begin; last = range.end`, and `Range.new(*range.bounds)` can be `range.dup`.
By adding `bounds` the code could become a little c...
matz (Yukihiro Matsumoto)
10:23 PM Feature #20080: Introduce #bounds method on Range
Thanks for the feedback @matz! Is it the word `bounds` that you don't like in relation to the start and end values of a range? I personally think bounds or a boundary can be considered inclusive or exclusive which is why including `exclu... stuyam (Stuart Yamartino)
11:05 PM Feature #20266: New syntax to escape embed strings in Regexp literal
I wonder if `#{^foo}` might be a passable alternative for `#{=foo}` since "pinning" *almost* makes sense and and uptick is less likely to actually be intended than an equals sign to start a quoted interpolation? shan (Shannon Skipper)
09:45 AM Feature #20266: New syntax to escape embed strings in Regexp literal
I was also part of the discussion circle regarding this idea. The lack of support for easily escaping a string for regular expressions has led users to often omit it when it seems obvious that a string does not need escaping (for exampl... knu (Akinori MUSHA)
09:32 AM Feature #20266: New syntax to escape embed strings in Regexp literal
https://github.com/nobu/ruby/tree/quoting-interpolation
https://github.com/ruby/ruby/pull/9979
nobu (Nobuyoshi Nakada)
09:05 AM Feature #20266: New syntax to escape embed strings in Regexp literal
I agree with this proposal. Even if Ruby enables `\Q` and `\E` features in Onigumo, they don't work as expected if the embedded string contains `\E`. Therefore, it would be better for Ruby to have a short syntax for `#{Regexp.quote(str... mrkn (Kenta Murata)
08:45 AM Feature #20266 (Open): New syntax to escape embed strings in Regexp literal
# Premise
When using embed strings in Regexp literal, it is interpreted as a part of the Regexp.
```ruby
foo = "[a-z]"
p /#{foo}/ #=> /[a-z]/
```
So, currently we often have to escape the embed strings.
```ruby
foo = "[a-...
usa (Usaku NAKAMURA)
11:04 PM Bug #19907: Method calls with keyword arguments in eval leaks callcache and callinfo objects
https://github.com/ruby/ruby/pull/9973
I've opened a PR to de-dup identical callinfo, which will also in this case avoid the allocation of unnecessary callcache.
Running the script above:
```
Number of live objects: 9139
Memor...
jhawthorn (John Hawthorn)
11:04 PM Revision 1b9b9609 (git): [ruby/prism] Make location methods thread-safe
* Before it could result in NoMethodError if multiple threads were
calling location methods: https://gist.github.com/eregon/b78b7f266d7ee0a278a389cfd1782232
https://github.com/ruby/prism/commit/ff762dcccd
Eregon (Benoit Daloze)
08:51 PM Revision bf5cc9ef (git): Update default gems list at e7f7a85285b52a290be880f634244e [ci skip]
git[bot]
08:50 PM Revision e7f7a852 (git): [PRISM] Sync prism version bump
kddnewton (Kevin Newton)
08:39 PM Revision 14a7277d (git): [ruby/prism] Speed up creating Ruby AST
When creating the Ruby AST, we were previously allocating Location
objects for every node and every inner location. Instead, this
commit changes it to pack both the start offset and length into a
single u64 and pass that into the nodes. ...
kddnewton (Kevin Newton)
08:36 PM Revision 87cc2fd0 (git): [ruby/prism] Fix up invalid syntax
https://github.com/ruby/prism/commit/8e3aad9e27 kddnewton (Kevin Newton)
08:28 PM Revision 49ddbbf3 (git): [ruby/prism] Fix opening loc for an empty symbol
https://github.com/ruby/prism/commit/241d0169da Max Prokopiev
08:26 PM Revision a5cee8fa (git): [ruby/prism] Handle more aliases. Better testing of prism ripper CLI and a test for it.
https://github.com/ruby/prism/commit/cfd4f28cb3 noahgibbs (Noah Gibbs)
08:26 PM Revision fa334ecd (git): [rubygems/rubygems] use full path for instance_eval
so that __dir__ and __FILE__ will work properly from within that gemfile
fragment, if eval_gemfile is given a relative path
https://github.com/rubygems/rubygems/commit/d521bf9790
Cody Cutrer
08:25 PM Revision 8f17b3bd (git): [ruby/prism] Avoid extra String copies in the FFI backend
* For Prism.parse_file the file contents would be read as native, then
converted to a Ruby String, then converted to a native String for
pm_serialize_parse().
* Refactor the logic to always use a pm_string for the source code and
p...
Eregon (Benoit Daloze)
08:21 PM Revision be82755d (git): [ruby/prism] Support multi-versioning for `Prism::Translation::Parser`
## Summary
Fixes https://github.com/ruby/prism/pull/2356.
I'm working on integrating Prism into RuboCop.
This PR introduces `Prism::Translation::Parser33` and `Prism::Translation::Parser34`, named
in accordance with the following comm...
koic (Koichi ITO)
05:34 PM Bug #20268 (Closed): Segfault in ruby 3.3 Fiber on aarch64 musl (mac m1)
This is a duplicate of #20085. The fix should come out with the next release. alanwu (Alan Wu)
04:14 PM Bug #20268 (Closed): Segfault in ruby 3.3 Fiber on aarch64 musl (mac m1)
On mac m1pro the following
```sh
docker run --platform linux/aarch64 --rm -it ruby:3.3.0-alpine3.19 ruby -e 'Fiber.new { puts 123 }.resume'
```
produces segfault:
```
-e:1: [BUG] Segmentation fault at 0x006cffff93eecfd0
ruby 3.3.0...
vasfed (Vasily Fedoseyev)
05:19 PM Revision 4d1b3a2b (git): Unset STR_SHARED when setting string to embed
peterzhu2118 (Peter Zhu)
04:59 PM Revision da7b9478 (git): YJIT: Pass nil to anonymous kwrest when empty (#9972)
This is the same optimization as e4272fd29 ("Avoid allocation when
passing no keywords to anonymous kwrest methods") but for YJIT. For
anonymous kwrest parameters, nil is just as good as an empty hash.
On the usage side, update `splatkw...
alanwu (Alan Wu)
04:48 PM Revision e779c194 (git): Remove used str field in struct binwrite_arg
peterzhu2118 (Peter Zhu)
04:41 PM Revision a6bcd3aa (git): [ruby/prism] Fix debug logging
https://github.com/ruby/prism/commit/01af2d4f39 Haldun Bayhantopcu
04:40 PM Revision a0217025 (git): [ruby/prism] Fix parsing rescue modifier
https://github.com/ruby/prism/commit/b7407ae3c0 Haldun Bayhantopcu
04:22 PM Bug #20269 (Open): bignum too big to convert into `long' when running String#byteslice on Windows
Running `String#byteslice` on Ruby 3.3 on Windows results in an error when using any number bigger than 32 bits:
```
"".byteslice(0, 2547483647)
(irb):1:in `byteslice': bignum too big to convert into `long' (RangeError)
fro...
Anonymous
04:00 PM Bug #20267: Hashes that use ar_table aren't moved properly across ractors
I created a patch here: https://github.com/ruby/ruby/pull/9983 luke-gru (Luke Gruber)
03:56 PM Bug #20267 (Closed): Hashes that use ar_table aren't moved properly across ractors
This crashes in debug build and gives weird results in non debug build, because the ar_table values aren't copied over to the new "embedded" hash during a move across ractors.
```ruby
r = Ractor.new {
hash = receive
puts hash
...
luke-gru (Luke Gruber)
11:43 AM Revision a7718c91 (git): Do not show an anonymous class as a receiver
mame (Yusuke Endoh)
11:34 AM Revision 0da12fa3 (git): Added singleton for prime
hsbt (Hiroshi SHIBATA)
11:34 AM Revision 18da80e1 (git): Skip failing examples at Ruby 3.2+
hsbt (Hiroshi SHIBATA)
11:34 AM Revision 4aef8752 (git): Surpressing constant redefinition warning
hsbt (Hiroshi SHIBATA)
11:34 AM Revision 1e426bd5 (git): Exclude net-ftp examples because it has dependency issue
hsbt (Hiroshi SHIBATA)
11:34 AM Revision 8ba053d3 (git): Re-enabled old bundled gems
hsbt (Hiroshi SHIBATA)
11:06 AM Revision 8f926cb8 (git): No need to extract bundled gems before test-spec
* Since https://github.com/ruby/ruby/pull/9977 Eregon (Benoit Daloze)
10:51 AM Feature #20265: Deprecate and remove rb_newobj and rb_newobj_of
+1 Eregon (Benoit Daloze)
02:08 AM Feature #20265: Deprecate and remove rb_newobj and rb_newobj_of
I'm positive. C extensions should basically use `TypedData_Make_Struct` instead. shyouhei (Shyouhei Urabe)
10:48 AM Misc #20260: ISEQ flag for prism compiler
mame (Yusuke Endoh) wrote in #note-11:
> @eregon I don't think it is a good idea to try to guess a node from a code range. To identify a unique node, the Prism AST would have to avoid creating multiple nodes from the exact same code ran...
Eregon (Benoit Daloze)
02:13 AM Misc #20260: ISEQ flag for prism compiler
@eregon I don't think it is a good idea to try to guess a node from a code range. To identify a unique node, the Prism AST would have to avoid creating multiple nodes from the exact same code range. It may be possible to carefully design... mame (Yusuke Endoh)
10:16 AM Feature #20187 (Closed): Bundled gems at Ruby 3.4
I separated them with https://github.com/ruby/ruby/pull/9977 hsbt (Hiroshi SHIBATA)
10:12 AM Feature #19117 (Closed): Include the method owner in backtraces, not just the method name
Applied in changeset commit:git|61819c87b29f3267d6a2499d9018f09cd5bcf2c4.
----------
Let Thread::Backtrace::Location have a method entry
Instead of having iseq and cfunc separately, this change lets
Thread::Backtrace::Location have the...
mame (Yusuke Endoh)
10:11 AM Revision 8f2c2316 (git): ruby-spec: Accept the receiver in backtraces
mame (Yusuke Endoh)
10:11 AM Revision 9d1b000b (git): Show the method owner in backtraces
```
test.rb:1:in 'Object#toplevel_meth': unhandled exception
from test.rb:4:in 'Foo.class_meth'
from test.rb:6:in 'Foo#instance_meth'
from test.rb:11:in 'singleton_meth'
from test.rb:13:in '<main>'
```
[F...
mame (Yusuke Endoh)
10:11 AM Revision 61819c87 (git): Let Thread::Backtrace::Location have a method entry
Instead of having iseq and cfunc separately, this change lets
Thread::Backtrace::Location have them together as
rb_callable_method_entry_t.
This is a refactoring, but also a preparation for implementing
[Feature #19117].
mame (Yusuke Endoh)
09:57 AM Revision 6958e88f (git): Fix task dependency
hsbt (Hiroshi SHIBATA)
09:57 AM Revision 4a00fcbd (git): Rename and restructured net/ftp and net/http examples
hsbt (Hiroshi SHIBATA)
09:57 AM Revision fa7529af (git): Move examples related core extension feature by Bigdecimal to under the library/bigdecimal
hsbt (Hiroshi SHIBATA)
09:57 AM Revision 121dfb38 (git): Surpressing constant redefinition warning
hsbt (Hiroshi SHIBATA)
09:57 AM Revision 1e6fffae (git): Added new ruby/spec task for bundled gems
hsbt (Hiroshi SHIBATA)
09:57 AM Revision 76d322b5 (git): Disable to run for bundled gems in test-spec
hsbt (Hiroshi SHIBATA)
09:42 AM Feature #16495 (Closed): Inconsistent quotes in error messages
Applied in changeset commit:git|25d74b9527cd525042ad0b612b794fa331d3a318.
----------
Do not include a backtick in error messages and backtraces
[Feature #16495]
mame (Yusuke Endoh)
09:42 AM Revision 92eab382 (git): Update the error message format in bundler
mame (Yusuke Endoh)
09:42 AM Revision d5c16ddf (git): Temporarily update the error message format in prism
mame (Yusuke Endoh)
09:42 AM Revision d9234ba8 (git): Temporarily allow failures in some bundled gems
mame (Yusuke Endoh)
09:42 AM Revision 8259f35a (git): ruby-spec: Accept both a backtick and a single quote in error messages
mame (Yusuke Endoh)
09:42 AM Revision 25d74b95 (git): Do not include a backtick in error messages and backtraces
[Feature #16495] mame (Yusuke Endoh)
09:25 AM Misc #20254: Add Launchable into Ruby CI
> Subsequently, test updates will be reflected by updating this comment.
Thank you!
byroot (Jean Boussier)
09:11 AM Misc #20254 (Assigned): Add Launchable into Ruby CI
In dev meeting at #20193, we discussed about Launchable. No one against Launchable integration for our GitHub Actions. In my opinion, Launchable helps to improve CI result of GitHub Actions and easily find flaky test. I as administrator ... hsbt (Hiroshi SHIBATA)
08:53 AM Misc #20254: Add Launchable into Ruby CI
Thank you for the feedback. It makes sense to minimize notification noise, especially considering different preferences in notification settings. To address this, we will adjust the GitHub comments feature as follows:
1. Launchable wi...
ono-max (Naoto Ono)
08:01 AM Revision 926277bf (git): s/ therefor/therefore/
ydah (Yudai Takada)
08:01 AM Revision aa6d0bc0 (git): s/ocurs/occurs/
ydah (Yudai Takada)
08:01 AM Revision 30385244 (git): s/bellow/below/
ydah (Yudai Takada)
08:01 AM Revision 317c1da6 (git): s/Direcive/Directive/
ydah (Yudai Takada)
08:01 AM Revision 8b061eeb (git): s/enocding/encoding/
ydah (Yudai Takada)
07:30 AM Feature #20249: Introduce a backtrace-only mode for rb_bug()
At devmeeting yesterday, we concluded to have a new environment variable to control the `rb_bug()` crash report(as @Eregon said on https://bugs.ruby-lang.org/issues/20249#note-9).
There are two proposals:
* Introduce new environmen...
ko1 (Koichi Sasada)
04:39 AM Revision c57880e6 (git): Show the invalid source encoding in messages
nobu (Nobuyoshi Nakada)
01:59 AM Misc #20238: Use prism for mk_builtin_loader.rb
> I think there is a risk to use syntax which is not released yet. If the syntax is reverted by some reason, mk_builtin_loader.rb also needs to be also fixed.
Note that I'm fine with the latest released syntax as well. The syntax I've...
k0kubun (Takashi Kokubun)
12:57 AM Misc #20238: Use prism for mk_builtin_loader.rb
I think there is a risk to use syntax which is not released yet. If the syntax is reverted by some reason, mk_builtin_loader.rb also needs to be also fixed.
> We should try making a small C program using Prism to achieve this. If it t...
naruse (Yui NARUSE)
01:55 AM Bug #20218: aset/masgn/op_asgn with keyword arguments
> Does this also include blocks?
Yes. @nobu wrote a patch in #19918, so a block will also be prohibited.
Note that keyword arguments and a block are allowed in the normal method call style: `obj.[]=(1, 2, kw: 1, &blk)`.
mame (Yusuke Endoh)

02/14/2024

11:57 PM Revision beeee548 (git): YJIT: Replace perf_fn! with a simpler macro (#9971)
k0kubun (Takashi Kokubun)
10:44 PM Revision 06ad00ad (git): Lrama v0.6.3
yui-knk (Kaneko Yuichiro)
10:44 PM Revision 95ec71ef (git): Revert "CHECK_LEAKS is always enabled with 01459f1"
* This reverts commit cf8fb9429511068c69ce70da7f7818c7441c280b.
* CHECK_LEAKS is no longer always enabled.
Eregon (Benoit Daloze)
10:44 PM Revision d24be39d (git): Only check constant leaks by default for `make test-spec`
* See https://github.com/ruby/ruby/pull/9548 Eregon (Benoit Daloze)
09:50 PM Revision 6f9ca7f4 (git): YJIT: Use i32 over isize for ctx.sp_opnd() (#9968)
It eventually casts it to i32 anyways, and a lot of callers already have
an i32, so using isize was just adding unnecessary casts.
alanwu (Alan Wu)
09:25 PM Revision 28709d59 (git): Remove unused argument in cc_table_free
peterzhu2118 (Peter Zhu)
09:09 PM Revision 72f8883a (git): YJIT: Extract keyword handling to make gen_send_iseq() shorter
This should make it easier to grok the order of operations. alanwu (Alan Wu)
08:52 PM Revision ae8db4b6 (git): Remove unused function rb_cc_table_free
peterzhu2118 (Peter Zhu)
08:49 PM Revision c9ed59c2 (git): Update yjit/src/codegen.rs
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Aaron Patterson
08:49 PM Revision 7943cb22 (git): Consider rb_str_getbyte as leaf sometimes
If YJIT knows the parameter to rb_str_getbyte is a fixnum, then I think
we can consider the function to be a leaf
tenderlovemaking (Aaron Patterson)
08:37 PM Revision fadb7d41 (git): Remove duplicated include in weakmap.c
peterzhu2118 (Peter Zhu)
08:29 PM Revision 9933377c (git): [PRISM] Correctly hook up line numbers for eval
kddnewton (Kevin Newton)
08:17 PM Misc #20254: Add Launchable into Ruby CI
So if I understand correctly, this isn't an alternative CI, just a side system that collect statistics and also better format test failures.
I haven't looked at it in detail, but some form of flakiness analysis would indeed be very we...
byroot (Jean Boussier)
05:14 PM Misc #20254: Add Launchable into Ruby CI
> I agree there are room to improve the source code but we can improve after merging and trying it out, IMO.
(and we can revert the code if we found another issues)
I agree that we merge the necessary PRs to run Launchable on CI firs...
jaruga (Jun Aruga)
06:43 PM Revision 1d3b3067 (git): Move rb_class_allocate_instance from gc.c to object.c
peterzhu2118 (Peter Zhu)
06:24 PM Revision fc2c128e (git): [PRISM] Set eval encoding based on string encoding
kddnewton (Kevin Newton)
05:09 PM Revision 71777312 (git): YJIT: Add --yjit-perf=codegen option (#9957)
k0kubun (Takashi Kokubun)
05:08 PM Feature #20265 (Closed): Deprecate and remove rb_newobj and rb_newobj_of
GitHub PR: https://github.com/ruby/ruby/pull/9964
I’m proposing deprecating and removing the rb_newobj and rb_newobj_of APIs because they are difficult to use, fragile to use, and requires knowledge of the internal implementation of d...
peterzhu2118 (Peter Zhu)
04:28 PM Feature #20205: Enable `frozen_string_literal` by default
> Question: what is the effect of "chilled string" on #frozen?
> ...
That's the current idea yes.
```ruby
"chilled string".frozen? # => true
+"chilled string" # returns a new, mutable string (without chilled flag)
-"chilled string...
byroot (Jean Boussier)
02:48 PM Feature #20205: Enable `frozen_string_literal` by default
Question: what is the effect of "chilled string" on `#frozen?`
Does `chilled_string.frozen?` return true?
Personally I think it should, as I remarked in #16153#note-11
Dan0042 (Daniel DeLorme)
09:08 AM Feature #20205: Enable `frozen_string_literal` by default
Thank you Matz.
In that case I'll work with @etienne into getting the proof of concept into a mergeable feature over the next few weeks.
byroot (Jean Boussier)
07:30 AM Feature #20205: Enable `frozen_string_literal` by default
I agree with the proposal. It seems a well-thought process to migrate. The performance improvement was not as great as I had hoped for. But since I feel that the style of individually freezing strings when setting them to constants is no... matz (Yukihiro Matsumoto)
04:19 PM Revision ee3b4bec (git): YJIT: Simplify Kernel#send guards and admit more cases (#9956)
Previously, our compile time check rejected dynamic symbols (e.g. what
String#to_sym could return) even though we could handle them just fine.
The runtime guards for the type of method name was also overly
restrictive and didn't accept d...
alanwu (Alan Wu)
04:08 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
hsbt (Hiroshi SHIBATA) wrote in #note-20:
> https://github.com/ruby/ruby/pull/9371 is already backported into `ruby_3_3`.
> ...
I'm still blocked on this because setup uses the `ruby:3.3.0` which still appears to have the issue.
londonappdev (Mark Winterbottom)
04:00 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
> (2) Default to RUBY_CRASH_REPORT_MODE=minimal behavior when RUBY_DEBUG=1. This feature is for CRuby core developers who don't want to configure an env var all the time.
This seems counter-productive because e.g. ruby/setup-ruby has ...
Eregon (Benoit Daloze)
03:59 PM Misc #20260: ISEQ flag for prism compiler
@mame I've made these changes here: https://github.com/ruby/ruby/pull/9934. Could you review? Thanks! kddnewton (Kevin Newton)
01:52 PM Misc #20260: ISEQ flag for prism compiler
It would be great if `ErrorHighlight` can work on other Ruby implementations too, which means not relying on `RubyVM`.
`Thread::Backtrace::Location#node_id` might not be ideal because other Ruby implementations AFAIK don't keep a `nod...
Eregon (Benoit Daloze)
01:38 PM Misc #20260: ISEQ flag for prism compiler
Okay! That makes sense, thank you for the discussion. I'm also fine making `ErrorHighlight::Spotter` handle both, as you say it was just for illustrative purposes. I'll update this ticket when I have updated `RubyVM::AST.of` and `Thread:... kddnewton (Kevin Newton)
01:00 PM Misc #20260: ISEQ flag for prism compiler
BTW, I prefer to have `ErrorHighlight::Spotter.new` accept both `RubyVM::AST::Node` and `Prism::Node` instead of adding `ErrorHighlight::PrismSpotter`. (I guess you showed it just for clarity.) mame (Yusuke Endoh)
11:47 AM Misc #20260: ISEQ flag for prism compiler
How about the following API?
* Make `RubyVM::AbstractSyntaxTree.of` raise a RuntimeError for objects with iseq complied from Prism.
* Introduce `Thread::Backtrace::Location#node_id`, which returns node_id at the current instruction, ...
mame (Yusuke Endoh)
03:56 PM Revision f4a0e1cd (git): Prefer `Array.new(n) {}` to `n.times.map {}`
* It is quite a bit faster:
ruby -rbenchmark/ips -e 'Benchmark.ips { |x| x.report("times.map") { 1000.times.map {} }; x.report("Array.new") { Array.new(1000) {} }; x.compare! }'
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-lin...
Eregon (Benoit Daloze)
03:48 PM Revision c2d8d6eb (git): Initialize the Prism::Source directly with all 3 fields for the C extension
* Faster that way:
$ ruby -Ilib -rprism -rbenchmark/ips -e 'Benchmark.ips { |x| x.report("parse") { Prism.parse("1 + 2") } }'
195.722k (± 0.5%) i/s
rb_iv_set():
179.609k (± 0.5%) i/s
rb_funcall():
190.030k (± 0.3%) i/s
befo...
Eregon (Benoit Daloze)
03:48 PM Revision 1b2708b1 (git): [ruby/prism] Remove attr_writer's for ParseResult#start_line and #offsets
* As the user should not set these.
* Use #instance_variable_set/rb_iv_set() instead internally.
https://github.com/ruby/prism/commit/cace09fb8c
Eregon (Benoit Daloze)
03:48 PM Revision f0f6ffef (git): [ruby/prism] Serialize the newline_list to avoid recomputing it again later
* Fixes https://github.com/ruby/prism/issues/2380
https://github.com/ruby/prism/commit/4eaaa90114
Eregon (Benoit Daloze)
03:47 PM Revision 65f54355 (git): [DOC] Doc compliance (#9955)
burdettelamar (Burdette Lamar)
03:33 PM Misc #20242: `--parser=prism_without_warning`
I've added the PR here: https://github.com/ruby/ruby/pull/9963.
@mame would you mind reviewing? I had to add `rb_warning_category_update(opt->warn.mask, opt->warn.set);` when the `-W` option is passed because it needs to get updated b...
kddnewton (Kevin Newton)
03:02 PM Misc #20242: `--parser=prism_without_warning`
That works for me, thanks! kddnewton (Kevin Newton)
11:04 AM Misc #20242: `--parser=prism_without_warning`
This issue was discussed at the dev meeting. No one agreed with `--parser=prism_without_warning` because it is too ad-hoc.
How about putting the warning in the "experimental" category? `ruby -W:no-experimental --parser=prism` will pre...
mame (Yusuke Endoh)
02:59 PM Revision f1136e73 (git): Update default gems list at 12b0e67fec2cc59a6f7da4a4bfbd52 [ci skip]
git[bot]
02:58 PM Revision 12b0e67f (git): [PRISM] Sync to latest prism
kddnewton (Kevin Newton)
02:19 PM Bug #20264 (Feedback): Segfault in Enumerator#next while installing RMagick on M1 Mac
there's no workaround right now (AFAIK affected platform is Linux VM on Apple Silicon), need to wait 3.3.1 to be shipped (any estimates?) sorah (Sorah Fukumori)
09:08 AM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
hsbt (Hiroshi SHIBATA) wrote in #note-6:
> I could install `rmagick` with `linux/amd64`.
> ...
This is definitely an arm64 issue, our production containers use amd64 and I agree it works fine on that platform.
andy@andyjeffries.co.uk (Andy Jeffries)
04:13 AM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
I could install `rmagick` with `linux/amd64`.
```
$ docker run -it --platform=linux/amd64 registry.docker.com/library/ruby:3.3-slim bash
```
This may be fixed with #20085 with @sorah 's suggestion.
hsbt (Hiroshi SHIBATA)
01:47 PM Revision c84581f1 (git): [ruby/irb] Repurpose the help command to display the help message
(https://github.com/ruby/irb/pull/872)
See #787 for more details.
https://github.com/ruby/irb/commit/d9192d92d0
st0012 (Stan Lo)
01:46 PM Revision d0412599 (git): [ruby/irb] Improve constant lookup in SourceFinder
(https://github.com/ruby/irb/pull/871)
https://github.com/ruby/irb/commit/87c279ccf2
tompng (tomoya ishida)
01:42 PM Bug #20247 (Closed): net/http/header limits are too low
Discussed at the dev meeting.
This header length limit was introduced to enhance security. Accepting unlimitedly long headers may lead to DoS in some cases. Therefore, we have no plan to revert this limit and are cautious about making...
mame (Yusuke Endoh)
01:36 PM Feature #20210 (Closed): Invalid source encoding raises ArgumentError, not SyntaxError
I think that makes sense! Let's keep it as an argument error. Prism will keep parsing for now, but raise the right error. kddnewton (Kevin Newton)
11:20 AM Feature #20210: Invalid source encoding raises ArgumentError, not SyntaxError
Discussed at the dev meeting.
We need a good reason to introduce incompatibility. You say you are fine with the current behavior (exiting immediately), Then, we can't see no reason to change it.
This is just my idea: it would be gr...
mame (Yusuke Endoh)
01:35 PM Bug #20218: aset/masgn/op_asgn with keyword arguments
Does this also include blocks? Sorry I can't remember if that was officially decided or not. Also I'm presuming this would be for Ruby 3.4? kddnewton (Kevin Newton)
07:54 AM Bug #20218: aset/masgn/op_asgn with keyword arguments
OK, prohibit keyword arguments in aset.
Matz.
matz (Yukihiro Matsumoto)
01:33 PM Misc #20238: Use prism for mk_builtin_loader.rb
Thank you for the discussion! I will look into a C program and update this ticket, that sounds like a good approach. kddnewton (Kevin Newton)
04:43 AM Misc #20238: Use prism for mk_builtin_loader.rb
We discussed this at DevMeeting 2024-02-14.
* The idea of using Prism for supporting the latest syntax in builtin classes is accepted.
* We should try making a small C program using Prism to achieve this. If it turns out to be too co...
k0kubun (Takashi Kokubun)
01:56 AM Misc #20238: Use prism for mk_builtin_loader.rb
> install a couple extra packages for rubyci.org machines
Note that RubyCI doesn't have this problem. On RubyCI servers, which are provisioned by [ruby-infra-recipe](https://github.com/ruby/ruby-infra-recipe), we build Ruby 3.2.3 usin...
k0kubun (Takashi Kokubun)
12:17 PM Feature #20257: Rearchitect Ripper
No user interface changes other than lex state changes by making them to be aligned with parser's lex state transition.
yui-knk (Kaneko Yuichiro)
10:55 AM Bug #20111: `defined?` returns `expression` for assignment operators combined with fully qualified constants
@ko1 Just inconsistency discovered while implementing `defined?` for these various constructs. Eregon (Benoit Daloze)
10:13 AM Feature #20187 (Assigned): Bundled gems at Ruby 3.4
I changed test policy for this with nalsh's suggestion.
https://github.com/ruby/ruby/pull/9960#issuecomment-1943371439
----
We will separate ruby/spec to two groups.
* `core` and `library` for default gems
* `library` for bundled gem...
hsbt (Hiroshi SHIBATA)
09:26 AM Feature #20187: Bundled gems at Ruby 3.4
hsbt (Hiroshi SHIBATA) wrote in #note-6:
> @Eregon reverts my changes at [ruby/spec](https://github.com/ruby/spec/pull/1137) without any discussion.
There is some discussion at https://github.com/ruby/ruby/commit/44d74f22c8da3c13aa53...
Eregon (Benoit Daloze)
03:11 AM Feature #20187 (Open): Bundled gems at Ruby 3.4
@Eregon reverts my changes at [ruby/spec](https://github.com/ruby/spec/pull/1137) without any discussion. We shouldn't test bundled gems in `make check`. But he disagree it.
The current task environment is not intentional behavior from ...
hsbt (Hiroshi SHIBATA)
09:32 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
byroot (Jean Boussier) wrote in #note-33:
> I'd like to change `Encoding::BINARY.inspect` from `"#<Encoding:ASCII-8BIT>"` to `"#<Encoding:ASCII-8BIT (BINARY)>"`.
> ...
I agree the idea.
naruse (Yui NARUSE)
05:30 AM Bug #20203: `TestEnumerable` test failures with GCC 14
@alanwu do you have measurements with system qsort and ruby's qsort? ko1 (Koichi Sasada)
05:22 AM Feature #20160 (Rejected): rescue keyword for case expressions
According to the original intention, `rescue` clauses in `case` should only handle exceptions from the target expression, not those from the `case` bodies. But the clause position could confuse readers of the source of exceptions to hand... matz (Yukihiro Matsumoto)
05:12 AM Feature #20080: Introduce #bounds method on Range
What ever it is, at least it's not "bounds" especially when a range excludes end.
Maybe we seek another name (or behavior), if we really need to add the feature.
Matz.
matz (Yukihiro Matsumoto)
05:10 AM Feature #19117: Include the method owner in backtraces, not just the method name
I am OK with adding method owner. I am against removing quote signs.
Matz.
matz (Yukihiro Matsumoto)
05:05 AM Feature #16495: Inconsistent quotes in error messages
I am positive. I'd say go. We need to experiment anyway.
Matz.
matz (Yukihiro Matsumoto)
03:17 AM Revision eea7ce55 (git): Bump github/codeql-action from 3.24.0 to 3.24.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.0 to 3.24.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md...
dependabot[bot]
03:13 AM Misc #20193: DevMeeting-2024-02-14
[Feature #20187] Bundled gems at Ruby 3.4
* Should we test bundled gems at `make check`?
hsbt (Hiroshi SHIBATA)
02:40 AM Revision 1fc7c79d (git): [PRISM] Exclude additional tests from rebase
kddnewton (Kevin Newton)
02:19 AM Revision 8ec955d1 (git): [PRISM] Switch bootstraptest syntax error assertions to handle multiline
kddnewton (Kevin Newton)
02:19 AM Revision 5de3e305 (git): [PRISM] Add temporary test exclusions to get eval passing
kddnewton (Kevin Newton)
02:19 AM Revision adb2fbf6 (git): [PRISM] Prism/eval should handle file names provided
eightbitraptor (Matt V-H)
02:19 AM Revision f70a4a03 (git): [PRISM] yield is invalid inside eval
eightbitraptor (Matt V-H)
02:19 AM Revision 0285b533 (git): [PRISM] Don't rb_bug if redo/break/next used during eval
eightbitraptor (Matt V-H)
02:19 AM Revision edb755c8 (git): [PRISM] Add eval tests
eightbitraptor (Matt V-H)
02:19 AM Revision c2af974e (git): [PRISM] Build wrapper scopes for eval
- Don't use `build_options_scopes` We can inline the code here instead
and avoid allocating all the extra arrays.
- Create `pm_scope_node_t` objects with the correct local table, for the
scope node returned from the parser.
Co-Auth...
eightbitraptor (Matt V-H)
02:19 AM Revision fd3f776a (git): [PRISM] Use Prism for `eval` if enabled
eightbitraptor (Matt V-H)
01:42 AM Revision 068b19bd (git): [ruby/prism] Match up token name to CRuby
https://github.com/ruby/prism/commit/cf0369a5c7 kddnewton (Kevin Newton)
01:40 AM Revision c54622c6 (git): Fix a warning with USE_RUBY_DEBUG_LOG=1 on macOS
```
compiling ../thread.c
In file included from ../thread.c:263:
In file included from ../thread_pthread.c:2870:
../thread_pthread_mn.c:777:43: warning: format specifies type 'unsigned long' but the argument has type 'rb_hrtime_t' (aka '...
znz (Kazuhiro NISHIYAMA)
01:32 AM Revision 8e3eb8c9 (git): [PRISM] Fix up common.mk dependencies
kddnewton (Kevin Newton)
01:01 AM Revision 2fa051f6 (git): [ruby/prism] Validate multibyte characters in strings
Check that multibyte characters are valid using pm_strpbrk. We need
to add a couple of codepaths to ensure all encodings are covered.
Importantly this doesn't check regular expressions, because
apparently you're allowed to have invalid ...
kddnewton (Kevin Newton)

02/13/2024

09:12 PM Revision dc5191d6 (git): [ruby/prism] Fix KOI-8 char width check
https://github.com/ruby/prism/commit/06d3747c5b kddnewton (Kevin Newton)
08:57 PM Bug #20151: Can't build Ruby 3.1 on FreeBSD 14.0
shyouhei (Shyouhei Urabe) wrote in #note-1:
> This has to be related: https://github.com/freebsd/freebsd-src/commit/af3c78886fd8d4ca5eebdbe581a459a6f6d29d6a
> ...
I beg your pardon, but based on this, we'll need at least 3.2.0 to run o...
taq (Eustaquio Rangel)
08:54 PM Revision a5869e5d (git): [PRISM] Replace assert with RUBY_ASSERT
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:54 PM Revision 83c158fd (git): [PRISM] Replace assert with rb_bug
peterzhu2118 (Peter Zhu)
08:35 PM Revision a96110f7 (git): [ruby/prism] Convert more error messages to match specs
https://github.com/ruby/prism/commit/7987b7aa20 kddnewton (Kevin Newton)
08:30 PM Revision 4d3fc96b (git): Change dsymbol_alloc to use NEWOBJ_OF
peterzhu2118 (Peter Zhu)
08:25 PM Misc #20260: ISEQ flag for prism compiler
Ahh sorry again, but actually if we introduce `Thread::Backtrace::Location#iseq`, all of this can be done in Ruby, because we could make it:
```ruby
return nil unless Thread::Backtrace::Location === loc
if loc.iseq.to_a[4][:prism]...
kddnewton (Kevin Newton)
08:13 PM Misc #20260: ISEQ flag for prism compiler
Sorry to respond again, but in thinking about it, I think `Prism.node_for` might not be right. Maybe it should be `RubyVM::PrismSyntaxTree.of`, or something else under `RubyVM` because it is specific to CRuby. kddnewton (Kevin Newton)
06:58 PM Misc #20260: ISEQ flag for prism compiler
Yes, the user-facing part for iseq is only changing `RubyVM::InstructionSequence.to_a` to include `prism: true/false`.
For error highlight to know, we will either need to change `RubyVM::AST.of` to know that it is coming from prism or...
kddnewton (Kevin Newton)
06:30 PM Misc #20260: ISEQ flag for prism compiler
I'm okay to change the internal data structure because we can change them in future.
How to change the user facing interface? Changing only `to_a` format?
For example, errror_highlight needs to know the code which comes from.
Endo...
ko1 (Koichi Sasada)
08:10 PM Revision b1964a92 (git): [ruby/prism] Add code unit APIs to location
LSPs need this because the protocol dictates that you return code
units for offsets. None of our existing APIs provided that
information, and since we hid the source it's not nearly as useful
for them. Now they can pass an encoding direc...
kddnewton (Kevin Newton)
07:49 PM Revision 6261d4b4 (git): Fix use-after-move in Symbol#inspect
The allocation could re-embed `orig_str` and invalidate the data
pointer from RSTRING_GETMEM() if the string is embedded.
Found on CI, where the test introduced in 7002e776944 ("Fix
Symbol#inspect for GC compaction") recently failed.
S...
alanwu (Alan Wu)
07:49 PM Revision 5add999d (git): Comment about not marking RSYMBOL(obj)->fstr [ci skip]
alanwu (Alan Wu)
07:35 PM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
Making the timer thread lazily is in tasklist but not sure when we can make it.
ko1 (Koichi Sasada)
07:31 PM Bug #20090: Anonymous arguments are now syntax errors in unambiguous cases
@naruse Hi - I'm new around here. I was poking around this bug as it affects our codebase at work, and I think the wrong commit may have been flagged as the backport for this bug? Checking the Git tree, I don't see 596db9c1f486d6609a4e97... eliotp123 (Eliot Partridge)
07:29 PM Bug #20111: `defined?` returns `expression` for assignment operators combined with fully qualified constants
Just curious, who cares the difference? ko1 (Koichi Sasada)
07:08 PM Misc #20238: Use prism for mk_builtin_loader.rb
kddnewton (Kevin Newton) wrote in #note-8:
> You can pass `Prism.parse(code, version: "3.3.0")` and it will parse as if it were 3.3.0. I'm fine supporting older Ruby versions for this purpose.
(off-topic)
Oh, Prism supports multi-...
ko1 (Koichi Sasada)
07:02 PM Misc #20238: Use prism for mk_builtin_loader.rb
> Using prism gem it can be newer than the source code (prism gem for ruby 3.5 syntax to build ruby 3.4, for example)
You can pass `Prism.parse(code, version: "3.3.0")` and it will parse as if it were 3.3.0. I'm fine supporting older ...
kddnewton (Kevin Newton)
06:23 PM Misc #20238: Use prism for mk_builtin_loader.rb
I'm not negative to use Prism (or using parse.y) to make it to support newest syntax in builtins.
There are some concerns.
* Installing prism.gem requires bundler for BASERUBY (already commented)
* Using prism gem it can be newer than ...
ko1 (Koichi Sasada)
07:05 PM Feature #19905: Introduce `Queue#peek`
I feel it is natural that `to_a` returns `[]` immediately if there is no enqueued item.
(`#peek` is not clear on it)
ko1 (Koichi Sasada)
05:22 PM Feature #19905: Introduce `Queue#peek`
Seems like all the use cases so far would be as well if not better handled by `to_a`. Which I admit I hoped existed a few times when debugging code that uses `Queue`. Should also be relatively straightforward to implement. byroot (Jean Boussier)
02:59 PM Feature #19905: Introduce `Queue#peek`
I would like to provide another use case for `Queue#peek`. I'm using `Queue` in a project that's running commands prone to failures. I have a queue of commands, a worker and a monitor threads. The worker pops the commands, runs them in s... sidonath (Damir Zekic)
06:51 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
* As a MRI developer, I don't need loaded features (LF) and memory maps (MM) and it interrupts me to see the backtraces. In many cases they are not needed.
* Because it is easy to repro, in many cases.
* As a bug report receiver, it ca...
ko1 (Koichi Sasada)
03:54 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
I've received feedback that if we switch the default, no one would really use the full output mode, so we shall keep the current behavior for better bug reports. I agree that Ruby users (non-CRuby/C ext developers) won't run into crashes... osyoyu (Daisuke Aritomo)
06:49 PM Revision 21297293 (git): [DOC] Doc compliance (#9944)
burdettelamar (Burdette Lamar)
06:37 PM Bug #20230 (Closed): Fix crash when passing large keyword splat to method accepting keywords and keyword splat
Fixed by commit:c20e819e8b04e84a4103ca9a036022543459c213 jeremyevans0 (Jeremy Evans)
06:26 PM Feature #20257: Rearchitect Ripper
Do you think the proposal has impact for user code? ko1 (Koichi Sasada)
06:26 PM Revision 29d04bb0 (git): [ruby/prism] Introduce `version: "3.4.0"`
This is effectively an alias for "latest" right now. In the future
it will change to be its own enum value.
https://github.com/ruby/prism/commit/2c86036022
kddnewton (Kevin Newton)
06:15 PM Revision 246005f5 (git): [ruby/prism] Fix an error when specifying the parsing version `latest`
This PR fixes following error when using `version: latest` argument.
```console
$ ruby -rprism -e "p Prism.parse('-> { it }', version: 'latest')"
-e:1:in `parse': invalid version: latest (ArgumentError)
p Prism.parse('-> { it }', versi...
koic (Koichi ITO)
06:14 PM Feature #19117: Include the method owner in backtraces, not just the method name
Oops, indeed.
It seems a bit easier to me to read with the quotes:
```
/Users/byroot/.gem/ruby/3.2.2/gems/activerecord-7.1.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:30:in 'ActiveRecord::Foo::Bar#checkin': wro...
Eregon (Benoit Daloze)
06:02 PM Feature #19117: Include the method owner in backtraces, not just the method name
It should be:
```
/Users/byroot/.gem/ruby/3.2.2/gems/activerecord-7.1.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:30:in ActiveRecord::Foo::Bar#checkin: wrong number of arguments (given 0, expected 1) (Argument...
ko1 (Koichi Sasada)
10:58 AM Feature #19117: Include the method owner in backtraces, not just the method name
I think without quotes, while it looks clean for a simple example of all short paths it can be slower/harder to find the method name with more realistic cases.
For example in the case in https://bugs.ruby-lang.org/issues/19117#note-32, ...
Eregon (Benoit Daloze)
10:28 AM Feature #19117: Include the method owner in backtraces, not just the method name
> Do we need quotes?
I'm not attached to them, and I suppose removing them would also solve https://bugs.ruby-lang.org/issues/16495 / https://bugs.ruby-lang.org/issues/17107.
byroot (Jean Boussier)
09:42 AM Feature #19117: Include the method owner in backtraces, not just the method name
Do we need quotes?
From comment #28
```
./test.rb:10:in `Integer#+': String can't be coerced into Integer (TypeError)
from ./test.rb:10:in `block in Concrete.oops'
from ./test.rb:3:in `Abstract#oops'
from ./test.rb:16:in `...
ko1 (Koichi Sasada)
06:10 PM Revision a93f4e3d (git): byteslice can return nil so we have to push an "unknown" value
tenderlovemaking (Aaron Patterson)
05:16 PM Revision fdaef7a7 (git): YJIT: Fixup kwrest stack base
I was a little rushed and didn't notice that it was still using the
final stack size even though we don't grow the stack before kwrest
handling anymore. Oh well, we got a new test out of it.
Fix: cbdabd5890
alanwu (Alan Wu)
04:53 PM Bug #20234: Segfault parsing begin statement inside method definition receiver
I made an attempt to fix this at https://github.com/ruby/ruby/pull/9948. I added all the tests mentioned here. I'm not familiar with this code so I'm not 100% that this is right but in looking at `lldb` I noticed that the `expr` returned... eileencodes (Eileen Uchitelle)
04:20 PM Revision c35fea85 (git): Specialize String#byteslice(a, b) (#9939)
* Specialize String#byteslice(a, b)
This adds a specialization for String#byteslice when there are two
parameters.
This makes our protobuf parser go from 5.84x slower to 5.33x slower
```
Comparison:
decode upstream (53738 bytes): ...
tenderlovemaking (Aaron Patterson)
04:05 PM Revision a71d1ed8 (git): Fix memory leak when parsing invalid hash symbol
For example:
10.times do
100_000.times do
eval('{"\xC3": 1}')
rescue EncodingError
end
puts `ps -o rss= -p #{$$}`
end
Before:
32032
48464
66112
84192
100592
117520
1...
peterzhu2118 (Peter Zhu)
04:05 PM Revision e4272fd2 (git): Avoid allocation when passing no keywords to anonymous kwrest methods
Thanks to the new semantics from [ruby-core:115808], `**nil` is now
equivalent to `**{}`. Since the only thing one could do with anonymous
keyword rest parameter is to delegate it with `**`, nil is just as good
as an empty hash. Using ni...
alanwu (Alan Wu)
04:05 PM Misc #20193: DevMeeting-2024-02-14
* [Feature #20249] Introduce a backtrace-only mode for rb_bug() (osyoyu)
* The current crash report printed by rb_bug() is extremely long
* Terminals get quickly cluttered when developing C exts or CRuby itself
* Introduce a swit...
osyoyu (Daisuke Aritomo)
06:51 AM Misc #20193: DevMeeting-2024-02-14
* [Feature #20244] Show the conflicting another chdir block
* `Dir.chdir` is warning when in another chdir block.
```
$ ruby -e 'Dir.chdir {' -e 'Dir.chdir("/")' -e '}'
-e:2: warning: conflicting chdir during another ...
nobu (Nobuyoshi Nakada)
01:50 AM Misc #20193: DevMeeting-2024-02-14
* [Bug #20225] Inconsistent behavior of regex matching for a regex has a null loop (makenowjust)
* Onigmo has strange behavior for null (empty) loops with captures.
* Null-loop check depends on capture status.
* This behavior cau...
make_now_just (Hiroya Fujinami)
04:04 PM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
seems like
https://github.com/ruby/ruby/pull/9385
https://bugs.ruby-lang.org/issues/20085
sorah (Sorah Fukumori)
01:27 PM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
Coincidentally, I'm pretty sure that code is useless: https://github.com/ruby-gnome/pkg-config/pull/25. byroot (Jean Boussier)
01:12 PM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
The interesting parts from the upstream ticket:
```
Segmentation fault at 0x0067ffffb37006c0
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux]
-- Control frame information -----------------------------------------------...
byroot (Jean Boussier)
11:39 AM Bug #20264 (Feedback): Segfault in Enumerator#next while installing RMagick on M1 Mac
I raised a bug at RMagick, they said to go to pkg-config. I raised a bug there, and they said to raise it here. Hopefully this is the right place...
https://github.com/ruby-gnome/pkg-config/issues/24
Simplest reproduction steps (al...
andy@andyjeffries.co.uk (Andy Jeffries)
03:26 PM Revision 4e481c77 (git): [PRISM] Refactors to use more locations
kddnewton (Kevin Newton)
03:26 PM Revision fe31b682 (git): [PRISM] Stop passing parser around so much
kddnewton (Kevin Newton)
03:26 PM Revision e967e062 (git): [PRISM] Switch to locations for PM_ALIAS_GLOBAL_VARIABLE_NODE, PM_ALIAS_METHOD_NODE, and PM_AND_NODE
kddnewton (Kevin Newton)
03:26 PM Revision 76ab017f (git): [PRISM] Brace style in prism_compile.c
kddnewton (Kevin Newton)
02:39 PM Revision d357d50f (git): [PRISM] Fix lambda start column number
Co-Authored-By: Kevin Newton <kddnewton@gmail.com> Nikita Vasilevsky
02:37 PM Revision b662edf0 (git): [PRISM] Combine hash compilation between hashes and keywords
kddnewton (Kevin Newton)
02:37 PM Revision c0e12142 (git): [PRISM] Fix compilation of hash with multiple merges
kddnewton (Kevin Newton)
02:09 PM Revision dedca318 (git): [ruby/prism] Fix `full_name` for constant path targets
https://github.com/ruby/prism/commit/84c10f3a2d Vinicius Stock
01:36 PM Revision 2f0f9523 (git): [ruby/irb] Fix SourceFinder's constant evaluation issue
(https://github.com/ruby/irb/pull/869)
Currently, if the signature's constant part is not defined, a NameError
would be raised.
```
irb(main):001> show_source Foo
(eval):1:in `<top (required)>': uninitialized constant Foo (NameError)
...
st0012 (Stan Lo)
01:33 PM Revision ec26786b (git): [ruby/irb] Refactor eval_path and `SourceFinder::Source`
(https://github.com/ruby/irb/pull/870)
* Assign `@eval_path` through `irb_path=` method
This simplifies the original caching logic for the `eval_path` method
and makes it easier to understand.
* Refactor SourceFinder::Source
https://...
st0012 (Stan Lo)
11:11 AM Revision b5327647 (git): extract-gems before nmake in Visual Studio workflow
* BTW this workflow is the only one doing extract-extlibs before building.
It seems building with Visual Studio and nmake has significant differences.
Eregon (Benoit Daloze)
11:11 AM Revision 9204416b (git): Revert "Try `nmake install` before `nmake test-spec`"
This reverts commit d4a6c6521aa1a5208939a2cd981a13ca01a07d2a. Eregon (Benoit Daloze)
10:04 AM Bug #20263 (Closed): Backport https://github.com/ruby/ruby/pull/9498 to Ruby 3.3
mame (Yusuke Endoh)
09:09 AM Bug #20263 (Closed): Backport https://github.com/ruby/ruby/pull/9498 to Ruby 3.3
Pull request: https://github.com/ruby/ruby/pull/9805 anton-stepanof (Anton Stepanov)
09:57 AM Revision e848848b (git): [ruby/reline] C for vi mode
(https://github.com/ruby/reline/pull/472)
https://github.com/ruby/reline/commit/d197be7c44
Otávio Schwanck dos Santos
09:38 AM Misc #20254: Add Launchable into Ruby CI
Some more background:
1, I heard the introduction of Launchable service with some committers by my former colleague (as described in #5) in closed meeting.
2. On the meeting, we've learn the service and we found the task is enough sm...
ko1 (Koichi Sasada)
09:01 AM Bug #19991: rb_register_postponed_job async-signal-unsafety causes crash in GC
I've also documented how to workaround this issue in the Datadog Ruby profiler in https://docs.datadoghq.com/profiler/profiler_troubleshooting/ruby/#segmentation-faults-in-gc_finalize_deferred-in-ruby-versions-26-to-32 although we're sti... ivoanjo (Ivo Anjo)
07:11 AM Revision 01d4d5b8 (git): Remove duplicate path-ignore entries [ci skip]
nobu (Nobuyoshi Nakada)
06:47 AM Bug #20183 (Closed): `erb/escape.so` cannot be loaded when `--with-static-linked-ext`
nobu (Nobuyoshi Nakada)
06:28 AM Bug #20262: Regex mismatch between Ruby 3.2.2 and 3.3.0
I accidentally left the "()\1" in the original post, but it should not be there and I don't see a way to change it. The code example should be:
```ruby
str = "------------abcdefg------------#3895912"
re = /\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+...
weilandia (Nick Weiland)
06:28 AM Bug #20262 (Closed): Regex mismatch between Ruby 3.2.2 and 3.3.0
This might be a duplicate of https://bugs.ruby-lang.org/issues/20098, but I cannot make it match with the backref so maybe not.
Below example matches in 3.2.2 but not in 3.3.0
``` ruby
str = "------------abcdefg------------#389591...
weilandia (Nick Weiland)
06:19 AM Bug #20098: Wrong regexp match in ruby 3.2 and 3.3
Looks to be the same bug, but I cannot make it match with the backref. Below example matches in 3.2.2 but not in 3.3.0
``` ruby
str = "------------abcdefg------------#3895912"
re = /()\1\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
re.match?(st...
weilandia (Nick Weiland)
01:56 AM Revision 038189b6 (git): Use dedicated parser_string hash function
Define and use `rb_parser_str_hash` for `rb_parser_string_t`
instead of `rb_str_hash` to remove dependency on `rb_str_hash`.
yui-knk (Kaneko Yuichiro)
01:27 AM Revision 785aa47c (git): [rubygems/rubygems] Update SPDX license list as of 2024-02-08
https://github.com/rubygems/rubygems/commit/ec3de95d79 License Update
01:07 AM Revision 1f0fa318 (git): Fix typo in asan section of building_ruby.md docs
s/copmiler-rt/compiler-rt/ kjtsanaktsidis (KJ Tsanaktsidis)
12:53 AM Bug #20246 (Closed): Unexpected behavior for Regexp in Subexpression Calls on Ruby 3.3.0
Applied in changeset commit:git|4a6384ed9358e8fb8464f6e37efb5477182f01db.
----------
Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897)
make_now_just (Hiroya Fujinami)
12:53 AM Revision 4a6384ed (git): Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897)
make_now_just (Hiroya Fujinami)

02/12/2024

11:40 PM Revision 8a345860 (git): Warn duplication of `__ENCODING__` on the hash
```
$ ruby -e 'h = { __ENCODING__ => 1, __ENCODING__ => 2 }'
-e:1: warning: key #<Encoding:UTF-8> is duplicated and overwritten on line 1
```
yui-knk (Kaneko Yuichiro)
09:52 PM Revision f41d8f38 (git): Comply with doc guide
burdettelamar (Burdette Lamar)
09:39 PM Revision cbdabd58 (git): YJIT: Fix kwrest calls setting SP with uninit values
We did stack_push() and then saved the SP without writing to the slots
of the new values first, which caused the GC to mark uninitialized
values. Should fix crashes like
https://github.com/ruby/ruby/actions/runs/7877298133/job/21493179294
alanwu (Alan Wu)
08:34 PM Feature #20261 (Assigned): Add symbol synonyms for '' and nil for IO method line separator arguments
[Feature 20261] For IO's line-oriented read methods, there are two special values for the line-separator argument `sep`; I'm proposing to add (user-friendlier) symbol synonyms for those values:
- `:paragraph` as synonym for `''` (rea...
burdettelamar (Burdette Lamar)
08:08 PM Misc #20193: DevMeeting-2024-02-14
* [Misc #20260] ISEQ flag for prism compiler (kddnewton)
* Would it be alright to add a flag to iseqs to say it came from the prism compiler? We need this to support error highlight.
kddnewton (Kevin Newton)
04:07 AM Misc #20193: DevMeeting-2024-02-14
* [Feature #20257] Rearchitect Ripper
* I want to have a chance to explain new Ripper's architecture.
* In short, Ripper uses semantic value stack to manage Ruby Object returned by Ripper callback methods then Ripper can't execute ...
yui-knk (Kaneko Yuichiro)
08:07 PM Revision 0536b2ce (git): Replace assert with RUBY_ASSERT in weakmap.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 80700f45 (git): Replace assert with RUBY_ASSERT in thread_sync.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 9a2b6922 (git): Replace assert with RUBY_ASSERT in rational.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 3ed59627 (git): Replace assert with RUBY_ASSERT in range.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision fd87259a (git): Replace assert with RUBY_ASSERT in numeric.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 5644d90d (git): Replace assert with RUBY_ASSERT in load.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision ea92374b (git): Replace assert with RUBY_ASSERT in id_table.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 436191ab (git): Replace assert with RUBY_ASSERT in enum.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 11ffee88 (git): Replace assert with RUBY_ASSERT in darray.h
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 7256e38f (git): Replace assert with RUBY_ASSERT in complex.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision de7a29ef (git): Replace assert with RUBY_ASSERT in compile.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 6906e502 (git): Replace assert with RUBY_ASSERT in bignum.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision 1228751a (git): Replace assert with RUBY_ASSERT in array.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Revision ac38f259 (git): Replace assert with RUBY_ASSERT in string.c
assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug.
peterzhu2118 (Peter Zhu)
08:07 PM Misc #20260: ISEQ flag for prism compiler
The PR for this work is here: https://github.com/ruby/ruby/pull/9934. kddnewton (Kevin Newton)
08:06 PM Misc #20260 (Closed): ISEQ flag for prism compiler
In order to support error highlight, there's needs to be a way to tell which compiler generated an instruction sequence (compile.c or prism_compile.c). That's because when the file is reparsed to find the node based on the node id, we ne... kddnewton (Kevin Newton)
08:03 PM Revision bb845ae8 (git): [ruby/prism] Fix typo in class variable name error
https://github.com/ruby/prism/commit/5f6c45f6fb kddnewton (Kevin Newton)
08:01 PM Revision 4f1a4665 (git): More on auto-link (#9907)
burdettelamar (Burdette Lamar)
07:51 PM Misc #20254: Add Launchable into Ruby CI
Conflict of interest: I work at Red Hat, being paid by Red Hat. I am a committer in the Ruby project. In the project, one of my interests and caring is about maintaining the CI services and infra, because the downstream Ruby RPM pakcage ... jaruga (Jun Aruga)
07:51 PM Revision 84d8dbe7 (git): Enable redefinition check for rbinc methods
nobu (Nobuyoshi Nakada)
07:48 PM Revision 1395838e (git): [PRISM] Check full lines for invalid UTF-8
kddnewton (Kevin Newton)
06:57 PM Revision 2131d04f (git): YJIT: Add support for `**kwrest` parameters
Now that `...` uses `**kwrest` instead of regular splat and
ruby2keywords, we need to support these type of methods to
support `...` well.
alanwu (Alan Wu)
06:48 PM Misc #20259 (Open): Proposal to add "ruby --irb" and / or "ruby --start-irb" to start irb (interactive ruby) via ruby (bin/ruby), via the commandline
This issue proposes to add:
a) a commandline flag to bin/ruby that allows the user to start irb,
and
b) allow the user to make use of ruby to start irb, via the commandline (thus, the
proposal's a) and b) are naturally connecte...
rubyFeedback (robert heiler)
06:38 PM Revision 7af97dc7 (git): [ruby/irb] Powerup show_source by enabling RubyVM.keep_script_lines
(https://github.com/ruby/irb/pull/862)
* Powerup show_source by enabling RubyVM.keep_script_lines
* Add file_content field to avoid reading file twice while show_source
* Change path passed to eval, don't change irb_path.
* Encapsula...
tompng (tomoya ishida)
06:02 PM Revision e878bbd6 (git): Allow `foo(**nil, &block_arg)`
Previously, `**nil` by itself worked, but if you add a block argument,
it raised a conversion error. The presence of the block argument
shouldn't change how keyword splat works.
See: <https://bugs.ruby-lang.org/issues/20064>
alanwu (Alan Wu)
06:01 PM Revision e08c1284 (git): [ruby/prism] Error messages closer to CRuby
https://github.com/ruby/prism/commit/19ffa0b980 kddnewton (Kevin Newton)
05:56 PM Revision e4d3e652 (git): YJIT: Prefer an overloaded cme if available (#9913)
YJIT: Prefer an overloaded cme if applicable k0kubun (Takashi Kokubun)
05:54 PM Revision 94bc5ad3 (git): [ruby/prism] ruby_parser translator
https://github.com/ruby/prism/commit/1925b970c7 kddnewton (Kevin Newton)
05:31 PM Bug #20253 (Closed): `Proc.dup` and `Proc#clone` don't preserve finalizers
Applied in changeset commit:git|de1a586ecc2ee7f465f0c0a69291054136a3a819.
----------
proc.c: get rid of `CLONESETUP`
[Bug #20253]
All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod`
and `Binding` always had their own speci...
byroot (Jean Boussier)
11:30 AM Bug #20253: `Proc.dup` and `Proc#clone` don't preserve finalizers
https://github.com/ruby/ruby/pull/9926 fixes all the issues above and a few others. byroot (Jean Boussier)
11:28 AM Bug #20253: `Proc.dup` and `Proc#clone` don't preserve finalizers
We just found yet another issue with @etienne:
```ruby
>> Proc.new { }.freeze.clone
(irb):1:in `initialize_copy': can't modify frozen Proc: #<Proc:0x000000011e3a96b0 (irb):1> (FrozenError)
from (irb):1:in `initialize_clone'
from...
byroot (Jean Boussier)
05:31 PM Revision de1a586e (git): proc.c: get rid of `CLONESETUP`
[Bug #20253]
All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod`
and `Binding` always had their own specific clone and dup routine.
This caused various discrepancies with how other objects behave
on `dup` and `clone. [Bug #...
byroot (Jean Boussier)
04:56 PM Revision c04782c2 (git): YJIT: Adjust the padding size of counts automatically (#9912)
k0kubun (Takashi Kokubun)
04:55 PM Revision b9f25b10 (git): YJIT: Fix insufficient type guards (#9911)
k0kubun (Takashi Kokubun)
04:53 PM Bug #20258: Socket::IPV6_RECVERR for IPv6
I have created a PR to fix the error: https://github.com/ruby/ruby/pull/9930 marek22k (Marek Küthe)
12:04 PM Bug #20258 (Closed): Socket::IPV6_RECVERR for IPv6
Hello,
I am currently trying to receive ICMP error messages in Ruby. For IPv4 there is the `Socket::IP_RECVERR` flag, which can be set, but not for IPv6 (not found unter https://docs.ruby-lang.org/en/3.2/Socket/Constants.html for exam...
marek22k (Marek Küthe)
04:27 PM Revision c3886c12 (git): [ruby/prism] Fix unary not location
https://github.com/ruby/prism/commit/861689f6d1 kddnewton (Kevin Newton)
03:57 PM Revision 16b39072 (git): [ruby/prism] Move Prism::RipperCompat to Prism::Translation::Ripper
https://github.com/ruby/prism/commit/c0331abe4f noahgibbs (Noah Gibbs)
03:57 PM Revision 78deba1a (git): [ruby/prism] Unary not name location
https://github.com/ruby/prism/commit/78190d2999 kddnewton (Kevin Newton)
03:48 PM Revision 739eec04 (git): [DOC] `:stopdoc:` directive must be on its own line (#9916)
nobu (Nobuyoshi Nakada)
02:43 PM Revision 190a55d2 (git): Drill newobj cache instead of ractor
peterzhu2118 (Peter Zhu)
01:31 PM Revision d4a6c652 (git): Try `nmake install` before `nmake test-spec`
Eregon (Benoit Daloze)
12:54 PM Feature #16828: Introduce find patterns
An easy way to understand the "backtracking" of find pattern is it works like `each_slice(n)` and doesn't actually backtrack.
So its performance is linear to the number of elements of the array being matched.
https://github.com/ruby/ru...
Eregon (Benoit Daloze)
11:28 AM Revision 06995eb4 (git): [ruby/irb] Fix exit! command warning and method behavior
(https://github.com/ruby/irb/pull/868)
* Fix exit! command warning and method behavior
* Remove arg(0) from Kernel.exit and Kernel.exit!
https://github.com/ruby/irb/commit/372bc59bf5
tompng (tomoya ishida)
10:33 AM Revision 39788e58 (git): Try prepare-gems instead of extract-gems
* `make install` uses prepare-gems. Eregon (Benoit Daloze)
10:33 AM Revision ffe1a68b (git): Skip spec failing on i686
Eregon (Benoit Daloze)
10:05 AM Revision d15301d4 (git): Exclude a problematic spec when run in CRuby via make test-spec until fixed
Eregon (Benoit Daloze)
09:56 AM Revision b19d2409 (git): Update to ruby/spec@ce834ad
Eregon (Benoit Daloze)
09:55 AM Revision 90a746d2 (git): Always extract bundled gems before running ruby/spec
* Fixes https://github.com/ruby/ruby/commit/44d74f22c8da3c13aa5363769418e2f5fd29f65a#r138276491 Eregon (Benoit Daloze)
09:27 AM Misc #20242: `--parser=prism_without_warning`
Oh right, that makes a lot more sense.
I wonder if it could be a configure flag or so to disable that warning, until it's stable enough to remove the warning entirely.
Eregon (Benoit Daloze)
08:46 AM Revision 7fc89a92 (git): Use Node for `warn_duplicate_keys` st_table keys
yui-knk (Kaneko Yuichiro)
07:50 AM Revision 4f7de1dc (git): Adjust styles [ci skip]
nobu (Nobuyoshi Nakada)
06:48 AM Revision c20e819e (git): Fix crash when passing large keyword splat to method accepting keywords and keyword splat
The following code previously caused a crash:
```ruby
h = {}
1000000.times{|i| h[i.to_s.to_sym] = i}
def f(kw: 1, **kws) end
f(**h)
```
Inside a thread or fiber, the size of the keyword splat could be much smaller
and still cause a cra...
jeremyevans (Jeremy Evans)
05:49 AM Revision 93accfdf (git): Fix [BUG] unknown node for NODE_ENCODING
It should be `return` instead of `break`, otherwise
`[BUG] dump_node: unknown node: NODE_ENCODING` happens.
yui-knk (Kaneko Yuichiro)
03:29 AM Bug #19970: Eval leaks callcache and callinfo objects on arm32 (linux)
I suspect this is the same underlying issue as #19907, but on wider platforms it only occurs with kwargs. jhawthorn (John Hawthorn)
12:46 AM Feature #20257 (Closed): Rearchitect Ripper
# Abstract
Rearchitect Ripper to provide whole semantic analysis support for Ripper and improve maintainability of Ripper.
This rearchitecture is achieved by modifying Lrama parser generator.
# Background and problem
Ripper is ...
yui-knk (Kaneko Yuichiro)

02/11/2024

11:57 PM Bug #20248 (Closed): Ruby does not build with ASAN support with clang
I updated the ASAN docs in https://github.com/ruby/ruby/commit/697ade7bda5942e372c8d6ba450dd534f0cf186f
I'm sorry for causing you to waste your time on this! Also, thanks again for the tip r.e. clang head - I included that in the docs...
kjtsanaktsidis (KJ Tsanaktsidis)
11:52 PM Revision 697ade7b (git): Update ASAN docs to reflect the current state of things
I don't really think ASAN works well at all on any version of Ruby from
before https://bugs.ruby-lang.org/issues/20001 was landed. Update the
docs to clarify what works, and what does not work.
Also there's no need to compile at `-O0`; ...
KJ Tsanaktsidis
11:51 PM Bug #20256 (Closed): Make required ASAN settings "built in" without the need for ASAN_OPTIONS env var
Applied in changeset commit:git|1d467f2255112f9e712d5d9aa6f2cd0a102fb56e.
----------
Burn default ASAN options into the built Ruby
* We always need use_sigaltstack=0 because Ruby registers sigaltstack
handlers
* We also need to disab...
Anonymous
10:25 PM Bug #20256 (Closed): Make required ASAN settings "built in" without the need for ASAN_OPTIONS env var
Currently, to compile Ruby head with ASAN, you need to export the env var `ASAN_OPTIONS=use_sigaltstack=0:detect_leaks=0`. We require `use_sigaltstack=0` because Ruby registers signal handlers with its own sigaltstack, and we require `de... kjtsanaktsidis (KJ Tsanaktsidis)
11:51 PM Revision 1d467f22 (git): Burn default ASAN options into the built Ruby
* We always need use_sigaltstack=0 because Ruby registers sigaltstack
handlers
* We also need to disable leak detection (unless RUBY_FREE_AT_EXIT is
set - I might experiment later with automatically enabling leak
detection if RUBY_...
KJ Tsanaktsidis
04:55 PM Revision c9006ddb (git): [ruby/optparse] [DOC] Add description of OptionParser#define_by_keywords
https://github.com/ruby/optparse/commit/451dea51a0 nobu (Nobuyoshi Nakada)
04:09 PM Revision a63a0c24 (git): Win32: Include stdio.h for `printf`
nobu (Nobuyoshi Nakada)
04:08 PM Revision bbccabe6 (git): [ruby/optparse] [DOC] Add missing documents
https://github.com/ruby/optparse/commit/33956ce93f nobu (Nobuyoshi Nakada)
02:41 PM Revision a3ceb691 (git): [PRISM] Fix error handling in `pm_parse_prism`
Following changes made in ruby/prism#2365 this implements error handling
for when `pm_string_mapped_init` returns `false`.
Related: ruby/prism#2207
eileencodes (Eileen Uchitelle)
01:00 PM Revision 90fe1b44 (git): Win32: Use `TARGET_OS` for word-size
It is derived from `_WIN64` pre-defined macro, at `-osname-` in
win32/setup.mak.
nobu (Nobuyoshi Nakada)
11:55 AM Revision 603392b8 (git): Win32: Use prototype
nobu (Nobuyoshi Nakada)
11:03 AM Revision ea2ea74a (git): Win32: Copy coroutine no longer exists
At 42130a64f02294dc8025af3a51bda518c67ab33d, it has been replaced with
pthread implementation.
nobu (Nobuyoshi Nakada)
10:43 AM Revision c77f736b (git): Win32: Fix pre-defined macros for platforms
Use `_WIN64` for word-size, `_M_AMD64` for CPU-specific feature. nobu (Nobuyoshi Nakada)
10:34 AM Revision aa36e44c (git): Win32: Define `HAVE_INTTYPES_H`
Suppress redefinition warnings, inttypes.h has been provided as well
as stdint.h since `_MSC_VER` 1600 (= Visual C++ 10.0 = Visual Studio
2010).
```
C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(123): warni...
nobu (Nobuyoshi Nakada)
05:17 AM Revision 5c4657f8 (git): [ruby/irb] Polish the exit! command and its tests
(https://github.com/ruby/irb/pull/867)
* Remove IRB.irb_exit! method
It's not necessary to introduce a new method just for the exit! command
at this moment.
* Rename ExitForcedAction to ForceExit
* Move force exit tests to a dedicate...
st0012 (Stan Lo)
02:08 AM Bug #20252 (Closed): Incompatibility with the `-h` option in optparse on Ruby 3.4.0dev
nobu (Nobuyoshi Nakada)
 

Also available in: Atom