Activity
From 05/01/2024 to 05/07/2024
05/07/2024
-
11:25 PM Feature #20476: Add Enumerator#eager that returns self, like Enumerator::Lazy#lazy
- Added a PR https://github.com/ruby/ruby/pull/10739
-
11:24 PM Feature #20476 (Open): Add Enumerator#eager that returns self, like Enumerator::Lazy#lazy
- I'd like to propose adding an Enumerator#eager method. We currently have Enumerator#lazy, Enumerator::Lazy#lazy, Enumerator::Lazy#eager, but not Enumerator#eager.
I like that you can always call `enum.lazy` with any type of Enumerator... -
08:50 PM Bug #20421: String#index and String#byteindex don't clear `$~` when offset > size (or bytesize)
- We should also add a test so this doesn't regress on 3.3 & master, that seems fine as a `ruby_bug` spec in ruby/spec.
-
08:48 PM Bug #20421: String#index and String#byteindex don't clear `$~` when offset > size (or bytesize)
- Given this is a clear bug (which can break programs' logic) I think it's good to backport.
-
04:57 PM Bug #20421 (Closed): String#index and String#byteindex don't clear `$~` when offset > size (or bytesize)
- The issue doesn't affect 3.3 and master. It appears fixed by commit:9dcdffb8bf8a3654fd78bf1a58b30c8e13888a7a. If you would like the fix backported to 3.2, please respond.
-
08:45 PM Bug #20475 (Feedback): RJIT `and' NoMatchingPatternError
- Given its experimental nature, it's somewhat intended that RJIT's assembler doesn't cover some patterns. It's for developers to try some stuff, so feel free to open a pull request to add support for that instruction encoding, or just swi...
-
08:30 PM Bug #20475 (Feedback): RJIT `and' NoMatchingPatternError
- I try use RJIT for testing of Rails application:
```bash
$ RUBYOPT="--rjit" bin/bundle exec rake test
Started with run options --seed 63595
...
/home/ukolovda/.rvm/rubies/ruby-3.3.1/lib/ruby/3.3.0/ruby_vm/rjit/assembler.rb:124:in ... -
08:44 PM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- I think always having spaces would help readability.
If we don't want to change that, then how about simply quoting these symbols that need it? -
07:01 PM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- I submitted a pull request for the most backwards compatible change, which only uses spaces around `=>` for symbols ending in `[!?*=<]`: https://github.com/ruby/ruby/pull/10737
-
06:32 PM Bug #20474 (Closed): Heredoc common leading whitespace calculation question
- I think I understand that <<~ will strip common leading whitespace from all lines. However, I am confused by the following example:
```ruby
eval("<<~H\n \nh\n \nH\n")
```
In this example, the heredoc has 3 lines: " \n... -
06:24 PM Revision b4b39a61 (git): [PRISM] Enable test_methoddef_endless_command
-
06:24 PM Revision 2bfc4875 (git): [PRISM] Enable more passing tests
-
06:03 PM Revision 21b94ae0 (git): [ruby/prism] Extend error message for unterminated HEREDOC
- https://github.com/ruby/prism/commit/c1b07ec11b
-
05:22 PM Revision dcbe0edb (git): [ruby/prism] Better error message for contents of hash pattern
- https://github.com/ruby/prism/commit/60dbf60f48
-
05:15 PM Revision 5d448468 (git): [ruby/prism] Disallow implicit hash in array pattern
- https://github.com/ruby/prism/commit/bdd509c6ac
-
04:44 PM Revision ef3803ed (git): Ignore the result of pthread_kill in ubf_wakeup_thread
- After an upgrade to Ruby 3.3.0, I experienced reproducible production crashes
of the form:
[BUG] pthread_kill: No such process (ESRCH)
This is the only pthread_kill call in Ruby. The result of pthread_kill was
previously ignored in Rub... -
04:31 PM Revision 8ec1c416 (git): [ruby/prism] Specific error message for symbol literal with interpolation in hash patterns
- https://github.com/ruby/prism/commit/31f0201bae
-
04:31 PM Revision 8cc733df (git): [ruby/prism] Add error for invalid implicit local writes
- https://github.com/ruby/prism/commit/ab21882561
-
02:56 PM Revision eb8efa42 (git): [ruby/prism] shareable_constant_value line warnings
- https://github.com/ruby/prism/commit/8c984b6922
-
01:48 PM Feature #19979: Allow methods to declare that they don't accept a block via `&nil`
- True, OTOH the trade-offs made in #15554 like every method using `super` considered to "accept a block" might not be suitable for static analysis.
And it's also fairly easy to find whether a method uses `yield` and has a block parameter... -
12:57 PM Feature #19979: Allow methods to declare that they don't accept a block via `&nil`
- This already exists for `**nil`, as in:
```ruby
irb(main):001> def foo(**nil); end
=> :foo
irb(main):002> method(:foo).parameters
=> [[:nokey]]
irb(main):003>
```
I think adding this would be really nice from any static persp... -
12:17 PM Feature #19979: Allow methods to declare that they don't accept a block via `&nil`
- From https://bugs.ruby-lang.org/issues/20436#note-12:
@ufuk wrote:
> Can we at least get runtime introspection for methods that should not be accepting a block? Something like: `method(:foo).parameters #=> [:noblock]` maybe?
`#param... -
01:25 PM Bug #20468: Segfault on safe navigation in for target
- @nobu it's the same possibilities in `for`, `rescue`, and multi-write. As in:
```ruby
for (foo, @foo, @@foo, $foo, Foo, Foo::Foo, foo.foo, foo[foo]) in bar; end
begin; rescue => foo; end
begin; rescue => @foo; end
begin; rescue ... -
11:57 AM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Misc #20432] Proposal for workflow changes related to teeny releases (ufuk)
* Can we discuss the proposals to make branch maintainers' lives easier, so that we can target 6-7 teeny releases per stable version per year?
* [Feature ... -
05:58 AM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Feature #20437] Could be the licensing conditions be made less ambiguous?
* [Bug #20438][Bug #20439] String format "%\n" and "%\0" does not raise format error
* "%\n" has been treated as "%%" since commit:554b989ba162 , probably Tue... - 06:59 AM Revision e1e6b497 (git): Update bundled gems list as of 2024-05-07
-
05:36 AM Revision 80adf6a1 (git): [rubygems/rubygems] Accept WASI as an OS name in Gem::Platform
- https://github.com/rubygems/rubygems/commit/1209d3c6b0
-
04:03 AM Bug #20465: parse.y adds an extra empty string to the AST
- tenderlovemaking (Aaron Patterson) wrote in #note-2:
> It's not a problem for the compiler (of course), but a problem for the language server use case. Users didn't write `""` there, so consumers of the AST will have to detect and hand... -
04:01 AM Feature #15554: warn/error passing a block to a method which never use a block
- I want the message to be separated for caller and callee, to tag jump.
Current:
> /home/runner/.rubies/ruby-head/lib/ruby/gems/3.4.0+0/gems/test-unit-3.6.2/lib/test/unit/fixture.rb:284: warning: the block passed to 'priority_setup' d... - 03:37 AM Revision 7c8903d0 (git): Bump actions/checkout from 4.1.4 to 4.1.5
- Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http... - 02:55 AM Revision e9356bec (git): Bump actions/checkout in /.github/actions/setup/directories
- Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http...
05/06/2024
-
11:06 PM Revision 481e16d5 (git): [PRISM] Support for compiling ractor constant path writes
-
11:06 PM Revision eeba1581 (git): [PRISM] Support for compiling ractor constant writes
-
06:58 PM Feature #20205: Enable `frozen_string_literal` by default
- While your concern is absolutely valid, I don't think it's much of a problem in practice. There is pretty much an infinite amount of code out there, so I don't think there is any way really to discount it, but after having migrated a gig...
-
06:00 PM Feature #20205: Enable `frozen_string_literal` by default
- I am a bit late to the party but nobody seems to have raised a concern I have.
If a chilled string appears to be `frozen?` then a consumer may proceed to use the string expecting it to remain frozen, such as for a cache key. If that s... -
06:56 PM Bug #20473 (Assigned): Ractor array/hash literals
- There are many optimizations in place in the compiler to ensure Ruby doesn't overflow the stack when an array or hash literal has many values. For example:
```ruby
puts RubyVM::InstructionSequence.compile(<<~RUBY).disasm
[#{Array.ne... -
05:39 PM Bug #20472 (Assigned): Ractor support for ** into hash literal
- ```ruby
# shareable_constant_value: experimental_copy
a = { "foo" => "bar" }
A = { **a }
```
In this example, Ruby fails an assertion and crashes. I think we should either provide support for this, or we should explicitly provide ... -
05:06 PM Revision 00b1553d (git): [rubygems/rubygems] Remove more unnecessary compatibility code
- https://github.com/rubygems/rubygems/commit/00d91f141b
-
05:06 PM Revision 5c018cdd (git): [rubygems/rubygems] Remove unnecessary compatibility code
- https://github.com/rubygems/rubygems/commit/160a515412
-
04:09 PM Revision e2769295 (git): [PRISM] Enable test_unexpected_fraction
-
04:09 PM Revision d4fdc459 (git): [ruby/prism] Unexpected fractional component error messages
- https://github.com/ruby/prism/commit/e893bc2230
-
04:09 PM Revision 5e6bb085 (git): [PRISM] Enable passing forwarding parameter tests
-
04:09 PM Revision f92d82ef (git): [ruby/prism] More specific error for conflicting forwarding parameters
- https://github.com/ruby/prism/commit/1c3b48fedb
-
03:12 PM Revision 14d40082 (git): [PRISM] Enable passing test_brace_after_literal_argument test
-
03:09 PM Revision 5909186d (git): [ruby/prism] Fix up error message for unexpected {
- https://github.com/ruby/prism/commit/80dbe035ba
-
02:56 PM Revision 88d74a48 (git): [DOC] Fix typos in WeakMap docs
-
02:28 PM Revision 1df1edc0 (git): YJIT: Fix comment and counter in rb_yjit_invalidate_ep_is_bp() (#10722)
- `mem::take` substitutes an empty instance which makes `jit.ep_is_bp()`
return false. -
01:29 PM Feature #17944: Remove Socket.gethostbyaddr and Socket.gethostbyname
- The commit for the deprecated documents was added in 2017.
Deprecation document for gethostbyname,gethostbyaddr.
https://github.com/ruby/ruby/commit/b5c6fc856100b17b6f20e6e792a02ee7e33306bc
Date: Sat Oct 21 13:13:02 2017 +0000
The co... -
09:07 AM Misc #20436: DevMeeting at RubyKaigi 2024
- - [Feature #20415] Precompute literal String hash code during compilation (byroot / etienne)
- Simple optimization that closes most of the performance gap between symbol indexed hashes and string indexed ones for string literals.
-... - 04:51 AM Revision a5cb8c8c (git): [DOC] rewrite inject doc (#10009)
- Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Dennis Dashkevich <dskecse@gmail.com> - 02:51 AM Revision 2a807bcd (git): Bump ruby/setup-ruby from 1.175.1 to 1.176.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.175.1 to 1.176.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/1198b074305f9356bd56dd4b311757cc0d...
05/05/2024
-
11:22 PM Revision 95ae1233 (git): [ruby/did_you_mean] Move development dependencies to Gemfile
- https://github.com/ruby/did_you_mean/commit/24c06dd509
-
05:24 PM Bug #20168 (Closed): Process won't exit when Ractor.select waiting a Ractor
- Applied in changeset commit:git|6747fbe77dcac26a457bb1386f55f3c27321040a.
----------
Fix interrupts during Ractor.select
Fixes [Bug #20168] -
03:20 PM Bug #18995: IO#set_encoding sometimes set an IO's internal encoding to the default external encoding
- @jeremyevans0, did you ever take a look at this issue when I referenced it in #18899? The behavior is unchanged in Ruby 3.3.
The script above prints the following:
```
external encoding: #<Encoding:UTF-8> internal encoding: #<... -
03:14 PM Revision 6747fbe7 (git): Fix interrupts during Ractor.select
- Fixes [Bug #20168]
-
01:37 PM Bug #20471: Problem creating a file on a windows share and copy it afterwards
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> budiljak (Benjamin Udiljak) wrote:
> ...
Yes. I even tried 5 seconds, but it didn't help neither. - 11:12 AM Revision 5398a468 (git): Update default gems list at 93cffcf961daa58b5bc0b3e9194b79 [ci skip]
-
11:11 AM Revision 93cffcf9 (git): [ruby/irb] Bump version to v1.13.1
- (https://github.com/ruby/irb/pull/951)
https://github.com/ruby/irb/commit/66318d0a34 -
10:44 AM Revision e973f9cb (git): [ruby/irb] Clarify that the context is IRB context
- (https://github.com/ruby/irb/pull/950)
https://github.com/ruby/irb/commit/8cde57f55a -
08:00 AM Revision 7d42010f (git): [ruby/openssl] read: don't clear buffer when nothing can be read
- To be consistent with regular Ruby IOs:
```ruby
r, _ = IO.pipe
buf = "garbage".b
r.read_nonblock(10, buf, exception: false) # => :wait_readable
p buf # => "garbage"
```
Ref: https://github.com/redis-rb/redis-client/commit/98b8944460a11... -
07:22 AM Revision fca6c55a (git): [ruby/reline] Remove not implemented variables
- (https://github.com/ruby/reline/pull/699)
https://github.com/ruby/reline/commit/328699e901 -
07:09 AM Revision d679afe9 (git): [ruby/reline] Add name defined in readline to completion key
- bindings C-i C-p C-n
(https://github.com/ruby/reline/pull/698)
https://github.com/ruby/reline/commit/1314787bbb
05/04/2024
-
04:37 PM Bug #20471: Problem creating a file on a windows share and copy it afterwards
- budiljak (Benjamin Udiljak) wrote:
> I also tried `f.fsync` , `f.fdatasync` , `f.flush`, but it didn't help.
Have you tried `sleep 1` (or more seconds) after the `File.open` block?
-
02:59 PM Bug #20471 (Open): Problem creating a file on a windows share and copy it afterwards
- Hi,
in my Rails application I have the requirement to create a file and copy it to another place on the same windows share. But if I write the file with `File` class and try to copy it with `FileUtils.cp` it hangs indefinitely withou... -
04:31 PM Revision b181ba74 (git): [ruby/prism] Use `version: 3.3.1` against `Translation::Parser`
- Follow up https://github.com/ruby/prism/pull/2760.
This PR updates the `Translation::Parser` to use version 3.3.1 when the version 3.3 is specified.
The Parser gem is structured to support the latest patch versions, hence this aligns wi... -
03:45 PM Feature #20469: Add a JSON addition for Enumerator::ArithmeticSequence
- I just realized I filed my PR in the wrong place since JSON is a gem. (Sorry for the noise.) I closed the previous PR and opened one in the JSON gem repo. https://github.com/flori/json/pull/583
-
11:29 AM Bug #20468: Segfault on safe navigation in for target
- Agree with @Eregon. The code should be more or less equivalent to:
```ruby
for temp in [1, 2, 3]
foo&.bar = temp
end
```
...which is totally valid and `foo&.bar =` is a no-op (semantically). -
10:35 AM Bug #20468: Segfault on safe navigation in for target
- IOW I think the segfault could be fixed here without changing what is valid syntax.
And given this segfault probably affects older versions too there it seems better to fix the segfault than to change syntax. -
10:34 AM Bug #20468: Segfault on safe navigation in for target
- Given `for foo.bar in []; end` is valid and does `for.bar = element`,
I think `for foo&.bar in []; end` could simply do `for&.bar = element` which is the same as `for.bar = element unless foo.nil?` (`NIL_P(foo)` to be precise).
Chang... -
08:49 AM Bug #20468: Segfault on safe navigation in for target
- I found that a `for` loop variable is looser than I expected.
Not only a safe navigation call, even a constant can be used.
I don't think a constant is useful as a loop variable that is expected to be re-assigned.
https://github.com... -
03:52 AM Bug #20468: Segfault on safe navigation in for target
- Hmmm, may be possible to interpret that code like as `foo&.then {|recv| for recv.bar in []; end}`.
Just an idea. -
03:50 AM Bug #20468: Segfault on safe navigation in for target
- I can't imagine what it should do when `foo == nil`.
Should be a syntax error probably? -
09:03 AM Revision 96710a31 (git): [ruby/irb] Change debug test workaround only enabled when output is
- tty
(https://github.com/ruby/irb/pull/949)
https://github.com/ruby/irb/commit/3f231b8622 -
03:32 AM Revision bd42f089 (git): [ruby/irb] Improve help message for no meta commands
- (https://github.com/ruby/irb/pull/948)
* Remove unnecessary code from command tests
* Improve help message for no meta commands
1. Add placeholder values for both command category and description
2. Update help command's output to giv... -
03:22 AM Revision fb2ea708 (git): [ruby/irb] Use flag instead of caller for `debug`'s binding.irb
- check
(https://github.com/ruby/irb/pull/947)
https://github.com/ruby/irb/commit/4a4d7a4279 -
02:59 AM Revision cf74ff71 (git): Change return value of `gets` function to be `rb_parser_string_t *` instead of `VALUE`
- This change reduces parser's dependency on ruby object.
05/03/2024
-
10:08 PM Revision a510175e (git): [ruby/irb] Avoid raising errors while running help for custom
- commands
(https://github.com/ruby/irb/pull/944)
* Avoid raising errors while running help for custom commands
Raising an error from the help command is not a pleasure for the
end user, even if the command does not define any attributes... -
09:34 PM Revision 70db150f (git): [ruby/irb] Fix typos in test/irb/command/test_custom_command.rb
- (https://github.com/ruby/irb/pull/945)
https://github.com/ruby/irb/commit/f2b5fc192f -
07:35 PM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Feature #20470] Extract Ruby's Garbage Collector (peterzhu2118)
* Splits GC into two files `gc.c` and `gc_impl.c`.
* `gc.c` only contains code not specific to Ruby GC.
* `gc_impl.c` contains the implementation of Ruby's GC.
... -
07:30 PM Feature #20470 (Closed): Extract Ruby's Garbage Collector
- # Extract Ruby's Garbage Collector
## Background
As described in [[Feature #20351]](https://bugs.ruby-lang.org/issues/20351), we are working on the ability to plug alternative garbage collector implementations into Ruby. Our goal i... -
07:14 PM Revision d4a6d0c1 (git): [ruby/prism] Prism::Location#adjoin
- https://github.com/ruby/prism/commit/a298db68e3
-
07:11 PM Feature #20469 (Third Party's Issue): Add a JSON addition for Enumerator::ArithmeticSequence
- There's a JSON addition for `Range` but one wasn't added for `Enumerator::ArithmeticSequence` when it was introduced. This little PR adds a JSON addition for ArithmeticSequence for parity with a normal Range. https://github.com/ruby/ruby...
-
06:37 PM Revision 7a49edcf (git): [ruby/prism] Prism::Node#tunnel
- https://github.com/ruby/prism/commit/0bf5d651da
-
06:15 PM Revision c631679b (git): [PRISM] Disallow &. in MLHS
-
06:14 PM Revision 1af2dead (git): [ruby/prism] Disallow *a&.x=0
- https://github.com/ruby/prism/commit/624fdf74bd
- 06:10 PM Revision 4fbb2081 (git): [ruby/prism] Create specialized `ASCIISource` with asciionly optimizations
- https://github.com/ruby/prism/commit/40993166a8
-
06:09 PM Revision 31361aec (git): [ruby/prism] Disallow safe navigation in a call target node
- https://github.com/ruby/prism/commit/b1917adac7
-
05:32 PM Revision 31c69698 (git): [PRISM] Enable passing test for **nil
-
05:32 PM Revision 2368dab1 (git): [ruby/prism] Disallow **nil after keyword parameters
- https://github.com/ruby/prism/commit/5beeae076f
-
05:11 PM Revision 461d6d44 (git): [PRISM] Enable RubyVM tests for prism
-
05:08 PM Bug #20468 (Closed): Segfault on safe navigation in for target
- ```ruby
for foo&.bar in []; end
``` -
05:01 PM Revision 56672c8b (git): [PRISM] Enable passing tests for index expressions
-
05:01 PM Revision 7caeff2b (git): [ruby/prism] Disallow keywords and blocks in index expressions
- https://github.com/ruby/prism/commit/e950dc1e83
-
04:34 PM Revision b6625d38 (git): [DOC] Fix the description about the timing finalizers will be called
-
04:31 PM Bug #20465: parse.y adds an extra empty string to the AST
- mame (Yusuke Endoh) wrote in #note-1:
> How would this be a problem?
> ...
It's not a problem for the compiler (of course), but a problem for the language server use case. Users didn't write `""` there, so consumers of the AST will ha... -
04:15 PM Revision 91485d7d (git): Adjust indent [ci skip]
-
04:02 PM Revision 97654bee (git): [ruby/prism] Remove deprecated #child usage
- https://github.com/ruby/prism/commit/14d9b431e2
-
03:50 PM Bug #20464: Redundant returns are unreachable in coverage
- In that case this can probably be closed.
-
03:26 PM Bug #20464: Redundant returns are unreachable in coverage
- If the parser does not remove the NODE_RETURN, the compiler can detect the line event, so I think it will be automatically fixed. In fact, I tried [nobu's patch](https://github.com/ruby/ruby/pull/10642) and it fixed this problem on my ma...
-
12:23 PM Bug #20464: Redundant returns are unreachable in coverage
- It's a little different. In that one the issue is the parser, in this one the issue is the compiler. Even if the node isn't eliminated from the AST, there will still likely need to be a fix in the compiler.
-
12:04 AM Bug #20464: Redundant returns are unreachable in coverage
- Is this the same issue as #20457?
-
03:49 PM Bug #20467 (Closed): Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
-
01:43 PM Bug #20467: Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
- I've changed it to be the following since https://github.com/ruby/ruby/pull/10716.
```
irb(main):001> Prism.parse(%q(Bar::Foo)).value
=>
@ ProgramNode (location: (1,0)-(1,8))
├── locals: []
└── statements:
@ StatementsNode ... -
03:12 PM Revision 281df1e4 (git): [rubygems/rubygems] Remove `Gem::Specification#mark_version`
- This gets in the middle if we ever start allowing to build as if using a
different RubyGems version than the one being run.
This could be useful to make `gem rebuild` a little more usable, and
it's already done by Bundler specs which al... -
03:11 PM Revision 0948b6a5 (git): [PRISM] Use new constant path structure
-
03:11 PM Revision 5758e456 (git): [ruby/prism] Change ConstantPathNode#child to ConstantPathNode#{name,name_loc}
- This has been requested for a long time, and I'm finally doing it
now. Unfortunately this is a breaking change for all of the APIs.
I've added in a Ruby method for `#child` that is deprecated so that
existing usage doesn't break, but fo... -
01:12 PM Revision 1d51e929 (git): [ruby/prism] Assume eval context for ruby_parser and ripper
- https://github.com/ruby/prism/commit/e4d6984892
-
12:53 PM Revision 32b1dea5 (git): [ruby/prism] Assume an eval context for `Prism::Translation::Parser`
- This is similar to https://github.com/davidwessman/syntax_tree-erb/issues/81 but for RuboCop
The parser gem doesn't support these types of checks,
see https://github.com/whitequark/parser?tab=readme-ov-file#syntax-check-of-block-exits
W... -
12:36 PM Revision 7c029f61 (git): [ruby/prism] Remove generics from sorbet types
- https://github.com/ruby/prism/commit/080d84fd03
-
11:29 AM Bug #20094: Inline while loop behavior changed unexpectedly in 3.3.0
- Indeed:
```
$ ruby -ve '(p 1) while false'
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
$ ruby -ve '(p 1) while false'
ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
1
``` - 10:54 AM Revision c1b11c50 (git): [rubygems/rubygems] Rename credential email to identifier in WebAuthn poller
- https://github.com/rubygems/rubygems/commit/5e3e55f8bc
-
05:49 AM Revision 7662e6fc (git): win32/registry: Shorten with safe navigation operator
-
05:49 AM Revision 491c38bf (git): win32/registry: Make frozen_string_literal true
-
05:49 AM Revision 0b091e66 (git): win32/registry: Refine pack/unpack
- * Use 'J' for HANDLE.
* Use 'Q' for QWORD.
* Define template constants.
* Supply zero bytes in `unpackqw` as well as `unpackdw`.
* Use `String#unpack1`. -
05:47 AM Revision 9f8e87c4 (git): Test for win32/registry.rb
-
03:40 AM Revision 899d9f79 (git): Rename `vast` to `ast_value`
- There is an English word "vast".
This commit changes the name to be more clear name to avoid confusion. -
03:05 AM Revision e1905ca1 (git): Use user defined parameterizing rules `f_optarg(value)`
-
02:46 AM Revision 5409661f (git): Mark the first string element of a regexp as binary if US-ASCII
05/02/2024
-
11:55 PM Bug #20465: parse.y adds an extra empty string to the AST
- How would this be a problem?
I think it intentionally creates the structure to ensure that it returns a new String object. Unlike #20457, there is no lack of information. I don't think it is so inconvenient. -
06:10 PM Bug #20465 (Open): parse.y adds an extra empty string to the AST
- Given this code:
```ruby
t0 = '\\xc1'
"#{t0}"
```
The AST is like this:
```
$ ./miniruby --dump=parsetree test.rb
###########################################################
## Do NOT use this node dump for any purpose oth... -
11:37 PM Bug #20467 (Closed): Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
- Currently, Prism creates the following AST for `Bar::Foo = 42`
```
irb(main):001> Prism.parse(%q(Bar::Foo = 42)).value
=>
@ ProgramNode (location: (1,0)-(1,13))
├── locals: []
└── statements:
@ StatementsNode (location: (1,0... -
09:32 PM Revision b5cefa79 (git): Fix GC_DEBUG
-
09:32 PM Revision 6d605f1e (git): Move rvalue_overhead out of RVALUE
- Since we cannot read the rvalue_overhead out of the RVALUE anyways (since
it is at the end of the slot), it makes more sense to move it out of
the RVALUE. -
07:16 PM Revision e34c131c (git): [PRISM] Disallow redundant returns from being line events
- 06:33 PM Revision c681af3e (git): Reject empty lines in IRB binding spec
- For that particular spec, the empty lines' presence is not relevant.
So let's remove them to make the spec easier to maintain. - 06:33 PM Revision 945a99e8 (git): Sync IRB 241e061
-
06:28 PM Revision c59abb99 (git): Rename ary_heap_alloc -> ary_heap_alloc_buffer
- To differentiate it from ary_alloc_heap
-
06:13 PM Bug #20466 (Open): Interpolated regular expressions have different encoding than interpolated strings
- When the encoding is set to US-ASCII, interpolated strings can have different encoding than interpolated regular expressions. I think they should have the same encoding:
```ruby
# encoding: US-ASCII
t0 = '\\xc1'
t1 = "#{t0}"
re... -
06:07 PM Bug #20464: Redundant returns are unreachable in coverage
- Just for the record in case this gets updated, this PR for the prism compiler (https://github.com/ruby/ruby/pull/10713) is what we have to do to make it work the same way. (It effectively checks if the return is redundant and if it is, d...
-
06:00 PM Bug #20464 (Open): Redundant returns are unreachable in coverage
- With the following code:
```ruby
def meth_return(a)
return if a
return
end
```
If you run coverage on it, it's not possible for it to hit line 3, because there isn't a line event, because the return node was eliminated fro... -
04:29 PM Revision 0981f030 (git): [PRISM] Enable newline test
- 04:29 PM Revision 0968b462 (git): Update default gems list at 008f2b9b6a8575c4380732f5ac4ee1 [ci skip]
-
04:28 PM Revision 008f2b9b (git): [ruby/reline] Bump version to 0.5.5
- (https://github.com/ruby/reline/pull/696)
https://github.com/ruby/reline/commit/8bf71d0b81 -
04:21 PM Revision 032070d7 (git): [ruby/irb] Add workaround for ruby/debug/test/console/irb_test
- failing with StdioInputMethod
(https://github.com/ruby/irb/pull/943)
https://github.com/ruby/irb/commit/acf3c1816e -
03:27 PM Revision 7c0cf710 (git): [ruby/prism] Node#script_lines and supporting infra
- https://github.com/ruby/prism/commit/cb4a8ab772
-
03:27 PM Revision 398453c3 (git): [PRISM] Fix param names for repeated splats
-
02:41 PM Revision c78cebb4 (git): [ruby/reline] Fix default and additional key bindings vanish bug
- (https://github.com/ruby/reline/pull/697)
https://github.com/ruby/reline/commit/fc9b4d2274 -
02:34 PM Revision 2eefbef2 (git): [PRISM] Enable test_ast.rb
-
02:29 PM Revision 41977ef5 (git): [PRISM] Enable Socket.gethostbyaddr spec
-
02:12 PM Revision e7d20623 (git): Add comments in setproctitle.c
-
02:12 PM Revision 4f69d318 (git): Keep track of the originally allocated environ
- We need to keep a pointer to the originally allocated environ because
adding more environment variables can cause it to be changed to something
else.
For example:
100.times do |i|
ENV["FOO#{i}"] = "1"
end
Causes Valgrind... -
01:11 PM Revision 12cbfd8e (git): Declare as NORETURN
-
12:20 PM Bug #20463 (Closed): Ruby fails to generate warning for require syslog
- It's known issue. see https://bugs.ruby-lang.org/issues/20450#note-9
-
12:17 PM Bug #20463 (Closed): Ruby fails to generate warning for require syslog
- ```
docker run -it ruby:3.3.1 bash
touch Gemfile
bundle
bundle exec ruby -e "require '/usr/local/lib/ruby/3.3.0/x86_64-linux/syslog'"
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:130:in `<': comparison of String with nil failed (Argume... -
09:36 AM Revision a3726c02 (git): Fixed missing support for https://github.com/ruby/ruby/commit/d75bbba255e086d625429d5a1311cc4b4396c296.
-
07:29 AM Bug #19974 (Closed): OpenSSL::PKCS7 generates SegFault when parsing invalid data
- Applied in changeset commit:git|c9aa63a9e06c21566c6fadda5945f04f341e4891.
----------
[ruby/openssl] pkcs7: raise ArgumentError for PKCS7 with no content in PKCS7.new
Fixes [Bug #19974]
[pkuzco: expanded the fix for other content types... -
07:26 AM Revision 55720f37 (git): [ruby/openssl] pkcs7: raise PKCS7Error for PKCS7 without content in PKCS7.read_smime
- [pkuzco: expanded the fix for other content types]
[ky: adjusted formatting and the exception type]
https://github.com/ruby/openssl/commit/07eceb7f63
Co-authored-by: pkuzco <b.naamneh@gmail.com>
Co-authored-by: Kazuki Yamaguchi <k@rhe.jp> -
07:26 AM Revision c9aa63a9 (git): [ruby/openssl] pkcs7: raise ArgumentError for PKCS7 with no content in PKCS7.new
- Fixes [Bug #19974]
[pkuzco: expanded the fix for other content types]
[ky: adjusted formatting and the exception type]
https://github.com/ruby/openssl/commit/27e11f2d1d
Co-authored-by: pkuzco <b.naamneh@gmail.com>
Co-authored-by: Kazu... -
07:26 AM Revision eb6f0000 (git): [ruby/openssl] cipher: fix buffer overflow in Cipher#update
- OpenSSL::Cipher#update currently allocates the output buffer with size
(input data length)+(the block size of the cipher). This is insufficient
for the id-aes{128,192,256}-wrap-pad (AES keywrap with padding) ciphers.
They have a block si... - 07:24 AM Revision d39993a4 (git): [ruby/openssl] Fix performance regression in do_write(s)
- This causes significant performance issues when using large (>10meg) writes
Fix by adjusting the buffer write function to clear the buffer once, rather than
piece by piece, avoiding a case where a large write (in our case, around
70mbyt... -
07:17 AM Revision f5af620c (git): [ruby/openssl] asn1: check error return from i2d_ASN1_TYPE()
- i2d_ASN1_TYPE() is not expected to fail, but the return value should be
checked.
https://github.com/ruby/openssl/commit/21ed3c310e -
06:06 AM Revision eb82ea62 (git): [ruby/reline] Fix prompt width calculation bug. Test with colored
- prompt
(https://github.com/ruby/reline/pull/695)
https://github.com/ruby/reline/commit/24aab01cbc -
06:04 AM Revision ed5a7a59 (git): Use callee side tag specification of parameterizing rules
-
05:50 AM Revision fdf88a2c (git): [ruby/reline] Avoid reading .inputrc repeatedly
- (https://github.com/ruby/reline/pull/694)
https://github.com/ruby/reline/commit/c8d4802a0f -
04:32 AM Revision fcd89bf6 (git): Lrama v0.6.9
-
01:14 AM Revision d22dfce1 (git): Fix memory leak of `rb_ast_t` in parser
- Do not allocate `rb_ast_t` in `ast_alloc` to avoid memory leak.
For example:
10.times do
100_000.times do
eval("")
end
puts `ps -o rss= -p #{$$}`
end
Before:
17568
20960
24096
27808
... -
01:14 AM Revision 5108bed5 (git): Revert "Fix memory leak of rb_ast_t in parser"
- This reverts commit e3bfd25bd2202a172d7709e9a2f7b65b523a132d.
> "Allocate then wrap" is bad, because the "wrapping" itself can fail.
See: https://github.com/ruby/ruby/pull/10618#pullrequestreview-2019294349
05/01/2024
-
11:19 PM Revision f109a83d (git): [PRISM] Fix up error message expectations
-
11:19 PM Revision de6e05da (git): [PRISM] Consolidate handling heredoc terminators
-
11:19 PM Revision ac0f6716 (git): [PRISM] Respect frozen_string_literal option in RubyVM::InstructionSequence.compile
-
11:19 PM Revision 8ea6daa8 (git): [PRISM] Enable passing tests in test_syntax.rb
-
11:19 PM Revision b64fd2f5 (git): [PRISM] Closer error messages on invalid unicode escapes in character literals
-
11:19 PM Revision 1be5ede7 (git): [PRISM] Error message for unterminated heredoc identifier
-
11:19 PM Revision 62f8fb7f (git): [PRISM] Fix unterminated regular expression error message
-
11:19 PM Revision 5d1e4cd2 (git): [PRISM] Better error messages for unwriteable targets
-
11:19 PM Revision 4e8ae5d3 (git): [PRISM] Match unterminated error messages
-
11:03 PM Revision 8e1647c3 (git): [ruby/prism] Support passing version 3.3.1
- https://github.com/ruby/prism/commit/445a0f0d22
-
10:54 PM Bug #20462: Native threads are no longer reused
- In a benchmark of thread creation we see that 3.3 is slower than 3.2
```
jhawthorn@zergling:~ [ruby 3.2.2]
$ time ruby --disable-gems -e '100_000.times { Thread.new{}.join }'
ruby --disable-gems -e '100_000.times { Thread.new{}.j... -
10:45 PM Bug #20462 (Assigned): Native threads are no longer reused
- Ruby used to reuse native threads in order to amortize the cost of making a pthread.
For example this program:
```ruby
ntids = 1000.times.map {
Thread.new {
Thread.current.native_thread_id
}.value
}
p ntids.uniq.len... -
10:04 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- I tested both PR with ol8/ol9 using the attached dockerfile and they both work OK
I'll close my PR in favor of yours as it is more complete regarding the backport. -
05:12 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- It seems a4ad6bd9aac564e93219284c912b26a72f9e82fc is missing.
https://github.com/ruby/ruby/pull/10696 -
04:01 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- I went ahead and created https://github.com/ruby/ruby/pull/10695 to revert the faulty backport
@unak who you mind review it and release the patch version if accepted?
I checked the repro https://github.com/ruby/fiddle/issues/102#is... -
08:57 PM Revision 5cd0abdf (git): [PRISM] Simplify prism error highlighting
-
07:51 PM Revision fc8fb581 (git): [ruby/prism] CRuby error message for trailing underscore in number
- https://github.com/ruby/prism/commit/4e34f236d3
-
07:36 PM Revision d5d2c6ea (git): [PRISM] Enable passing Symbol specs
-
07:02 PM Revision efefe42d (git): [ruby/prism] Add more errors for dynamic constant writes in methods
- https://github.com/ruby/prism/commit/486e4c0367
-
06:49 PM Revision febad5cb (git): Skip Warning.[] spec if mspec is passing warning options
-
04:43 PM Revision 41f8ae1f (git): [ruby/prism] Mark errors for invalid symbols
- https://github.com/ruby/prism/commit/661884c4a3
-
04:34 PM Revision 0fa09c57 (git): [PRISM] Correct encoding for interpolated string literals in regexp
-
04:34 PM Revision cfe7019e (git): [ruby/prism] Match CRuby interpolation semantics
- If a single string that is a static literal is interpolated, it
does not impact whether or not the parent is a static literal. In
this way, if you have something like a regular expression that
interpolates a string literal, it's possible... -
04:34 PM Revision b6fa18fb (git): [PRISM] Properly precheck regexp for encoding issues
-
04:34 PM Revision 1b865096 (git): [PRISM] Support interpolated regexp with encoding modifiers
- 03:20 PM Revision c8bec792 (git): Update default gems list at fef6f5f2e1b89e8726c20c734f84bd [ci skip]
-
03:20 PM Revision fef6f5f2 (git): [ruby/irb] Bump version to v1.13.0
- (https://github.com/ruby/irb/pull/941)
* Bump version to v1.13.0
* Add Documentation category to changelog
https://github.com/ruby/irb/commit/b9b1f35c99 -
03:09 PM Revision 7ef8bb12 (git): Fix memory leak in Ripper.sexp
- rb_ast_dispose does not free the rb_ast_t causing it to be leaked. This
commit changes it to use rb_ast_free instead.
For example:
require "ripper"
10.times do
100_000.times do
Ripper.sexp("")
end
pu... -
03:03 PM Revision e9e41ad6 (git): Fix ruby_mimcalloc size when CALC_EXACT_MALLOC_SIZE
- Should be `sizeof(struct malloc_obj_info) + (num * element)`, not
`num * (sizeof(struct malloc_obj_info) + element)`. -
02:52 PM Revision 77f5301c (git): [ruby/irb] Let IRB::Color.colorable? always return true|false
- (https://github.com/ruby/irb/pull/940)
https://github.com/ruby/irb/commit/0bbe435ffe -
02:23 PM Revision 1000c27d (git): [ruby/irb] Support `IRB.conf[:BACKTRACE_FILTER]`
- (https://github.com/ruby/irb/pull/917)
* Use 'irbtest-' instead if 'irb-' as prefix of test files.
Otherwise IRB would mis-recognize exceptions raised in test files as
exceptions raised in IRB itself.
* Support `IRB.conf[:BACKTRACE_FI... -
02:22 PM Revision 2a978ee0 (git): YJIT: Fix `Struct` accessors not firing tracing events (#10690)
- * YJIT: Fix `Struct` accessors not firing tracing events
Reading and writing to structs should fire `c_call` and `c_return`, but
YJIT wasn't correctly dropping those calls when tracing.
This has been missing since this functionality was... -
01:39 PM Feature #20448: Make coverage event hooking C API public
- Sorry for the delay, I've been considering different APIs and reevaluating Ruzzy's coverage collection. I think I've identified that Ruzzy's current coverage collection mechanism is flawed, so perhaps we should not use that as the goal. ...
-
01:01 PM Revision f4c6479e (git): Fix xfree
- Pointers allocated with `ruby_xmalloc` (`ALLOC` macro) must be freed
with `ruby_xfree`. -
12:54 PM Revision d1f14baf (git): Fix leak reported by Valgrind when setting environment variables
- The call to setenv replaces the string in the environ array, which causes
the original string to be reported as a memory leak.
This commit allocates another copy of environ called alloc_environ that
contains the strings allocated by rub... -
08:46 AM Revision 57eca0a8 (git): Test for memory leak
-
06:53 AM Revision acc76c8c (git): Use user defined parameterizing rules `f_opt(value)`
-
05:50 AM Revision c2832981 (git): Use user defined parameterizing rules `f_kwarg(kw)`
-
04:53 AM Revision 9f7e0d2b (git): Use user defined parameterizing rules `opt_args_tail(tail)`