Project

General

Profile

Activity

From 04/28/2024 to 05/04/2024

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?
nobu (Nobuyoshi Nakada)
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...
budiljak (Benjamin Udiljak)
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...
koic (Koichi ITO)
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 shan (Shannon Skipper)
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).
zverok (Victor Shepelev)
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.
Eregon (Benoit Daloze)
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...
Eregon (Benoit Daloze)
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...
nobu (Nobuyoshi Nakada)
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.
nobu (Nobuyoshi Nakada)
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?
nobu (Nobuyoshi Nakada)
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
tompng (tomoya ishida)
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...
st0012 (Stan Lo)
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
st0012 (Stan Lo)
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. yui-knk (Kaneko Yuichiro)

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...
kachick (Kenichi Kamiya)
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
kachick (Kenichi Kamiya)
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.
...
peterzhu2118 (Peter Zhu)
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...
peterzhu2118 (Peter Zhu)
07:14 PM Revision d4a6d0c1 (git): [ruby/prism] Prism::Location#adjoin
https://github.com/ruby/prism/commit/a298db68e3 kddnewton (Kevin Newton)
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... shan (Shannon Skipper)
06:37 PM Revision 7a49edcf (git): [ruby/prism] Prism::Node#tunnel
https://github.com/ruby/prism/commit/0bf5d651da kddnewton (Kevin Newton)
06:15 PM Revision c631679b (git): [PRISM] Disallow &. in MLHS
kddnewton (Kevin Newton)
06:14 PM Revision 1af2dead (git): [ruby/prism] Disallow *a&.x=0
https://github.com/ruby/prism/commit/624fdf74bd kddnewton (Kevin Newton)
06:10 PM Revision 4fbb2081 (git): [ruby/prism] Create specialized `ASCIISource` with asciionly optimizations
https://github.com/ruby/prism/commit/40993166a8 Vinicius Stock
06:09 PM Revision 31361aec (git): [ruby/prism] Disallow safe navigation in a call target node
https://github.com/ruby/prism/commit/b1917adac7 kddnewton (Kevin Newton)
05:32 PM Revision 31c69698 (git): [PRISM] Enable passing test for **nil
kddnewton (Kevin Newton)
05:32 PM Revision 2368dab1 (git): [ruby/prism] Disallow **nil after keyword parameters
https://github.com/ruby/prism/commit/5beeae076f kddnewton (Kevin Newton)
05:11 PM Revision 461d6d44 (git): [PRISM] Enable RubyVM tests for prism
kddnewton (Kevin Newton)
05:08 PM Bug #20468 (Closed): Segfault on safe navigation in for target
```ruby
for foo&.bar in []; end
```
kddnewton (Kevin Newton)
05:01 PM Revision 56672c8b (git): [PRISM] Enable passing tests for index expressions
kddnewton (Kevin Newton)
05:01 PM Revision 7caeff2b (git): [ruby/prism] Disallow keywords and blocks in index expressions
https://github.com/ruby/prism/commit/e950dc1e83 kddnewton (Kevin Newton)
04:34 PM Revision b6625d38 (git): [DOC] Fix the description about the timing finalizers will be called
nobu (Nobuyoshi Nakada)
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...
tenderlovemaking (Aaron Patterson)
04:15 PM Revision 91485d7d (git): Adjust indent [ci skip]
nobu (Nobuyoshi Nakada)
04:02 PM Revision 97654bee (git): [ruby/prism] Remove deprecated #child usage
https://github.com/ruby/prism/commit/14d9b431e2 kddnewton (Kevin Newton)
03:50 PM Bug #20464: Redundant returns are unreachable in coverage
In that case this can probably be closed. kddnewton (Kevin Newton)
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... mame (Yusuke Endoh)
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. kddnewton (Kevin Newton)
12:04 AM Bug #20464: Redundant returns are unreachable in coverage
Is this the same issue as #20457? mame (Yusuke Endoh)
03:49 PM Bug #20467 (Closed): Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
kddnewton (Kevin Newton)
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 ...
kddnewton (Kevin Newton)
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...
deivid (David Rodríguez)
03:11 PM Revision 0948b6a5 (git): [PRISM] Use new constant path structure
kddnewton (Kevin Newton)
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...
kddnewton (Kevin Newton)
01:12 PM Revision 1d51e929 (git): [ruby/prism] Assume eval context for ruby_parser and ripper
https://github.com/ruby/prism/commit/e4d6984892 kddnewton (Kevin Newton)
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...
Earlopain (Earlopain _)
12:36 PM Revision 7c029f61 (git): [ruby/prism] Remove generics from sorbet types
https://github.com/ruby/prism/commit/080d84fd03 kddnewton (Kevin Newton)
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
```
Eregon (Benoit Daloze)
10:54 AM Revision c1b11c50 (git): [rubygems/rubygems] Rename credential email to identifier in WebAuthn poller
https://github.com/rubygems/rubygems/commit/5e3e55f8bc Jenny Shen
05:49 AM Revision 7662e6fc (git): win32/registry: Shorten with safe navigation operator
nobu (Nobuyoshi Nakada)
05:49 AM Revision 491c38bf (git): win32/registry: Make frozen_string_literal true
nobu (Nobuyoshi Nakada)
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`.
nobu (Nobuyoshi Nakada)
05:47 AM Revision 9f8e87c4 (git): Test for win32/registry.rb
nobu (Nobuyoshi Nakada)
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.
yui-knk (Kaneko Yuichiro)
03:05 AM Revision e1905ca1 (git): Use user defined parameterizing rules `f_optarg(value)`
ydah (Yudai Takada)
02:46 AM Revision 5409661f (git): Mark the first string element of a regexp as binary if US-ASCII
kddnewton (Kevin Newton)

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.
mame (Yusuke Endoh)
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...
tenderlovemaking (Aaron Patterson)
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...
mame (Yusuke Endoh)
09:32 PM Revision b5cefa79 (git): Fix GC_DEBUG
peterzhu2118 (Peter Zhu)
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.
peterzhu2118 (Peter Zhu)
07:16 PM Revision e34c131c (git): [PRISM] Disallow redundant returns from being line events
kddnewton (Kevin Newton)
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.
Stan Lo
06:33 PM Revision 945a99e8 (git): Sync IRB 241e061
Stan Lo
06:28 PM Revision c59abb99 (git): Rename ary_heap_alloc -> ary_heap_alloc_buffer
To differentiate it from ary_alloc_heap eightbitraptor (Matt V-H)
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...
tenderlovemaking (Aaron Patterson)
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... kddnewton (Kevin Newton)
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...
kddnewton (Kevin Newton)
04:29 PM Revision 0981f030 (git): [PRISM] Enable newline test
kddnewton (Kevin Newton)
04:29 PM Revision 0968b462 (git): Update default gems list at 008f2b9b6a8575c4380732f5ac4ee1 [ci skip]
git[bot]
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
ima1zumi (Mari Imaizumi)
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
tompng (tomoya ishida)
03:27 PM Revision 7c0cf710 (git): [ruby/prism] Node#script_lines and supporting infra
https://github.com/ruby/prism/commit/cb4a8ab772 kddnewton (Kevin Newton)
03:27 PM Revision 398453c3 (git): [PRISM] Fix param names for repeated splats
kddnewton (Kevin Newton)
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
tompng (tomoya ishida)
02:34 PM Revision 2eefbef2 (git): [PRISM] Enable test_ast.rb
kddnewton (Kevin Newton)
02:29 PM Revision 41977ef5 (git): [PRISM] Enable Socket.gethostbyaddr spec
kddnewton (Kevin Newton)
02:12 PM Revision e7d20623 (git): Add comments in setproctitle.c
peterzhu2118 (Peter Zhu)
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...
peterzhu2118 (Peter Zhu)
01:11 PM Revision 12cbfd8e (git): Declare as NORETURN
nobu (Nobuyoshi Nakada)
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 hsbt (Hiroshi SHIBATA)
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...
tyatin (Serg Tyatin)
09:36 AM Revision a3726c02 (git): Fixed missing support for https://github.com/ruby/ruby/commit/d75bbba255e086d625429d5a1311cc4b4396c296.
jinroq (Jinroq SAITOH)
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...
jeremyevans (Jeremy Evans)
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>
jeremyevans (Jeremy Evans)
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...
jeremyevans (Jeremy Evans)
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...
rhenium (Kazuki Yamaguchi)
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...
Jaymz Julian
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
rhenium (Kazuki Yamaguchi)
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
tompng (tomoya ishida)
06:04 AM Revision ed5a7a59 (git): Use callee side tag specification of parameterizing rules
ydah (Yudai Takada)
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
ima1zumi (Mari Imaizumi)
04:32 AM Revision fcd89bf6 (git): Lrama v0.6.9
yui-knk (Kaneko Yuichiro)
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
...
nobu (Nobuyoshi Nakada)
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
yui-knk (Kaneko Yuichiro)

