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. -
09:53 PM Revision 00bda2aa (git): [ruby/prism] Fix up GCC analyzer
- https://github.com/ruby/prism/commit/2e8bc17528
-
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... -
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... -
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...
-
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... -
03:18 PM Revision 104100f5 (git): Split path.rb from mkrunnable.rb
-
02:28 PM Revision 3dccb716 (git): Use `defined?(yield)` and `SIZED_ENUMERATOR`
- Prefer built-in features over method calls that may be overridden.
-
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... -
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... -
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? -
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.
-
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... -
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?
-
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... -
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 -
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. ... -
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. -
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... -
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
```
... -
08:27 AM Revision df63e5be (git): [DOC] Functions for `Time#initialize` implementation
-
08:21 AM Revision 6e4bfb35 (git): Fix an argument name
-
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. -
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,... -
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
02/16/2024
-
11:16 PM Revision 075b6ac8 (git): YJIT: Remove unused counters
-
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 ... -
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... -
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'` -
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... -
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.
... -
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... -
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
... -
09:34 PM Bug #19395 (Closed): Process forking within non-main Ractor hits rb_bug()
-
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.
-
09:33 PM Bug #19365 (Closed): Ractors can access non-shareable values through enumerators
-
07:25 PM Bug #19365: Ractors can access non-shareable values through enumerators
- This has since been fixed, please close. Thanks.
-
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... -
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.
-
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 %>`
-
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... -
08:41 PM Revision 170058ca (git): [ruby/prism] Ignore incorrect files
- https://github.com/ruby/prism/commit/d1094ac232
-
08:41 PM Revision 13301587 (git): [ruby/prism] Fix block_pass for []=
- https://github.com/ruby/prism/commit/bf79206220
-
08:41 PM Revision 429338a2 (git): [ruby/prism] Accept newlines before ) in patterns
- https://github.com/ruby/prism/commit/e5ffb7bdf8
-
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. -
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... -
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... -
07:47 PM Revision fbe63047 (git): Fix PRISM build dependencies
-
07:34 PM Revision 6f4bb638 (git): [ruby/prism] Builtins
- https://github.com/ruby/prism/commit/851f2571ff
-
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
- 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... -
06:27 PM Revision 24645cff (git): Removed duplicated variable in push_mark_stack
-
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... -
05:50 PM Revision 8e4d1ff5 (git): [ruby/prism] Disallow numbered parameters within given scopes
- https://github.com/ruby/prism/commit/a218a0f265
-
05:50 PM Revision e801ccb3 (git): [ruby/prism] More rescue and ensure; constant handling
- https://github.com/ruby/prism/commit/207f579e70
-
05:50 PM Revision 7d3e889b (git): [ruby/prism] Move visit methods into a Ripper Compiler
- https://github.com/ruby/prism/commit/44c4dc5268
-
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... -
05:11 PM Misc #20242 (Closed): `--parser=prism_without_warning`
-
04:56 PM Revision 8414c26f (git): [PRISM] Make prism compiler warning experimental
-
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... -
04:44 PM Revision 4411cdee (git): Fix typo in gc.c
-
04:34 PM Bug #20271: Issue with moving embedded string across ractors
- PR here: https://github.com/ruby/ruby/pull/9993
-
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... -
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`.
-
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... -
03:49 PM Revision ff4f5c0c (git): [ruby/prism] Style/renaming
- https://github.com/ruby/prism/commit/53763d67d5
-
03:35 PM Revision 04e7c574 (git): [ruby/prism] Fix pattern with constant, (, and newlines
- https://github.com/ruby/prism/commit/d69d1b6f17
- 03:33 PM Revision f4f57e11 (git): [ruby/prism] Add warning for assignments to literals in conditionals
- https://github.com/ruby/prism/commit/ee87ed08fb
-
03:15 PM Revision c5f22b5b (git): Make all fields in AST movable
- 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
-
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 ... -
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. -
09:16 AM Revision fbc29ce0 (git): Avoid to fail with race condition
-
08:59 AM Revision 0301473f (git): Fixed dependencies list format
-
08:57 AM Revision e3f452e5 (git): Adjust indent
-
08:28 AM Revision 9f4d5eb1 (git): Try to find gemspec from `.bundle/specifications
-
08:28 AM Revision 38cc9dac (git): We can test bundled gems without default gems installation
-
08:28 AM Revision 62ab9335 (git): Try to test net-ftp examples again
-
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. -
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
-
07:13 AM Revision bc7266c5 (git): Bump the required BASERUBY version to 3.0 (#9976)
-
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)
... -
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... -
06:26 AM Revision 81752d20 (git): Abort when streaming code from stdin with Prism
- Do not read STDIN as a String instance.
-
06:26 AM Revision a64e93a8 (git): Use ID without cache and fix conversion of offset
-
06:26 AM Revision e0d068aa (git): Extract `process_options_global_setup`
-
06:26 AM Revision 839ccad2 (git): Extract functions depending on `--parser` option
-
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.
-
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.
... -
05:41 AM Revision 785b7ee1 (git): Rename the annocheck job
- gcc-11 is not the point of this job.
-
05:38 AM Revision cf16a704 (git): [rubygems/rubygems] Relax regexp for Ruby 3.3 or before
- https://github.com/rubygems/rubygems/commit/89d37e670c
-
05:38 AM Revision 7b568b1f (git): [rubygems/rubygems] bin/rubocop -a
- https://github.com/rubygems/rubygems/commit/f79a6a004d
-
05:36 AM Revision 0ae4d9c1 (git): Let annocheck workflow run only test-annocheck (#9990)
- The test of other tasks seems duplicated.
-
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... - 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... -
02:20 AM Revision 574312de (git): Extract `show_help` function
-
02:20 AM Revision 7ac8d3d6 (git): Dispose AST before exit by yydebug
-
02:12 AM Revision 1c41dc40 (git): [ruby/forwardable] Relax regexp for Ruby 3.3 or before
- https://github.com/ruby/forwardable/commit/42b50c2111
-
12:38 AM Revision 9d81741f (git): Pop the operand at the end
-
12:38 AM Revision cdc07236 (git): Update a comment on spill_temps()
-
12:38 AM Revision bda4192e (git): Remove duplicated spill_temps()
-
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...
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... -
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...
-
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?
-
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...
-
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 -
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...
-
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-... -
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... -
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 - 08:51 PM Revision bf5cc9ef (git): Update default gems list at e7f7a85285b52a290be880f634244e [ci skip]
-
08:50 PM Revision e7f7a852 (git): [PRISM] Sync prism version bump
-
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. ... -
08:36 PM Revision 87cc2fd0 (git): [ruby/prism] Fix up invalid syntax
- https://github.com/ruby/prism/commit/8e3aad9e27
- 08:28 PM Revision 49ddbbf3 (git): [ruby/prism] Fix opening loc for an empty symbol
- https://github.com/ruby/prism/commit/241d0169da
-
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
- 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 -
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... -
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... -
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.
-
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... -
05:19 PM Revision 4d1b3a2b (git): Unset STR_SHARED when setting string to embed
-
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... -
04:48 PM Revision e779c194 (git): Remove used str field in struct binwrite_arg
- 04:41 PM Revision a6bcd3aa (git): [ruby/prism] Fix debug logging
- https://github.com/ruby/prism/commit/01af2d4f39
- 04:40 PM Revision a0217025 (git): [ruby/prism] Fix parsing rescue modifier
- https://github.com/ruby/prism/commit/b7407ae3c0
-
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... -
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
-
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
... -
11:43 AM Revision a7718c91 (git): Do not show an anonymous class as a receiver
-
11:34 AM Revision 0da12fa3 (git): Added singleton for prime
-
11:34 AM Revision 18da80e1 (git): Skip failing examples at Ruby 3.2+
-
11:34 AM Revision 4aef8752 (git): Surpressing constant redefinition warning
-
11:34 AM Revision 1e426bd5 (git): Exclude net-ftp examples because it has dependency issue
-
11:34 AM Revision 8ba053d3 (git): Re-enabled old bundled gems
-
11:06 AM Revision 8f926cb8 (git): No need to extract bundled gems before test-spec
- * Since https://github.com/ruby/ruby/pull/9977
-
10:51 AM Feature #20265: Deprecate and remove rb_newobj and rb_newobj_of
- +1
-
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.
-
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... -
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...
-
10:16 AM Feature #20187 (Closed): Bundled gems at Ruby 3.4
- I separated them with https://github.com/ruby/ruby/pull/9977
-
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... -
10:11 AM Revision 8f2c2316 (git): ruby-spec: Accept the receiver in backtraces
-
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... -
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]. -
09:57 AM Revision 6958e88f (git): Fix task dependency
-
09:57 AM Revision 4a00fcbd (git): Rename and restructured net/ftp and net/http examples
-
09:57 AM Revision fa7529af (git): Move examples related core extension feature by Bigdecimal to under the library/bigdecimal
-
09:57 AM Revision 121dfb38 (git): Surpressing constant redefinition warning
-
09:57 AM Revision 1e6fffae (git): Added new ruby/spec task for bundled gems
-
09:57 AM Revision 76d322b5 (git): Disable to run for bundled gems in test-spec
-
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] -
09:42 AM Revision 92eab382 (git): Update the error message format in bundler
-
09:42 AM Revision d5c16ddf (git): Temporarily update the error message format in prism
-
09:42 AM Revision d9234ba8 (git): Temporarily allow failures in some bundled gems
-
09:42 AM Revision 8259f35a (git): ruby-spec: Accept both a backtick and a single quote in error messages
-
09:42 AM Revision 25d74b95 (git): Do not include a backtick in error messages and backtraces
- [Feature #16495]
-
09:25 AM Misc #20254: Add Launchable into Ruby CI
- > Subsequently, test updates will be reflected by updating this comment.
Thank you! -
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 ...
-
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... -
08:01 AM Revision 926277bf (git): s/ therefor/therefore/
-
08:01 AM Revision aa6d0bc0 (git): s/ocurs/occurs/
-
08:01 AM Revision 30385244 (git): s/bellow/below/
-
08:01 AM Revision 317c1da6 (git): s/Direcive/Directive/
-
08:01 AM Revision 8b061eeb (git): s/enocding/encoding/
-
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... -
04:39 AM Revision c57880e6 (git): Show the invalid source encoding in messages
-
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... -
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... -
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)`.
02/14/2024
-
11:57 PM Revision beeee548 (git): YJIT: Replace perf_fn! with a simpler macro (#9971)
-
10:44 PM Revision 06ad00ad (git): Lrama v0.6.3
-
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. -
10:44 PM Revision d24be39d (git): Only check constant leaks by default for `make test-spec`
- * See https://github.com/ruby/ruby/pull/9548
-
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. -
09:25 PM Revision 28709d59 (git): Remove unused argument in cc_table_free
-
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.
-
08:52 PM Revision ae8db4b6 (git): Remove unused function rb_cc_table_free
- 08:49 PM Revision c9ed59c2 (git): Update yjit/src/codegen.rs
- Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
-
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 -
08:37 PM Revision fadb7d41 (git): Remove duplicated include in weakmap.c
-
08:29 PM Revision 9933377c (git): [PRISM] Correctly hook up line numbers for eval
-
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... -
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... -
06:43 PM Revision 1d3b3067 (git): Move rb_class_allocate_instance from gc.c to object.c
-
06:24 PM Revision fc2c128e (git): [PRISM] Set eval encoding based on string encoding
-
05:09 PM Revision 71777312 (git): YJIT: Add --yjit-perf=codegen option (#9957)
-
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... -
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... -
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 -
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. -
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...
-
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... -
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. -
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 ... -
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!
-
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... -
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:...
-
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.)
-
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, ... -
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... -
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... -
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 -
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 -
03:47 PM Revision 65f54355 (git): [DOC] Doc compliance (#9955)
-
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... -
03:02 PM Misc #20242: `--parser=prism_without_warning`
- That works for me, thanks!
-
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... - 02:59 PM Revision f1136e73 (git): Update default gems list at 12b0e67fec2cc59a6f7da4a4bfbd52 [ci skip]
-
02:58 PM Revision 12b0e67f (git): [PRISM] Sync to latest prism
-
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?)
-
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. -
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. -
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 -
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 -
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... -
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.
-
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... -
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?
-
07:54 AM Bug #20218: aset/masgn/op_asgn with keyword arguments
- OK, prohibit keyword arguments in aset.
Matz.
-
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.
-
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... -
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... -
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.
-
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.
-
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... -
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... -
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 ... -
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. -
05:30 AM Bug #20203: `TestEnumerable` test failures with GCC 14
- @alanwu do you have measurements with system qsort and ruby's qsort?
-
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...
-
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.
-
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.
-
05:05 AM Feature #16495: Inconsistent quotes in error messages
- I am positive. I'd say go. We need to experiment anyway.
Matz.
- 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... -
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`?
-
02:40 AM Revision 1fc7c79d (git): [PRISM] Exclude additional tests from rebase
-
02:19 AM Revision 8ec955d1 (git): [PRISM] Switch bootstraptest syntax error assertions to handle multiline
-
02:19 AM Revision 5de3e305 (git): [PRISM] Add temporary test exclusions to get eval passing
-
02:19 AM Revision adb2fbf6 (git): [PRISM] Prism/eval should handle file names provided
-
02:19 AM Revision f70a4a03 (git): [PRISM] yield is invalid inside eval
-
02:19 AM Revision 0285b533 (git): [PRISM] Don't rb_bug if redo/break/next used during eval
-
02:19 AM Revision edb755c8 (git): [PRISM] Add eval tests
-
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... -
02:19 AM Revision fd3f776a (git): [PRISM] Use Prism for `eval` if enabled
-
01:42 AM Revision 068b19bd (git): [ruby/prism] Match up token name to CRuby
- https://github.com/ruby/prism/commit/cf0369a5c7
-
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 '... -
01:32 AM Revision 8e3eb8c9 (git): [PRISM] Fix up common.mk dependencies
-
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 ...
02/13/2024
-
09:12 PM Revision dc5191d6 (git): [ruby/prism] Fix KOI-8 char width check
- https://github.com/ruby/prism/commit/06d3747c5b
-
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... -
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. -
08:54 PM Revision 83c158fd (git): [PRISM] Replace assert with rb_bug
-
08:35 PM Revision a96110f7 (git): [ruby/prism] Convert more error messages to match specs
- https://github.com/ruby/prism/commit/7987b7aa20
-
08:30 PM Revision 4d3fc96b (git): Change dsymbol_alloc to use NEWOBJ_OF
-
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]... -
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.
-
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... -
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... -
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... -
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... -
07:49 PM Revision 5add999d (git): Comment about not marking RSYMBOL(obj)->fstr [ci skip]
-
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.
-
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...
-
07:29 PM Bug #20111: `defined?` returns `expression` for assignment operators combined with fully qualified constants
- Just curious, who cares the difference?
-
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-... -
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 ... -
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 ... -
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) -
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.
-
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...
-
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... -
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...
-
06:49 PM Revision 21297293 (git): [DOC] Doc compliance (#9944)
-
06:37 PM Bug #20230 (Closed): Fix crash when passing large keyword splat to method accepting keywords and keyword splat
- Fixed by commit:c20e819e8b04e84a4103ca9a036022543459c213
-
06:26 PM Feature #20257: Rearchitect Ripper
- Do you think the proposal has impact for user code?
-
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 -
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... -
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... -
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... -
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, ... -
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. -
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 `... -
06:10 PM Revision a93f4e3d (git): byteslice can return nil so we have to push an "unknown" value
-
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 -
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...
-
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): ... -
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... -
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... -
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... -
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 ... -
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... -
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 -
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.
-
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 -----------------------------------------------... -
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... -
03:26 PM Revision 4e481c77 (git): [PRISM] Refactors to use more locations
-
03:26 PM Revision fe31b682 (git): [PRISM] Stop passing parser around so much
-
03:26 PM Revision e967e062 (git): [PRISM] Switch to locations for PM_ALIAS_GLOBAL_VARIABLE_NODE, PM_ALIAS_METHOD_NODE, and PM_AND_NODE
-
03:26 PM Revision 76ab017f (git): [PRISM] Brace style in prism_compile.c
- 02:39 PM Revision d357d50f (git): [PRISM] Fix lambda start column number
- Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
-
02:37 PM Revision b662edf0 (git): [PRISM] Combine hash compilation between hashes and keywords
-
02:37 PM Revision c0e12142 (git): [PRISM] Fix compilation of hash with multiple merges
- 02:09 PM Revision dedca318 (git): [ruby/prism] Fix `full_name` for constant path targets
- https://github.com/ruby/prism/commit/84c10f3a2d
-
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)
... -
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://... -
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. -
11:11 AM Revision 9204416b (git): Revert "Try `nmake install` before `nmake test-spec`"
- This reverts commit d4a6c6521aa1a5208939a2cd981a13ca01a07d2a.
-
10:04 AM Bug #20263 (Closed): Backport https://github.com/ruby/ruby/pull/9498 to Ruby 3.3
-
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
- 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 -
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... -
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...
-
07:11 AM Revision 01d4d5b8 (git): Remove duplicate path-ignore entries [ci skip]
-
06:47 AM Bug #20183 (Closed): `erb/escape.so` cannot be loaded when `--with-static-linked-ext`
-
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+... -
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... -
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... -
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`. - 01:27 AM Revision 785aa47c (git): [rubygems/rubygems] Update SPDX license list as of 2024-02-08
- https://github.com/rubygems/rubygems/commit/ec3de95d79
-
01:07 AM Revision 1f0fa318 (git): Fix typo in asan section of building_ruby.md docs
- s/copmiler-rt/compiler-rt/
-
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) -
12:53 AM Revision 4a6384ed (git): Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897)
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
``` -
09:52 PM Revision f41d8f38 (git): Comply with doc guide
-
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 -
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... -
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. -
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 ... -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
08:07 PM Misc #20260: ISEQ flag for prism compiler
- The PR for this work is here: https://github.com/ruby/ruby/pull/9934.
-
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...
-
08:03 PM Revision bb845ae8 (git): [ruby/prism] Fix typo in class variable name error
- https://github.com/ruby/prism/commit/5f6c45f6fb
-
08:01 PM Revision 4f1a4665 (git): More on auto-link (#9907)
-
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 ...
-
07:51 PM Revision 84d8dbe7 (git): Enable redefinition check for rbinc methods
-
07:48 PM Revision 1395838e (git): [PRISM] Check full lines for invalid UTF-8
-
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. -
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... -
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... -
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> -
06:01 PM Revision e08c1284 (git): [ruby/prism] Error messages closer to CRuby
- https://github.com/ruby/prism/commit/19ffa0b980
-
05:56 PM Revision e4d3e652 (git): YJIT: Prefer an overloaded cme if available (#9913)
- YJIT: Prefer an overloaded cme if applicable
-
05:54 PM Revision 94bc5ad3 (git): [ruby/prism] ruby_parser translator
- https://github.com/ruby/prism/commit/1925b970c7
-
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... -
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.
-
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... -
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 #... -
04:56 PM Revision c04782c2 (git): YJIT: Adjust the padding size of counts automatically (#9912)
-
04:55 PM Revision b9f25b10 (git): YJIT: Fix insufficient type guards (#9911)
-
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
-
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... -
04:27 PM Revision c3886c12 (git): [ruby/prism] Fix unary not location
- https://github.com/ruby/prism/commit/861689f6d1
-
03:57 PM Revision 16b39072 (git): [ruby/prism] Move Prism::RipperCompat to Prism::Translation::Ripper
- https://github.com/ruby/prism/commit/c0331abe4f
-
03:57 PM Revision 78deba1a (git): [ruby/prism] Unary not name location
- https://github.com/ruby/prism/commit/78190d2999
-
03:48 PM Revision 739eec04 (git): [DOC] `:stopdoc:` directive must be on its own line (#9916)
-
02:43 PM Revision 190a55d2 (git): Drill newobj cache instead of ractor
-
01:31 PM Revision d4a6c652 (git): Try `nmake install` before `nmake test-spec`
-
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... -
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 -
10:33 AM Revision 39788e58 (git): Try prepare-gems instead of extract-gems
- * `make install` uses prepare-gems.
-
10:33 AM Revision ffe1a68b (git): Skip spec failing on i686
-
10:05 AM Revision d15301d4 (git): Exclude a problematic spec when run in CRuby via make test-spec until fixed
-
09:56 AM Revision b19d2409 (git): Update to ruby/spec@ce834ad
-
09:55 AM Revision 90a746d2 (git): Always extract bundled gems before running ruby/spec
- * Fixes https://github.com/ruby/ruby/commit/44d74f22c8da3c13aa5363769418e2f5fd29f65a#r138276491
-
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. -
08:46 AM Revision 7fc89a92 (git): Use Node for `warn_duplicate_keys` st_table keys
-
07:50 AM Revision 4f7de1dc (git): Adjust styles [ci skip]
-
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... -
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. -
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.
-
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 ...
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... - 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`; ... -
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... -
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...
- 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_... -
04:55 PM Revision c9006ddb (git): [ruby/optparse] [DOC] Add description of OptionParser#define_by_keywords
- https://github.com/ruby/optparse/commit/451dea51a0
-
04:09 PM Revision a63a0c24 (git): Win32: Include stdio.h for `printf`
-
04:08 PM Revision bbccabe6 (git): [ruby/optparse] [DOC] Add missing documents
- https://github.com/ruby/optparse/commit/33956ce93f
-
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 -
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. -
11:55 AM Revision 603392b8 (git): Win32: Use prototype
-
11:03 AM Revision ea2ea74a (git): Win32: Copy coroutine no longer exists
- At 42130a64f02294dc8025af3a51bda518c67ab33d, it has been replaced with
pthread implementation. -
10:43 AM Revision c77f736b (git): Win32: Fix pre-defined macros for platforms
- Use `_WIN64` for word-size, `_M_AMD64` for CPU-specific feature.
-
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... -
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... -
02:08 AM Bug #20252 (Closed): Incompatibility with the `-h` option in optparse on Ruby 3.4.0dev