Activity
From 02/07/2024 to 02/13/2024
02/13/2024
-
09:12 PM Revision dc5191d6 (git): [ruby/prism] Fix KOI-8 char width check
- https://github.com/ruby/prism/commit/06d3747c5b
-
08:57 PM Bug #20151: Can't build Ruby 3.1 on FreeBSD 14.0
- shyouhei (Shyouhei Urabe) wrote in #note-1:
> This has to be related: https://github.com/freebsd/freebsd-src/commit/af3c78886fd8d4ca5eebdbe581a459a6f6d29d6a
> ...
I beg your pardon, but based on this, we'll need at least 3.2.0 to run o... -
08:54 PM Revision a5869e5d (git): [PRISM] Replace assert with RUBY_ASSERT
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:54 PM Revision 83c158fd (git): [PRISM] Replace assert with rb_bug
-
08:35 PM Revision a96110f7 (git): [ruby/prism] Convert more error messages to match specs
- https://github.com/ruby/prism/commit/7987b7aa20
-
08:30 PM Revision 4d3fc96b (git): Change dsymbol_alloc to use NEWOBJ_OF
-
08:25 PM Misc #20260: ISEQ flag for prism compiler
- Ahh sorry again, but actually if we introduce `Thread::Backtrace::Location#iseq`, all of this can be done in Ruby, because we could make it:
```ruby
return nil unless Thread::Backtrace::Location === loc
if loc.iseq.to_a[4][:prism]... -
08:13 PM Misc #20260: ISEQ flag for prism compiler
- Sorry to respond again, but in thinking about it, I think `Prism.node_for` might not be right. Maybe it should be `RubyVM::PrismSyntaxTree.of`, or something else under `RubyVM` because it is specific to CRuby.
-
06:58 PM Misc #20260: ISEQ flag for prism compiler
- Yes, the user-facing part for iseq is only changing `RubyVM::InstructionSequence.to_a` to include `prism: true/false`.
For error highlight to know, we will either need to change `RubyVM::AST.of` to know that it is coming from prism or... -
06:30 PM Misc #20260: ISEQ flag for prism compiler
- I'm okay to change the internal data structure because we can change them in future.
How to change the user facing interface? Changing only `to_a` format?
For example, errror_highlight needs to know the code which comes from.
Endo... -
08:10 PM Revision b1964a92 (git): [ruby/prism] Add code unit APIs to location
- LSPs need this because the protocol dictates that you return code
units for offsets. None of our existing APIs provided that
information, and since we hid the source it's not nearly as useful
for them. Now they can pass an encoding direc... -
07:49 PM Revision 6261d4b4 (git): Fix use-after-move in Symbol#inspect
- The allocation could re-embed `orig_str` and invalidate the data
pointer from RSTRING_GETMEM() if the string is embedded.
Found on CI, where the test introduced in 7002e776944 ("Fix
Symbol#inspect for GC compaction") recently failed.
S... -
07:49 PM Revision 5add999d (git): Comment about not marking RSYMBOL(obj)->fstr [ci skip]
-
07:35 PM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
- Making the timer thread lazily is in tasklist but not sure when we can make it.
-
07:31 PM Bug #20090: Anonymous arguments are now syntax errors in unambiguous cases
- @naruse Hi - I'm new around here. I was poking around this bug as it affects our codebase at work, and I think the wrong commit may have been flagged as the backport for this bug? Checking the Git tree, I don't see 596db9c1f486d6609a4e97...
-
07:29 PM Bug #20111: `defined?` returns `expression` for assignment operators combined with fully qualified constants
- Just curious, who cares the difference?
-
07:08 PM Misc #20238: Use prism for mk_builtin_loader.rb
- kddnewton (Kevin Newton) wrote in #note-8:
> You can pass `Prism.parse(code, version: "3.3.0")` and it will parse as if it were 3.3.0. I'm fine supporting older Ruby versions for this purpose.
(off-topic)
Oh, Prism supports multi-... -
07:02 PM Misc #20238: Use prism for mk_builtin_loader.rb
- > Using prism gem it can be newer than the source code (prism gem for ruby 3.5 syntax to build ruby 3.4, for example)
You can pass `Prism.parse(code, version: "3.3.0")` and it will parse as if it were 3.3.0. I'm fine supporting older ... -
06:23 PM Misc #20238: Use prism for mk_builtin_loader.rb
- I'm not negative to use Prism (or using parse.y) to make it to support newest syntax in builtins.
There are some concerns.
* Installing prism.gem requires bundler for BASERUBY (already commented)
* Using prism gem it can be newer than ... -
07:05 PM Feature #19905: Introduce `Queue#peek`
- I feel it is natural that `to_a` returns `[]` immediately if there is no enqueued item.
(`#peek` is not clear on it) -
05:22 PM Feature #19905: Introduce `Queue#peek`
- Seems like all the use cases so far would be as well if not better handled by `to_a`. Which I admit I hoped existed a few times when debugging code that uses `Queue`. Should also be relatively straightforward to implement.
-
02:59 PM Feature #19905: Introduce `Queue#peek`
- I would like to provide another use case for `Queue#peek`. I'm using `Queue` in a project that's running commands prone to failures. I have a queue of commands, a worker and a monitor threads. The worker pops the commands, runs them in s...
-
06:51 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- * As a MRI developer, I don't need loaded features (LF) and memory maps (MM) and it interrupts me to see the backtraces. In many cases they are not needed.
* Because it is easy to repro, in many cases.
* As a bug report receiver, it ca... -
03:54 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- I've received feedback that if we switch the default, no one would really use the full output mode, so we shall keep the current behavior for better bug reports. I agree that Ruby users (non-CRuby/C ext developers) won't run into crashes...
-
06:49 PM Revision 21297293 (git): [DOC] Doc compliance (#9944)
-
06:37 PM Bug #20230 (Closed): Fix crash when passing large keyword splat to method accepting keywords and keyword splat
- Fixed by commit:c20e819e8b04e84a4103ca9a036022543459c213
-
06:26 PM Feature #20257: Rearchitect Ripper
- Do you think the proposal has impact for user code?
-
06:26 PM Revision 29d04bb0 (git): [ruby/prism] Introduce `version: "3.4.0"`
- This is effectively an alias for "latest" right now. In the future
it will change to be its own enum value.
https://github.com/ruby/prism/commit/2c86036022 -
06:15 PM Revision 246005f5 (git): [ruby/prism] Fix an error when specifying the parsing version `latest`
- This PR fixes following error when using `version: latest` argument.
```console
$ ruby -rprism -e "p Prism.parse('-> { it }', version: 'latest')"
-e:1:in `parse': invalid version: latest (ArgumentError)
p Prism.parse('-> { it }', versi... -
06:14 PM Feature #19117: Include the method owner in backtraces, not just the method name
- Oops, indeed.
It seems a bit easier to me to read with the quotes:
```
/Users/byroot/.gem/ruby/3.2.2/gems/activerecord-7.1.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:30:in 'ActiveRecord::Foo::Bar#checkin': wro... -
06:02 PM Feature #19117: Include the method owner in backtraces, not just the method name
- It should be:
```
/Users/byroot/.gem/ruby/3.2.2/gems/activerecord-7.1.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:30:in ActiveRecord::Foo::Bar#checkin: wrong number of arguments (given 0, expected 1) (Argument... -
10:58 AM Feature #19117: Include the method owner in backtraces, not just the method name
- I think without quotes, while it looks clean for a simple example of all short paths it can be slower/harder to find the method name with more realistic cases.
For example in the case in https://bugs.ruby-lang.org/issues/19117#note-32, ... -
10:28 AM Feature #19117: Include the method owner in backtraces, not just the method name
- > Do we need quotes?
I'm not attached to them, and I suppose removing them would also solve https://bugs.ruby-lang.org/issues/16495 / https://bugs.ruby-lang.org/issues/17107. -
09:42 AM Feature #19117: Include the method owner in backtraces, not just the method name
- Do we need quotes?
From comment #28
```
./test.rb:10:in `Integer#+': String can't be coerced into Integer (TypeError)
from ./test.rb:10:in `block in Concrete.oops'
from ./test.rb:3:in `Abstract#oops'
from ./test.rb:16:in `... -
06:10 PM Revision a93f4e3d (git): byteslice can return nil so we have to push an "unknown" value
-
05:16 PM Revision fdaef7a7 (git): YJIT: Fixup kwrest stack base
- I was a little rushed and didn't notice that it was still using the
final stack size even though we don't grow the stack before kwrest
handling anymore. Oh well, we got a new test out of it.
Fix: cbdabd5890 -
04:53 PM Bug #20234: Segfault parsing begin statement inside method definition receiver
- I made an attempt to fix this at https://github.com/ruby/ruby/pull/9948. I added all the tests mentioned here. I'm not familiar with this code so I'm not 100% that this is right but in looking at `lldb` I noticed that the `expr` returned...
-
04:20 PM Revision c35fea85 (git): Specialize String#byteslice(a, b) (#9939)
- * Specialize String#byteslice(a, b)
This adds a specialization for String#byteslice when there are two
parameters.
This makes our protobuf parser go from 5.84x slower to 5.33x slower
```
Comparison:
decode upstream (53738 bytes): ... -
04:05 PM Revision a71d1ed8 (git): Fix memory leak when parsing invalid hash symbol
- For example:
10.times do
100_000.times do
eval('{"\xC3": 1}')
rescue EncodingError
end
puts `ps -o rss= -p #{$$}`
end
Before:
32032
48464
66112
84192
100592
117520
1... -
04:05 PM Revision e4272fd2 (git): Avoid allocation when passing no keywords to anonymous kwrest methods
- Thanks to the new semantics from [ruby-core:115808], `**nil` is now
equivalent to `**{}`. Since the only thing one could do with anonymous
keyword rest parameter is to delegate it with `**`, nil is just as good
as an empty hash. Using ni... -
04:05 PM Misc #20193: DevMeeting-2024-02-14
- * [Feature #20249] Introduce a backtrace-only mode for rb_bug() (osyoyu)
* The current crash report printed by rb_bug() is extremely long
* Terminals get quickly cluttered when developing C exts or CRuby itself
* Introduce a swit... -
06:51 AM Misc #20193: DevMeeting-2024-02-14
- * [Feature #20244] Show the conflicting another chdir block
* `Dir.chdir` is warning when in another chdir block.
```
$ ruby -e 'Dir.chdir {' -e 'Dir.chdir("/")' -e '}'
-e:2: warning: conflicting chdir during another ... -
01:50 AM Misc #20193: DevMeeting-2024-02-14
- * [Bug #20225] Inconsistent behavior of regex matching for a regex has a null loop (makenowjust)
* Onigmo has strange behavior for null (empty) loops with captures.
* Null-loop check depends on capture status.
* This behavior cau... -
04:04 PM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
- seems like
https://github.com/ruby/ruby/pull/9385
https://bugs.ruby-lang.org/issues/20085 -
01:27 PM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
- Coincidentally, I'm pretty sure that code is useless: https://github.com/ruby-gnome/pkg-config/pull/25.
-
01:12 PM Bug #20264: Segfault in Enumerator#next while installing RMagick on M1 Mac
- The interesting parts from the upstream ticket:
```
Segmentation fault at 0x0067ffffb37006c0
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux]
-- Control frame information -----------------------------------------------... -
11:39 AM Bug #20264 (Feedback): Segfault in Enumerator#next while installing RMagick on M1 Mac
- I raised a bug at RMagick, they said to go to pkg-config. I raised a bug there, and they said to raise it here. Hopefully this is the right place...
https://github.com/ruby-gnome/pkg-config/issues/24
Simplest reproduction steps (al... -
03:26 PM Revision 4e481c77 (git): [PRISM] Refactors to use more locations
-
03:26 PM Revision fe31b682 (git): [PRISM] Stop passing parser around so much
-
03:26 PM Revision e967e062 (git): [PRISM] Switch to locations for PM_ALIAS_GLOBAL_VARIABLE_NODE, PM_ALIAS_METHOD_NODE, and PM_AND_NODE
-
03:26 PM Revision 76ab017f (git): [PRISM] Brace style in prism_compile.c
- 02:39 PM Revision d357d50f (git): [PRISM] Fix lambda start column number
- Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
-
02:37 PM Revision b662edf0 (git): [PRISM] Combine hash compilation between hashes and keywords
-
02:37 PM Revision c0e12142 (git): [PRISM] Fix compilation of hash with multiple merges
- 02:09 PM Revision dedca318 (git): [ruby/prism] Fix `full_name` for constant path targets
- https://github.com/ruby/prism/commit/84c10f3a2d
-
01:36 PM Revision 2f0f9523 (git): [ruby/irb] Fix SourceFinder's constant evaluation issue
- (https://github.com/ruby/irb/pull/869)
Currently, if the signature's constant part is not defined, a NameError
would be raised.
```
irb(main):001> show_source Foo
(eval):1:in `<top (required)>': uninitialized constant Foo (NameError)
... -
01:33 PM Revision ec26786b (git): [ruby/irb] Refactor eval_path and `SourceFinder::Source`
- (https://github.com/ruby/irb/pull/870)
* Assign `@eval_path` through `irb_path=` method
This simplifies the original caching logic for the `eval_path` method
and makes it easier to understand.
* Refactor SourceFinder::Source
https://... -
11:11 AM Revision b5327647 (git): extract-gems before nmake in Visual Studio workflow
- * BTW this workflow is the only one doing extract-extlibs before building.
It seems building with Visual Studio and nmake has significant differences. -
11:11 AM Revision 9204416b (git): Revert "Try `nmake install` before `nmake test-spec`"
- This reverts commit d4a6c6521aa1a5208939a2cd981a13ca01a07d2a.
-
10:04 AM Bug #20263 (Closed): Backport https://github.com/ruby/ruby/pull/9498 to Ruby 3.3
-
09:09 AM Bug #20263 (Closed): Backport https://github.com/ruby/ruby/pull/9498 to Ruby 3.3
- Pull request: https://github.com/ruby/ruby/pull/9805
- 09:57 AM Revision e848848b (git): [ruby/reline] C for vi mode
- (https://github.com/ruby/reline/pull/472)
https://github.com/ruby/reline/commit/d197be7c44 -
09:38 AM Misc #20254: Add Launchable into Ruby CI
- Some more background:
1, I heard the introduction of Launchable service with some committers by my former colleague (as described in #5) in closed meeting.
2. On the meeting, we've learn the service and we found the task is enough sm... -
09:01 AM Bug #19991: rb_register_postponed_job async-signal-unsafety causes crash in GC
- I've also documented how to workaround this issue in the Datadog Ruby profiler in https://docs.datadoghq.com/profiler/profiler_troubleshooting/ruby/#segmentation-faults-in-gc_finalize_deferred-in-ruby-versions-26-to-32 although we're sti...
-
07:11 AM Revision 01d4d5b8 (git): Remove duplicate path-ignore entries [ci skip]
-
06:47 AM Bug #20183 (Closed): `erb/escape.so` cannot be loaded when `--with-static-linked-ext`
-
06:28 AM Bug #20262: Regex mismatch between Ruby 3.2.2 and 3.3.0
- I accidentally left the "()\1" in the original post, but it should not be there and I don't see a way to change it. The code example should be:
```ruby
str = "------------abcdefg------------#3895912"
re = /\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+... -
06:28 AM Bug #20262 (Closed): Regex mismatch between Ruby 3.2.2 and 3.3.0
- This might be a duplicate of https://bugs.ruby-lang.org/issues/20098, but I cannot make it match with the backref so maybe not.
Below example matches in 3.2.2 but not in 3.3.0
``` ruby
str = "------------abcdefg------------#389591... -
06:19 AM Bug #20098: Wrong regexp match in ruby 3.2 and 3.3
- Looks to be the same bug, but I cannot make it match with the backref. Below example matches in 3.2.2 but not in 3.3.0
``` ruby
str = "------------abcdefg------------#3895912"
re = /()\1\b\w*[a-zA-Z-]*\d+[\w-]{3,}\w+\b/
re.match?(st... -
01:56 AM Revision 038189b6 (git): Use dedicated parser_string hash function
- Define and use `rb_parser_str_hash` for `rb_parser_string_t`
instead of `rb_str_hash` to remove dependency on `rb_str_hash`. - 01:27 AM Revision 785aa47c (git): [rubygems/rubygems] Update SPDX license list as of 2024-02-08
- https://github.com/rubygems/rubygems/commit/ec3de95d79
-
01:07 AM Revision 1f0fa318 (git): Fix typo in asan section of building_ruby.md docs
- s/copmiler-rt/compiler-rt/
-
12:53 AM Bug #20246 (Closed): Unexpected behavior for Regexp in Subexpression Calls on Ruby 3.3.0
- Applied in changeset commit:git|4a6384ed9358e8fb8464f6e37efb5477182f01db.
----------
Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897) -
12:53 AM Revision 4a6384ed (git): Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897)
02/12/2024
-
11:40 PM Revision 8a345860 (git): Warn duplication of `__ENCODING__` on the hash
- ```
$ ruby -e 'h = { __ENCODING__ => 1, __ENCODING__ => 2 }'
-e:1: warning: key #<Encoding:UTF-8> is duplicated and overwritten on line 1
``` -
09:52 PM Revision f41d8f38 (git): Comply with doc guide
-
09:39 PM Revision cbdabd58 (git): YJIT: Fix kwrest calls setting SP with uninit values
- We did stack_push() and then saved the SP without writing to the slots
of the new values first, which caused the GC to mark uninitialized
values. Should fix crashes like
https://github.com/ruby/ruby/actions/runs/7877298133/job/21493179294 -
08:34 PM Feature #20261 (Assigned): Add symbol synonyms for '' and nil for IO method line separator arguments
- [Feature 20261] For IO's line-oriented read methods, there are two special values for the line-separator argument `sep`; I'm proposing to add (user-friendlier) symbol synonyms for those values:
- `:paragraph` as synonym for `''` (rea... -
08:08 PM Misc #20193: DevMeeting-2024-02-14
- * [Misc #20260] ISEQ flag for prism compiler (kddnewton)
* Would it be alright to add a flag to iseqs to say it came from the prism compiler? We need this to support error highlight. -
04:07 AM Misc #20193: DevMeeting-2024-02-14
- * [Feature #20257] Rearchitect Ripper
* I want to have a chance to explain new Ripper's architecture.
* In short, Ripper uses semantic value stack to manage Ruby Object returned by Ripper callback methods then Ripper can't execute ... -
08:07 PM Revision 0536b2ce (git): Replace assert with RUBY_ASSERT in weakmap.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 80700f45 (git): Replace assert with RUBY_ASSERT in thread_sync.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 9a2b6922 (git): Replace assert with RUBY_ASSERT in rational.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 3ed59627 (git): Replace assert with RUBY_ASSERT in range.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision fd87259a (git): Replace assert with RUBY_ASSERT in numeric.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 5644d90d (git): Replace assert with RUBY_ASSERT in load.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision ea92374b (git): Replace assert with RUBY_ASSERT in id_table.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 436191ab (git): Replace assert with RUBY_ASSERT in enum.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 11ffee88 (git): Replace assert with RUBY_ASSERT in darray.h
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 7256e38f (git): Replace assert with RUBY_ASSERT in complex.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision de7a29ef (git): Replace assert with RUBY_ASSERT in compile.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 6906e502 (git): Replace assert with RUBY_ASSERT in bignum.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision 1228751a (git): Replace assert with RUBY_ASSERT in array.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Revision ac38f259 (git): Replace assert with RUBY_ASSERT in string.c
- assert does not print the bug report, only the file and line number of
the assertion that failed. RUBY_ASSERT prints the full bug report, which
makes it much easier to debug. -
08:07 PM Misc #20260: ISEQ flag for prism compiler
- The PR for this work is here: https://github.com/ruby/ruby/pull/9934.
-
08:06 PM Misc #20260 (Closed): ISEQ flag for prism compiler
- In order to support error highlight, there's needs to be a way to tell which compiler generated an instruction sequence (compile.c or prism_compile.c). That's because when the file is reparsed to find the node based on the node id, we ne...
-
08:03 PM Revision bb845ae8 (git): [ruby/prism] Fix typo in class variable name error
- https://github.com/ruby/prism/commit/5f6c45f6fb
-
08:01 PM Revision 4f1a4665 (git): More on auto-link (#9907)
-
07:51 PM Misc #20254: Add Launchable into Ruby CI
- Conflict of interest: I work at Red Hat, being paid by Red Hat. I am a committer in the Ruby project. In the project, one of my interests and caring is about maintaining the CI services and infra, because the downstream Ruby RPM pakcage ...
-
07:51 PM Revision 84d8dbe7 (git): Enable redefinition check for rbinc methods
-
07:48 PM Revision 1395838e (git): [PRISM] Check full lines for invalid UTF-8
-
06:57 PM Revision 2131d04f (git): YJIT: Add support for `**kwrest` parameters
- Now that `...` uses `**kwrest` instead of regular splat and
ruby2keywords, we need to support these type of methods to
support `...` well. -
06:48 PM Misc #20259 (Open): Proposal to add "ruby --irb" and / or "ruby --start-irb" to start irb (interactive ruby) via ruby (bin/ruby), via the commandline
- This issue proposes to add:
a) a commandline flag to bin/ruby that allows the user to start irb,
and
b) allow the user to make use of ruby to start irb, via the commandline (thus, the
proposal's a) and b) are naturally connecte... -
06:38 PM Revision 7af97dc7 (git): [ruby/irb] Powerup show_source by enabling RubyVM.keep_script_lines
- (https://github.com/ruby/irb/pull/862)
* Powerup show_source by enabling RubyVM.keep_script_lines
* Add file_content field to avoid reading file twice while show_source
* Change path passed to eval, don't change irb_path.
* Encapsula... -
06:02 PM Revision e878bbd6 (git): Allow `foo(**nil, &block_arg)`
- Previously, `**nil` by itself worked, but if you add a block argument,
it raised a conversion error. The presence of the block argument
shouldn't change how keyword splat works.
See: <https://bugs.ruby-lang.org/issues/20064> -
06:01 PM Revision e08c1284 (git): [ruby/prism] Error messages closer to CRuby
- https://github.com/ruby/prism/commit/19ffa0b980
-
05:56 PM Revision e4d3e652 (git): YJIT: Prefer an overloaded cme if available (#9913)
- YJIT: Prefer an overloaded cme if applicable
-
05:54 PM Revision 94bc5ad3 (git): [ruby/prism] ruby_parser translator
- https://github.com/ruby/prism/commit/1925b970c7
-
05:31 PM Bug #20253 (Closed): `Proc.dup` and `Proc#clone` don't preserve finalizers
- Applied in changeset commit:git|de1a586ecc2ee7f465f0c0a69291054136a3a819.
----------
proc.c: get rid of `CLONESETUP`
[Bug #20253]
All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod`
and `Binding` always had their own speci... -
11:30 AM Bug #20253: `Proc.dup` and `Proc#clone` don't preserve finalizers
- https://github.com/ruby/ruby/pull/9926 fixes all the issues above and a few others.
-
11:28 AM Bug #20253: `Proc.dup` and `Proc#clone` don't preserve finalizers
- We just found yet another issue with @etienne:
```ruby
>> Proc.new { }.freeze.clone
(irb):1:in `initialize_copy': can't modify frozen Proc: #<Proc:0x000000011e3a96b0 (irb):1> (FrozenError)
from (irb):1:in `initialize_clone'
from... -
05:31 PM Revision de1a586e (git): proc.c: get rid of `CLONESETUP`
- [Bug #20253]
All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod`
and `Binding` always had their own specific clone and dup routine.
This caused various discrepancies with how other objects behave
on `dup` and `clone. [Bug #... -
04:56 PM Revision c04782c2 (git): YJIT: Adjust the padding size of counts automatically (#9912)
-
04:55 PM Revision b9f25b10 (git): YJIT: Fix insufficient type guards (#9911)
-
04:53 PM Bug #20258: Socket::IPV6_RECVERR for IPv6
- I have created a PR to fix the error: https://github.com/ruby/ruby/pull/9930
-
12:04 PM Bug #20258 (Closed): Socket::IPV6_RECVERR for IPv6
- Hello,
I am currently trying to receive ICMP error messages in Ruby. For IPv4 there is the `Socket::IP_RECVERR` flag, which can be set, but not for IPv6 (not found unter https://docs.ruby-lang.org/en/3.2/Socket/Constants.html for exam... -
04:27 PM Revision c3886c12 (git): [ruby/prism] Fix unary not location
- https://github.com/ruby/prism/commit/861689f6d1
-
03:57 PM Revision 16b39072 (git): [ruby/prism] Move Prism::RipperCompat to Prism::Translation::Ripper
- https://github.com/ruby/prism/commit/c0331abe4f
-
03:57 PM Revision 78deba1a (git): [ruby/prism] Unary not name location
- https://github.com/ruby/prism/commit/78190d2999
-
03:48 PM Revision 739eec04 (git): [DOC] `:stopdoc:` directive must be on its own line (#9916)
-
02:43 PM Revision 190a55d2 (git): Drill newobj cache instead of ractor
-
01:31 PM Revision d4a6c652 (git): Try `nmake install` before `nmake test-spec`
-
12:54 PM Feature #16828: Introduce find patterns
- An easy way to understand the "backtracking" of find pattern is it works like `each_slice(n)` and doesn't actually backtrack.
So its performance is linear to the number of elements of the array being matched.
https://github.com/ruby/ru... -
11:28 AM Revision 06995eb4 (git): [ruby/irb] Fix exit! command warning and method behavior
- (https://github.com/ruby/irb/pull/868)
* Fix exit! command warning and method behavior
* Remove arg(0) from Kernel.exit and Kernel.exit!
https://github.com/ruby/irb/commit/372bc59bf5 -
10:33 AM Revision 39788e58 (git): Try prepare-gems instead of extract-gems
- * `make install` uses prepare-gems.
-
10:33 AM Revision ffe1a68b (git): Skip spec failing on i686
-
10:05 AM Revision d15301d4 (git): Exclude a problematic spec when run in CRuby via make test-spec until fixed
-
09:56 AM Revision b19d2409 (git): Update to ruby/spec@ce834ad
-
09:55 AM Revision 90a746d2 (git): Always extract bundled gems before running ruby/spec
- * Fixes https://github.com/ruby/ruby/commit/44d74f22c8da3c13aa5363769418e2f5fd29f65a#r138276491
-
09:27 AM Misc #20242: `--parser=prism_without_warning`
- Oh right, that makes a lot more sense.
I wonder if it could be a configure flag or so to disable that warning, until it's stable enough to remove the warning entirely. -
08:46 AM Revision 7fc89a92 (git): Use Node for `warn_duplicate_keys` st_table keys
-
07:50 AM Revision 4f7de1dc (git): Adjust styles [ci skip]
-
06:48 AM Revision c20e819e (git): Fix crash when passing large keyword splat to method accepting keywords and keyword splat
- The following code previously caused a crash:
```ruby
h = {}
1000000.times{|i| h[i.to_s.to_sym] = i}
def f(kw: 1, **kws) end
f(**h)
```
Inside a thread or fiber, the size of the keyword splat could be much smaller
and still cause a cra... -
05:49 AM Revision 93accfdf (git): Fix [BUG] unknown node for NODE_ENCODING
- It should be `return` instead of `break`, otherwise
`[BUG] dump_node: unknown node: NODE_ENCODING` happens. -
03:29 AM Bug #19970: Eval leaks callcache and callinfo objects on arm32 (linux)
- I suspect this is the same underlying issue as #19907, but on wider platforms it only occurs with kwargs.
-
12:46 AM Feature #20257 (Closed): Rearchitect Ripper
- # Abstract
Rearchitect Ripper to provide whole semantic analysis support for Ripper and improve maintainability of Ripper.
This rearchitecture is achieved by modifying Lrama parser generator.
# Background and problem
Ripper is ...
02/11/2024
-
11:57 PM Bug #20248 (Closed): Ruby does not build with ASAN support with clang
- I updated the ASAN docs in https://github.com/ruby/ruby/commit/697ade7bda5942e372c8d6ba450dd534f0cf186f
I'm sorry for causing you to waste your time on this! Also, thanks again for the tip r.e. clang head - I included that in the docs... - 11:52 PM Revision 697ade7b (git): Update ASAN docs to reflect the current state of things
- I don't really think ASAN works well at all on any version of Ruby from
before https://bugs.ruby-lang.org/issues/20001 was landed. Update the
docs to clarify what works, and what does not work.
Also there's no need to compile at `-O0`; ... -
11:51 PM Bug #20256 (Closed): Make required ASAN settings "built in" without the need for ASAN_OPTIONS env var - Applied in changeset commit:git|1d467f2255112f9e712d5d9aa6f2cd0a102fb56e.
----------
Burn default ASAN options into the built Ruby
* We always need use_sigaltstack=0 because Ruby registers sigaltstack
handlers
* We also need to disab... -
10:25 PM Bug #20256 (Closed): Make required ASAN settings "built in" without the need for ASAN_OPTIONS env var
- Currently, to compile Ruby head with ASAN, you need to export the env var `ASAN_OPTIONS=use_sigaltstack=0:detect_leaks=0`. We require `use_sigaltstack=0` because Ruby registers signal handlers with its own sigaltstack, and we require `de...
- 11:51 PM Revision 1d467f22 (git): Burn default ASAN options into the built Ruby
- * We always need use_sigaltstack=0 because Ruby registers sigaltstack
handlers
* We also need to disable leak detection (unless RUBY_FREE_AT_EXIT is
set - I might experiment later with automatically enabling leak
detection if RUBY_... -
04:55 PM Revision c9006ddb (git): [ruby/optparse] [DOC] Add description of OptionParser#define_by_keywords
- https://github.com/ruby/optparse/commit/451dea51a0
-
04:09 PM Revision a63a0c24 (git): Win32: Include stdio.h for `printf`
-
04:08 PM Revision bbccabe6 (git): [ruby/optparse] [DOC] Add missing documents
- https://github.com/ruby/optparse/commit/33956ce93f
-
02:41 PM Revision a3ceb691 (git): [PRISM] Fix error handling in `pm_parse_prism`
- Following changes made in ruby/prism#2365 this implements error handling
for when `pm_string_mapped_init` returns `false`.
Related: ruby/prism#2207 -
01:00 PM Revision 90fe1b44 (git): Win32: Use `TARGET_OS` for word-size
- It is derived from `_WIN64` pre-defined macro, at `-osname-` in
win32/setup.mak. -
11:55 AM Revision 603392b8 (git): Win32: Use prototype
-
11:03 AM Revision ea2ea74a (git): Win32: Copy coroutine no longer exists
- At 42130a64f02294dc8025af3a51bda518c67ab33d, it has been replaced with
pthread implementation. -
10:43 AM Revision c77f736b (git): Win32: Fix pre-defined macros for platforms
- Use `_WIN64` for word-size, `_M_AMD64` for CPU-specific feature.
-
10:34 AM Revision aa36e44c (git): Win32: Define `HAVE_INTTYPES_H`
- Suppress redefinition warnings, inttypes.h has been provided as well
as stdint.h since `_MSC_VER` 1600 (= Visual C++ 10.0 = Visual Studio
2010).
```
C:\Program Files (x86)\Windows Kits\10\include\10.0.14393.0\ucrt\inttypes.h(123): warni... -
05:17 AM Revision 5c4657f8 (git): [ruby/irb] Polish the exit! command and its tests
- (https://github.com/ruby/irb/pull/867)
* Remove IRB.irb_exit! method
It's not necessary to introduce a new method just for the exit! command
at this moment.
* Rename ExitForcedAction to ForceExit
* Move force exit tests to a dedicate... -
02:08 AM Bug #20252 (Closed): Incompatibility with the `-h` option in optparse on Ruby 3.4.0dev
02/10/2024
- 10:07 PM Revision 429eeb09 (git): [ruby/irb] Introduce exit! command
- (https://github.com/ruby/irb/pull/851)
* Added failing test for when writing history on exit
* Save history on exit
* Exit early when calling Kernel.exit
* use status 0 for kernel.exit
* Added test for nested sessions
* Update lib/... -
05:40 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
- I sent a PR here: https://github.com/ruby/ruby/pull/9918
-
05:31 PM Bug #20255 (Closed): Embedded arrays aren't moved correctly across ractors
- `ractor.send(ary, move: true)` works incorrectly because if `ary` is embedded, the new moved object doesn't populate its own embedded space, it uses the MovedObject's embedded space.
example:
```ruby
r = Ractor.new {
inner_ary = ... -
03:47 PM Revision f960fbc1 (git): [ruby/optparse] Search exactly when `require_exact`
- To work with options defined as `--[no]-something`.
Fix https://bugs.ruby-lang.org/issues/20252
Fix https://github.com/ruby/optparse/pull/60
https://github.com/ruby/optparse/commit/78afdab307 -
09:58 AM Revision fdd92c2d (git): Fix the variable to be checked
- It should check the result of `rb_parser_search_nonascii`.
-
08:27 AM Misc #20254: Add Launchable into Ruby CI
- In short, Launchable is willing to provide us their service for free. I feel it convenient to see the test results formatted, instead of the log of GitHub Actions.
As the CI results are already public information, I don't see any proble... -
07:21 AM Misc #20254 (Closed): Add Launchable into Ruby CI
- I’m a software engineer who works at Launchable, Inc.
Some Ruby CI maintainers have granted me (Naoto Ono) the permission to integrate our service, [Launchable](https://www.launchableinc.com/) into ruby/ruby. This decision was made duri... -
05:24 AM Revision 6cafbd35 (git): YJIT: Remove unused variables
-
05:20 AM Bug #20248: Ruby does not build with ASAN support with clang
- > What optimizations do you mean?
I mean it shouldn't be necessary to build with `-O0`; `-O2` or `-O3` should work (well, as much as `-O0` does) on current master.
> ...
Thanks for this. I should have done this when I first reali... -
12:23 AM Revision ea91ab69 (git): Fix constant name of `Ractor::IsolationError` message
- `dest` of `const_decl_path` is `NODE_COLON2` or `NODE_COLON3` in some cases.
For example, `B::C ||= [“Not ” + “shareable”]` passes `NODE_COLON2`
and `::C ||= [“Not ” + “shareable”]` passes `NODE_COLON3`.
This commit fixes `Ractor::Isolat... -
12:23 AM Revision bf72cb84 (git): Include the first constant name into `Ractor::IsolationError` message
- If lhs of assignment is top-level constant reference, the first
constant name is omitted from error message.
This commit fixes it.
```
# shareable_constant_value: literal
::C = ["Not " + "shareable"]
# Before
# => cannot assign unshare...
02/09/2024
-
10:12 PM Revision e7b0a010 (git): YJIT: Add top ISEQ call counts to --yjit-stats (#9906)
-
10:01 PM Revision f7467e70 (git): Split line_no and node_id before new_insn_body
- Before this commit, there were many places where we had to generate
dummy line nodes to hold both the line number and the node id that
would then immediately get pulled out from the created node. Now
we pass them explicitly so that we do... -
09:43 PM Misc #20242: `--parser=prism_without_warning`
- I think you misunderstood what I'm asking for. Right now CRuby warns with:
```
The compiler based on the Prism parser is currently experimental and compatibility with the compiler based on parse.y is not yet complete. Please report a... -
09:30 PM Revision e96c838c (git): [PRISM] Fix flaky memory in scope nodes
-
08:43 PM Bug #20251: Wrong ArgumentError raised for hash as last parameter before keyword aguments
- phillipp (Phillipp Röll) wrote in #note-3:
> I know and unserstand that, but still, is the raised exception not wrong? Should that not be `ArgumentError: unknown keyword: :name`?
Positional argument arity is checked before keyword ar... -
08:29 PM Bug #20251: Wrong ArgumentError raised for hash as last parameter before keyword aguments
- I know and unserstand that, but still, is the raised exception not wrong? Should that not be `ArgumentError: unknown keyword: :name`?
-
02:15 PM Bug #20251 (Feedback): Wrong ArgumentError raised for hash as last parameter before keyword aguments
- You need `{`/`}` to make the argument a `Hash` instead of a keyword argument.
```ruby
post("/persons", {name: "John Doe"})
```
The semantics around keyword arguments has been changed at 3.0.
Ruby 2.7 or earlier worked like as yo... -
01:29 PM Bug #20251 (Feedback): Wrong ArgumentError raised for hash as last parameter before keyword aguments
- Suppose we have the following method as part of an API client:
```
def post(path, params, timeout: 30)
end
```
The method is then called like this:
```
post("/persons", name: "John Doe")
```
This leads to an error messag... -
07:49 PM Revision 86882565 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
- https://github.com/ruby/prism/commit/2c53e017c1
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
07:49 PM Revision f635b4dd (git): [ruby/prism] RipperCompat: add array-refs, assigns, symbols, strings
- https://github.com/ruby/prism/commit/b771c7f2ec
-
07:34 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- byroot wrote:
> I don't remember ever been asked to provide the full report.
Probably because e. g. a full stacktrace is a bit spammy and does not always carry the
most important information "everywhere". To explain that: I often have ... -
12:04 PM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- > I think that bug reports from the general public won't be the full version. Is that okay?
In my opinion it is. Most of the time I strip the bug report when posting it here (for example: https://bugs.ruby-lang.org/issues/20016), and ... -
11:40 AM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- Thank you for your comment!
byroot (Jean Boussier) wrote in #note-2:
> So I'm supportive to such change. What we could do it to default to the more complete report if Ruby is compiled with `RUBY_DEBUG=1`.
As the majority of Ruby ... -
11:21 AM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- I agree that the crash reports are very long and some very long part aren't really that useful. 99% of the time only the C-level backtrace and Ruby backtrace is all you need.
So I'm supportive to such change. What we could do it to de... -
06:58 AM Feature #20249: Introduce a backtrace-only mode for rb_bug()
- I've created a PoC in https://github.com/ruby/ruby/pull/9900.
-
06:37 AM Feature #20249 (Open): Introduce a backtrace-only mode for rb_bug()
- ## Background
When a segfault or some unexpected situation occurs, `rb_bug()` is called and prints some few hundred to thousands of lines.
The most helpful parts are (arguably) "Ruby level backtrace information" and "C-level backtr... -
05:54 PM Bug #20248: Ruby does not build with ASAN support with clang
- kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-1:
> Yeah I know asan is broken. I’m currently working on fixing it.
> ...
Also, can you see if you're still stuck on a fix if you build LLVM from head? [eugenis](https://github.com/eugen... -
02:22 PM Bug #20248: Ruby does not build with ASAN support with clang
- kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-1:
> Yeah I know asan is broken. I’m currently working on fixing it.
> ...
What optimizations do you mean?
In the meantime, since this is known issue, I've opened https://github.com/ru... -
01:02 AM Bug #20248: Ruby does not build with ASAN support with clang
- Yeah I know asan is broken. I’m currently working on fixing it.
If you build the latest master branch and with optimisations enabled, it will get further than that.
The current thing I’m stuck on is that asan can cause a deadlock w... -
05:12 PM Revision 717adb56 (git): YJIT: Fallback megamorphic opt_case_dispatch (#9894)
-
05:08 PM Revision 80490acf (git): More on IO doc (#9842)
-
04:59 PM Bug #20253: `Proc.dup` and `Proc#clone` don't preserve finalizers
- While looking at this, it appears that instance variables are also not copied over in `Proc#dup`, but somehow are in `Proc#clone`:
```ruby
def ivar_dup(obj)
obj.instance_variable_set(:@foo, 1)
p [:dup, obj.dup.instance_variable... -
04:47 PM Bug #20253 (Closed): `Proc.dup` and `Proc#clone` don't preserve finalizers
- While reviewing the fix for [Bug #20250] @peterzhu2118 pointed that `FL_FINALIZE` should probably also be cleared.
However after some extra testing, it appears `Object#dup` and `Object#clone` do copy over the finalizer (which makes se... -
04:39 PM Bug #20250 (Closed): Crash with "Object ID seen, but not in mapping table: proc" error
- Applied in changeset commit:git|d19d683a354530a27b4cbb049223f8dc70c75849.
----------
rb_obj_setup: do not copy RUBY_FL_SEEN_OBJ_ID
[Bug #20250]
We're seting up a new instance, so it never had an associated
object_id. -
01:31 PM Bug #20250: Crash with "Object ID seen, but not in mapping table: proc" error
- Patch: https://github.com/ruby/ruby/pull/9903
Also this bug affect all Ruby versions since the new `object_id` implementation back in 2.7, I got all of them to crash on it. -
12:42 PM Bug #20250: Crash with "Object ID seen, but not in mapping table: proc" error
- Alright, it's a bug in `#clone`, I managed to reduce it to:
```ruby
proc = Proc.new { }
proc.object_id
proc.clone
GC.start
```
Shouldn't be too hard to figure out. IIRC `Proc#clone` was modified recently, the flag that indicat... -
12:30 PM Bug #20250: Crash with "Object ID seen, but not in mapping table: proc" error
- I had a quick look and this is very interesting. As far as I can tell `cached_object_id` for this Proc, so the most likely explanation is that some other part of the codebase is messing with the object flags.
I'll try to dig deeper. -
10:11 AM Bug #20250 (Closed): Crash with "Object ID seen, but not in mapping table: proc" error
Hello, I experienced a crash which I was able to reliably reproduce with the following:
``` ruby
require 'bundler/inline'
gemfile(true) do
source 'https://rubygems.org'
gem 'activesupport', '7.1.3'
end
require 'act...-
04:38 PM Revision d19d683a (git): rb_obj_setup: do not copy RUBY_FL_SEEN_OBJ_ID
- [Bug #20250]
We're seting up a new instance, so it never had an associated
object_id. -
04:36 PM Bug #20252 (Closed): Incompatibility with the `-h` option in optparse on Ruby 3.4.0dev
- An incompatibility has arisen when using optparse with Ruby 3.4.0dev. Below are the steps to reproduce:
```ruby
# example.rb
require 'optparse'
OptionParser.new do |opts|
opts.on('--[no-]foo')
end.parse!
```
## Expected (... -
04:27 PM Revision cf1cd215 (git): [ruby/prism] Significantly faster offset cache for parser
- https://github.com/ruby/prism/commit/8cd92eef79
-
04:26 PM Revision 5c2d96df (git): [PRISM] Implement opt_case_dispatch
-
04:26 PM Revision a4ba62b6 (git): [PRISM] Refactor case nodes for only one pass through when
-
03:16 PM Misc #20222 (Closed): Dedup-ing clarification
- Thank you! This helps explain it.
-
11:25 AM Misc #20222: Dedup-ing clarification
- For the full context see [Feature #8992].
It's true that it's a bit questionable that it's treated as an optimization, but realistically speaking no-one is compiling code without optimizations, it's just for MRI developers.
Also `e... -
12:28 PM Revision 08b77dd6 (git): Remove unused bind argument from eval_make_iseq
-
10:58 AM Revision db73226b (git): [ruby/optparse] Adjust arguments for lambda-callbacks
- Rake uses [lambda] as callbacks.
Calling it without omitted argument raises an `ArgumentError`.
lambda: https://github.com/ruby/rake/blob/master/lib/rake/application.rb#L543
https://github.com/ruby/optparse/commit/213cb03b59 -
10:58 AM Revision 2c6767b7 (git): [ruby/optparse] Respect default values in block parameters
- Fix https://github.com/ruby/optparse/pull/55
https://github.com/ruby/optparse/commit/9d53e74aa4 -
09:59 AM Misc #20238: Use prism for mk_builtin_loader.rb
- That means that `ruby` package on FreeBSD 13 can also not use any bundled gem, e.g. bigdecimal when 3.4 comes out. So it's very clearly an incomplete Ruby installation.
A complete Ruby installation includes RubyGems and bundled gems (in... -
06:30 AM Misc #20238: Use prism for mk_builtin_loader.rb
- Ex. System ruby didn't contain `Bundler` in `ruby` package of FreeBSD 13. `rubygem-bundler` is separated package from ruby.
```
[hsbt@freebsd13 /usr/home/hsbt]$ ruby -v -rrubygems -rbundler -e "puts Bundler::VERSION"
ruby 3.1.4p223 (202... -
08:52 AM Revision 5e12b757 (git): Remove unavailable filters for merge_group event
- actionlint says:
- "branches" filter is not available for merge_group event. it is only for push, pull_request, pull_request_target, workflow_run events [events]
- "paths" filter is not available for merge_group event. it is only for pus... -
05:40 AM Revision 007c75ce (git): Skip to install bundled gems that is C extension and build failed.
- Ex. We can't build syslog gem in Windows platform. We should skip install
syslog as bundled gems. -
05:20 AM Revision 33c1e082 (git): Remove ruby object from string nodes
- String nodes holds ruby string object on `VALUE nd_lit`.
This commit changes it to `struct rb_parser_string *string`
to reduce dependency on ruby object.
Sometimes these strings are concatenated with other string
therefore string concate... -
03:31 AM Revision f7a407ca (git): [ruby/optparse] Fix `require_exact` to work with options defined as `--[no]-something`
- https://github.com/ruby/optparse/commit/4e346ad337
-
03:21 AM Revision 50bcaa62 (git): [ruby/optparse] Escape backslashes
- https://github.com/ruby/optparse/commit/b14c2c644d
-
02:09 AM Revision 0923a988 (git): Move clean-up after table rebuilding
- Suppress a false positive alert by CodeQL.
-
01:08 AM Revision 76f0eec2 (git): Fix a benchmark to avoid leaving a garbage file
-
01:07 AM Revision 2a57e6e6 (git): [ruby/rdoc] Don't document aliases with trailing `:nodoc` directive
- Attribute readers and writers can be marked as `:nodoc` to keep them
undocumented:
```ruby
attr_reader :name # :nodoc:
```
For aliases this behaviour should be the same:
```ruby
alias_method :old :new # :nodoc:
```
https://github.com... -
12:53 AM Revision 5d32e328 (git): YJIT: Refactor recv_known_class to Option (#9895)
-
12:41 AM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
- Replying to kjtsanaktsidis, I tried building our docker image using ruby-install as suggested here:
https://github.com/ruby/ruby/pull/9371#issuecomment-1893851123
and that caused problems with permissions, requiring sudo for instal... -
12:30 AM Bug #20246: Unexpected behavior for Regexp in Subexpression Calls on Ruby 3.3.0
- This is a bug in regex optimization.
Some optimizations have been disabled for memoization since 3.3.0. Therefore, another optimization was enabled, and that bug has surfaced.
By complicating the content of the first loop, we can confi...
02/08/2024
-
11:52 PM Revision e2aa00ca (git): YJIT: Remove unnecessary casts for chain_depth (#9893)
-
11:47 PM Revision 5cbca911 (git): YJIT: Allow tracing a counted exit (#9890)
- * YJIT: Allow tracing a counted exit
* Avoid clobbering caller-saved registers -
11:03 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
- https://github.com/ruby/ruby/pull/9371 is already backported into `ruby_3_3`.
https://github.com/ruby/ruby/commit/7f97e3540ce448b501bcbee15afac5f94bb22dd9 -
08:39 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
- To everyone saying they’re blocked by this bug: how are you installing your Ruby? The workaround in https://bugs.ruby-lang.org/issues/20085#note-5 should be pretty straightforward and get you unblocked.
Of course we need to fix the co... -
04:18 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
- I can't deploy apps with Kamal (e.g. Docker) because of this crash
-
11:01 PM Bug #20248 (Closed): Ruby does not build with ASAN support with clang
- The [instructions](https://github.com/ruby/ruby/blob/master/doc/contributing/building_ruby.md) for building Ruby with ASAN enabled do not work when using clang to build.
Given a trivial Dockerfile such as:
```
FROM gcr.io/clang-dock... -
10:27 PM Bug #20247: net/http/header limits are too low
- The upstream repo didn't have info for bug reports in the README, so I looked at the main ruby/ruby instructions instead.
I have filed the same issue with upstream: https://github.com/ruby/net-http/issues/173
-
09:58 PM Bug #20247: net/http/header limits are too low
- This should be reported upstream: https://github.com/ruby/net-http and can be found at https://github.com/ruby/net-http/commit/c245f7f9c845f1e7534b4e50b69e94ca9d083ca7.
Based on my reading (https://www.geekersdigest.com/max-http-reque... -
09:33 PM Bug #20247 (Closed): net/http/header limits are too low
- Hello, some of my HTTP tests are failing on Ruby 3.3 due to ArgumentError too long. I am trying to update from Ruby 2.7. I did not see any mention of this change in the net/http changelog, but looking at git history, the limit was added...
-
07:36 PM Revision 4a40364c (git): [PRISM] Run opt init before parsing
-
07:36 PM Revision 3ecfc3e3 (git): [PRISM] Support the DATA constant
-
06:18 PM Misc #20238: Use prism for mk_builtin_loader.rb
- > It seems not working if BASERUBY is system ruby on Linux distribution because these environment is separated ruby, rubygems and bundler packages.
I tried it on Ubuntu 22.04, and it worked. We already use ERB of baseruby, so it should ... -
05:03 PM Revision 19362784 (git): YJIT: Maintain MapToLocal that is just upgraded (#9876)
-
04:53 PM Revision 3e03981f (git): [PRISM] Compile constant paths with optimizations
-
04:53 PM Revision 54295ba5 (git): [PRISM] Compile constant reads using opt_getconstant_path
-
04:53 PM Revision b2d468fc (git): [PRISM] Refactor call opts to only check for specific ids
-
04:03 PM Revision 33974498 (git): YJIT: Report invalidation counts in non-stats mode (#9878)
- The `invalidation_count` and `invalidate_*` counters are all incremented
using `incr_counter!` without a guard on stats mode, so they can be made
always available.
This could be to helpful in investigating where, how often, and what
typ... -
04:03 PM Revision 50b4ef29 (git): YJIT: Use jit_prepare_call_with_gc as much as possible (#9874)
- * YJIT: Use jit_prepare_call_with_gc as much as possible
* Stop assuming vm_defined doesn't make a call -
04:02 PM Revision 19839498 (git): [ruby/prism] Looks like Symbol#name wasn't a thing in 2.7, so need to switch back to to_s
- https://github.com/ruby/prism/commit/0b90c9a398
-
04:02 PM Revision 0c735530 (git): [ruby/prism] Add Kevin's visit_all change and change the parent class to Compiler.
- https://github.com/ruby/prism/commit/bbdba3f42d
Co-Authored-By: Kevin Newton <kddnewton@gmail.com> -
04:02 PM Revision f8b8a678 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
- https://github.com/ruby/prism/commit/03addf2d3d
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
04:02 PM Revision 3f0aa554 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
- https://github.com/ruby/prism/commit/5eac08f699
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
04:02 PM Revision c1aba5d9 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
- https://github.com/ruby/prism/commit/8271ce5ec9
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
04:02 PM Revision 70bc4ce3 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
- https://github.com/ruby/prism/commit/6e2bf9c8cd
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
04:02 PM Revision 6aceb91d (git): [ruby/prism] Update lib/prism/ripper_compat.rb
- https://github.com/ruby/prism/commit/bce0a5c916
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
04:02 PM Revision 366af467 (git): [ruby/prism] RipperCompat: support for more features.
- * add bin/prism ripper to compare Ripper output
* block arg handling is quirky, do it per-call-site
* block required params
* boolean values
* various assign-operator support
* breaks, early fragile begin/rescue/end
* more fixtures being... -
03:49 PM Revision c6b39121 (git): [DOC] Improve flags of string
-
03:22 PM Revision b74c8abd (git): YJIT: Skip pushing a frame for Hash#empty? (#9875)
-
03:13 PM Bug #20245 (Closed): Crash when checking symbol encoding
- Applied in changeset commit:git|01fd262e62076277a41af72ea13f20deb1b462a2.
----------
Fix crash when checking symbol encoding
[Bug #20245]
We sometimes pass in a fake string to sym_check_asciionly. This can crash
if sym_check_asciionly... -
03:12 PM Revision 01fd262e (git): Fix crash when checking symbol encoding
- [Bug #20245]
We sometimes pass in a fake string to sym_check_asciionly. This can crash
if sym_check_asciionly raises because it creates a CFP with the fake
string as the receiver which will crash if GC tries to mark the CFP.
For exampl... - 02:17 PM Revision 6756dbf3 (git): Update bundled gems list at 443c5c06ac2be84059a7c4435c37de [ci skip]
-
02:17 PM Revision 443c5c06 (git): Bundle rbs-3.4.4 (#9883)
-
09:19 AM Bug #20246 (Closed): Unexpected behavior for Regexp in Subexpression Calls on Ruby 3.3.0
- Hello! A few days ago, after migration on 3.3.0 I have faced with issue inside subexpression calls.
An expected result on Ruby up to 3.3.0:
```ruby
'1.2.3'[/(\d+)(\.\g<1>){2}/] # => "1.2.3"
```
An actual result on Ruby 3.3.0:
... -
09:08 AM Revision 34581410 (git): Extract `RBIMPL_VA_OPT_ARGS`
- Similar to splat argument in Ruby, which be expanded to `__VA_ARGS__`
with a leading comma if any arguments given, otherwise empty. -
09:08 AM Revision f3cc1f9a (git): Show actual imemo type when unexpected type
-
09:08 AM Revision d31a12a2 (git): Optional detail info at assertion failure
- 08:28 AM Revision 0292d1b7 (git): Update bundled gems list as of 2024-02-07
-
08:19 AM Bug #20184: Ruby segfaults on Fly.io with 256 MB RAM
- Backport PR for 3.3: https://github.com/ruby/ruby/pull/9805
-
08:15 AM Revision 482b82ae (git): Bump typeprof to 0.21.10
-
06:29 AM Revision 908cedf7 (git): Removed accidentally commit for lockfile
-
06:27 AM Revision 70bb9cf0 (git): [rubygems/rubygems] rake vendor:install
- https://github.com/rubygems/rubygems/commit/c38a96ceae
-
06:27 AM Revision 75c5e1a1 (git): [rubygems/rubygems] Removed unnecessary disabling of Style/RedundantParentheses
- https://github.com/rubygems/rubygems/commit/2361527c45
- 06:07 AM Revision 43af2060 (git): Update default gems list at a35cade79125d2ae99cea01914939d [ci skip]
-
05:43 AM Revision a35cade7 (git): [rubygems/rubygems] Improve assertion
- https://github.com/rubygems/rubygems/commit/7f2f2b898c
Co-authored-by: Martin Emde <martin.emde@gmail.com> -
05:43 AM Revision c2362126 (git): [rubygems/rubygems] Use deprecation helper for deprecation warning
- https://github.com/rubygems/rubygems/commit/d1963bf1a6
-
05:43 AM Revision 0c71fb4b (git): [rubygems/rubygems] Run definition specs in an isolated location
- And consistently pass Pathname's to `Definition.new` like production
code does.
https://github.com/rubygems/rubygems/commit/660def5b68 -
05:43 AM Revision 5500f880 (git): [rubygems/rubygems] Fix incorrect 4th parameter to Definition.new
- https://github.com/rubygems/rubygems/commit/54948e428d
-
05:43 AM Revision e0412077 (git): [rubygems/rubygems] Move `subject` to top level context
- https://github.com/rubygems/rubygems/commit/331c415af0
-
05:43 AM Revision 24d5e717 (git): [rubygems/rubygems] Refactor lockfile generation
- https://github.com/rubygems/rubygems/commit/6a0c03c77f
-
05:43 AM Revision debc5aae (git): [rubygems/rubygems] Remove unused parameter
- https://github.com/rubygems/rubygems/commit/085eda7147
- 05:43 AM Revision ce2618c6 (git): [ruby/strscan] Bump version
- https://github.com/ruby/strscan/commit/ba338b882c
-
05:43 AM Revision 39f2e37f (git): [ruby/strscan] Don't add begin to length for new string slice
- (https://github.com/ruby/strscan/pull/87)
Fixes https://github.com/ruby/strscan/pull/86
https://github.com/ruby/strscan/commit/c17b015c00 - 05:43 AM Revision 5afae77c (git): [ruby/strscan] Bump version
- https://github.com/ruby/strscan/commit/842845af1f
- 05:43 AM Revision e1834cdf (git): [ruby/fiddle] Set changelog_uri gem metadata
- (https://github.com/ruby/fiddle/pull/138)
See https://guides.rubygems.org/specification-reference/#metadata for changelog_uri metadata.
https://github.com/ruby/fiddle/commit/0bd8e96adc -
03:06 AM Revision ce6054a6 (git): Move an embedded directive outside macro arguments
- Suppress warnings/errors by -Wembedded-directive with `-std=c99` on
macOS. -
02:28 AM Revision 9f1afefa (git): Now we can use ruby analysis with large runner
-
01:17 AM Misc #20222: Dedup-ing clarification
- Seems like a valid optimization to me and is similar to identity of small integers versus heap allocated bignums.
-
12:36 AM Revision 04d42650 (git): Remove obsoleted rb_vm_opt_cfunc_p
- That was added for MJIT's inlining decisions, but we no longer have MJIT.
02/07/2024
-
09:26 PM Revision 0e1f22ac (git): [ruby/prism] Dev-only CLI
- We keep adding more scripts to /bin that are doing the same kinds
of processing. Instead, this commit consolidates them all into a
single CLI that shares the same logic so that we can consistently
read files in the same way.
It keeps ar... -
07:42 PM Revision 1b68b459 (git): [ruby/prism] Commit Kevin's suggestion to simplify grabbing the operator.
- https://github.com/ruby/prism/commit/874ba7a1f4
Co-Authored-By: Kevin Newton <kddnewton@gmail.com> -
07:42 PM Revision 5b7baa04 (git): [ruby/prism] More different block-call syntaxes, support more types of method calls
- https://github.com/ruby/prism/commit/40cf114a24
-
07:42 PM Revision 73d222e1 (git): [ruby/prism] Support &. calls and calling with blocks, test with fixtures
- https://github.com/ruby/prism/commit/e346fa583a
-
07:42 PM Revision b1310940 (git): [ruby/prism] RipperCompat: support more kinds of method calls and operators.
- Add tests. Start parsing some simpler fixture code.
https://github.com/ruby/prism/commit/997f4191d8 - 06:37 PM Revision a5c871e2 (git): Update default gems list at fcc8df622a47a99c3df9889ec7efaf [ci skip]
-
06:36 PM Revision fcc8df62 (git): Bump prism version
-
05:48 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
- Getting closer...backport merged to 3.3.0. Anyone familiar with the release process know when the new binaries will land?
-
05:15 PM Revision b2392c6b (git): Fix memory leak when parsing invalid pattern matching
- If the pattern matching is invalid, then the pvtbl would get leaked. For
example:
10.times do
100_000.times do
eval(<<~RUBY)
case {a: 1}
in {"a" => 1}
end
RUBY
rescue SyntaxE... - 04:59 PM Revision f741b05d (git): Update default gems list at 0b7f51683446c81d7352d7d2eab9f4 [ci skip]
-
04:57 PM Revision 0b7f5168 (git): [ruby/irb] Bump version to v1.11.2
- (https://github.com/ruby/irb/pull/865)
https://github.com/ruby/irb/commit/afe1f459cc -
04:55 PM Misc #20238: Use prism for mk_builtin_loader.rb
- hsbt (Hiroshi SHIBATA) wrote in #note-1:
> It seems not working if BASERUBY is system ruby on Linux distribution because these environment is separated ruby, rubygems and bundler packages. It should be using repository version of prism.
... -
03:15 PM Misc #20238: Use prism for mk_builtin_loader.rb
- I tried to get that working, but it seems like the extensions are built too late. We need prism earlier in the process to build the core files first. Maybe there's a way, but @k0kubun and I couldn't find it.
-
04:54 PM Revision aad3c36b (git): [ruby/prism] Support for Ruby 2.7
- https://github.com/ruby/prism/commit/1a15b70a8e
-
04:38 PM Bug #20245 (Closed): Crash when checking symbol encoding
- GitHub PR: https://github.com/ruby/ruby/pull/9871
We sometimes pass in a fake string to sym_check_asciionly. This can crash if sym_check_asciionly raises because it creates a CFP with the fake string as the receiver which will crash i... -
04:35 PM Feature #20244 (Closed): Show the conflicting another chdir block
- `Dir.chdir` is warning when in another `chdir` block.
```sh-session
$ ruby -e 'Dir.chdir {' -e 'Dir.chdir("/")' -e '}'
-e:2: warning: conflicting chdir during another chdir block
```
If two `chdir`s are far apart, it can be diff... -
03:42 PM Revision aed052ce (git): [PRISM] Revert incorrect frozen string literal handling
-
02:59 PM Revision 5f4245e7 (git): [ruby/irb] Polish tracer integration and tests
- (https://github.com/ruby/irb/pull/864)
* Remove useless ivar
* Simplify tracer test setup
* Treat tracer like a normal development dependency
* Only require ext/tracer when value is truthy
* Make tracer integration skip IRB traces
... -
02:44 PM Revision 164c18af (git): [ruby/prism] Correct handle recover parameters on tokenize for parser translation
- https://github.com/ruby/prism/commit/63979de21d
-
01:46 PM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
- kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-6:
> Is this enough to meet your needs? If so, I can close this out.
Maybe, yes. It's unfortunate for me to rewrite a few lines of Ruby into 100~200 lines of C++, though.
I wonder whet... -
09:44 AM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
- > It looks something like this works:
Won't win any awards for beauty perhaps, but gets the job done!
Is this enough to meet your needs? If so, I can close this out. Otherwise, perhaps a good next step would be to open a new featur... -
12:13 PM Misc #20242: `--parser=prism_without_warning`
- Do you have an example? That could help to clarify the need for this.
Is it problematic to modify these tests/specs to accept Prism warnings too? I think that would be best (since it would be needed longer-term anyway).
For compatibili... -
11:34 AM Revision 9ebaf7a8 (git): Run CodeQL using macos-arm-oss only on ruby/ruby
-
11:03 AM Revision e965c5a1 (git): Keep cpp build with ubuntu-latest
-
09:33 AM Revision 78898c53 (git): Refer gmp to macOS build
-
09:33 AM Revision 5d5d27a6 (git): readline-ext is extracted bundled gems at Ruby 3.3
-
09:28 AM Bug #20243: M:N threading VM_ASSERT failure in rb_current_execution_context with clang 17 (on Linux)
- yeah you definitely can't tell the compiler you're clobbering `%fs`
```
../thread_pthread.c:1166:20: error: unknown register name 'fs' in asm
1166 | __asm__("" ::: "fs", "memory");
| ^
1 error generat... -
09:18 AM Bug #20243 (Open): M:N threading VM_ASSERT failure in rb_current_execution_context with clang 17 (on Linux)
- When building with Clang 17 and `-DVM_CHECK_MODE=1` (with the following configure)
```
optflags="-ggdb3 -fno-omit-frame-pointer -fno-optimize-sibling-calls -O3" cflags="-DVM_CHECK_MODE=1" CC=clang ../configure --prefix=/home/kj/ruby... -
09:04 AM Feature #9113: Ship Ruby for Linux with jemalloc out-of-the-box
- We've been using jemalloc since 2018 and it cut our memory use to 1/5, it also stopped us needing to restart our app every 3-4 days as the memory slowly leaked. It is staggering to me why this isn't the default, until we discovered jemal...
-
08:42 AM Bug #20221 (Closed): ASAN: make test-basic: un-prefixed symbol leakage - Applied in changeset commit:git|565ef06e917c6f326f8d528dc8fa6c6de88a8753.
----------
Ignore _odr_asan symbols in leaked-globals
ASAN includes these to detect violations of the ODR rule.
[Bug #20221] - 08:42 AM Revision 565ef06e (git): Ignore _odr_asan symbols in leaked-globals
- ASAN includes these to detect violations of the ODR rule.
[Bug #20221] -
08:27 AM Revision 42c36269 (git): The default ram size is 13GB at macos runner
-
08:27 AM Revision 66d6695f (git): Try to run with large runner
-
08:27 AM Revision 84070443 (git): Update latest version of CodeQL
-
07:06 AM Revision d95d3484 (git): omit tests related legacy provider
- It failed with recent update of FreeBSD
https://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20240207T023002Z.fail.html.gz -
06:44 AM Bug #20239 (Closed): Segmentation fault when using Regex on a large String
- Applied in changeset commit:git|75aaeb35b82da26359b9418d2963384d0c55839c.
----------
[Bug #20239] Fix overflow at down-casting -
06:14 AM Revision 75aaeb35 (git): [Bug #20239] Fix overflow at down-casting
- 05:46 AM Revision 8bd83bb1 (git): [rubygems/rubygems] fix flaky tests
- https://github.com/rubygems/rubygems/commit/0e87ae032d
- 05:46 AM Revision 0edf5a71 (git): [rubygems/rubygems] #to_spec must fallback for prereleases always
- https://github.com/rubygems/rubygems/commit/6302798a32
- 05:46 AM Revision aaef443a (git): [rubygems/rubygems] release requirement may load prerelease when sole option
- https://github.com/rubygems/rubygems/commit/7990771939
- 05:46 AM Revision 5ddf4f5c (git): [rubygems/rubygems] fix Gem::Dependency#to_spec returning nil when prerelease is the only available version
- https://github.com/rubygems/rubygems/commit/a7dcc7214b
-
03:21 AM Revision 2dba4413 (git): [ruby/prism] Even more ripper compat
- https://github.com/ruby/prism/commit/47a602dc1c
- 01:59 AM Revision 64b6a018 (git): Fix test session reuse but expire (#9824)
- * OpenSSL 3.2.1 30 Jan 2024 is also broken
Import 45064610725ddd81a5ea3775da35aa46985bc789 from ruby_3_3 branch
tentatively. -
01:49 AM Revision e34505c6 (git): [ruby/prism] More visitors and tests for RipperCompat
- Part of issue #2354
https://github.com/ruby/prism/commit/cb28edae34 -
01:38 AM Revision ae13f853 (git): Add test-all to prism