05/01/2024

11:19 PM Revision f109a83d (git): [PRISM] Fix up error message expectations
kddnewton (Kevin Newton)
11:19 PM Revision de6e05da (git): [PRISM] Consolidate handling heredoc terminators
kddnewton (Kevin Newton)
11:19 PM Revision ac0f6716 (git): [PRISM] Respect frozen_string_literal option in RubyVM::InstructionSequence.compile
kddnewton (Kevin Newton)
11:19 PM Revision 8ea6daa8 (git): [PRISM] Enable passing tests in test_syntax.rb
kddnewton (Kevin Newton)
11:19 PM Revision b64fd2f5 (git): [PRISM] Closer error messages on invalid unicode escapes in character literals
kddnewton (Kevin Newton)
11:19 PM Revision 1be5ede7 (git): [PRISM] Error message for unterminated heredoc identifier
kddnewton (Kevin Newton)
11:19 PM Revision 62f8fb7f (git): [PRISM] Fix unterminated regular expression error message
kddnewton (Kevin Newton)
11:19 PM Revision 5d1e4cd2 (git): [PRISM] Better error messages for unwriteable targets
kddnewton (Kevin Newton)
11:19 PM Revision 4e8ae5d3 (git): [PRISM] Match unterminated error messages
kddnewton (Kevin Newton)
11:03 PM Revision 8e1647c3 (git): [ruby/prism] Support passing version 3.3.1
https://github.com/ruby/prism/commit/445a0f0d22 kddnewton (Kevin Newton)
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...
jhawthorn (John Hawthorn)
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...
tenderlovemaking (Aaron Patterson)
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.
ylecuyer (Yoann Lecuyer)
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
nobu (Nobuyoshi Nakada)
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...
ylecuyer (Yoann Lecuyer)
08:57 PM Revision 5cd0abdf (git): [PRISM] Simplify prism error highlighting
kddnewton (Kevin Newton)
07:51 PM Revision fc8fb581 (git): [ruby/prism] CRuby error message for trailing underscore in number
https://github.com/ruby/prism/commit/4e34f236d3 kddnewton (Kevin Newton)
07:36 PM Revision d5d2c6ea (git): [PRISM] Enable passing Symbol specs
kddnewton (Kevin Newton)
07:02 PM Revision efefe42d (git): [ruby/prism] Add more errors for dynamic constant writes in methods
https://github.com/ruby/prism/commit/486e4c0367 kddnewton (Kevin Newton)
06:49 PM Revision febad5cb (git): Skip Warning.[] spec if mspec is passing warning options
kddnewton (Kevin Newton)
04:43 PM Revision 41f8ae1f (git): [ruby/prism] Mark errors for invalid symbols
https://github.com/ruby/prism/commit/661884c4a3 kddnewton (Kevin Newton)
04:34 PM Revision 0fa09c57 (git): [PRISM] Correct encoding for interpolated string literals in regexp
kddnewton (Kevin Newton)
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...
kddnewton (Kevin Newton)
04:34 PM Revision b6fa18fb (git): [PRISM] Properly precheck regexp for encoding issues
kddnewton (Kevin Newton)
04:34 PM Revision 1b865096 (git): [PRISM] Support interpolated regexp with encoding modifiers
kddnewton (Kevin Newton)
03:20 PM Revision c8bec792 (git): Update default gems list at fef6f5f2e1b89e8726c20c734f84bd [ci skip]
git[bot]
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
st0012 (Stan Lo)
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...
peterzhu2118 (Peter Zhu)
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)`.
nobu (Nobuyoshi Nakada)
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
tompng (tomoya ishida)
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...
st0012 (Stan Lo)
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...
alanwu (Alan Wu)
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. ... ms-tob (Matt S)
01:01 PM Revision f4c6479e (git): Fix xfree
Pointers allocated with `ruby_xmalloc` (`ALLOC` macro) must be freed
with `ruby_xfree`.
nobu (Nobuyoshi Nakada)
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...
peterzhu2118 (Peter Zhu)
08:46 AM Revision 57eca0a8 (git): Test for memory leak
nobu (Nobuyoshi Nakada)
06:53 AM Revision acc76c8c (git): Use user defined parameterizing rules `f_opt(value)`
ydah (Yudai Takada)
05:50 AM Revision c2832981 (git): Use user defined parameterizing rules `f_kwarg(kw)`
ydah (Yudai Takada)
04:53 AM Revision 9f7e0d2b (git): Use user defined parameterizing rules `opt_args_tail(tail)`
ydah (Yudai Takada)

04/30/2024

11:31 PM Revision 0c135966 (git): [ruby/delegate] test: remove needless mu_pp
It's for minitest. We don't need it with test-unit.
https://github.com/ruby/delegate/commit/447cd43973
Sutou Kouhei
09:51 PM Bug #20457: Final `return` is eliminated from the AST
Eregon (Benoit Daloze) wrote in #note-2:
> I want to add for context that naturally Prism already provides this information (and much more) and has a much better API.
> ...
From what I understand, lrama intends to eventually provide th...
tenderlovemaking (Aaron Patterson)
05:57 PM Revision ade22339 (git): YJIT: print msg to stderr when RubyVM::YJIT.disasm not available (#10688)
* YJIT: print msg to stderr when RubyVM::YJIT.disasm not available
Print a more useful error message when people try to use this
feature without YJIT dev.
Also fix an issue with .gitignore file on macOS
* Update yjit.rb
Co-authored-b...
maximecb (Maxime Chevalier-Boisvert)
05:11 PM Misc #20441 (Closed): Should passing keyword args to method_name(*) be an error?
alanwu (Alan Wu)
05:09 PM Bug #20454 (Third Party's Issue): IRB echoes excessive input in dumb terminal
IRB has its own release cycles and bug tracker at https://github.com/ruby/irb/issues
Sorry for the redirection, but please file this issue there.
alanwu (Alan Wu)
05:04 PM Revision bd419a65 (git): Removed unused TICK_TYPE 2
TICK_TYPE of 2 can never be used because we hard code TICK_TYPE to 1. peterzhu2118 (Peter Zhu)
04:51 PM Revision 614187f8 (git): [ruby/reline] Fix completion dialog position when completed part is
wordwrapped
(https://github.com/ruby/reline/pull/692)
https://github.com/ruby/reline/commit/2d9acd16fe
tompng (tomoya ishida)
03:34 PM Revision d7ba0fec (git): [rubygems/rubygems] Update lib/rubygems/package.rb
https://github.com/rubygems/rubygems/commit/c4e75b9f74 segiddins (Samuel Giddins)
03:34 PM Revision d950609e (git): [rubygems/rubygems] Add a limit to the size of the metadata and checksums files in a gem package.
This is to prevent a malicious gem from causing a denial of service by
including a very large metadata or checksums file,
which is then read into memory in its entirety just by opening the gem package.
This is guaranteed to limit the am...
segiddins (Samuel Giddins)
03:23 PM Revision e0949c3f (git): [ruby/openssl] Remove trailing space in test_ssl.rb
https://github.com/ruby/openssl/commit/911a31335f peterzhu2118 (Peter Zhu)
03:05 PM Revision 9d75d9f0 (git): [ruby/openssl] Update Cipher#name to match Digest#name explanation
https://github.com/ruby/openssl/commit/79e6dead6e Bart de Water
03:05 PM Revision cc6657e5 (git): [ruby/openssl] Add OpenSSL::Digest.digests to get a list of available digests
https://github.com/ruby/openssl/commit/08dd3c73b7 Bart de Water
02:57 PM Revision 1ca4c52b (git): Free unused_block_warning_table when RUBY_FREE_AT_EXIT
peterzhu2118 (Peter Zhu)
02:51 PM Revision 368ce075 (git): [ruby/openssl] Further clarification of documentation.
https://github.com/ruby/openssl/commit/0697f2f8b4 Samuel Williams
02:51 PM Revision f1afae24 (git): [ruby/openssl] More documentation.
https://github.com/ruby/openssl/commit/c8377eaf8d Samuel Williams
02:51 PM Revision 1699772a (git): [ruby/openssl] Introduce basic support for `close_read` and `close_write`.
https://github.com/ruby/openssl/commit/c99d24cee9 Samuel Williams
10:29 AM Revision 8fb430c1 (git): [ruby/irb] Restore MAIN_CONTEXT correctly
(https://github.com/ruby/irb/pull/937)
https://github.com/ruby/irb/commit/c41f460a70
tompng (tomoya ishida)
07:45 AM Bug #20426 (Closed): crash on aarch64 linux when using fibers (regression with 3.3)
hsbt (Hiroshi SHIBATA)
06:40 AM Bug #20461: Unreadable pipe included in the readable IO of IO.select
Using git bisect, I found that the following commit is the cause of the bug:
https://github.com/ruby/ruby/commit/49a55f28abdcf3dea1f84ec5b59cfbedc37f44bf
yamam (Masanari Yamamoto)
05:02 AM Revision 1c991f3b (git): [ruby/openssl] test_asn1.rb: Remove the assertions of the time string format without second.
This commit fixes the following errors in the tests.
Because the OpenSSL project changed the code to make the time string format
without second invalid. So, we drop the assertions.
```
1) Error: test_generalizedtime(OpenSSL::TestASN1): ...
Jun Aruga
05:02 AM Revision 85863f4d (git): [ruby/net-http] Skip test_session_reuse_but_expire with OpenSSL 3.3
OpenSSL 3.3.0 9 Apr 2024 is also broken.
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
https://github.com/ruby/net-http/commit/ab525c956d
Xi Ruoyao
02:52 AM Revision 431711a8 (git): Bump ruby/setup-ruby from 1.175.0 to 1.175.1
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.175.0 to 1.175.1.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/70da3bbf44ac06db1b0547ce2acc9380a5...
dependabot[bot]
01:34 AM Revision 7a8882bc (git): [DOC] Fix typo: Replace `documentatation` with `documentation`
Richard Ricciardelli
12:00 AM Revision 528c4501 (git): Use `rb_parser_string_t *` as `ruby_sourcefile_string`
This reduces dependency on VALUE. yui-knk (Kaneko Yuichiro)

