Project

General

Profile

Activity

From 11/26/2023 to 12/02/2023

12/02/2023

09:17 PM Revision d4b1f56f (git): [Fix] Support when nil is assigned to variable `name` (#9105)
* Add `!name.nil?` to if condition jinroq (Jinroq SAITOH)
06:06 PM Revision ad54fbf2 (git): Add missing GVL hooks for M:N threads and ractors
[Bug #20019]
This fixes GVL instrumentation in three locations it was missing:
- Suspending when blocking on a Ractor
- Suspending when doing a coroutine transfer from an M:N thread
- Resuming after an M:N thread starts
Co-authored-by:...
jhawthorn (John Hawthorn)
05:46 PM Revision 715cf9b6 (git): [DOC] More on What's Here (#9099)
* More on What's Here
* More on What's Here
burdettelamar (Burdette Lamar)
02:46 PM Bug #19144: Ruby should set AI_V4MAPPED | AI_ADDRCONFIG getaddrinfo flags by default
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-5:
> @akr could you take a look at my PR when you get a chance? I think I addressed your feedback, please let me know if I have misunderstood!
It seems fine.
I agree that we remove the te...
akr (Akira Tanaka)
02:06 PM Revision d1691617 (git): Pin instruction storage
The operands in each instruction needs to be pinned because if
auto-compaction runs in iseq_set_sequence, then the objects could exist
on the generated_iseq buffer, which would not be reference updated which
can lead to T_MOVED (and subs...
peterzhu2118 (Peter Zhu)
01:17 PM Feature #20034: [mkmf] Support creating a compilation database for C language tooling
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-3:
> I wonder if a middle ground between "in cruby" and "in a gem that ~nobody knows about" would be to include this functionality in the `rake-compiler` gem.
This was my initial idea t...
pounce (Calvin Lee)
07:17 AM Feature #20034: [mkmf] Support creating a compilation database for C language tooling
kjtsanaktsidis wrote:
> I wonder if a middle ground between "in cruby" and "in a gem that ~nobody knows about" would be to include this functionality in the rake-compiler gem.
This may be useful in that the functionality could beco...
rubyFeedback (robert heiler)
12:13 AM Feature #20034: [mkmf] Support creating a compilation database for C language tooling
> It did not work for me (insomuch that I could not find the generated compile-commands.json)
I just had another play around with it - It did work (spat out `./ext/nio4r/compile_commands.json` when I tried to compile nio4r, for exampl...
kjtsanaktsidis (KJ Tsanaktsidis)
12:48 PM Revision 092a17e7 (git): [DOC] Markup class name `Time` as code
nobu (Nobuyoshi Nakada)
12:46 PM Revision ae3e9f11 (git): [DOC] Include timezones document in timev.rb
So that it can be referred as a part of the document of `Time`. nobu (Nobuyoshi Nakada)
12:40 PM Revision c9c1670f (git): [ruby/rdoc] Markup punctuations need to be separated with a space
https://github.com/ruby/rdoc/commit/83f0149fc1 nobu (Nobuyoshi Nakada)
11:18 AM Bug #20022: GC.verify_compaction_references does not actually move all objects
I stared at this and did a bit of `printf` on it, and I _think_ I worked out that the formula for how many pages to add in one heap actually relates to how many objects there are in all the other heaps, even if they're not moved. Here's ... kjtsanaktsidis (KJ Tsanaktsidis)
09:58 AM Bug #19877: Non intuitive behavior of syntax only applied to literal value
I found a similar behavior for MATCH node (Prism::MatchLastLineNode)
~~~ruby
RubyVM::AbstractSyntaxTree.parse 'if (1; //); end'
(none):1: warning: regex literal in condition
=>
(SCOPE@1:0-1:15
tbl: []
args: nil
body:
(IF@...
tompng (tomoya ishida)
08:58 AM Bug #20036: Backport 6ebcf25de2859b5b6402b7e8b181066c32d0e0bf
ruby_3_2 82d39cb846748cd7de618b34b818f34d2c077e7e merged revision(s) 6ebcf25de2859b5b6402b7e8b181066c32d0e0bf. nagachika (Tomoyuki Chikanaga)
08:06 AM Bug #20036 (Closed): Backport 6ebcf25de2859b5b6402b7e8b181066c32d0e0bf
This is a backport management ticket.
I think https://github.com/ruby/ruby/commit/6ebcf25de2859b5b6402b7e8b181066c32d0e0bf should be backported into ruby_{3_1,3_2}.
nagachika (Tomoyuki Chikanaga)
08:58 AM Revision 82d39cb8 (git): merge revision(s) 6ebcf25de2859b5b6402b7e8b181066c32d0e0bf: [Backport #20036]
GC guard catch_table_ary in iseq_set_exception_table
The function iseq_set_exception_table allocates memory which can cause
a GC compaction to run. Since catch_table_ary is not on the stack, it
can be moved, whic...
nagachika (Tomoyuki Chikanaga)
04:32 AM Revision 4ee1f0fb (git): [ruby/irb] Implement `history` command
(https://github.com/ruby/irb/pull/761)
* Implement `history` command
Lists IRB input history with indices. Also aliased as `hist`.
* Add tests for `history` command
* Address feedback: `puts` with multiple arguments instead of `join`...
garyhtou (Gary Tou)

12/01/2023

11:58 PM Revision 9f6c6f88 (git): Lrama v0.5.11
yui-knk (Kaneko Yuichiro)
10:56 PM Revision 818813c2 (git): Implement paren node for `defined?`
Implements and adds a test for passing a parentheses node to `defined?`. eileencodes (Eileen Uchitelle)
10:51 PM Revision 6ecc1ca9 (git): [DOC] Update ARGF.readlines documentation to match/reference IO.readlines.
Ryan Davis
10:49 PM Misc #20035: Command-line settings move from parser to compiler
Moving `-n`/`-p` makes impossible to check `break`/`next`/`redo` in parser.
```shell-session
$ ruby -c -p -e break < /dev/null
Syntax OK
$ ruby -c -e break < /dev/null
-e:1: Invalid break
break
-e: compile error (SyntaxError)
```
nobu (Nobuyoshi Nakada)
06:44 PM Misc #20035 (Closed): Command-line settings move from parser to compiler
Right now, when you pass `-n`, `-p`, `-l`, or `-a`, these options are all passed to the parser to manipulate the parse tree into giving you the desired behavior. For example:
$ ruby --dump=parsetree -p -e "foo"
``` ruby
############...
kddnewton (Kevin Newton)
10:13 PM Revision 0aed37b9 (git): Make expandarray compaction safe
The expandarray instruction can allocate an array, which can trigger
a GC compaction. However, since it does not increment the sp until the
end of the instruction, the objects it places on the stack are not
marked or reference updated by...
peterzhu2118 (Peter Zhu)
10:11 PM Feature #20034: [mkmf] Support creating a compilation database for C language tooling
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-1:
> Does this do what you want? (I haven’t used it in a year or so, so it could just be broken at the moment - if so let me know and I’ll try and fix it).
I found this during my search...
pounce (Calvin Lee)
04:28 PM Feature #20034: [mkmf] Support creating a compilation database for C language tooling
Oh, I wrote a gem for this a while ago! https://rubygems.org/gems/extconf_compile_commands_json
Does this do what you want? (I haven’t used it in a year or so, so it could just be broken at the moment - if so let me know and I’ll try ...
kjtsanaktsidis (KJ Tsanaktsidis)
01:59 PM Feature #20034 (Open): [mkmf] Support creating a compilation database for C language tooling
# Abstract
Ruby projects are often developed with C extensions. These can be easily compiled by ruby by using `create_makefile` in `mkmf.rb`. Unfortunately, most C tooling is unable to interpret the ruby build system for C files, and ...
pounce (Calvin Lee)
08:53 PM Revision 492c82cb (git): [ruby/prism] Prism.parse_success?(source)
A lot of tools use Ripper/RubyVM::AbstractSyntaxTree to determine
if a source is valid. These tools both create an AST instead of
providing an API that will return a boolean only.
This new API only creates the C structs, but doesn't bot...
kddnewton (Kevin Newton)
08:21 PM Revision b77551ad (git): Remove unneeded local variables
peterzhu2118 (Peter Zhu)
08:10 PM Revision 562d949e (git): [ruby/prism] Fix parsing heredoc ends
https://github.com/ruby/prism/commit/aa8c702271 Haldun Bayhantopcu
08:05 PM Revision 39238888 (git): Implements missing literals for `defined?`
This PR implements the following literals:
- String
- Symbols
- Integers
- Floats
- Regexs
- Ranges
- Lambdas
- Hashes
and tests for them.
eileencodes (Eileen Uchitelle)
08:04 PM Revision ee0eca19 (git): Make String#undump compaction safe
peterzhu2118 (Peter Zhu)
08:04 PM Revision 80ea7fba (git): Pin embedded shared strings
Embedded shared strings cannot be moved because strings point into the
slot of the shared string. There may be code using the RSTRING_PTR on
the stack, which would pin the string but not pin the shared string,
causing it to move.
peterzhu2118 (Peter Zhu)
07:50 PM Revision 0ed55bf0 (git): [rubygems/rubygems] Reduce array allocations when loading definition
The same array was being re-created in a loop (as well as the `generic_local_platform`), which is avoidable by hoisting it to a frozen array created once
https://github.com/rubygems/rubygems/commit/009a3c6d0d
segiddins (Samuel Giddins)
06:57 PM Bug #20033 (Closed): `/#{''}(?<lvar>)/ =~ s` looks like a dynamic regexp match but assigns to local variable
Applied in changeset commit:git|a607d62d8c5786087916413c369dbde0c62db573.
----------
[Bug #20033] Dynamic regexp should not assign captures
nobu (Nobuyoshi Nakada)
05:39 PM Bug #20033: `/#{''}(?<lvar>)/ =~ s` looks like a dynamic regexp match but assigns to local variable
https://github.com/ruby/ruby/pull/9097 nobu (Nobuyoshi Nakada)
01:38 PM Bug #20033: `/#{''}(?<lvar>)/ =~ s` looks like a dynamic regexp match but assigns to local variable
+1, it should only be static regexp literals which assign variables (= without `#{}`), that's much simpler for everyone to understand.
The current situation feels like mixing parsing and compilation/optimization in the parser.
Eregon (Benoit Daloze)
01:02 PM Bug #20033 (Closed): `/#{''}(?<lvar>)/ =~ s` looks like a dynamic regexp match but assigns to local variable
I expect all of these code not to assign to lvar because all regexp looks like embedded dynamic regexp.
~~~ruby
/#{''}(?<lvar>)/ =~ '' # assings to lvar
/#{"#{''}"}(?<lvar>)/ =~ '' # does not assign to lvar
/#{<<A}(?<lvar>)/ =~ '...
tompng (tomoya ishida)
06:57 PM Revision a607d62d (git): [Bug #20033] Dynamic regexp should not assign captures
nobu (Nobuyoshi Nakada)
06:46 PM Revision ec83bd73 (git): [ruby/prism] Provide heredoc? queries
https://github.com/ruby/prism/commit/e148e8fe6a kddnewton (Kevin Newton)
06:23 PM Revision 2a8d9c59 (git): [PRISM] Account for RescueNodes with no statements
We need a PUTNIL if a RescueNode has no statements. jemmai (Jemma Issroff)
06:07 PM Revision d6584a02 (git): [PRISM] Fix behavior of BlockParameters with only one parameter
This commit sets the ambiguous param flag if there is only one
parameter on a block node. It also fixes a small bug with a trailing
comma on params.
jemmai (Jemma Issroff)
06:04 PM Revision ef466ac9 (git): [ruby/irb] Scrub past history input before split
(https://github.com/ruby/irb/pull/795)
* Scrub past history input before split
* Don't rewrite ENV["LANG"]
https://github.com/ruby/irb/commit/0f344f66d9
hogelog (Sunao Komuro)
05:52 PM Revision 73440e1e (git): [rubygems/rubygems] Many major_deprecations supply :removed_message
Generally the removed message is very similar, but often it needs to
specify that the feature has "been removed" instead of "will be
removed", or "been deprecated". And a few chunks of text needed more
substantial updates. And a number o...
nevinera (Eric Mueller)
05:52 PM Revision 079dfa18 (git): [rubygems/rubygems] major_deprecation accepts :removed_message
If supplied, it uses that in place of the message for the case where the
deprecation version is already past.
https://github.com/rubygems/rubygems/commit/1deb73663c
nevinera (Eric Mueller)
05:41 PM Bug #19838 (Closed): Ripper nested heredocs
Applied in changeset commit:git|e5e1f9813e23c427cf45a25181b2e6d3cf97411a.
----------
[Bug #19838] Flush delayed token nonconsecutive with the next token
nobu (Nobuyoshi Nakada)
05:41 PM Revision e5e1f981 (git): [Bug #19838] Flush delayed token nonconsecutive with the next token
nobu (Nobuyoshi Nakada)
05:41 PM Revision add0ab07 (git): Extract `end_with_newline_p`
nobu (Nobuyoshi Nakada)
05:41 PM Revision 6e2b10d4 (git): Prefer proper enum over bare int
nobu (Nobuyoshi Nakada)
05:20 PM Revision 9d209093 (git): [PRISM] Clean up trailing comment
jemmai (Jemma Issroff)
05:14 PM Revision d224618b (git): [PRISM] Restructure parameters
Prior to this commit, we weren't accounting for hidden variables
on the locals table, so we would have inconsistencies on the stack.
This commit fixes params, and introduces a hidden_variable_count
on the scope, both of which fix paramet...
jemmai (Jemma Issroff)
05:03 PM Revision 5150ba0d (git): [prism] Update to latest numbered parameters
kddnewton (Kevin Newton)
05:03 PM Revision cdb74d74 (git): [ruby/prism] Change numbered parameters
Previously numbered parameters were a field on blocks and lambdas
that indicated the maximum number of numbered parameters in either
the block or lambda, respectively. However they also had a
parameters field that would always be nil in ...
kddnewton (Kevin Newton)
04:40 PM Revision 90d9c20a (git): [PRISM] Compile RescueNode
eightbitraptor (Matt V-H)
03:34 PM Bug #19877: Non intuitive behavior of syntax only applied to literal value
Thank you @nobu that fixes the regex, but we still need it for flip-flops:
https://github.com/ruby/prism/issues/1923
``` ruby
RubyVM::AbstractSyntaxTree.parse 'if (1; a..b); end'
# =>
(SCOPE@1:0-1:17
tbl: []
args: nil
bod...
kddnewton (Kevin Newton)
03:23 PM Revision 8f3310dc (git): Remove unused files in prism
kddnewton (Kevin Newton)
03:18 PM Revision 64f33aea (git): [ruby/prism] Update snapshots
https://github.com/ruby/prism/commit/f4c80c67dc kddnewton (Kevin Newton)
03:17 PM Revision cbe57caa (git): [ruby/prism] Fix comments after HEREDOCs again.
The problem was deeper than just looking back a single token.
You can push the heredoc_end token way back into the list.
We need to save the last location of a heredoc end to see if
it's the last token in the file.
Fixes https://github....
martinemde (Martin Emde)
03:15 PM Revision ffeec108 (git): [ruby/prism] Add missing context names to the switch in `debug_context`
Now, `PM_DEBUG_LOGGING` can be available.
https://github.com/ruby/prism/commit/569ffacb5f
make_now_just (Hiroya Fujinami)
03:15 PM Revision 417d7004 (git): [ruby/prism] Improve to handle unterminated strings
Fix https://github.com/ruby/prism/pull/1946
This fixes to set an error position for unterminated strings to the
opening delimiters. Previously, the error position was set to the end
of the delimiter.
The same fix applies to other strin...
make_now_just (Hiroya Fujinami)
03:13 PM Revision 0e599336 (git): [ruby/prism] Fix `not_provided` comment
I don't know when it is changed, but the `not_provided` signature is
changed.
https://github.com/ruby/prism/commit/0255cc307d
make_now_just (Hiroya Fujinami)
03:04 PM Revision 3b21932d (git): [PRISM] Use depth_offset not transparent scopes for FOR
eightbitraptor (Matt V-H)
03:04 PM Revision ce5f5ca1 (git): [PRISM] Remove transparent scope nodes
eightbitraptor (Matt V-H)
02:56 PM Revision 43ef0da0 (git): Add assertions for shape cache grandchild nodes
peterzhu2118 (Peter Zhu)
12:24 PM Feature #20031: Regexp using greedy quantifier and unions on a big string uses a lot of memory
I played around a bit and both time and memory seem linear in the size of the input string on CRuby.
However the memory usage is indeed huge, ~2GB for 50MB string, ~4GB for 100MB string, ~8GB for 200MB string, etc.
I tried it on Truffle...
Eregon (Benoit Daloze)
12:46 AM Feature #20031: Regexp using greedy quantifier and unions on a big string uses a lot of memory
I think this behavior is expected. The regex engine stretches the stack by the number of charaters in the input string because of backtracking. The size of the stack is visible as memory usage.
Simply put, `/.*(foo|bar)/` is inefficie...
mame (Yusuke Endoh)
11:33 AM Revision 64c4bbb8 (git): [ruby/prism] Add test/prism/snapshots/heredoc_with_comment.txt
https://github.com/ruby/prism/commit/97b296a0f7 hsbt (Hiroshi SHIBATA)
07:48 AM Revision e005c517 (git): Update default gems list at 7d142c08cb5b65e4ba110b116c41a8 [ci skip]
git[bot]
07:47 AM Revision 7d142c08 (git): lib/helper only needs on flori/json repo
hsbt (Hiroshi SHIBATA)
07:47 AM Revision 86045fca (git): Manually merged from flori/json
> https://github.com/flori/json/pull/525
> Rename escape_slash in script_safe and also escape E+2028 and E+2029
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
> https://github.com/flori/json/pull/454
> Remove unnecessa...
hsbt (Hiroshi SHIBATA)
07:47 AM Revision 0dfeb172 (git): Rename escape_slash in script_safe and also escape E+2028 and E+2029
It is rather common to directly interpolate JSON string inside
<script> tags in HTML as to provide configuration or parameters to a
script.
However this may lead to XSS vulnerabilities, to prevent that 3
characters need to be escaped:
...
byroot (Jean Boussier)
07:47 AM Revision 698cb840 (git): Use ruby_xfree to free buffers
They are allocated with ruby_xmalloc, they should be freed with
ruby_xfree.
byroot (Jean Boussier)
07:47 AM Revision 32f289d1 (git): [flori/json] Bump up 2.7.0
https://github.com/flori/json/commit/ca546128f2 hsbt (Hiroshi SHIBATA)
07:47 AM Revision 4b770527 (git): [flori/json] Fix "unexpected token" offset for Infinity
Previously in the JSON::Ext parser, when we encountered an "Infinity"
token (and weren't allowing NaN/Infinity) we would try to display the
"unexpected token" at the character before.
https://github.com/flori/json/commit/42ac170712
jhawthorn (John Hawthorn)
07:47 AM Revision 854e6559 (git): [flori/json] tests/ractor_test.rb: make assert_separately available
Require tests/lib/helper.rb to avoid:
NoMethodError: undefined method `assert_separately'
https://github.com/flori/json/commit/a81bcc0328
Lucas Kanashiro
07:45 AM Revision 062b59ba (git): Fix typos [ci skip]
znz (Kazuhiro NISHIYAMA)
07:39 AM Revision 60568e97 (git): Sort links [ci skip]
znz (Kazuhiro NISHIYAMA)
06:38 AM Bug #20030 (Closed): `Ripper.tokenize('"\\C-あ"')` separates encoding valid string to encoding invalid string.
Applied in changeset commit:git|d503e1b95a40e45d7767e0175de60092de4ba54e.
----------
[Bug #20030] dispatch invalid escaped character without ignoring it
nobu (Nobuyoshi Nakada)
06:16 AM Bug #20030: `Ripper.tokenize('"\\C-あ"')` separates encoding valid string to encoding invalid string.
https://github.com/ruby/ruby/pull/9091
This fixes another ripper scanner event issue at a syntax error too.
nobu (Nobuyoshi Nakada)
06:04 AM Revision e36b9760 (git): Dispatch invalid hex escape content too
nobu (Nobuyoshi Nakada)
06:04 AM Revision d503e1b9 (git): [Bug #20030] dispatch invalid escaped character without ignoring it
nobu (Nobuyoshi Nakada)
03:20 AM Revision 52c26601 (git): Fixup with review comment
https://github.com/ruby/ruby/pull/9088#discussion_r1411490445 shioimm (Misaki Shioi)
03:20 AM Revision 1bfd30a1 (git): Relax test conditions to velify Socket::ResolutionError#error_code
The test for Socket::ResolutionError#error_code fails in the FreeBSD environment with this test condition. Because Socket::ResolutionError#error_code returns Socket::EAI_FAIL instead of Socket::EAI_FAMILY.
https://rubyci.s3.amazonaws.co...
shioimm (Misaki Shioi)
02:37 AM Revision e2bbbacc (git): [ruby/prism] Correctly pass around const pm_encoding_t *
https://github.com/ruby/prism/commit/ce4c67fb3a kddnewton (Kevin Newton)
02:37 AM Revision b4a85e40 (git): [PRISM] Fix up prism encoding targets
kddnewton (Kevin Newton)
02:37 AM Revision 99a147ff (git): [ruby/prism] Document remaining encodings
https://github.com/ruby/prism/commit/b9510aed40 kddnewton (Kevin Newton)
02:37 AM Revision 0c277f2b (git): [ruby/prism] Group encodings into a single array
https://github.com/ruby/prism/commit/f4b7beadc9 kddnewton (Kevin Newton)
02:37 AM Revision 6b234c1a (git): [ruby/prism] Do not expose encodings that do not need to be exposed
https://github.com/ruby/prism/commit/c52c7f37ea kddnewton (Kevin Newton)
02:37 AM Revision ea409958 (git): [ruby/prism] Remove ability to decode other encodings
https://github.com/ruby/prism/commit/98e218d989 kddnewton (Kevin Newton)
02:37 AM Revision 99708318 (git): [ruby/prism] Remove public ASCII functions that can now be static
https://github.com/ruby/prism/commit/9461384b0c kddnewton (Kevin Newton)
02:37 AM Revision abb1fe28 (git): [PRISM] Consolidate prism encoding files
kddnewton (Kevin Newton)
02:37 AM Revision 19a321bf (git): [ruby/prism] CESU encoding
https://github.com/ruby/prism/commit/2d5b9c2b3c kddnewton (Kevin Newton)
02:37 AM Revision ca26e0e3 (git): [ruby/prism] EUC-TW encoding
https://github.com/ruby/prism/commit/edfb54f039 kddnewton (Kevin Newton)
02:37 AM Revision dde0abb2 (git): [ruby/prism] Shorter function definitions in pm_big5.c
https://github.com/ruby/prism/commit/7ddf651bab kddnewton (Kevin Newton)
02:37 AM Revision 32249c2c (git): [ruby/prism] GB18030 encoding
https://github.com/ruby/prism/commit/ca3ab7ec89 kddnewton (Kevin Newton)
02:37 AM Revision a9162a44 (git): [ruby/prism] Emacs MULE encodings
https://github.com/ruby/prism/commit/4c06b6c42e kddnewton (Kevin Newton)
02:37 AM Revision 10d3897e (git): [PRISM] Big5 encodings
kddnewton (Kevin Newton)
02:37 AM Revision 700e172a (git): [ruby/prism] EUC-KR encodings
https://github.com/ruby/prism/commit/ba5218385a kddnewton (Kevin Newton)
02:37 AM Revision ddaa0730 (git): [ruby/prism] Support other EUC-JP encodings
https://github.com/ruby/prism/commit/d040337ce9 kddnewton (Kevin Newton)
02:37 AM Revision 7b5bb978 (git): [PRISM] Alias CP51932 to EUC-JP
kddnewton (Kevin Newton)
02:37 AM Revision 9ba92327 (git): [PRISM] Consolidate SJIS encodings
kddnewton (Kevin Newton)
02:37 AM Revision 219c3c1c (git): [ruby/prism] Add other UTF8 encodings
https://github.com/ruby/prism/commit/709fb6e09f kddnewton (Kevin Newton)
02:35 AM Revision ba1cdadf (git): YJIT: Cancel on-stack jit_return on invalidation (#9086)
* YJIT: Cancel on-stack jit_return on invalidation
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
* Use RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P
---------
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
k0kubun (Takashi Kokubun)
01:54 AM Misc #20032 (Assigned): Propose @kjtsanaktsidis as a commiter
hsbt (Hiroshi SHIBATA)
01:54 AM Misc #20028 (Assigned): I'd like my commit bit back
hsbt (Hiroshi SHIBATA)
12:50 AM Feature #20011: Reduce implicit array allocations on caller side of method calling
I expanded the pull request to handle `getblockparamproxy` for block arguments, in addition to `getlocal` and `getinstancevariable`. `getblockparamproxy`is used inside methods, when the block being passed in the current calls was passed... jeremyevans0 (Jeremy Evans)
12:19 AM Revision 5888a16a (git): YJIT: Use `stats[:live_page_count]`, renamed from :compiled_page_count
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> alanwu (Alan Wu)

11/30/2023

11:49 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
Agreed. He is a great hacker who can write patches for very difficult areas and has the ownership to follow up on issues that arise after the merge. mame (Yusuke Endoh)
11:47 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
+1 k0kubun (Takashi Kokubun)
10:28 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
Thank you for your nomination! I very much appreciate it, it's a real privilege. It's been great fun being part of the Ruby community, and I look forward to working even more closely with you all on Ruby if accepted as a committer. kjtsanaktsidis (KJ Tsanaktsidis)
09:05 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
+1 byroot (Jean Boussier)
08:11 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
+1 tenderlovemaking (Aaron Patterson)
07:59 PM Misc #20032 (Closed): Propose @kjtsanaktsidis as a commiter
I'd like to propose @kjtsanaktsidis as a committer, with a focus on bug triaging and fixing. During RubyKaigi 2023, KJ expressed interest in helping triage and fix bugs, and since then, he has fixed numerous bugs. What's most impressiv... jeremyevans0 (Jeremy Evans)
11:46 PM Revision 59f31a66 (git): NEWS: Adjust indentation for RDoc's markdown parser
Indenting by 2 spaces wasn't yielding nested list up as intended. I guess
it's a quirk of RDoc's markdown parser:
https://github.com/ruby/rdoc/blob/v6.6.0/lib/rdoc/markdown.kpeg#L1128-L1130
NonindentSpace = / {0,3}/
Indent =...
alanwu (Alan Wu)
11:28 PM Revision c3cb27ee (git): NEWS update about calling Kernel#lambda with non-literal block
alanwu (Alan Wu)
10:14 PM Revision 73e6d8a0 (git): YJIT: optimized codegen for `rb_ary_length()` (#9085)
YJIT: optimized codegen for rb_ary_length() maximecb (Maxime Chevalier-Boisvert)
09:48 PM Revision 4541e192 (git): Add assertions in redblack_balance
These assertions check that binary search tree invariants are held for
the new tree.
peterzhu2118 (Peter Zhu)
09:31 PM Revision 0c7c654b (git): [Prism] Fix local variable access for POST_EXECUTION_NODE
eightbitraptor (Matt V-H)
09:31 PM Revision 57782d3d (git): Store depth offset inside the scope node.
Instead of incrementing the depth using call by reference as we're
recursing up the stack we could instead store an offset for each known
scope where we know the depth is going to represented differently in the
Prism ast.
eightbitraptor (Matt V-H)
08:41 PM Revision a1647c46 (git): Rename variables redblack_balance
It's too difficult for me to keep track that y is the new node, x is the
new left node, z is the new right node, a is the new left left node,
b is the new left right node, c is the new right left node, and d is
the new right right node. ...
peterzhu2118 (Peter Zhu)
07:58 PM Bug #19417 (Closed): Regexp \p{Word} and [[:word:]] do not match Unicode Other_Number character
Applied in changeset commit:git|060f14bf62ad3f426a6666901c45b82d4334fa26.
----------
Update documentation for [[:word:]] and \p{Word} in regexps
Onigmo uses Decimal_Number and not Number for these.
Fixes [Bug #19417]
jeremyevans (Jeremy Evans)
07:58 PM Revision 7008d97b (git): [rubygems/rubygems] Only show "Defaulting to user installation" message when it matters.
https://github.com/rubygems/rubygems/commit/61b0947225 Ellen Marie Dash
07:47 PM Bug #19144 (Open): Ruby should set AI_V4MAPPED | AI_ADDRCONFIG getaddrinfo flags by default
jeremyevans0 (Jeremy Evans)
07:26 PM Bug #19392: Endless method and parsing priorities
Updated the description to underline the nature of the problem better. zverok (Victor Shepelev)
06:40 PM Revision 060f14bf (git): Update documentation for [[:word:]] and \p{Word} in regexps
Onigmo uses Decimal_Number and not Number for these.
Fixes [Bug #19417]
jeremyevans (Jeremy Evans)
06:34 PM Revision f75fef66 (git): Mention {Queue,SizedQueue}#freeze change in NEWS
jeremyevans (Jeremy Evans)
05:42 PM Revision 0d1917ae (git): [ruby/prism] Remove no-op assignment
https://github.com/ruby/prism/commit/4b3079d9e8 Haldun Bayhantopcu
05:41 PM Feature #20031 (Feedback): Regexp using greedy quantifier and unions on a big string uses a lot of memory
Trying to match on some regexp using a greedy quantifier on any character (`.*`) and unions (`foo|bar`) uses a lot of memory if the string we want to match on is big.
# Reproduction code
```ruby
puts RUBY_DESCRIPTION
unless Fil...
FabienChaynes (Fabien Chaynes)
04:59 PM Revision 85092ecd (git): Fix imemo_env corruption under auto compaction
Previously, vm_make_env_each() did:
1. ALLOC env_body
2. Copy locals into env_body
3. Allocate imemo_env
4. Set up imemo_env with env_body
If compaction runs during (3), locals copied to env_body could be
moved and the imemo_env...
alanwu (Alan Wu)
04:58 PM Bug #20030 (Closed): `Ripper.tokenize('"\\C-あ"')` separates encoding valid string to encoding invalid string.
~~~ruby
Ripper.tokenize '"\\C-あ"' # or Ripper.tokenize "\"\\C-\u3042\""
# =>
["\"", "\x81", "\x82", "\""]
~~~
I expect all tokens to be valid_encoding if the source string is valid_encoding.
This is causing IRB crash when typing ...
tompng (tomoya ishida)
04:23 PM Revision d048bae9 (git): YJIT: Bump ec->cfp after setting cfp->jit_return (#9072)
k0kubun (Takashi Kokubun)
03:22 PM Revision f193f96d (git): [ruby/irb] Page evaluation result's output
(https://github.com/ruby/irb/pull/784)
* Page evaluation result's output
This will make it easier to work with long output that exceeds the terminal's height.
* Use consistent TERM in rendering tests
This makes sure we get consistent...
st0012 (Stan Lo)
03:06 PM Revision cc393b4f (git): [ruby/rdoc] Get rid of `Kernel#open`
https://github.com/ruby/rdoc/commit/dc56f6d0bd nobu (Nobuyoshi Nakada)
02:48 PM Revision 3c5a3b73 (git): Highlight some GC improvements in NEWS
3.3. got some major GC changes that do translate in very meaningful
performance gains, we should surface that.
byroot (Jean Boussier)
02:48 PM Revision 630c97ac (git): Add a rescue for `defined?(A::B::C)`
It's possible for `defined?(A::B::C)` to raise an exception. `defined?`
must swallow the exception and return nil, so this commit adds a rescue
entry for `defined?` expressions on constant paths
tenderlovemaking (Aaron Patterson)
02:10 PM Revision 2c64041e (git): [ruby/prism] Fix typo in comment
https://github.com/ruby/prism/commit/eb1a6ba263 sid-707
02:10 PM Revision aac8be80 (git): [ruby/prism] Fix lex_compat for `<<HEREDOC # comment` at EOF
Fixes https://github.com/ruby/prism/pull/1874
https://github.com/ruby/prism/commit/304dd78dd2
martinemde (Martin Emde)
01:32 PM Bug #19920: Ruby 3.1 fails to build with --enable-shared on macos-arm64: is an incompatible architecture (have 'arm64', need '')
This problem happens only on SIP-disabled macOS, and I found that recent GitHub Actions macOS runners disable SIP... (It's enabled until macOS 11 runner)
The use of dyld environment variable has been removed since 3.2.0 by https://githu...
katei (Yuta Saito)
01:28 PM Bug #20029 (Closed): coroutine/arm64/Context.S does not support PAC/BTI
On aarch64/arm64, when we build with `-mbranch-protection=standard` to enable Pointer Authentication (PAC) and Branch Target Identification (BTI), the final link disable them, because `coroutine/arm64/Context.S` does not support PAC and ... ggardet (Guillaume GARDET)
12:40 PM Revision 1802d14c (git): [Bug #19877] Assign captures for direct regexp literal only
nobu (Nobuyoshi Nakada)
12:39 PM Revision 0cdad3b9 (git): Add `RUBY_REFERENCES`
Instead of `RUBY_REFERENCES_START` and `RUBY_REFERENCES_END`, so that
auto-indent works well.
nobu (Nobuyoshi Nakada)
12:39 PM Revision 30f7b7a0 (git): Prefix `REF_EDGE` and `REFS_LIST_PTR` with `RUBY_`
Also move `struct` so that `typedef`-ed names can be used. nobu (Nobuyoshi Nakada)
12:35 PM Revision 18f218d6 (git): Add some test cases to Data test
I noticed that `deconstruct` and `hash` don't have enough coverage.
The behavior of `hash` is documented so I copied it.
okuramasafumi (Masafumi OKURA)
12:32 PM Feature #19117: Include the method owner in backtraces, not just the method name
mame (Yusuke Endoh) wrote in #note-21:
> * How much impact does exception generation have on performance? (Each frame of the backtrace needs to maintain self)
That's a good point. While the method name can be stored in the bytecode or s...
Eregon (Benoit Daloze)
07:27 AM Feature #19117: Include the method owner in backtraces, not just the method name
Agreed. I took the liberty to create a 3.4 target version and add it. byroot (Jean Boussier)
07:01 AM Feature #19117: Include the method owner in backtraces, not just the method name
Let's discuss this towards Ruby 3.4 :cry: mame (Yusuke Endoh)
11:17 AM Revision 722cb9a5 (git): Skip test_resolurion_error_error_code with FreeBSD environment
https://rubyci.s3.amazonaws.com/freebsd12/ruby-master/log/20231130T103002Z.fail.html.gz hsbt (Hiroshi SHIBATA)
10:17 AM Bug #19877: Non intuitive behavior of syntax only applied to literal value
https://github.com/ruby/ruby/pull/9077 ? nobu (Nobuyoshi Nakada)
10:05 AM Revision e1b65e5f (git): Add NEWS entry for the deprecation of subprocess creation/forking
[Feature #19630] mame (Yusuke Endoh)
08:50 AM Feature #20024: SyntaxError subclasses
I'm interested in this topic and proposed a while ago to add `SyntaxError#diagnostics` which is a more detailed information relating to parse errors and how to rectify them. I'd be interested in discussing this in more detail. ioquatix (Samuel Williams)
03:55 AM Feature #20024: SyntaxError subclasses
# SyntaxError includes multiple errors
`SyntaxError` includes multiple errors like below, in this case two errors are included into one `SyntaxError`. Therefore it needs to consider how to handle such cases.
```ruby
begin
eval ...
yui-knk (Kaneko Yuichiro)
08:39 AM Revision f7d26889 (git): Sort links [ci skip]
znz (Kazuhiro NISHIYAMA)
08:31 AM Misc #20028: I'd like my commit bit back
Assigned to @hsbt. If he cannot do it, he will at least know who is in charge. duerst (Martin Dürst)
07:10 AM Misc #20028: I'd like my commit bit back
That's @hsbt, but cvs-admin@ruby-lang.org seems to be the right contact. Here are the instructions you'll need to follow: https://github.com/ruby/ruby/wiki/Committer-How-To k0kubun (Takashi Kokubun)
06:55 AM Misc #20028 (Closed): I'd like my commit bit back
It's been a while, in the svn -> git shuffle I lost commit privs. I'd like to help out more actively, triage issues, clean doco, etc.
Not sure who's doing admin work so I'm not sure who to assign to to expedite.
zenspider (Ryan Davis)
08:23 AM Revision 5259edaf (git): Add NEWS entry for WeakMap#delete and `RUBY_CRASH_REPORT`
I wasn't too sure where to put `RUBY_CRASH_REPORT`, it's not exactly
a command line option but close enough.
byroot (Jean Boussier)
08:19 AM Revision 30e47780 (git): [ruby/cgi] Fix unescapeHTML
https://github.com/ruby/cgi/commit/67610e6ca8 flosacca
08:19 AM Revision 0daa0589 (git): [ruby/cgi] Add failing test cases for CGI::Escape.unescapeHTML
https://github.com/ruby/cgi/commit/92fdb3316b flosacca
08:18 AM Misc #19997: DevMeeting-2023-11-30
@matz was absent today. We had a light discussion with the committers who were present, but will maybe hold the meeting again on 7th Dec. if matz can make it. mame (Yusuke Endoh)
06:53 AM Bug #16145: regexp match error if mixing /i, character classes, and utf8
@duerst I don't think your intuition about the character classes is correct:
``` ruby
"CAFÉ" =~ /[a]/i
# => 1
```
zenspider (Ryan Davis)
06:38 AM Revision f2f91396 (git): Move #19785 correct category in NEWS
hsbt (Hiroshi SHIBATA)
06:33 AM Feature #19720 (Rejected): Warning for non-linear Regexps
mame (Yusuke Endoh)
06:29 AM Misc #20015: Privacy policy for ruby-lang.org
I would like to point out a few syntax errors in the published description or expressions whose meaning most likely departs from what was actually intended.
1
> We will not give away your email address to anyone, who is not related to ...
sawa (Tsuyoshi Sawada)
05:45 AM Misc #20015 (Closed): Privacy policy for ruby-lang.org
I published this at https://www.ruby-lang.org/en/privacy/. hsbt (Hiroshi SHIBATA)
06:19 AM Feature #19588 (Closed): Allow Comparable#clamp(min, max) to accept nil as a specification
The two PRs are merged. Closing mame (Yusuke Endoh)
04:38 AM Revision f2ad2460 (git): Update bundled gems list as of 2023-11-29
git[bot]
04:36 AM Revision e6d44416 (git): Fix the argument order
nobu (Nobuyoshi Nakada)
04:32 AM Revision ac9fdb7a (git): Adjust indent [ci skip]
nobu (Nobuyoshi Nakada)
04:27 AM Revision 5baa2b96 (git): Make test-bundled-gems success
shioimm (Misaki Shioi)
04:27 AM Revision f9829317 (git): Fix failing spec
shioimm (Misaki Shioi)
04:27 AM Revision 5f62b1d0 (git): Rename rsock_raise_socket_error to rsock_raise_resolution_error
Again, rsock_raise_socket_error is called only when getaddrinfo and getaddrname fail shioimm (Misaki Shioi)
04:27 AM Revision 52f6de41 (git): Replace SocketError with Socket::ResolutionError in rsock_raise_socket_error
rsock_raise_socket_error is called only when getaddrinfo and getaddrname fail shioimm (Misaki Shioi)
04:27 AM Revision e9050270 (git): Add Socket::ResolutionError & Socket::ResolutionError#error_code
Socket::ResolutionError#error_code returns Socket::EAI_XXX shioimm (Misaki Shioi)
03:51 AM Revision db7f3064 (git): Implement proc_entry on VWA
peterzhu2118 (Peter Zhu)
03:51 AM Revision 40e67cb2 (git): Implement Write Barriers on proc_entry
peterzhu2118 (Peter Zhu)
03:51 AM Revision 705a3c69 (git): Add RUBY_TYPED_FREE_IMMEDIATELY flag to proc_entry
peterzhu2118 (Peter Zhu)
03:41 AM Revision 62e2e1da (git): [rubygems/rubygems] Allow auto-install to install missing git gems
Currently, auto-install with git gems fails, when
it would succeed with a rubygems-source gem
Fix the issue by doing the same fallback for git errors as we do for
missing gems, the git errors should only bubble up in these cases when
th...
segiddins (Samuel Giddins)
03:21 AM Revision f2bb5394 (git): Manually sync with https://github.com/ruby/open3/pull/22 and related PRs
hsbt (Hiroshi SHIBATA)
03:11 AM Revision 7174c62f (git): [prism] Remove escaping C source files
kddnewton (Kevin Newton)
12:21 AM Revision 3d908a41 (git): Guard match from GC in String#gsub
We need to guard match from GC because otherwise it could end up being
reclaimed or moved in compaction.
peterzhu2118 (Peter Zhu)

11/29/2023

11:09 PM Revision 8d1138c1 (git): YJIT: edit `yjit.md` and bring it up to date (#9068)
Also make various minor edits to improve readability. maximecb (Maxime Chevalier-Boisvert)
10:54 PM Revision 128837e4 (git): Support RUNRUBY_USE_RR for rr debugger
peterzhu2118 (Peter Zhu)
10:54 PM Revision aee27516 (git): debugger can never be nil
peterzhu2118 (Peter Zhu)
09:28 PM Revision 2927c280 (git): [rubygems/rubygems] Avoid re-compiling static regexp in a loop
Pathname::SEPARATOR_PAT is a constant and can safely be interpolated once, avoiding creating a new regexp object on every iteration
https://github.com/rubygems/rubygems/commit/75d9c0f1e4
segiddins (Samuel Giddins)
09:20 PM Revision 82347638 (git): [PRISM] Compile empty array as newarray 0
Prior to this commit, we were compiling an empty array as a
duparray of [] which meant we were allocating a new value
unnecessarily. With this commit, we emit a newarray with size 0
instead.
jemmai (Jemma Issroff)
09:19 PM Revision 853fd447 (git): [PRISM] Implement CallNodes with splat followed by args
jemmai (Jemma Issroff)
09:14 PM Revision 2233204c (git): [PRISM] Account for ImplicitRestNode
Prism introduced a new ImplicitRestNode. This adds tests for the
ImplicitRestNode cases, and changes one assert which is no longer
accurate.
jemmai (Jemma Issroff)
09:00 PM Revision 53841941 (git): [PRISM] Fix EnsureNode, pass depth to get locals
This commit fixes a bug with locals in ensure nodes by setting
the local tables correctly. It also changes accessing locals to
look at local tables in parent scopes, and account for this
correctly on depths of get or setlocals.
jemmai (Jemma Issroff)
05:30 PM Revision 6ebcf25d (git): GC guard catch_table_ary in iseq_set_exception_table
The function iseq_set_exception_table allocates memory which can cause
a GC compaction to run. Since catch_table_ary is not on the stack, it
can be moved, which would make tptr incorrect.
peterzhu2118 (Peter Zhu)
05:08 PM Revision 14761edb (git): [prism] Add MacJapanese encodings to common.mk
kddnewton (Kevin Newton)
05:08 PM Revision 9fc40d2b (git): [ruby/prism] Add MacJapanese encoding
MacJapanese (also aliased as MacJapan) is a modified Shift_JIS
encoding, but is implemented identically in Ruby
https://github.com/ruby/prism/commit/9e0a097699
Matt Boldt
04:30 PM Revision 86d9a6dc (git): [ruby/irb] Use gem repl_type_completor, remove type_completion
implementation
(https://github.com/ruby/irb/pull/772)
https://github.com/ruby/irb/commit/a4868a5373
tompng (tomoya ishida)
04:15 PM Revision b549722e (git): [prism] Add pm_cp950 to make targets
kddnewton (Kevin Newton)
04:15 PM Revision 9fada99c (git): [ruby/prism] added CP950 encoding
https://github.com/ruby/prism/commit/9c2d1cf4ba Dhaval
03:30 PM Revision 57cb47bf (git): Assert that the left and right nodes are correct
peterzhu2118 (Peter Zhu)
03:24 PM Revision b632732b (git): [ruby/prism] Fixed comment on pm_parser_numbered_parameters_set
https://github.com/ruby/prism/commit/ceae5727b8 jemmai (Jemma Issroff)
03:22 PM Feature #19931: to_int is not for implicit conversion?
> Why not try to_f, to_r, etc then? (or their implicit conversion variants, although they don't currently exist)
Because they're for explicit conversion. That would be like implicitly calling #to_i, and that's obviously a bad idea.
Dan0042 (Daniel DeLorme)
12:50 PM Feature #19931: to_int is not for implicit conversion?
I think it would be a mistake to try `to_int` for arithmetic operators.
Why not try to_f, to_r, etc then? (or their implicit conversion variants, although they don't currently exist)
It might accidentally round values which seems prett...
Eregon (Benoit Daloze)
01:59 PM Revision 38e6442f (git): Add missing assertion in test_use_all_shapes_then_freeze
peterzhu2118 (Peter Zhu)
01:56 PM Revision 2af82e23 (git): [ruby/prism] Convert start line to signed integers
Ruby allows for 0 or negative line start, this is often used
with `eval` calls to get a correct offset when prefixing a snippet.
e.g.
```ruby
caller = caller_locations(1, 1).first
class_eval <<~RUBY, caller.path, caller.line - 2
# fr...
byroot (Jean Boussier)
01:56 PM Revision 26534048 (git): [ruby/prism] Rename varint as varuint
Line numbers may be negative, so we need to introduce signed varint,
so renaming unsigned ones first avoid confusion.
https://github.com/ruby/prism/commit/90d862361e
byroot (Jean Boussier)
12:25 PM Bug #17037 (Closed): rounding of Rational#to_f
Applied in changeset commit:git|8e93bf8e1fbac73b677c333b19a8b55ae9daddc3.
----------
[Bug #17037] Improve accuracy of division near precision limits
When dividing near the precision limit of `double`, use Bignum
division to get rid of ...
nobu (Nobuyoshi Nakada)
11:16 AM Revision 8e93bf8e (git): [Bug #17037] Improve accuracy of division near precision limits
When dividing near the precision limit of `double`, use Bignum
division to get rid of rounding errors.
nobu (Nobuyoshi Nakada)
10:07 AM Bug #20025 (Closed): Parsing identifiers/constants is case-folding dependent
Applied in changeset commit:git|79eb75a8dd64848f23e9efc465f06326b5d4b680.
----------
[Bug #20025] Check if upper/lower before fallback to case-folding
nobu (Nobuyoshi Nakada)
06:29 AM Bug #20025: Parsing identifiers/constants is case-folding dependent
https://en.wikipedia.org/wiki/Windows-1253#cite_note-5
> This is in addition to the existing μ at 0xEC, which remains in place. Unicode calls the one at 0xB5 "micro sign" (U+00B5) and the one at 0xEC "Greek small letter Mu" (U+03BC), al...
nobu (Nobuyoshi Nakada)
06:05 AM Bug #20025: Parsing identifiers/constants is case-folding dependent
https://github.com/ruby/ruby/pull/9059 nobu (Nobuyoshi Nakada)
07:58 AM Misc #19925 (Closed): DevMeeting-2023-11-07
k0kubun (Takashi Kokubun)
06:35 AM Bug #20026: Ruby doesn't throw a syntax error when rescuing with ||
You may want to write:
```ruby
begin
raise FooError
rescue FooError, BarError => e
puts "rescued #{e.class}"
end
```
nobu (Nobuyoshi Nakada)
05:40 AM Revision 79eb75a8 (git): [Bug #20025] Check if upper/lower before fallback to case-folding
nobu (Nobuyoshi Nakada)
02:21 AM Revision bd2b6b70 (git): [rubygems/rubygems] update Magnus library in Rust extension gem template
https://github.com/rubygems/rubygems/commit/46f09800da Michael Go
02:03 AM Revision a908cef5 (git): [ruby/prism] Reject class/module defs in method params/rescue/ensure/else
Fix https://github.com/ruby/prism/pull/1936
https://github.com/ruby/prism/commit/232e77a003
make_now_just (Hiroya Fujinami)
01:41 AM Revision fcabe2df (git): Remove written-but-never-read `me->def.body.refined.owner`
This also removes aliasing rule violations; the anonymous structs were
distinct types from `rb_method_refined_t`.
alanwu (Alan Wu)
12:39 AM Bug #20003 (Closed): Array#rassoc does not preform implicit conversion
Applied in changeset commit:git|e4a11a1283da07fd1d94535298c605caf299a834.
----------
Array#rassoc should try to convert to array implicitly. Fixes #20003
temabolshakov (Tema Bolshakov)
12:39 AM Revision bed014e3 (git): Do not call the inplicit convercion spec on older ruby versions
temabolshakov (Tema Bolshakov)
12:39 AM Revision 9c900771 (git): Fix Array#rassoc spec
temabolshakov (Tema Bolshakov)
12:39 AM Revision e4a11a12 (git): Array#rassoc should try to convert to array implicitly. Fixes #20003
temabolshakov (Tema Bolshakov)

11/28/2023

10:43 PM Revision 10f44dfe (git): Fix Ractor sharing for too complex Objects
peterzhu2118 (Peter Zhu)
10:43 PM Revision 6eb5a9cf (git): Fix Ractor sharing for too complex generic ivars
peterzhu2118 (Peter Zhu)
10:41 PM Feature #20024: SyntaxError subclasses
This idea of subclasses/identifier is coming up in the context of Prism and SyntaxError, but I think it applies to any kind of Exception, so I would like to see this #issue added to Exception rather than just SyntaxError. For pretty much... Dan0042 (Daniel DeLorme)
05:31 PM Feature #20024: SyntaxError subclasses
@jeremyevans0
> That's already valid syntax
I am aware; I just have a feeling that repurposing it with PM might still be possible (the chance that a lot of code uses this syntax with `UpcasedMethods` to produce exception classes dyn...
zverok (Victor Shepelev)
05:25 PM Feature #20024: SyntaxError subclasses
@zverok That's an interesting proposal but let's move that discussion to another issue. I don't want this to become a syntax discussion because that could take us in a totally different direction. kddnewton (Kevin Newton)
05:23 PM Feature #20024: SyntaxError subclasses
zverok (Victor Shepelev) wrote in #note-7:
> An aside note on this: in general, `rescue` clause is already looking very alike pattern-matching, and if we continue this approach (with adding causes/details to exceptions), we might once w...
jeremyevans0 (Jeremy Evans)
05:17 PM Feature #20024: SyntaxError subclasses
> I don't like that you won't be able to rescue specific errors, but I understand the concern about forward compatibility.
An aside note on this: in general, `rescue` clause is already looking very alike pattern-matching, and if we c...
zverok (Victor Shepelev)
05:11 PM Feature #20024: SyntaxError subclasses
I think I am okay with that compromise. I don't like that you won't be able to rescue specific errors, but I understand the concern about forward compatibility.
My other desire for subclasses is that different syntax errors have diffe...
kddnewton (Kevin Newton)
03:27 PM Feature #20024: SyntaxError subclasses
byroot (Jean Boussier) wrote in #note-3:
> Rather than sub classes, which have the annoying issue of having to stick around even if for some reason the case no longer exist, could we simply expose `SyntaxError#issue` (the name isn't ver...
Dan0042 (Daniel DeLorme)
03:19 PM Feature #20024: SyntaxError subclasses
A Symbol per type of SyntaxError seems easier to maintain and wouldn't create so many classes/constants/etc which would be messy in docs.
I think that's a much easier improvement to do than adding a bunch of subclasses.
It's also bette...
Eregon (Benoit Daloze)
01:44 PM Feature #20024: SyntaxError subclasses
Rather than sub classes, which have the annoying issue of having to stick around even if for some reason the case no longer exist, could we simply expose `SyntaxError#issue` (the name isn't very inspired) that would return a symbol?
e...
byroot (Jean Boussier)
01:35 PM Feature #20024: SyntaxError subclasses
I understand the need for compatibility with regard to Prism, but this ticket isn't about Prism specifically. I'm proposing this as a solution to the problem in general, devoid of the Prism context.
Regardless of other parsers, there ...
kddnewton (Kevin Newton)
10:28 AM Feature #20024: SyntaxError subclasses
There are dozens of different error messages for SyntaxError so that would mean dozens of subclasses.
That seems a lot to me.
Also it would be equally hard to name all these subclasses.
And we could not rename them easily either (more...
Eregon (Benoit Daloze)
10:33 PM Revision 49383901 (git): [ruby/prism] Implicit rest nodes
Fundamentally, `foo { |bar,| }` is different from `foo { |bar, *| }`
because of arity checks. This PR introduces a new node to handle
that, `ImplicitRestNode`, which goes in the `rest` slot of parameter
nodes instead of `RestParameterNod...
kddnewton (Kevin Newton)
10:27 PM Revision ea3e17e4 (git): YJIT: fix bug in top cfunc logging in `--yjit-stats` (#9056)
YJIT: correctly handle case where there are no cfunc calls
Fix bug in top cfunc logging in `--yjit-stats`
maximecb (Maxime Chevalier-Boisvert)
10:01 PM Revision a9c07cbd (git): [PRISM] Don't calculate params size based on locals
Prior to this commit, we were conflating the size of the locals
list with the number of parameters. This commit distinguishes
the two, and fixes a related bug which would occur if we set a local
that was not a parameter
jemmai (Jemma Issroff)
09:08 PM Revision 04cbcd37 (git): [ruby/prism] Add numbered_parameters field to BlockNode and LambdaNode
We are aware at parse time how many numbered parameters we have
on a BlockNode or LambdaNode, but prior to this commit, did not
store that information anywhere in its own right.
The numbered parameters were stored as locals, but this do...
jemmai (Jemma Issroff)
08:20 PM Feature #20027: Add Range Deconstruction
Update title stuyam (Stuart Yamartino)
08:19 PM Feature #20027 (Rejected): Add Range Deconstruction
Ranges are a powerful tool in ruby. A common range I use is a date range such as `(Date.yesterday..Date.tomorrow)`. A range will often be passed around to methods because the dates hold meaning together such as a timeframe for a table fi... stuyam (Stuart Yamartino)
08:16 PM Misc #19997: DevMeeting-2023-11-30
* [Bug #19392] Endless method vs `and`/`or`
* Not only `and`/`or` are affected, but also trailing `if`/`unless`: #19392#note-7
* When met with the behavior, it is very hard for users to diagnose the problem: #19731 which is a serio...
zverok (Victor Shepelev)
01:32 PM Misc #19997: DevMeeting-2023-11-30
* [Bug #19877] Non intuitive behavior of syntax only applied to literal value (tompng)
* `if (1; cond1..cond2); end` becomes a flip-flop, because `1` and `()` are dropped
* `(1; (2; 3; (4; /(?<a>)/))) =~ s` assigns to `a`, because ...
kddnewton (Kevin Newton)
01:50 AM Misc #19997: DevMeeting-2023-11-30
* [Feature #18980] Re-reconsider numbered parameters: `it` as a default block parameter (k0kubun)
* Reminder to resume the discussion from the previous dev-meeting. I'll update here once I finish my action item.
k0kubun (Takashi Kokubun)
08:11 PM Feature #19931: to_int is not for implicit conversion?
A few weeks ago I experimented and tried to polyfill this via Object#coerce, and it doesn't result in `0 ^ 1.1 == 1`
```ruby
class Object
def coerce(other)
if self.respond_to?(:to_int)
to_int.coerce(other)
else
...
Dan0042 (Daniel DeLorme)
05:28 AM Feature #19931: to_int is not for implicit conversion?
@matz Nobu found `0 ^ 1.1 #=> 1` by this change. Is it ok? mame (Yusuke Endoh)
08:08 PM Bug #19392 (Open): Endless method and parsing priorities
zverok (Victor Shepelev)
08:04 PM Bug #20019 (Closed): Ruby 3.3 GVL instrumentation events are fired out of order
Applied in changeset commit:git|982641939cf709d22dbc060df57cbed31acd3b97.
----------
Further fix the GVL instrumentation API
Followup: https://github.com/ruby/ruby/pull/9029
[Bug #20019]
Some events still weren't triggered from the r...
byroot (Jean Boussier)
08:04 PM Revision 6310522a (git): YJIT: reduce default exec-mem-size to 64MiB (#9054)
maximecb (Maxime Chevalier-Boisvert)
07:43 PM Bug #20022: GC.verify_compaction_references does not actually move all objects
I thought about this again, my previous formula was incorrect. I think we need number of pages we need to add for each size pool is `num_pages(num_objects_moving_in + num_objects_in_size_pool) + 1`, where `num_objects_moving_in` is the n... peterzhu2118 (Peter Zhu)
11:07 AM Bug #20022: GC.verify_compaction_references does not actually move all objects
> If we figure out the optimal size of every object and we set the heap to size (optimal_size * 2) + 1, it should guarantee that every object is moved before the cursors meet.
This sounds like a good idea (not least because it avoids ...
kjtsanaktsidis (KJ Tsanaktsidis)
07:20 PM Feature #20011: Reduce implicit array allocations on caller side of method calling
ko1 (Koichi Sasada) wrote in #note-4:
> Could you provide benchmarks?
I added a benchmark to the pull request. Here are the results:
```
arg_splat
after-patch: 11633482.8 i/s
before-patch: 660...
jeremyevans0 (Jeremy Evans)
04:53 AM Feature #20011: Reduce implicit array allocations on caller side of method calling
Could you provide benchmarks? ko1 (Koichi Sasada)
07:15 PM Bug #20025: Parsing identifiers/constants is case-folding dependent
I should additionally mention that this is the only codepoint in any encoding that this impacts. I ran a brute-force script to find any violations, please check me work here: https://gist.github.com/kddnewton/089d23d49adb5551792293fdb5bf... kddnewton (Kevin Newton)
05:22 PM Bug #20025 (Closed): Parsing identifiers/constants is case-folding dependent
When CRuby parses identifiers, it is encoding-dependent. Once the identifier is found, it determines if it starts with a uppercase or lowercase codepoint. This determines if the identifier is a constant or not.
The function is charge ...
kddnewton (Kevin Newton)
07:06 PM Revision 98264193 (git): Further fix the GVL instrumentation API
Followup: https://github.com/ruby/ruby/pull/9029
[Bug #20019]
Some events still weren't triggered from the right place.
The test suite was also improved a bit more.
byroot (Jean Boussier)
07:03 PM Revision 7bd17274 (git): [PRISM] Implement more compilation of SplatNodes
There was a bug with the rest argument in SplatNodes, this commit
fixes it, and adds more tests illustrating the behavior of
SplatNodes
jemmai (Jemma Issroff)
07:02 PM Revision 2760f237 (git): [PRISM] Compile YieldNode with different arguments
jemmai (Jemma Issroff)
06:46 PM Bug #18886: Struct aref and aset don't trigger any tracepoints.
mame (Yusuke Endoh) wrote in #note-7:
> @jeremyevans0 Could you measure the overhead?
Using the benchmark in the pull request, the pull request seems reliably ~5% faster in my testing for the member reader method, but mixed for other...
jeremyevans0 (Jeremy Evans)
04:32 AM Bug #18886: Struct aref and aset don't trigger any tracepoints.
@jeremyevans0 Could you measure the overhead? mame (Yusuke Endoh)
06:37 PM Revision cb70994b (git): Assert node inserted into red-black tree exists
peterzhu2118 (Peter Zhu)
06:03 PM Revision cd420786 (git): Fix cache incoherency for ME resolved through VM_METHOD_TYPE_REFINED
Previously, we didn't invalidate the method entry wrapped by
VM_METHOD_TYPE_REFINED method entries which could cause calls to
land in the wrong method like it did in the included test.
Do the invalidation, and adjust rb_method_entry_clo...
alanwu (Alan Wu)
05:50 PM Bug #20026 (Rejected): Ruby doesn't throw a syntax error when rescuing with ||
jeremyevans0 (Jeremy Evans)
05:49 PM Bug #20026: Ruby doesn't throw a syntax error when rescuing with ||
Actually I see what's going on here, this can be closed, not actually a ruby issue.
`FooError || BarError` is evaluating to `FooError`
arian (Arian Faurtosh)
05:46 PM Bug #20026 (Rejected): Ruby doesn't throw a syntax error when rescuing with ||
We had a coworker new to ruby try an interesting syntax for rescue that doesn't result in a syntax error, and works partially.
Why does ruby allow the logical OR || operator, is there a purpose for this? If not this feels like it shou...
arian (Arian Faurtosh)
05:35 PM Revision 0704f407 (git): Add in missing error
kddnewton (Kevin Newton)
05:30 PM Revision 7b057211 (git): [PRISM] Run test setting global constant separately
This impacted other tests. Please mind the commons.
/home/runner/work/ruby/ruby/src/test/ruby/test_compile_prism.rb:394: warning: already initialized constant Bar
/tmp/test_reline_config_60145/bazbarbob.rb:6: warning: previo...
alanwu (Alan Wu)
05:27 PM Revision 55f34d47 (git): [ruby/prism] Fix tests
https://github.com/ruby/prism/commit/1e6ecbaf04 make_now_just (Hiroya Fujinami)
05:27 PM Revision c11dd347 (git): [ruby/prism] Reset `current_param_name` around closed scopes
It is for supporting `def foo(bar = (def baz(bar) = bar; 1)) = 2` case.
https://github.com/ruby/prism/commit/c789a833c5
make_now_just (Hiroya Fujinami)
05:27 PM Revision f6fbb9fe (git): [ruby/prism] Use `0` for the default valie of `current_param_name`
https://github.com/ruby/prism/commit/896915de24 make_now_just (Hiroya Fujinami)
05:27 PM Revision b5796d7b (git): [ruby/prism] Check circular references in default values of params
Fix https://github.com/ruby/prism/pull/1637
https://github.com/ruby/prism/commit/0172d69cba
make_now_just (Hiroya Fujinami)
05:22 PM Revision fadd28c7 (git): [ruby/irb] Change show_source tests into integration tests
* Remove trailing spaces
* Migrate show_source tests to integration tests
Because show_source tests often need to define class and/or methods,
they can easily leak state to other tests. Changing them to integration
tests will ensure th...
peterzhu2118 (Peter Zhu)
03:41 PM Revision 476a231e (git): YJIT: Assert no patch overlap on pos_marker (#9048)
k0kubun (Takashi Kokubun)
02:56 PM Revision 891ce461 (git): [ruby/irb] This enhancement allows a user to add the -s flag if they
want to access a methods origin definition. It allows for chaining
of multiple esses to further go up the classes as needed.
(https://github.com/ruby/irb/pull/770)
https://github.com/ruby/irb/commit/eec1329d5a
paulreece
02:05 PM Revision 5fc71feb (git): [ruby/irb] Rescue errors from main.to_s/inspect when formatting
prompt
(https://github.com/ruby/irb/pull/791)
Currently, IRB just terminates if `main.to_s` raises while IRB
constructs the prompt string. This can easily happen if the user wants
to start an IRB session in the instance scope of an unin...
hanazuki (Kasumi Hanazuki)
01:25 PM Revision 9365b78d (git): [ruby/prism] Fix to parse `*` as forwarding in `foo[*]` case
Fix https://github.com/ruby/prism/pull/1924
https://github.com/ruby/prism/commit/7cde900065
make_now_just (Hiroya Fujinami)
01:25 PM Revision c798943a (git): [ruby/prism] Move DATA parsing into its own parse result field
https://github.com/ruby/prism/commit/42b60b6e95 kddnewton (Kevin Newton)
01:12 PM Revision 43dc8e90 (git): Fix indentation in ivar_set [ci skip]
peterzhu2118 (Peter Zhu)
12:50 PM Feature #18551 (Closed): Make `Range#reverse_each` to raise an exception if endless
Applied in changeset commit:git|458d079166ce7344c1d44b2403ff963b8c68d7d8.
----------
[DOC] Add a mention of [Feature #18551] to NEWS.md
kyanagi (Kouhei Yanagita)
05:49 AM Feature #18551: Make `Range#reverse_each` to raise an exception if endless
In the previous dev meething, matz accepted this. I will merge the PR mame (Yusuke Endoh)
12:50 PM Revision 458d0791 (git): [DOC] Add a mention of [Feature #18551] to NEWS.md
kyanagi (Kouhei Yanagita)
11:49 AM Revision 62c81641 (git): Retry pthread_create a few times
According to https://bugs.openjdk.org/browse/JDK-8268605, pthread_create
may fail spuriously. This change implements a simple retry as a modest
measure, which is also used by JDK.
mame (Yusuke Endoh)
09:55 AM Bug #8299 (Closed): Minor error in float parsing
hdtoa has the rounding logic, but it doesn't work well on x87, but no one use x87 now. This issue is resolved. naruse (Yui NARUSE)
07:48 AM Feature #20005: Add C API to return symbols of native extensions resolved from features
nobu (Nobuyoshi Nakada) wrote in #note-9:
> `dln_sym` has been used only to resolve and call immediately `Init_xxx` functions, and it would be reasonable to split error handling.
That makes sense.
> ...
I meant extensions, that ca...
tagomoris (Satoshi Tagomori)
07:21 AM Bug #20003: Array#rassoc does not preform implicit conversion
Thanks, I will merge it. mame (Yusuke Endoh)
06:27 AM Bug #9189: Build failure on Windows in case of nonascii TEMP environment.
pcai (Peter Cai) wrote in #note-13:
> I'm unable to reproduce. Windows presents an ascii-safe alias of the TEMP folder for me so I can't seem to test the handling:
Thank you for testing.
Does it work after `set TEMP=C:\Users\희섭\tmp`...
nobu (Nobuyoshi Nakada)
06:10 AM Revision 1a16b6ff (git): Make Range#reverse_each raise TypeError if endless
kyanagi (Kouhei Yanagita)
04:57 AM Bug #20021 (Closed): TestGCCompact#test_moving_hashes_down_size_pools is flaky
Closed by commit:8427a8a655e2a04bfdc6a645ec967405d3617137 mame (Yusuke Endoh)
02:53 AM Revision 0164da68 (git): [ruby/prism] Use un-capitalized error messages
I don't prefer this style, but it appears that a plurality of syntax
error messages between with un-capitalized messages in CRuby, so
we'll go with that for consistency, for now.
https://github.com/ruby/prism/commit/b02df68954
kddnewton (Kevin Newton)
02:53 AM Revision 32b5f5be (git): [ruby/prism] Introduce char_is_identifier_utf8
https://github.com/ruby/prism/commit/5f43e57b0f Haldun Bayhantopcu
01:39 AM Revision 031e81c8 (git): Update default gems list at def416899d2b72d2299ddfa97f1f94 [ci skip]
git[bot]
01:38 AM Revision def41689 (git): [ruby/stringio] Development of 3.1.1 started.
https://github.com/ruby/stringio/commit/75da93d48f Sutou Kouhei

11/27/2023

10:49 PM Revision 7f50c705 (git): YJIT: add top C function call counts to `--yjit-stats` (#9047)
* YJIT: gather call counts for individual cfuncs
Co-authored by Takashi Kokubun
maximecb (Maxime Chevalier-Boisvert)
09:49 PM Revision 94015e0d (git): Guard match from GC when scanning string
We need to guard match from GC because otherwise it could end up being
reclaimed or moved in compaction.
peterzhu2118 (Peter Zhu)
09:02 PM Revision 1acea501 (git): [PRISM] Small fixes to parameters ordering and methods
jemmai (Jemma Issroff)
08:28 PM Misc #19997: DevMeeting-2023-11-30
* [Feature #20024] SyntaxError subclasses (kddnewton)
* Many tools rely on the specific error message coming from syntax errors.
* Many specs require a specific error message for syntax errors.
* It seems like the error message ...
kddnewton (Kevin Newton)
08:16 PM Feature #20024 (Open): SyntaxError subclasses
There are many places around the Ruby ecosystem that handle syntax errors in different ways. Some provide highlighting, others provide recovery of some form, still more provide LSP metadata. In order to provide more rich information, mos... kddnewton (Kevin Newton)
08:14 PM Revision e4dd8f6c (git): [PRISM] Renamed some variables, added comments
jemmai (Jemma Issroff)
08:14 PM Revision ba26c6ea (git): [PRISM] Compile IndexOperatorWriteNode
jemmai (Jemma Issroff)
08:14 PM Revision ec5eddf6 (git): [PRISM] Compile IndexAndWriteNode
jemmai (Jemma Issroff)
08:14 PM Revision 13b7cddc (git): [PRISM] Compile IndexOrWriteNode
jemmai (Jemma Issroff)
07:05 PM Revision 4d71f70f (git): Add assertions to check created red-black tree
peterzhu2118 (Peter Zhu)
07:04 PM Revision 872922b0 (git): Fix indentation in comment in shape.c
peterzhu2118 (Peter Zhu)
06:18 PM Bug #19877: Non intuitive behavior of syntax only applied to literal value
We need an answer on this in order to properly understand what we need to support. In particular,
``` ruby
(1; /(?<foo>)/) =~ s
```
assigning to the local seems incorrect. It would mean the only way for a parser (prism or any oth...
kddnewton (Kevin Newton)
05:52 PM Revision 95064bb8 (git): [PRISM] Fix compilation for SplatNodes within ArrayNodes
SplatNodes within ArrayNodes (e.g. [*1..2, 3]) need to be special
cased in the compiler because they use a combination of concatarray
and newarray instructions to treat each sequence of splat or non-splat
elements as independent arrays w...
jemmai (Jemma Issroff)
05:51 PM Revision 6d447fa3 (git): [PRISM] Don't pop several args related nodes
jemmai (Jemma Issroff)
05:40 PM Revision 150ed44d (git): Fix compaction during ary_make_partial
The ary_make_shared call may allocate, which can trigger a GC
compaction. This can cause the array to be embedded because it has a
length of 0.
peterzhu2118 (Peter Zhu)
05:35 PM Revision 3af56e87 (git): [ruby/prism] Check void expressions for constant paths
Fix https://github.com/ruby/prism/pull/1920
https://github.com/ruby/prism/commit/ee8e03bac7
make_now_just (Hiroya Fujinami)
05:33 PM Revision 8654859d (git): [ruby/prism] Fix and reuse pm_call_node_index_p
Fix https://github.com/ruby/prism/pull/1925
Fix https://github.com/ruby/prism/pull/1927
Previously pm_call_node_index_p does not check about a block argument
correctly and is not used in parse_write to check an index call node.
This co...
make_now_just (Hiroya Fujinami)
05:30 PM Revision bd4a992f (git): [ruby/prism] Correct template.rb comment
https://github.com/ruby/prism/commit/4d689fe1df kddnewton (Kevin Newton)
05:17 PM Revision cc05a60c (git): Update to ruby/spec@c3206f6
Eregon (Benoit Daloze)
05:17 PM Revision acab060c (git): Update to ruby/mspec@9f83eea
Eregon (Benoit Daloze)
04:37 PM Revision 23a77143 (git): Refactor and fix the GVL instrumentation API
This entirely changes how it is tested. Rather than to use counters
we now record the timeline of events with associated threads which
makes it much easier to assert that certains events are only preceded
by a specific event, and makes i...
byroot (Jean Boussier)
04:13 PM Revision e3875dd0 (git): Don't incremental mark when GC stressful
Incremental marking prevents the GC from fully executing, so it may fail
to catch certain bugs.
peterzhu2118 (Peter Zhu)
04:07 PM Revision 7973eb7c (git): [ruby/rdoc] [DOC] Slightly decorate `em` and `strong`
https://github.com/ruby/rdoc/commit/2161157205 nobu (Nobuyoshi Nakada)
04:02 PM Revision 8427a8a6 (git): Fix flaky "Expected 499 to be >= 500" assertion in test_gc_compact.rb
There have been some sproradically flaky tests related to GC compaction,
which fail with:
1) Failure:
TestGCCompact#test_moving_hashes_down_size_pools [/test/ruby/test_gc_compact.rb:442]:
Expected 499 to be >= 500.
What's happening h...
KJ Tsanaktsidis
03:58 PM Revision 196c4aeb (git): [ruby/rdoc] Place a space between certain character class letters only
https://github.com/ruby/rdoc/commit/1f568e049d nobu (Nobuyoshi Nakada)
03:23 PM Revision 7835ebce (git): Set compaction after major GC has been determined
do_full_mark can change in gc_start, so we want to set auto-compaction
only after do_full_mark has been properly set.
peterzhu2118 (Peter Zhu)
03:15 PM Bug #20023 (Closed): rb_require("noexist") causes segfault
Applied in changeset commit:git|ca4755b59a7bdaaffbaef05474c8d8ee187e8d7d.
----------
[Bug #20023] Resurrect fake string feature name before raising
nobu (Nobuyoshi Nakada)
02:20 PM Bug #20023 (Closed): rb_require("noexist") causes segfault
Extracted from swig 4.1.1 testsuite.
With commit:a07d84b63c (and probably with earlier commit), `rb_require("noexist") ;` seems segfault.
foo.rb:
```
#!/usr/bin/env ruby
begin
require "bar"
rescue LoadError => e
p e.to_s
...
mtasaka (Mamoru TASAKA)
03:13 PM Revision ca4755b5 (git): [Bug #20023] Resurrect fake string feature name before raising
nobu (Nobuyoshi Nakada)
02:12 PM Misc #19980: Is the Ruby 3.3 ABI frozen?
I've shipped a pre-release of rake-compiler dock, [v1.4.0.rc1](https://github.com/rake-compiler/rake-compiler-dock/releases/tag/1.4.0.rc1), which supports compilation of native gems using Ruby 3.3.0-preview3.
This is only useful for t...
mdalessio (Mike Dalessio)
01:40 PM Bug #20022: GC.verify_compaction_references does not actually move all objects
Otherwise, I think this patch makes sense. A better implementation of `GC.verify_compaction_references` has been on my todo list for a while, but I haven't gotten around to implementing it. Thank you for working on this! peterzhu2118 (Peter Zhu)
01:39 PM Bug #20022: GC.verify_compaction_references does not actually move all objects
> Secondly, it compacts twice; once in order of ascending size pool, and once descending. This means that we are guaranteed to be able to move everything we want to move into a size pool before we start advancing that pool's own compact ... peterzhu2118 (Peter Zhu)
07:10 AM Bug #20022 (Closed): GC.verify_compaction_references does not actually move all objects
While debugging https://bugs.ruby-lang.org/issues/20021, I ran into a separate issue which I figured was worth resolving whilst I had it in my head.
The intention of GC.verify_compaction_references is, I believe, to force every single...
kjtsanaktsidis (KJ Tsanaktsidis)
01:29 PM Revision 2e4a0a4d (git): Implement Write Barriers on Enumerator::Producer
peterzhu2118 (Peter Zhu)
01:29 PM Revision 2dadd17c (git): Implement Write Barriers on Enumerator::Generator
peterzhu2118 (Peter Zhu)
01:29 PM Revision d7165d88 (git): Implement Write Barriers on Enumerator::Yielder
peterzhu2118 (Peter Zhu)
12:21 PM Revision 1c308811 (git): [ruby/stringio] Do not compile the C extension on TruffleRuby
* Before this it was compiled but not used, because TruffleRuby has
a stringio.rb in stdlib and .rb has precedence over .so.
In fact that extension never worked on TruffleRuby,
because rb_io_extract_modeenc() has never been defined...
Eregon (Benoit Daloze)
10:39 AM Bug #14582: Unable to use `method__entry` and `method_return` tracing probes since 2.5
Yes, this si still the case. And it is [documented](https://github.com/ruby/ruby/pull/3115). Nevertheless, I don't think this is acceptable. The original DTrace probes implementation imposed nearly zero cost for runtime. Later it was som... vo.x (Vit Ondruch)
10:34 AM Revision a07d84b6 (git): [ruby/irb] Hide debugger hint after the input is submitted
(https://github.com/ruby/irb/pull/789)
If `output_modifier_proc`'s `complete` arg is true, it means the input is
submitted. In that case, debugger hint doesn't provide value to users
and adds noise to the output. So we hide it in such c...
st0012 (Stan Lo)
06:56 AM Bug #20021 (Closed): TestGCCompact#test_moving_hashes_down_size_pools is flaky
The test `TestGCCompact#test_moving_hashes_down_size_pools is flaky` is, I believe, flaky, and sometimes fails with this message:
```
1) Failure:
TestGCCompact#test_moving_hashes_down_size_pools [/home/chkbuild/chkbuild/tmp/build/...
kjtsanaktsidis (KJ Tsanaktsidis)
06:40 AM Bug #20001: Make Ruby work properly with ASAN enabled
> Valgind, I tend to be very confident in the results, but ASAN will be easier to integrate with CI and run consistently
That's how I see the two tools too
> ...
I don't think the ASAN stuff needs anything specific for free-on-exit...
kjtsanaktsidis (KJ Tsanaktsidis)
06:04 AM Revision 71a8daec (git): Opaque Etags for compact index requests
This changes the CompactIndexClient to store etags received from the
compact index in separate files rather than relying on the MD5 checksum
of the file as the etag.
Smoothes the upgrade from md5 etags to opaque by generating them when ...
retro (Josef Šimánek)
06:04 AM Revision 794c879d (git): [rubygems/rubygems] Don't remember `--jobs` flag
https://github.com/rubygems/rubygems/commit/9ab1136036 deivid (David Rodríguez)
06:04 AM Revision 56ac1b0e (git): [rubygems/rubygems] Fix advice in `bundle install --system` deprecation
https://github.com/rubygems/rubygems/commit/59a66e3560 deivid (David Rodríguez)
06:04 AM Revision e00d7b61 (git): [rubygems/rubygems] Keep a single copy of the remembered flag deprecation message
https://github.com/rubygems/rubygems/commit/cb4e26eabc deivid (David Rodríguez)
06:04 AM Revision fe57be5a (git): [rubygems/rubygems] Avoid some unnecessary quotes in remember flag deprecation message
https://github.com/rubygems/rubygems/commit/3fd627e486 deivid (David Rodríguez)
06:04 AM Revision bd4bd616 (git): [rubygems/rubygems] Simplify remembered flags deprecation message
Configuration is now local by default.
https://github.com/rubygems/rubygems/commit/6bc7709aa8
deivid (David Rodríguez)
06:04 AM Revision 60803e19 (git): [rubygems/rubygems] Remove no longer necessary workaround for old RubyGems
https://github.com/rubygems/rubygems/commit/ed4eaefac0 deivid (David Rodríguez)
03:08 AM Feature #20005: Add C API to return symbols of native extensions resolved from features
tagomoris (Satoshi Tagomori) wrote in #note-8:
> I noticed that `dln_sym` raises LoadError when the specified symbol is not found. But I expect this API to return NULL when the symbol is not found.
> ...
`dln_sym` has been used only to...
nobu (Nobuyoshi Nakada)
01:35 AM Revision 67ee91a3 (git): [ruby/psych] Prefer each_char in Psych::Visitors::Visitor::ToRuby#deserialize
Use safe navigation operator with each_char to remove empty strings and improve readability.
https://github.com/ruby/psych/commit/5fe714b216
Maumagnaguagno (Mau Magnaguagno)

11/26/2023

10:08 PM Revision 52c7e43b (git): [rubygems/rubygems] Add missing --prefer-local to Synopsis in bundle-install.1.ronn
https://github.com/rubygems/rubygems/commit/e956c5bbe4 olleolleolle (Olle Jonsson)
10:07 PM Revision 08308fe3 (git): [rubygems/rubygems] Reduce allocations when installing gems with bundler
```
==> memprof.after.txt <==
Total allocated: 1.13 MB (2352 objects)
Total retained: 10.08 kB (78 objects)
==> memprof.before.txt <==
Total allocated: 46.27 MB (38439 objects)
Total retained: 9.94 kB (75 objects)
```
Yes, we were al...
segiddins (Samuel Giddins)
05:07 PM Revision cc5d1bf0 (git): [ruby/irb] Display aliases in help message
(https://github.com/ruby/irb/pull/788)
Similar to Pry, it displays user-defined aliases in the help message with
a dedicated section. With the current default aliases, it looks like:
```
...other sections...
Aliases
$ A...
st0012 (Stan Lo)
12:49 PM Revision 688faa93 (git): [DOC] Fix markup in declarative marking API document
- RDoc is not markdown, use `+` and `_` for code and variables
respectively, instead of backquotes.
- Remove useless backslashes.
nobu (Nobuyoshi Nakada)
11:15 AM Feature #18368: Range#step semantics for non-Numeric ranges
I am sorry that only now I had time to further work on the feature.
I understand it is almost Decemeber and the feature might not make it in the 3.3 (though I would be happy if it would).
The generic backward iteration was implemen...
zverok (Victor Shepelev)
11:07 AM Revision 9cd086ba (git): [ruby/irb] Support disabling pager
(https://github.com/ruby/irb/pull/783)
With either `IRB.conf[:USE_PAGER] = false` or `--no-pager` commnad line flag.
I decided use `--no-pager` instead of `--use-pager` because it matches with
Pry and git's command line flags.
https:/...
st0012 (Stan Lo)
10:37 AM Revision 0bced53a (git): [DOC] Remove extra `+` which is not a part of keyword argument name
nobu (Nobuyoshi Nakada)
10:18 AM Revision 087a919e (git): [DOC] Fix markup
RDoc is not markdown. nobu (Nobuyoshi Nakada)
09:33 AM Feature #20005: Add C API to return symbols of native extensions resolved from features
I noticed that `dln_sym` raises LoadError when the specified symbol is not found. But I expect this API to return NULL when the symbol is not found.
Which one should be better?
My expectation: libraries should raise LoadError under t...
tagomoris (Satoshi Tagomori)
08:15 AM Feature #19370: Anonymous parameters for blocks?
To be completely honest, I think I have some counterarguments to the current conclusions.
I believe the code that looks "logically possible" should be "physically possible" (unless there is a good argument why it is impossible, like ...
zverok (Victor Shepelev)
07:04 AM Revision e81c380c (git): Constify `RUBY_REFERENCES_START` tables
nobu (Nobuyoshi Nakada)
02:42 AM Revision 7fe7b7bc (git): Fix portability of bignum in ISeq Binary Format
- Unless `sizeof(BDIGIT) == 4`, (8-byte integer not available), the
size to be loaded was wrong.
- Since `BDIGIT`s are dumped as raw binary, the loaded byte order was
inverted unless little-endian.
nobu (Nobuyoshi Nakada)
01:07 AM Revision 003f06bd (git): [ruby/resolv] Close leaked FD
https://github.com/ruby/resolv/commit/49aefa3bba nobu (Nobuyoshi Nakada)
 

Also available in: Atom