Activity
From 11/25/2023 to 12/01/2023
12/01/2023
-
11:58 PM Revision 9f6c6f88 (git): Lrama v0.5.11
-
10:56 PM Revision 818813c2 (git): Implement paren node for `defined?`
- Implements and adds a test for passing a parentheses node to `defined?`.
- 10:51 PM Revision 6ecc1ca9 (git): [DOC] Update ARGF.readlines documentation to match/reference IO.readlines.
-
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)
``` -
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
############... -
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... -
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... -
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 ... -
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 ... -
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... -
08:21 PM Revision b77551ad (git): Remove unneeded local variables
- 08:10 PM Revision 562d949e (git): [ruby/prism] Fix parsing heredoc ends
- https://github.com/ruby/prism/commit/aa8c702271
-
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. -
08:04 PM Revision ee0eca19 (git): Make String#undump compaction safe
-
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. -
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 -
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 -
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
-
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. -
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>)/ =~ '... -
06:57 PM Revision a607d62d (git): [Bug #20033] Dynamic regexp should not assign captures
-
06:46 PM Revision ec83bd73 (git): [ruby/prism] Provide heredoc? queries
- https://github.com/ruby/prism/commit/e148e8fe6a
-
06:23 PM Revision 2a8d9c59 (git): [PRISM] Account for RescueNodes with no statements
- We need a PUTNIL if a RescueNode has no statements.
-
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. -
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 -
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... -
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 -
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 -
05:41 PM Revision e5e1f981 (git): [Bug #19838] Flush delayed token nonconsecutive with the next token
-
05:41 PM Revision add0ab07 (git): Extract `end_with_newline_p`
-
05:41 PM Revision 6e2b10d4 (git): Prefer proper enum over bare int
-
05:20 PM Revision 9d209093 (git): [PRISM] Clean up trailing comment
-
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... -
05:03 PM Revision 5150ba0d (git): [prism] Update to latest numbered parameters
-
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 ... -
04:40 PM Revision 90d9c20a (git): [PRISM] Compile RescueNode
-
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... -
03:23 PM Revision 8f3310dc (git): Remove unused files in prism
-
03:18 PM Revision 64f33aea (git): [ruby/prism] Update snapshots
- https://github.com/ruby/prism/commit/f4c80c67dc
-
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.... -
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 -
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... -
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 -
03:04 PM Revision 3b21932d (git): [PRISM] Use depth_offset not transparent scopes for FOR
-
03:04 PM Revision ce5f5ca1 (git): [PRISM] Remove transparent scope nodes
-
02:56 PM Revision 43ef0da0 (git): Add assertions for shape cache grandchild nodes
-
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... -
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... -
11:33 AM Revision 64c4bbb8 (git): [ruby/prism] Add test/prism/snapshots/heredoc_with_comment.txt
- https://github.com/ruby/prism/commit/97b296a0f7
- 07:48 AM Revision e005c517 (git): Update default gems list at 7d142c08cb5b65e4ba110b116c41a8 [ci skip]
-
07:47 AM Revision 7d142c08 (git): lib/helper only needs on flori/json repo
-
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... -
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:
... -
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. -
07:47 AM Revision 32f289d1 (git): [flori/json] Bump up 2.7.0
- https://github.com/flori/json/commit/ca546128f2
-
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 - 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 -
07:45 AM Revision 062b59ba (git): Fix typos [ci skip]
-
07:39 AM Revision 60568e97 (git): Sort links [ci skip]
-
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 -
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. -
06:04 AM Revision e36b9760 (git): Dispatch invalid hex escape content too
-
06:04 AM Revision d503e1b9 (git): [Bug #20030] dispatch invalid escaped character without ignoring it
-
03:20 AM Revision 52c26601 (git): Fixup with review comment
- https://github.com/ruby/ruby/pull/9088#discussion_r1411490445
-
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... -
02:37 AM Revision e2bbbacc (git): [ruby/prism] Correctly pass around const pm_encoding_t *
- https://github.com/ruby/prism/commit/ce4c67fb3a
-
02:37 AM Revision b4a85e40 (git): [PRISM] Fix up prism encoding targets
-
02:37 AM Revision 99a147ff (git): [ruby/prism] Document remaining encodings
- https://github.com/ruby/prism/commit/b9510aed40
-
02:37 AM Revision 0c277f2b (git): [ruby/prism] Group encodings into a single array
- https://github.com/ruby/prism/commit/f4b7beadc9
-
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
-
02:37 AM Revision ea409958 (git): [ruby/prism] Remove ability to decode other encodings
- https://github.com/ruby/prism/commit/98e218d989
-
02:37 AM Revision 99708318 (git): [ruby/prism] Remove public ASCII functions that can now be static
- https://github.com/ruby/prism/commit/9461384b0c
-
02:37 AM Revision abb1fe28 (git): [PRISM] Consolidate prism encoding files
-
02:37 AM Revision 19a321bf (git): [ruby/prism] CESU encoding
- https://github.com/ruby/prism/commit/2d5b9c2b3c
-
02:37 AM Revision ca26e0e3 (git): [ruby/prism] EUC-TW encoding
- https://github.com/ruby/prism/commit/edfb54f039
-
02:37 AM Revision dde0abb2 (git): [ruby/prism] Shorter function definitions in pm_big5.c
- https://github.com/ruby/prism/commit/7ddf651bab
-
02:37 AM Revision 32249c2c (git): [ruby/prism] GB18030 encoding
- https://github.com/ruby/prism/commit/ca3ab7ec89
-
02:37 AM Revision a9162a44 (git): [ruby/prism] Emacs MULE encodings
- https://github.com/ruby/prism/commit/4c06b6c42e
-
02:37 AM Revision 10d3897e (git): [PRISM] Big5 encodings
-
02:37 AM Revision 700e172a (git): [ruby/prism] EUC-KR encodings
- https://github.com/ruby/prism/commit/ba5218385a
-
02:37 AM Revision ddaa0730 (git): [ruby/prism] Support other EUC-JP encodings
- https://github.com/ruby/prism/commit/d040337ce9
-
02:37 AM Revision 7b5bb978 (git): [PRISM] Alias CP51932 to EUC-JP
-
02:37 AM Revision 9ba92327 (git): [PRISM] Consolidate SJIS encodings
-
02:37 AM Revision 219c3c1c (git): [ruby/prism] Add other UTF8 encodings
- https://github.com/ruby/prism/commit/709fb6e09f
-
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> -
01:54 AM Misc #20032 (Assigned): Propose @kjtsanaktsidis as a commiter
-
01:54 AM Misc #20028 (Assigned): I'd like my commit bit back
-
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...
-
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>
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.
-
11:47 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
- +1
-
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.
-
09:05 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
- +1
-
08:11 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
- +1
-
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...
-
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 =... -
11:28 PM Revision c3cb27ee (git): NEWS update about calling Kernel#lambda with non-literal block
-
10:14 PM Revision 73e6d8a0 (git): YJIT: optimized codegen for `rb_ary_length()` (#9085)
- YJIT: optimized codegen for rb_ary_length()
-
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. -
09:31 PM Revision 0c7c654b (git): [Prism] Fix local variable access for POST_EXECUTION_NODE
-
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. -
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. ... -
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] - 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
-
07:47 PM Bug #19144 (Open): Ruby should set AI_V4MAPPED | AI_ADDRCONFIG getaddrinfo flags by default
-
07:26 PM Bug #19392: Endless method and parsing priorities
- Updated the description to underline the nature of the problem better.
-
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] -
06:34 PM Revision f75fef66 (git): Mention {Queue,SizedQueue}#freeze change in NEWS
- 05:42 PM Revision 0d1917ae (git): [ruby/prism] Remove no-op assignment
- https://github.com/ruby/prism/commit/4b3079d9e8
-
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... -
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... -
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 ... -
04:23 PM Revision d048bae9 (git): YJIT: Bump ec->cfp after setting cfp->jit_return (#9072)
-
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... -
03:06 PM Revision cc393b4f (git): [ruby/rdoc] Get rid of `Kernel#open`
- https://github.com/ruby/rdoc/commit/dc56f6d0bd
-
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. -
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 - 02:10 PM Revision 2c64041e (git): [ruby/prism] Fix typo in comment
- https://github.com/ruby/prism/commit/eb1a6ba263
-
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 -
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... -
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 ...
-
12:40 PM Revision 1802d14c (git): [Bug #19877] Assign captures for direct regexp literal only
-
12:39 PM Revision 0cdad3b9 (git): Add `RUBY_REFERENCES`
- Instead of `RUBY_REFERENCES_START` and `RUBY_REFERENCES_END`, so that
auto-indent works well. -
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.
-
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. -
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... -
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.
-
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:
-
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
-
10:17 AM Bug #19877: Non intuitive behavior of syntax only applied to literal value
- https://github.com/ruby/ruby/pull/9077 ?
-
10:05 AM Revision e1b65e5f (git): Add NEWS entry for the deprecation of subprocess creation/forking
- [Feature #19630]
-
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.
-
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 ... -
08:39 AM Revision f7d26889 (git): Sort links [ci skip]
-
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.
-
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
-
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. -
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. - 08:19 AM Revision 30e47780 (git): [ruby/cgi] Fix unescapeHTML
- https://github.com/ruby/cgi/commit/67610e6ca8
- 08:19 AM Revision 0daa0589 (git): [ruby/cgi] Add failing test cases for CGI::Escape.unescapeHTML
- https://github.com/ruby/cgi/commit/92fdb3316b
-
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.
-
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
```
-
06:38 AM Revision f2f91396 (git): Move #19785 correct category in NEWS
-
06:33 AM Feature #19720 (Rejected): Warning for non-linear Regexps
-
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 ... -
05:45 AM Misc #20015 (Closed): Privacy policy for ruby-lang.org
- I published this at https://www.ruby-lang.org/en/privacy/.
-
06:19 AM Feature #19588 (Closed): Allow Comparable#clamp(min, max) to accept nil as a specification
- The two PRs are merged. Closing
- 04:38 AM Revision f2ad2460 (git): Update bundled gems list as of 2023-11-29
-
04:36 AM Revision e6d44416 (git): Fix the argument order
-
04:32 AM Revision ac9fdb7a (git): Adjust indent [ci skip]
-
04:27 AM Revision 5baa2b96 (git): Make test-bundled-gems success
-
04:27 AM Revision f9829317 (git): Fix failing spec
-
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
-
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
-
04:27 AM Revision e9050270 (git): Add Socket::ResolutionError & Socket::ResolutionError#error_code
- Socket::ResolutionError#error_code returns Socket::EAI_XXX
-
03:51 AM Revision db7f3064 (git): Implement proc_entry on VWA
-
03:51 AM Revision 40e67cb2 (git): Implement Write Barriers on proc_entry
-
03:51 AM Revision 705a3c69 (git): Add RUBY_TYPED_FREE_IMMEDIATELY flag to proc_entry
-
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... -
03:21 AM Revision f2bb5394 (git): Manually sync with https://github.com/ruby/open3/pull/22 and related PRs
-
03:11 AM Revision 7174c62f (git): [prism] Remove escaping C source files
-
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.
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.
-
10:54 PM Revision 128837e4 (git): Support RUNRUBY_USE_RR for rr debugger
-
10:54 PM Revision aee27516 (git): debugger can never be nil
-
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 -
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. -
09:19 PM Revision 853fd447 (git): [PRISM] Implement CallNodes with splat followed by args
-
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. -
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. -
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. -
05:08 PM Revision 14761edb (git): [prism] Add MacJapanese encodings to common.mk
- 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 -
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 -
04:15 PM Revision b549722e (git): [prism] Add pm_cp950 to make targets
- 04:15 PM Revision 9fada99c (git): [ruby/prism] added CP950 encoding
- https://github.com/ruby/prism/commit/9c2d1cf4ba
-
03:30 PM Revision 57cb47bf (git): Assert that the left and right nodes are correct
-
03:24 PM Revision b632732b (git): [ruby/prism] Fixed comment on pm_parser_numbered_parameters_set
- https://github.com/ruby/prism/commit/ceae5727b8
-
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. -
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... -
01:59 PM Revision 38e6442f (git): Add missing assertion in test_use_all_shapes_then_freeze
-
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... -
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 -
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 ... -
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. -
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 -
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... -
06:05 AM Bug #20025: Parsing identifiers/constants is case-folding dependent
- https://github.com/ruby/ruby/pull/9059
-
07:58 AM Misc #19925 (Closed): DevMeeting-2023-11-07
-
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
``` -
05:40 AM Revision 79eb75a8 (git): [Bug #20025] Check if upper/lower before fallback to case-folding
- 02:21 AM Revision bd2b6b70 (git): [rubygems/rubygems] update Magnus library in Rust extension gem template
- https://github.com/rubygems/rubygems/commit/46f09800da
-
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 -
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`. -
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 -
12:39 AM Revision bed014e3 (git): Do not call the inplicit convercion spec on older ruby versions
-
12:39 AM Revision 9c900771 (git): Fix Array#rassoc spec
-
12:39 AM Revision e4a11a12 (git): Array#rassoc should try to convert to array implicitly. Fixes #20003
11/28/2023
-
10:43 PM Revision 10f44dfe (git): Fix Ractor sharing for too complex Objects
-
10:43 PM Revision 6eb5a9cf (git): Fix Ractor sharing for too complex generic ivars
-
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...
-
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... -
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.
-
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... -
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... -
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... -
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... -
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... -
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... -
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 ... -
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... -
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... -
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` -
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 -
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... -
08:20 PM Feature #20027: Add Range Deconstruction
- Update title
-
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...
-
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... -
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 ... -
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. -
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
... -
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?
-
08:08 PM Bug #19392 (Open): Endless method and parsing priorities
-
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... -
08:04 PM Revision 6310522a (git): YJIT: reduce default exec-mem-size to 64MiB (#9054)
-
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...
-
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 ... -
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... -
04:53 AM Feature #20011: Reduce implicit array allocations on caller side of method calling
- Could you provide benchmarks?
-
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...
-
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 ... -
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. -
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 -
07:02 PM Revision 2760f237 (git): [PRISM] Compile YieldNode with different arguments
-
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... -
04:32 AM Bug #18886: Struct aref and aset don't trigger any tracepoints.
- @jeremyevans0 Could you measure the overhead?
-
06:37 PM Revision cb70994b (git): Assert node inserted into red-black tree exists
-
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... -
05:50 PM Bug #20026 (Rejected): Ruby doesn't throw a syntax error when rescuing with ||
-
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` -
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... -
05:35 PM Revision 0704f407 (git): Add in missing error
-
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... -
05:27 PM Revision 55f34d47 (git): [ruby/prism] Fix tests
- https://github.com/ruby/prism/commit/1e6ecbaf04
-
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 -
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
-
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 -
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... -
03:41 PM Revision 476a231e (git): YJIT: Assert no patch overlap on pos_marker (#9048)
- 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 -
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... -
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 -
01:25 PM Revision c798943a (git): [ruby/prism] Move DATA parsing into its own parse result field
- https://github.com/ruby/prism/commit/42b60b6e95
-
01:12 PM Revision 43dc8e90 (git): Fix indentation in ivar_set [ci skip]
-
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 -
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
-
12:50 PM Revision 458d0791 (git): [DOC] Add a mention of [Feature #18551] to NEWS.md
-
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. -
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.
-
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... -
07:21 AM Bug #20003: Array#rassoc does not preform implicit conversion
- Thanks, I will merge it.
-
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`... -
06:10 AM Revision 1a16b6ff (git): Make Range#reverse_each raise TypeError if endless
-
04:57 AM Bug #20021 (Closed): TestGCCompact#test_moving_hashes_down_size_pools is flaky
- Closed by commit:8427a8a655e2a04bfdc6a645ec967405d3617137
-
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 - 02:53 AM Revision 32b5f5be (git): [ruby/prism] Introduce char_is_identifier_utf8
- https://github.com/ruby/prism/commit/5f43e57b0f
- 01:39 AM Revision 031e81c8 (git): Update default gems list at def416899d2b72d2299ddfa97f1f94 [ci skip]
- 01:38 AM Revision def41689 (git): [ruby/stringio] Development of 3.1.1 started.
- https://github.com/ruby/stringio/commit/75da93d48f
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 -
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. -
09:02 PM Revision 1acea501 (git): [PRISM] Small fixes to parameters ordering and methods
-
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 ... -
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...
-
08:14 PM Revision e4dd8f6c (git): [PRISM] Renamed some variables, added comments
-
08:14 PM Revision ba26c6ea (git): [PRISM] Compile IndexOperatorWriteNode
-
08:14 PM Revision ec5eddf6 (git): [PRISM] Compile IndexAndWriteNode
-
08:14 PM Revision 13b7cddc (git): [PRISM] Compile IndexOrWriteNode
-
07:05 PM Revision 4d71f70f (git): Add assertions to check created red-black tree
-
07:04 PM Revision 872922b0 (git): Fix indentation in comment in shape.c
-
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... -
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... -
05:51 PM Revision 6d447fa3 (git): [PRISM] Don't pop several args related nodes
-
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. -
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 -
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... -
05:30 PM Revision bd4a992f (git): [ruby/prism] Correct template.rb comment
- https://github.com/ruby/prism/commit/4d689fe1df
-
05:17 PM Revision cc05a60c (git): Update to ruby/spec@c3206f6
-
05:17 PM Revision acab060c (git): Update to ruby/mspec@9f83eea
-
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... -
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. -
04:07 PM Revision 7973eb7c (git): [ruby/rdoc] [DOC] Slightly decorate `em` and `strong`
- https://github.com/ruby/rdoc/commit/2161157205
- 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... -
03:58 PM Revision 196c4aeb (git): [ruby/rdoc] Place a space between certain character class letters only
- https://github.com/ruby/rdoc/commit/1f568e049d
-
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. -
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 -
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
... -
03:13 PM Revision ca4755b5 (git): [Bug #20023] Resurrect fake string feature name before raising
-
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... -
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!
-
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 ...
-
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... -
01:29 PM Revision 2e4a0a4d (git): Implement Write Barriers on Enumerator::Producer
-
01:29 PM Revision 2dadd17c (git): Implement Write Barriers on Enumerator::Generator
-
01:29 PM Revision d7165d88 (git): Implement Write Barriers on Enumerator::Yielder
-
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... -
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...
-
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... -
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/... -
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... -
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 ... -
06:04 AM Revision 794c879d (git): [rubygems/rubygems] Don't remember `--jobs` flag
- https://github.com/rubygems/rubygems/commit/9ab1136036
-
06:04 AM Revision 56ac1b0e (git): [rubygems/rubygems] Fix advice in `bundle install --system` deprecation
- https://github.com/rubygems/rubygems/commit/59a66e3560
-
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
-
06:04 AM Revision fe57be5a (git): [rubygems/rubygems] Avoid some unnecessary quotes in remember flag deprecation message
- https://github.com/rubygems/rubygems/commit/3fd627e486
-
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 -
06:04 AM Revision 60803e19 (git): [rubygems/rubygems] Remove no longer necessary workaround for old RubyGems
- https://github.com/rubygems/rubygems/commit/ed4eaefac0
-
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... -
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
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
-
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... -
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... -
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. -
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... -
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:/... -
10:37 AM Revision 0bced53a (git): [DOC] Remove extra `+` which is not a part of keyword argument name
-
10:18 AM Revision 087a919e (git): [DOC] Fix markup
- RDoc is not markdown.
-
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... -
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 ... -
07:04 AM Revision e81c380c (git): Constify `RUBY_REFERENCES_START` tables
-
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. -
01:07 AM Revision 003f06bd (git): [ruby/resolv] Close leaked FD
- https://github.com/ruby/resolv/commit/49aefa3bba
11/25/2023
-
07:40 PM Revision 87c3deac (git): [ruby/resolv] Support a :use_ipv6 option to Resolv#initialize
- When set, supports returning IPv6 results even if there is no
public IPv6 address for the system.
Implements Ruby Feature #14922
https://github.com/ruby/resolv/commit/09d141de38 -
04:18 PM Revision 1b737642 (git): Omit test_session_reuse_but_expire if OpenSSL 3.2.0
-
02:32 PM Revision b93a1bb4 (git): Verify correctness of shape cache
- This commit adds assertions to verify that the shape cache is correct
compared to the shape tree. -
02:32 PM Revision 564ef66e (git): Verify that duplicate shape is not created
- This adds an assertion that the instance variable does not already exist
in the shape tree when creating a new shape. -
10:16 AM Revision f6b292b5 (git): [ruby/irb] Fix exception(backtrace=nil) prints nothing
- (https://github.com/ruby/irb/pull/782)
https://github.com/ruby/irb/commit/fa9ecf9a5b -
10:14 AM Revision 68a03613 (git): [ruby/irb] Fix flaky test case
- test_autocomplete_with_multiple_doc_namespaces
(https://github.com/ruby/irb/pull/786)
https://github.com/ruby/irb/commit/85c6ddeb7d - 10:12 AM Revision 543dd740 (git): Fix test_pkey_dh.rb in FIPS.
- We use dh2048_ffdhe2048.pem file (DH 2048 bits) instead of dh1024.pem file in
both non-FIPS and FIPS cases. Because the following command fails to generate
the pem file with 1024 bits. And the OpenSSL FIPS 140-2 security policy
document ... - 10:05 AM Revision 3140886b (git): [ruby/openssl] History.md: Escape Markdown syntax Italic "*". [ci skip]
- https://github.com/ruby/openssl/commit/dc26433ae5
-
06:28 AM Revision 84f45c6e (git): Place continue-on-error consistently
- Once it fails on "Perform CodeQL Analysis", it proceeds to subsequent
steps and fails because required files are not created by previous
steps. When we have a continue-on-error, all subsequent steps that rely
on the step should have a co... -
05:43 AM Revision de37b780 (git): Omit a broken https test on MinGW
- This started to reliably fail on MinGW at an irrelevant commit:
https://github.com/ruby/ruby/actions/runs/6981002841/job/18997302124
https://github.com/ruby/ruby/actions/runs/6981946473/job/19000104223
https://github.com/ruby/ruby/action... -
02:24 AM Feature #18151 (Closed): Incorrect Resolv result when DNS server is unreachable
- Applied in changeset commit:git|7276d4b4e87bfdc9b609f481a734e39c499de253.
----------
[ruby/resolv] Support a :raise_timeout_errors option to raise timeouts as Resolv::ResolvError
This allows to differentiate a timeout from an NXDOMAIN ... -
02:24 AM Revision 7276d4b4 (git): [ruby/resolv] Support a :raise_timeout_errors option to raise timeouts as Resolv::ResolvError
- This allows to differentiate a timeout from an NXDOMAIN response.
Fixes [Bug #18151]
https://github.com/ruby/resolv/commit/c0e5abab76