04/29/2024

08:54 PM Revision 0aefd2f7 (git): YJIT: Pass options to ruby/spec with `-T` (#10599)
We recently found out that `make test-spec` wasn't testing with
`--yjit-call-threshold=1` like the other test suites, and that we need
to use `-T` to pass options to it.
alanwu (Alan Wu)
08:36 PM Revision 470eceff (git): YJIT: Remove CString allocation when using `src_loc!()`
Since we often take the VM lock as the first thing we do when entering
YJIT, and that needs a `src_loc!()`, this removes a allocation from
that. The main trick here is `concat!(file!(), '\0')` to get a C string
statically baked into the ...
alanwu (Alan Wu)
08:08 PM Revision de0ad3be (git): YJIT: Take VM lock when invalidating
We need the lock to patch code safely.
This might fix some Ractor related crashes seen on CI.
alanwu (Alan Wu)
07:25 PM Revision adae813c (git): YJIT: Expand codegen for `TrueClass#===` to `FalseClass` and `NilClass` (#10679)
rwstauner (Randy Stauner)
06:32 PM Revision 845f2db1 (git): YJIT: Add specialized codegen function for `TrueClass#===` (#10640)
* YJIT: Add specialized codegen function for `TrueClass#===`
TrueClass#=== is currently number 10 in the most frequent C calls list of the lobsters benchmark.
```
require "benchmark/ips"
def wrap
true === true
true === false
tru...
Randy Stauner
06:04 PM Revision e3bfd25b (git): Fix memory leak of rb_ast_t in parser
ast_alloc uses TypedData_Make_Struct, which allocates a rb_ast_t. But it
is overwritten when we set the DATA_PTR so the original memory is leaked.
For example:
10.times do
100_000.times do
eval("")
end
pu...
peterzhu2118 (Peter Zhu)
06:04 PM Revision 95d036aa (git): Fix memory leak in ruby_parser
For example:
10.times do
100_000.times do
eval("")
end
puts `ps -o rss= -p #{$$}`
end
Before:
19872
26480
32848
39504
45904
52672
59200
65760
72128
78496
Afte...
peterzhu2118 (Peter Zhu)
05:29 PM Feature #15438 (Closed): Threads can't switch faster than TIME_QUANTUM_(NSEC|USEC|MSEC)
I think this is something we should improve more (I would like even faster switching times), but it does seem possible as of Ruby 3.3 to have threads switch faster than 100ms.
```
def test_switching(priority = 0)
done = false
s...
jhawthorn (John Hawthorn)
05:28 PM Revision d75bbba2 (git): [PRISM] Remove false positive compile warnings for branch coverage
kddnewton (Kevin Newton)
01:36 PM Revision 90db9c87 (git): Update default gems list at dbb1ba88ebb5a08ea5a856c8086aa2 [ci skip]
git[bot]
01:35 PM Revision dbb1ba88 (git): [ruby/reline] Bump version to 0.5.4
(https://github.com/ruby/reline/pull/691)
https://github.com/ruby/reline/commit/3f27286a5e
ima1zumi (Mari Imaizumi)
01:23 PM Revision 814d4b5e (git): [ruby/reline] Input with eof and no newline bugfix
(https://github.com/ruby/reline/pull/671)
https://github.com/ruby/reline/commit/0d66c335a1
tompng (tomoya ishida)
12:48 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
Additional information:
From fiddle extconf:
``` ruby
case
when $mswin, $mingw, (libffi_version && (libffi_version <=> [3, 2]) >= 0)
$defs << "-DUSE_FFI_CLOSURE_ALLOC=1"
when (libffi_version && (libffi_version <=> [3, 2]) < 0...
ylecuyer (Yoann Lecuyer)
12:26 PM Revision 4c41203b (git): Remove needless header file include
yui-knk (Kaneko Yuichiro)
12:08 PM Revision ae701031 (git): [ruby/reline] Completely support full-width characters in
differential rendering
(https://github.com/ruby/reline/pull/654)
* Add a cut variation of Reline::Unicode.take_range method take_mbchar_range
* Consider fullwidth take_range in differential rendering
https://github.com/ruby/reline/com...
tompng (tomoya ishida)
12:05 PM Revision 018c5717 (git): [ruby/reline] Handle mode condition in inputrc
(https://github.com/ruby/reline/pull/687)
https://github.com/ruby/reline/commit/bed5fb3d77
ima1zumi (Mari Imaizumi)
10:29 AM Revision 435f449b (git): [rubygems/rubygems] Make sure to force latest resolvable version explicitly
To make sure we can always update to the latest resolvable version for
each gem explicitly requested for update, we first run a full update,
and then add explicit exact requirements to the resolved versions. This
may lead into conflicts,...
deivid (David Rodríguez)
10:29 AM Revision 491195af (git): [rubygems/rubygems] Keep track of gems requested for update explicitly
https://github.com/rubygems/rubygems/commit/ea43e4c6d7 deivid (David Rodríguez)
10:29 AM Revision 83933f92 (git): [rubygems/rubygems] No need to reset version promoter here
Since resolution options don't change.
https://github.com/rubygems/rubygems/commit/5c5aa38c06
deivid (David Rodríguez)
09:04 AM Revision 53571de8 (git): [rubygems/rubygems] Fix circular require warning
https://github.com/rubygems/rubygems/commit/241d0aafcd deivid (David Rodríguez)
08:57 AM Revision d6cb62a8 (git): [rubygems/rubygems] Show better error when installed gemspecs are unreadable
https://github.com/rubygems/rubygems/commit/924f87c8a9 deivid (David Rodríguez)
08:56 AM Revision 68a1867f (git): [rubygems/rubygems] Fix issue with `bundle update` with an out of sync lockfile
An old platform related bug fix made some existing lockfiles no longer
work because they included invalid platforms. So to make it backwards
compatible, code was added to remove invalid platforms from the lockfile
before resolution. This...
deivid (David Rodríguez)
08:42 AM Revision 6203307f (git): [rubygems/rubygems] Address PR feedback
https://github.com/rubygems/rubygems/commit/62be097a32 Andy Waite
08:42 AM Revision 2a683f3f (git): [rubygems/rubygems] Clarify `bundle check` behaviour in docs
https://github.com/rubygems/rubygems/commit/c438c6db2e Andy Waite
06:09 AM Revision 5ed20644 (git): Lrama v0.6.8
yui-knk (Kaneko Yuichiro)
01:09 AM Revision b7bd55cd (git): suppress -Wold-style-cast warnings
shyouhei (Shyouhei Urabe)
01:03 AM Revision 17a0e2ac (git): workaround C++ compile error
We observe compiler error on FreeBSD. Their stdckdint.h does not
understand C++. This shall be addressed on their side. Unti then we
resport to our own version.
https://rubyci.s3.amazonaws.com/freebsd14/ruby-master/log/20240427T14300...
shyouhei (Shyouhei Urabe)

04/28/2024

11:38 PM Revision a6308ca9 (git): ripper: Move DSL line pattern
nobu (Nobuyoshi Nakada)
11:38 PM Revision f9cf923a (git): Use user defined parameterizing rules
ydah (Yudai Takada)
06:59 PM Bug #20094: Inline while loop behavior changed unexpectedly in 3.3.0
It seems like the bug is still present in Ruby 3.3.1:
```ruby
(p 1) while false # 1
```
rbjl (Jan Lelis)
04:11 PM Feature #18583: Pattern-matching: API for custom unpacking strategies?
Could the match operator, `=~`, could be used as a general complement to `===`?
Example (following original sketch from @zverok):
``` ruby
class Matcher
def initialize(regexp)
@regexp = regexp
end
def ===(obj)
@regexp.ma...
ntl (Nathan Ladd)
08:58 AM Revision 29aaf4ab (git): Remove `ast_new` field from `struct rb_parser_config_struct`
`ast_new` can be embedded into `rb_ast_new`. yui-knk (Kaneko Yuichiro)
04:38 AM Revision 5c3d5c7c (git): Lrama v0.6.7
yui-knk (Kaneko Yuichiro)
03:08 AM Revision ddd8da4b (git): [Universal parser] Improve AST structure
This patch moves `ast->node_buffer->config` to `ast->config` aiming to improve readability and maintainability of the source.
## Background
We could not add the `config` field to the `rb_ast_t *` due to the five-word restriction of the...
hasumikin (hitoshi hasumi)
12:01 AM Revision 8ad0b2cd (git): Use `' '+` instead of words_sep
ydah (Yudai Takada)
12:01 AM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
nithinbekal (Nithin Bekal) wrote in #note-18:
> > What name candidate do you have?
> ...
I like this as well as `AbstractMethodError`
Quintasan (Michał Zając)
 

Also available in: Atom