Activity
From 01/14/2024 to 01/20/2024
01/20/2024
-
10:31 PM Bug #20180: Inconsistent evaluation of `**{}` depending on position in array
- I submitted a pull request to fix this: https://github.com/ruby/ruby/pull/9624
-
10:01 PM Bug #20197: Postponed job invocations are significantly reduced in Ruby 3.3
- I hacked at the postponed job infrastructure pretty extensively in 3.3, I’ll have a look at this bug in the next few days.
Thank you for your report! -
03:58 PM Bug #20197 (Closed): Postponed job invocations are significantly reduced in Ruby 3.3
- The number of postponed job invocations has been significantly reduced in Ruby 3.3.
While my understanding is that postponed jobs provide no guarantee of how soon registered callbacks will fire, I believe the current rate is too low for... -
04:50 PM Feature #19117: Include the method owner in backtraces, not just the method name
- byroot (Jean Boussier) wrote in #note-36:
> Also it's likely (still not 100% decided) we'll be running a 3.4 prerelease sometime around March or April on our monolith, so we can get feedback from hundreds of developers long before the f... -
11:04 AM Feature #19117: Include the method owner in backtraces, not just the method name
- > large-scale app development
Yes, the larger the app, the more likely you are to have many methods with the same name in different modules / classes, and the more gems with different file naming conventions.
> ...
Agreed. I'm for... -
12:58 AM Feature #19117: Include the method owner in backtraces, not just the method name
- In fact, I am also a bit afraid that it could be too redundant in large-scale app development. But it's interesting that byroot, who is far more familiar with large-scale app development than me, thinks that it's useful.
It is hard to... -
03:27 PM Revision 366b14c0 (git): More tests
-
02:59 AM Feature #20196 (Open): Proposal: Binary data literal
- I sometimes find myself needing to write some bytes in a Ruby string literal, and this experience leaves a lot to be desired:
* Bare strings don't work (potential for encoding corruption unless you remember to `.force_encoding` and ne... -
01:12 AM Revision 99d6e2f1 (git): [PRISM] Revisit target nodes
-
01:05 AM Bug #20195 (Closed): 3.3.0 YJIT mishandles ruby2_keywords splat into methods taking a rest parameter
- Check with:
```ruby
ruby2_keywords def foo(*args) = args
def bar(*args, **kw) = [args, kw]
def pass_bar(*args) = bar(*args)
def body
args = foo(a: 1)
pass_bar(*args)
end
p body
```
```
$ ruby ../test.rb
[[{:a...
01/19/2024
- 10:57 PM Revision ac4046d3 (git): [ruby/prism] switch unless to if
- https://github.com/ruby/prism/commit/29bdbf4212
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
10:57 PM Revision cfabe9c5 (git): [ruby/prism] Handle stovetop start in constant path fullname
- https://github.com/ruby/prism/commit/3a216e63fe
-
09:45 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Are you able to share the source code and error message? Thanks.
-
09:04 PM Revision ed50161b (git): [PRISM] Fix ensure code running twice
- Fixes: ruby/prism#2212
-
08:37 PM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shioimm (Misaki Shioi) wrote in #note-8:
> shugo (Shugo Maeda) wrote in #note-6:
> ...
Oh, I missed it.
But why not use Socket.tcp in Net::HTTP?
HTTP is one of most important use cases, isn't it?
> > Maybe, but HE may be slower i... -
01:11 PM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shugo (Shugo Maeda) wrote in #note-6:
> Users of libraries such as Net::HTTP, Net::FTP, and Net::IMAP can't use TCPSocket.new easily.
Net::HTTP uses `TCPSocket.open`(new), not `Socket.tcp`.
https://github.com/ruby/net-http/blob/edc99a54... -
09:41 AM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shioimm (Misaki Shioi) wrote in #note-2:
> There is no way to disable it; HE is intended to avoid fatal delays. Introducing a way to disable it for performance seems to me to add complexity.
Speaking of complexity, how about to leave... -
08:53 AM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shioimm (Misaki Shioi) wrote in #note-5:
> Thank you for comments.
> ...
Maybe, but HE may be slower in such cases as your benchmark shows.
So I think it's better to provide a way to disable HE such as `Socket.fast_fallback = false` a... -
08:32 PM Revision 4778b0ee (git): Fix kwarg ordering
- Required keyword arguments need to come first.
Fixes: https://github.com/ruby/prism/issues/2158
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
07:51 PM Revision e0f7cee8 (git): YJIT: Avoid doubly splitting Opnd::Value on CSel (#9617)
- YJIT: Avoid doubly splitting Opnd::Value
-
07:48 PM Feature #19117: Include the method owner in backtraces, not just the method name
- > That's just how Ruby code is written nowadays.
It's a common pattern for classes that are long enough, but it's also very common to cram multiple smaller classes in the same file, or multiple classes that are alternative implementa... -
07:38 PM Feature #19117: Include the method owner in backtraces, not just the method name
- byroot (Jean Boussier) wrote in #note-32:
> Can you tell me without opening the source file, the owner of that method?
Normally it would be ActiveRecord::ConnectionAdapters::ConnectionPool; now I'm sure you chose an example where tha... -
03:42 PM Feature #19117: Include the method owner in backtraces, not just the method name
- > "connection_adapters/abstract/database_statements" is repeated as "ActiveRecord::ConnectionAdapters::DatabaseStatements"
That is the case in the example you chose, but is absolutely not a given.
Can you tell me without opening th... -
03:36 PM Feature #19117: Include the method owner in backtraces, not just the method name
- It's not so much the length but the redundancy. "active_record/connection_adapters/abstract/database_statements" is repeated as "ActiveRecord::ConnectionAdapters::DatabaseStatements"
It's hard for me to say if I would like the feature o... -
03:25 PM Feature #19117: Include the method owner in backtraces, not just the method name
- > Please try it with a Rails backtrace, so you get something like:
@Dan0042 I find that is much better than the existing backtrace. ¯\\\_(ツ)_/¯
I mean, we're including more information, so yes it's longer, but in your example it's ... -
03:02 PM Feature #19117: Include the method owner in backtraces, not just the method name
- Please try it with a Rails backtrace, so you get something like:
```
#before
from /opt/ruby/3.1/lib/ruby/gems/3.1.0/gems/activerecord-7.0.3/lib/active_record/connection_adapters/abstract/database_statements.rb:531:in 'with_multi_statemen... -
09:37 AM Feature #19117: Include the method owner in backtraces, not just the method name
- I tried the following (contrived) script:
```ruby
class Abstract
def oops
yield
end
end
class Concrete < Abstract
class << self
def oops(&block)
new.oops { 1 + "1" }
end
end
def oops(&block)... -
09:11 AM Feature #19117: Include the method owner in backtraces, not just the method name
- > What do you think?
I think it's beautiful. I'll try to get some time to build your branch and play with it, see how it behave in more corner-casy situations. -
05:39 AM Feature #19117: Include the method owner in backtraces, not just the method name
- I prototyped this proposal: https://github.com/ruby/ruby/pull/9605
Fortunately, this would bring neither perrformance degredation nor extra memory usage when an exception is raised because I just replaced the method id with the method... -
07:09 PM Revision 740f0b52 (git): [PRISM] Fix typo with pm_scope_node_destroy
- We need to run the pm_scope_node_destroy after compiling the iseq.
-
05:35 PM Revision efe4b8ac (git): Fix ensure code when running break in a while loop
- We need to run ensure code when breaking from a while loop
Co-authored-by: John Hawthorn <jhawthorn@github.com>
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
05:35 PM Revision 200d3cc1 (git): add assert on SP
-
04:22 PM Revision 400341ae (git): [PRISM] Sync to latest
-
04:18 PM Revision 5a5cf23d (git): [PRISM] Fix indentation for PM_SCOPE_NODE [ci skip]
- 04:12 PM Revision ba4b00d3 (git): * remove trailing spaces. [ci skip]
-
04:12 PM Revision da521fc9 (git): [ruby/prism] Parsing rules document
- https://github.com/ruby/prism/commit/57a9575543
-
04:00 PM Revision 3c929017 (git): YJIT: Optimize defined?(yield) (#9599)
- * YJIT: Optimize defined?(yield)
* Remove an irrelevant comment
* s/get/gen/ - 03:43 PM Revision a58e0916 (git): [ruby/prism] Extract identifier lexing documentation to separate file
- https://github.com/ruby/prism/commit/c9df17e3c0
- 03:43 PM Revision 9c06297c (git): [ruby/prism] Remove non-ASCII examples from ReadNode fields documentation
- This is due to a constraint, enforced in `templates/template.rb`,
relating to non-UTF-8 locales prohibiting non-ASCII characters in C
source files.
https://github.com/ruby/prism/commit/74e9a890be - 03:43 PM Revision 57c138c5 (git): [ruby/prism] Document ConstantReadNode fields
- https://github.com/ruby/prism/commit/a1623f6451
- 03:43 PM Revision b7d37e27 (git): [ruby/prism] Document LocalVariableReadNode fields
- https://github.com/ruby/prism/commit/5e9afd3729
- 03:43 PM Revision 1c5e5406 (git): [ruby/prism] Document NumberedReferenceReadNode fields
- https://github.com/ruby/prism/commit/c3148b4519
- 03:43 PM Revision 3fa6dbf3 (git): [ruby/prism] Document BackReferencedReadNode fields
- https://github.com/ruby/prism/commit/99a5660623
- 03:43 PM Revision 512be6ce (git): [ruby/prism] Document GlobalVariableReadNode fields
- https://github.com/ruby/prism/commit/5d092e6389
- 03:43 PM Revision 9031fd08 (git): [ruby/prism] Document ClassVariableReadNode fields
- https://github.com/ruby/prism/commit/23ed81dd15
- 03:43 PM Revision 88810f71 (git): [ruby/prism] Document InstanceVariableReadNode fields
- https://github.com/ruby/prism/commit/c0747103b0
-
03:29 PM Bug #20194 (Closed): Memory leak with TracePoint on bmethod
- GitHub PR: https://github.com/ruby/ruby/pull/9614
When disabling the TracePoint on bmethod, the hooks list is not freed.
For example:
```ruby
obj = Object.new
obj.define_singleton_method(:foo) {}
bmethod = obj.method(:foo)
t... -
03:25 PM Revision d0b774cf (git): Remove null checks for xfree
- xfree can handle null values, so we don't need to check it.
-
02:49 PM Revision d29cd972 (git): [ruby/prism] Use inttypes for more accurate printf formatting
- https://github.com/ruby/prism/commit/2a22b9b72f
-
02:19 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- I opened a PR with some extra specs for the behavior *after* the constant is defined, but *before* the autoload is completed: https://github.com/ruby/ruby/pull/9613
And I updated my patch to be consistent with that behavior: https://g... -
01:42 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Ah, I see.
So that, to me, stll reinforces my main design principle, that I have not shared so far in the discussion.
The code responsible for loading is the caller, `bar.rb` should work the same no matter how the `require` was issued.... -
01:37 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- @fxn The `defined?` should be before the assignment in the autoloading thread.
-
01:16 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Are you guys sure `defined?` depends on the thread? In this test running in 3.3 I don't seem to reproduce:
```ruby
$up = Queue.new
$down = Queue.new
File.write('/tmp/bar.rb', <<~RUBY)
Bar = 1
$up << true
$down.pop
... -
12:45 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Alright, I guess I better see what you mean now, there is a spec for `defined?` during autoload, that ensure other threads see the constant as not defined until the autoload completed:
```ruby
it "defined? returns nil in autoload... -
12:37 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Ok, so I see what you mean. Accessing `Const` from another thread while the autoload is still being resolve blocks until it's done, which makes sense for thread safety, and I suspect my patch breaks that, I need to double check and fix i...
-
12:22 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Alternatively if `const_source_location` returns a different result based on the calling thread then I agree it seems fine in the autoloading thread to return the temporary assignment location just after that assignment.
And then after ... -
12:19 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- One problem though with that restore way is, I think, `const_source_location` is always the same for all threads.
What you are showing there is only valid for the thread autoloading that file, but is not the case for any other thread, wh... -
12:15 PM Bug #8973: Allow to configure archlibdir for multiarch
- Can this be reopened or should create new ticket?
-
11:28 AM Misc #20193: DevMeeting-2024-02-14
- * [Bug #20188] `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing (byroot)
* `const_source_location` continues to return the `autoload` location even after the constan... -
08:43 AM Misc #20193: DevMeeting-2024-02-14
- * [Feature #16495] Inconsistent quotes in error messages (mame)
* Implemented a prototype.
* Error message: ``undefined method `foo'`` -> ``undefined method 'foo'``
* Backtrace: ``from test.rb:2:in `foo'`` -> ``from test.rb:2:in... -
07:57 AM Misc #20193 (Closed): DevMeeting-2024-02-14
- # The next dev meeting
**Date: 2024/02/14 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-02-14.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... - 11:02 AM Revision 7b0f6d6d (git): Update bundled gems list at c46d23cde7c6bfc2af762525a767cd [ci skip]
-
11:02 AM Revision c46d23cd (git): Added dependencies rinda and drb
-
11:02 AM Revision fa5094e1 (git): Stop sync rinda repo
-
11:02 AM Revision ce73fbd7 (git): Document about rinda at Ruby 3.4
-
11:02 AM Revision 411cda2d (git): Extract rinda
-
09:01 AM Bug #19918: Should `a[&b]=c` be syntax valid?
- https://github.com/nobu/ruby/tree/ary_set-block
-
07:53 AM Bug #19918 (Assigned): Should `a[&b]=c` be syntax valid?
- Discussed at the dev meeting. @matz wanted to allow `a[&b]` and forbid `a[&b] = c` if the implementation is not overly cumbersome.
@yui-knk What do you think?
Note: During the meeting, we found that the compilation of `a[&b], c[&d]... - 08:57 AM Revision 0f315216 (git): Update bundled gems list as of 2024-01-19
-
08:44 AM Revision 31a5d4a0 (git): Skip test task for resolv-replace
-
08:44 AM Revision 36095ed3 (git): Removed sync task for resolv-replace
-
08:44 AM Revision 6c098d14 (git): Document about resolv-replace at Ruby 3.4
-
08:44 AM Revision 99c2c703 (git): Extract resolv-replace
-
08:14 AM Bug #20150: Memory leak in grapheme clusters
- Hello, Martin-sensei.
In my understandings, there's no explicit rule regarding the order of backporting to each stable branch.
In this case, I backported the changeset to the 3.2 branch ahead of the 3.3 branch because I hoped to incl... -
07:57 AM Misc #20075 (Closed): DevMeeting-2024-01-17
-
07:45 AM Feature #16495: Inconsistent quotes in error messages
- I prototyped it: https://github.com/ruby/ruby/pull/9608
Still need to update prism and ruby/spec.
For information in impact assessment: this change made 140 tests fail in `make test-all`. Many of them examined error messages, which... - 07:28 AM Revision 9ac316bb (git): Update bundled gems list at 11ec59c92bab5346fc0fdce9d8ed2a [ci skip]
-
07:27 AM Revision 11ec59c9 (git): Removed sync task for abbrev
-
07:27 AM Revision e28bdff9 (git): Document about abbrev at Ruby 3.4
-
07:27 AM Revision f4670b46 (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/library/abbrev/**/*.rb
-
07:27 AM Revision b4ee5266 (git): Extract abbrev as bundled gems
-
06:56 AM Revision d3898e97 (git): Removed sync task for observer
- 06:35 AM Revision e8cb9e13 (git): Update bundled gems list as of 2024-01-18
-
06:24 AM Revision fb5722c0 (git): Document about observer at Ruby 3.4
-
06:24 AM Revision 8b551b0e (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/library/observer/**/*.rb
-
06:24 AM Revision 176a4428 (git): Extract observer as bundled gems
-
05:01 AM Revision 68b403c4 (git): Fixed inconsistent library name
-
05:00 AM Revision 385a1b15 (git): Fixed upstream URL at bundled gems
-
03:12 AM Revision 54552b89 (git): Revert "[rubygems/rubygems] Fix `require` of a default gem when unresolved gems depend on it"
- This reverts commit f1f5f22d22a149f20e019728b1ab35593d29d81a.
-
02:54 AM Revision 04cf6676 (git): Revert "[rubygems/rubygems] Fix activation conflicts when circularly requiring a gem"
- This reverts commit db44088c2a92040879386aa5f268db4c858e4e5b.
https://github.com/ruby/ruby/actions/runs/7578672002/job/20641640821
https://github.com/ruby/ruby/actions/runs/7578672002/job/20641641212
https://github.com/ruby/ruby/a... - 02:44 AM Revision 7265a5be (git): Bump actions/upload-artifact from 4.1.0 to 4.2.0
- Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/1eb3cb... -
02:29 AM Revision a8fa28ab (git): Bump uri version used in development
-
02:28 AM Revision db44088c (git): [rubygems/rubygems] Fix activation conflicts when circularly requiring a gem
- If a gem is required circular, and there are unresolved specs depending
on it, we may end up in an activation conflict.
The solution is to not try to activate unresolved gems when requiring a
default gem, regardless of it having already... -
02:28 AM Revision f1f5f22d (git): [rubygems/rubygems] Fix `require` of a default gem when unresolved gems depend on it
- The following conditions must be met:
* A default gem is required.
* A previous require left some gems unresolved, and those dependencies
themselves depend on the default gem.
In this case, rubygems require will first activate the de... -
02:28 AM Revision 8044e579 (git): [rubygems/rubygems] Add a comment to explain default gem activation
- https://github.com/rubygems/rubygems/commit/291128268f
- 02:16 AM Revision 74e5665e (git): Update default gems list at b2ec4308d69a13f3ff3b1b3128d52b [ci skip]
-
01:49 AM Revision b2ec4308 (git): [ruby/irb] Bump version to v1.11.1
- (https://github.com/ruby/irb/pull/837)
https://github.com/ruby/irb/commit/f052097c4b -
01:49 AM Revision 91f35305 (git): [ruby/strscan] Add test to check encoding for empty string
- (https://github.com/ruby/strscan/pull/80)
See: https://github.com/ruby/strscan/issues/78#issuecomment-1890849891
https://github.com/ruby/strscan/commit/d0508518a9 - 01:49 AM Revision ac636f57 (git): [ruby/strscan] Bump version
- https://github.com/ruby/strscan/commit/d6f97ec102
-
01:49 AM Revision 4e476710 (git): [rubygems/rubygems] Test that regular gems don't shadow default gems
- https://github.com/rubygems/rubygems/commit/b8ca5950a6
-
01:22 AM Revision 7b253cfe (git): RJIT: Properly reject keyword splat with `yield`
- See the fix for YJIT.
-
01:22 AM Revision bbd249e3 (git): YJIT: Properly reject keyword splat with `yield`
- We don't have support for keyword splat anywhere, but we tried to
compile these anyways in case of `invokeblock`. This led to bad things
happening such as passing the wrong value and passing a hash into
rb_yjit_array_len(), which raised ... -
12:25 AM Bug #20192 (Closed): YJIT in 3.3.0 miscompiles `yield` with keyword splats
- Test with:
```ruby
def splat_kw(kwargs) = yield(**kwargs)
p splat_kw({}) { _1 }
```
```shell
% ruby --yjit-call-threshold=1 test.rb
{}
% ruby test.rb
nil
```
01/18/2024
-
10:55 PM Bug #20001 (Closed): Make Ruby work properly with ASAN enabled - Applied in changeset commit:git|807714447ef02c77bb0e17fe27d96ee2692264f8.
----------
Pass down "stack start" variables from closer to the top of the stack
This commit changes how stack extents are calculated for both the main
thread an... -
10:55 PM Revision 61da90c1 (git): Mark asan fake stacks during machine stack marking
- ASAN leaves a pointer to the fake frame on the stack; we can use the
__asan_addr_is_in_fake_stack API to work out the extent of the fake
stack and thus mark any VALUEs contained therein.
[Bug #20001] - 10:55 PM Revision 3cfcb45e (git): Define special macros for asan/msan being enabled
- __has_feature is a clang-ism, and GCC has a different way to tell if
sanitizers are enabled. For this reason, I don't want to spray
__has_feature all over the codebase for other places where conditional
compilation based on sanitizers is... - 10:55 PM Revision cabdaebc (git): Make stack bounds detection work with ASAN
- Where a local variable is used as part of the stack bounds detection, it
has to actually be on the stack. ASAN can put local variable on "fake
stacks", however, with addresses in different memory mappings. This
completely destroys the st... - 10:55 PM Revision 80771444 (git): Pass down "stack start" variables from closer to the top of the stack
- This commit changes how stack extents are calculated for both the main
thread and other threads. Ruby uses the address of a local variable as
part of the calculation for machine stack extents:
* pthreads uses it as a lower-bound on the ... -
10:49 PM Revision 08edad31 (git): [rubygems/rubygems] Drop two TODOs from specification.rb
- These were introduced 13 years ago, in a documentation update. Perhaps we can let the TODOs go, without taking any action?
https://github.com/rubygems/rubygems/commit/fb23fa84f9 -
09:33 PM Revision c28094d3 (git): [PRISM] Add function to free scope node
- pm_scope_node_destroy frees the scope node after we're done using it to
make sure that the index_lookup_table is not leaked.
For example:
10.times do
100_000.times do
RubyVM::InstructionSequence.compile_prism("begin; ... -
09:33 PM Revision 47081c3e (git): [PRISM] Pass pm_scope_node_t by reference
- We can pass pm_scope_node_t by reference to pm_new_child_iseq rather
than by value. -
08:28 PM Feature #16495: Inconsistent quotes in error messages
- Let me add a little to the matz's decision.
At the dev meeting, he said that we will replace with a single quote, not only the backticks for `NameError#message`, but also the ones for other exception messages (e.g., ``no superclass meth... -
03:24 PM Feature #16495: Inconsistent quotes in error messages
- Great to see progress on this issue.
Agreed, for method names and file names, single quotes are best.
Backticks are best for quoting source code, and there is no source code in Ruby backtraces. -
01:43 PM Feature #16495: Inconsistent quotes in error messages
- I'd like something that's convenient to copy-paste. Testing:
with single quote pair:
undefined local variable or method 'foobar' for main:Object (NameError)
`undefined local variable or method 'foobar' for main:Object (NameError)`
... -
07:54 AM Feature #16495: Inconsistent quotes in error messages
- I agree with giving up backquotes. I'd rather use single quote pairs, unless any compatibility issues are caused.
Matz.
-
08:25 PM Revision 60dd7311 (git): [PRISM] Correct checkmatch flags for splat in rescue
-
08:03 PM Revision 8a3e7f08 (git): [PRISM] Fix case splat with no predicate
-
07:59 PM Revision 686b1655 (git): [PRISM] Fix indentation in switch [ci skip]
-
07:40 PM Revision 33306a08 (git): YJIT: Stop incrementing chain_depth on defer_compilation (#9597)
-
06:40 PM Revision d8ac96ef (git): [PRISM] Fix memory leak in case nodes
- The temporary array conditions_labels is heap allocated and never freed.
We can use alloca instead to stack allocate it so that we don't need to
manually free it.
For example:
code = "case; #{100.times.map { "when #{it}; " }.join};... -
06:37 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- @Eregon I feel we need to recenter the discussion to consider `const_source_location` under the current logic that undoes some things if the autoload raises.
To me, there is no doubt `const_source_location` in the code being autoloade... -
05:32 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- On a related note IIRC the recent-ish change was on failed autoload, the autoload and its constant would be completely removed: https://bugs.ruby-lang.org/issues/15790#note-12
But it seems to not be the case for this edge case, and also... -
05:25 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- fxn (Xavier Noria) wrote in #note-8:
> @Eregon I see what you mean, but you can't make that consistent, because by that logic
> ...
I assumed you mean that code would be in the autoloaded file (`/tmp/bar.rb`), and there could still be ... -
05:14 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- To me, this should be the same logic of `Kernel#require`. Whatever side-effects happened while loading the file remain. Like, partially defined classes, for example.
`Module#autoload` is just a deferred `Kernel#require` for me (even mor... -
05:08 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- @Eregon I see what you mean, but you can't make that consistent, because by that logic
```ruby
Bar = 1
p Bar
```
should not print 1, right? The constant was created, the lookup for `Bar` found it, therefore its source location i... -
04:58 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- fxn (Xavier Noria) wrote in #note-5:
> That output was meant to be what I'd expect from the previous example (which triggers the autoload). The whole program would be:
That's how I understood it, but I somehow missed the `Bar rescue nil... -
04:02 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- The general principle at place here would be: Ruby does not undo side-effects of code evaluation. If you defined a global, mutated an object, defined constants, ..., any change visible to the caller that happens before the exception is r...
-
03:58 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- > I think Module#const_source_location should not trigger the autoload, at least such a change seems out of scope of this issue.
Oh, was not proposing that.
That output was meant to be what I'd expect from the previous example (which t... -
03:36 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- `p Object.const_source_location(:Bar) # ["/tmp/bar.rb", 1]`
I think `Module#const_source_location` should not trigger the autoload, at least such a change seems out of scope of this issue.
`Module#const_source_location` should retu... -
05:38 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Unfortunately I still get the same error in the non-test project (not fiber_blocker). I've included `<ruby/fiber/scheduler.h>`. No compiler warnings regarding `rb_fiber_scheduler_*` but it still crashes when `rb_fiber_scheduler_unblock(s...
- 05:32 PM Revision d3b07b98 (git): [ruby/psych] Add :stringify_names option to convert symbol keys to string for dumping
- https://github.com/ruby/psych/commit/3d051d89aa
-
03:35 PM Revision 00814fd6 (git): [PRISM] Fix memory leak in iseq
- rb_iseq_compile_prism_node calls both rb_translate_prism and iseq_setup.
Both of these functions call iseq_set_sequence. This means that the first
iseq_set_sequence will leak because the iseq will be overwritten.
For example:
10.ti... -
03:19 PM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- I think everyone's opinion on the thread is pretty clear and not everyone agrees, that's fine.
@matz Could you decide whether it's OK to experiment with the Encoding#name changing to "BINARY" or not?
If not, is @byroot's proposal in ... -
12:58 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- tenderlovemaking (Aaron Patterson) wrote in #note-7:
> I think this example should raise an exception:
> ...
I'm worried about the above misconception. No, this example shouldn't raise an exception, because being ascii-compatible is th... -
03:15 PM Revision ef685554 (git): [DOC] RDoc for ARGF (#9558)
-
02:32 PM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- Thank you for comments.
I agree that I need to reconsider the current implementation, as resolving the hostname in another thread is unneeded when there is only one address family in use.
However, even when there is only one address fami... -
04:28 AM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shioimm (Misaki Shioi) wrote in #note-2:
> shugo (Shugo Maeda) wrote in #note-1:
> ...
Thanks for your reply.
I agree with Jeremy; at least, there should be a way to disable it.
-
10:56 AM Revision 97721fa4 (git): Old sh does not allow `:` in function names [ci skip]
-
09:09 AM Revision 264b7363 (git): Preserve spaces in messages [ci skip]
-
07:49 AM Feature #19742: Introduce `Module#anonymous?`
- First, given the existence of the Module#set_temporary_name method as well, it seems somewhat confusing what the name of this method implies.
So, it may be necessary to first clarify what this method really wants to accomplish.
In ge... -
07:36 AM Revision a3e6546e (git): Print error messages to the stderr [ci skip]
- 07:23 AM Revision 74ce7905 (git): Update bundled gems list at 419f4260aa4827c633b3172d95a9fa [ci skip]
-
07:01 AM Revision 419f4260 (git): Use released version of bigdecimal
- 06:56 AM Revision a660e1de (git): [DOC] correct doc comment for rb_ary_aset
- Signed-off-by: Edwin Garcia <egarciavalle2014@gmail.com>
-
06:26 AM Revision 52bb2ac0 (git): bump teeny
-
03:57 AM Misc #20191: Deprecate magic encoding comment
- > The proposed change might work if announced very long-term, e.g. for 2030 or so. Just doing it now and "hope for the best" is a bad idea.
To be clear, that's exactly what I'm proposing. Matz has indicated Ruby 4 would be around 2030... -
03:42 AM Misc #20191: Deprecate magic encoding comment
- For the record, I agree with Hiroshi, Kenta, and Yui. The changes from Python 2 to Python 3 didn't work in favor of Python (summarizing Yehuda Katz). The above change would be of a similar magnitude, with similar implications.
The pro... -
03:14 AM Misc #20191 (Rejected): Deprecate magic encoding comment
- You also need to consider applications in addition to gems publicly available on GitHub.
Breaking compatibility forces such users/developers to work such unproductive work.
You must carefully compare the trade off between your developm... -
01:06 AM Misc #20191: Deprecate magic encoding comment
- We should investigate the real-world application codebases instead of gems on rubygems.org.
I guess there can be unexpectedly many scripts in non-UTF8 encoding historically, such as EUC-JP and Windows-31J.
If so, your proposal will bre... -
01:01 AM Misc #20191: Deprecate magic encoding comment
- I strongly against this proposal. There is no benefit to break existence Ruby script specified magic comment for resolving their complex issues related encoding like EUC-JP, SHIFT_JIS or something.
-
03:57 AM Revision 99c9aeef (git): merge revision(s) b8a3f1bd456f92866c4a7bd83235f78c574784a8:
- Fix crash in tracing object allocations
ObjectSpace.trace_object_allocations_start could crash since it adds a
TracePoint for when objects are freed. However, TracePoint could crash
since it modifies st tables wh... -
03:51 AM Bug #20150: Memory leak in grapheme clusters - Hello everybody (but in particular Tomoyuki Chikanaga and Yui Naruse),
On 2024-01-18 12:21, nagachika (Tomoyuki Chikanaga) via ruby-core wrote:
> Issue #20150 has been updated by nagachika (Tomoyuki Chikanaga).
>
> Backport chang... -
03:21 AM Bug #20150: Memory leak in grapheme clusters
- ruby_3_2 b4f8623441a8be53b643fed826ba44e933cafd7e merged revision(s) b3d612804946e841e47d14e09b6839224a79c1a4.
-
03:42 AM Revision fd1bafc1 (git): [ruby/stringio] Fix ascii_only? flag in strio_write
- (https://github.com/ruby/stringio/pull/77)
Followup of #79
`rb_str_resize()` was changed by https://github.com/ruby/ruby/commit/b0b9f7201acab05c2a3ad92c3043a1f01df3e17f .
```c
rb_str_resize(string, shorter) // clear ENC_CODERANGE in ... -
03:26 AM Feature #20080: Introduce #bounds method on Range
- @stuyam Can you add this proposal to next dev-meeting? https://bugs.ruby-lang.org/issues/20075#note-9 was after the deadline and will not be discussed.
-
03:21 AM Bug #20161: Memory leak in regexp grapheme clusters
- ruby_3_2 a26b41bf7a2db69b0889ed599f568a4ba2529eba merged revision(s) 37ed86fd3c798e298fad9db6e7df1f3f45e1e03b.
-
03:20 AM Bug #20096: Ruby 3.2.2 win32/registry: Junk appended to Windows Registry String Value
- ruby_3_2 5dae6eb55e9785c8329708e55a49a280a344cdc1 merged revision(s) 051a874325c177e040301878069c2b28f5d06ce6.
-
03:20 AM Bug #20174: Ruby 3.2 jit_cont_free segfault with YJIT enabled
- ruby_3_2 3302e251dccec1e981945ab19d316d0856c68bf6 merged revision(s) e07e9f8491d9ab8b22d2bdf6a8aeba834dac7eef.
-
03:20 AM Bug #20042: ObjectSpace finalizer can cause segfault
- ruby_3_2 0cc0e43745ffc13a596441adccee295274d99a0b merged revision(s) f9a48548cf3ef54fc0a385ccd78c708737055ecc.
-
02:56 AM Revision 3302e251 (git): merge revision(s) e07e9f8491d9ab8b22d2bdf6a8aeba834dac7eef: [Backport #20174]
- RJIT: Do nothing on jit_cont_free
if cont is NULL.
---
cont.c | 2 ++
1 file changed, 2 insertions(+) -
02:53 AM Revision 5dae6eb5 (git): merge revision(s) 051a874325c177e040301878069c2b28f5d06ce6: [Backport #20096]
- Fix memory overread in registry.rb
The terminator is not actually getting filled in; we're simply passing
(two) bytes of empty memory as the NUL terminator. This can lead to
garbage characters getting written to ... -
02:51 AM Revision a26b41bf (git): merge revision(s) 37ed86fd3c798e298fad9db6e7df1f3f45e1e03b: [Backport #20161]
- Fix memory leak in regexp grapheme clusters
[Bug #20161]
The cc->mbuf gets overwritten, so we need to free it to not leak memory.
For example:
str = "hello world".encode(Encoding::UTF_32LE)
... -
02:50 AM Revision b4f86234 (git): merge revision(s) b3d612804946e841e47d14e09b6839224a79c1a4: [Backport #20150]
- Fix memory leak in grapheme clusters
[Bug #20150]
String#grapheme_cluters and String#each_grapheme_cluster leaks memory
because if the string is not UTF-8, then the created regex will not
be freed.
... -
02:48 AM Revision 0cc0e437 (git): merge revision(s) f9a48548cf3ef54fc0a385ccd78c708737055ecc: [Backport #20042]
- restore the stack pointer on finalizer
When error on finalizer, the exception will be ignored.
To restart the code, we need to restore the stack pointer.
fix [Bug #20042]
---
gc.c ... - 01:37 AM Revision 4095191f (git): Update default gems list at af60cdf6747316b23bf254128d8472 [ci skip]
-
01:36 AM Revision af60cdf6 (git): [ruby/io-console] Bump up version to 0.7.2
- https://github.com/ruby/io-console/commit/1f2877a185
01/17/2024
-
11:45 PM Revision 42177a89 (git): [DOC] Update ruby version in Building Ruby Dependencies
-
11:40 PM Revision 8370b3bc (git): Add baseruby version message
- Because `--with-baseruby=/usr/bin/ruby` on macOS is Ruby 2.6,
I was confused why `--with-baseruby` was ignored. - 10:44 PM Revision 6ddd583a (git): Update bundled gems list at fd81c887f9067dbc3b594dfc7a23de [ci skip]
-
10:44 PM Revision fd81c887 (git): Use fixed commit for failing result of test-bundled-gems
- https://github.com/ruby/ruby/actions/runs/7550805131/job/20557022764?pr=9573
https://github.com/ruby/bigdecimal/commit/338e896234bdcf672b91f2c2052527b09e2870f8 -
10:44 PM Revision 7cb11254 (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/core/rational/coerce_spec.rb
-
10:44 PM Revision 44d74f22 (git): Guard bigdecimal related examples
- spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/core/integer/coerce_spec.rb
spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/shared/rational/coerce.rb
spec/mspec/tool/wrap_with_guard... -
10:44 PM Revision 4328f190 (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/library/bigdecimal/**/*_spec.rb
-
10:44 PM Revision 9f729cf3 (git): Skip bigdecimal extension on TestExtLibs
-
10:44 PM Revision 0bdab1a7 (git): Load Rake::TaskLib when missing it
-
10:44 PM Revision 4dde4d14 (git): Stop sync commits from bigdecimal repo
-
10:44 PM Revision 272b1c92 (git): Document about bigdecimal at Ruby 3.4
-
10:44 PM Revision 2b076611 (git): Extract bigdecimal as bundled gems
-
10:21 PM Revision db9f5fc9 (git): [Prism] Implement defined? for PM_UNLESS_NODE
- Ruby code:
```ruby
defined?(unless true; 1; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59... -
10:21 PM Revision 555af5e5 (git): [Prism] Implement defined? for PM_UNTIL_NODE
- Ruby code:
```ruby
defined?(until a == 1; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)[... -
10:21 PM Revision 24d02cd4 (git): [Prism] Implement defined? for PM_WHILE_NODE
- Ruby code:
```ruby
defined?(while a != 1; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)[... -
10:21 PM Revision b5d3d611 (git): [Prism] Implement defined? for PM_SINGLETON_CLASS_NODE
- Ruby code:
```ruby
defined?(class << self; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)... -
10:21 PM Revision d2000e0e (git): [Prism] Implement defined? for PM_RATIONAL_NODE
- Ruby code:
```ruby
defined?(1.2r)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)[Li]
0002 leav... -
10:21 PM Revision 913772a0 (git): [Prism] Implement defined? for PM_MODULE_NODE
- Ruby code:
```ruby
defined?(module M; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)[Li]
... -
10:21 PM Revision a9a22b9f (git): [Prism] Implement defined? for PM_MATCH_REQUIRED_NODE
- Ruby code:
```ruby
defined?(1 => 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)[Li]
0002 le... -
10:21 PM Revision b40fc4f0 (git): [Prism] Implement defined? for PM_MATCH_WRITE_NODE
- Ruby code:
```ruby
defined?(/(?<foo>bar)/ =~ 'barbar')
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,35)>
local table (size: 1, argc: 0 [opts: 0, rest: -1, post: 0, block: -1,... -
10:21 PM Revision a2092ef2 (git): [Prism] Implement defined? for PM_IF_NODE
- Ruby code:
```ruby
defined?(if true; 1; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,43)>
0000 putobject "expression" ( 59)[Li... -
10:21 PM Revision fb1eed3f (git): [Prism] Implement defined? for PM_FOR_NODE
- Ruby code:
```ruby
defined?(for i in [1,2] do; i; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,43)>
0000 putobject "expression" ... -
10:21 PM Revision 7460820f (git): [Prism] Implement defined? for PM_DEF_NODE
- Ruby code:
```ruby
defined?(def prism_test_def_node; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,43)>
0000 putobject "expression" ... -
10:21 PM Revision 30e7dbb7 (git): [Prism] Implement defined? for PM_CLASS_NODE
- Ruby code:
```ruby
defined?(class PrismClassA; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,43)>
0000 putobject "expression" ( ... -
10:21 PM Revision 9bcd42c3 (git): [Prism] Implement defined? for PM_CASE_MATCH_NODE
- Ruby code:
```ruby
defined?(case [1, 2, 3]; in [1, 2, 3]; 4; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,43)>
0000 putobject "expression" ... -
10:21 PM Revision 75bed8c6 (git): [Prism] Implement defined? for PM_CASE_NODE
- Ruby code:
```ruby
defined?(case :a; when :a; 1; else; 2; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,43)>
0000 putobject "expression" ... -
10:20 PM Revision a25c6fd9 (git): [PRISM] Fix test spelling `RescueModifer` -> `RescueModifier`
- `RescueModifier` was spelled wrong. Not a big deal, but it meant I
didn't immediately find the test when I was searching for it while
working on implementing `defined?` nodes. -
10:07 PM Revision 9f0d3896 (git): [PRISM] Refactor keyword hash nodes
- Follow up to #9540.
-
10:07 PM Revision 00f9456f (git): [PRISM] Remove unnecessary flag setting
- VM_CALL_KW_SPLAT and VM_CALL_KW_SPLAT_MUT are guaranteeed to be set in
this code path, so we don't need to set it again. -
09:17 PM Revision c546ee3b (git): Remove SizedQueue#freeze
- Queue#freeze uses the same C function, so SizedQueue#freeze can use
that via normal method lookup. -
09:08 PM Revision e1bae2c6 (git): [Prism] Implement defined? for PM_INDEX_OR_WRITE_NODE
- Ruby code:
```ruby
defined?([0][0] ||= 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59)[Li]
0... -
09:08 PM Revision ff54a8f4 (git): [Prism] Implement defined? for PM_INDEX_OPERATOR_WRITE_NODE
- Ruby code:
```ruby
defined?([0][0] += 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59)[Li]
00... -
09:08 PM Revision f8ef77af (git): [Prism] Implement defined? for PM_INDEX_AND_WRITE_NODE
- Ruby code:
```ruby
defined?([0][0] &&= 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59)[Li]
0... -
09:08 PM Revision e217c577 (git): [Prism] Implement defined? for PM_CONSTANT_PATH_WRITE_NODE
- Ruby code:
```ruby
defined?(Prism::CPWN = 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59)[Li... -
09:08 PM Revision 54b8330e (git): [Prism] Implement defined? for PM_CONSTANT_PATH_OR_WRITE_NODE
- Ruby code:
```ruby
defined?(Prism::CPOrWN ||= 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59... -
09:08 PM Revision 3c9dc2f8 (git): [Prism] Implement defined? for PM_CONSTANT_PATH_OPERATOR_WRITE_NODE
- Ruby code:
```ruby
defined?(Prism::CPOWN += 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59)[... -
09:08 PM Revision 98d6f503 (git): [Prism] Implement defined? for PM_CONSTANT_PATH_AND_WRITE_NODE
- Ruby code:
```ruby
defined?(Prism::CPAWN &&= 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "assignment" ( 59)... -
09:08 PM Revision 7522e867 (git): [Prism] Implement defined? for PM_CALL_OR_WRITE_NODE
- Ruby code:
```ruby
defined?(PrismTestSubclass.test_call_or_write_node ||= 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "as... -
09:08 PM Revision 9c5391d7 (git): [Prism] Implement defined? for PM_CALL_OPERATOR_WRITE_NODE
- Ruby code:
```ruby
defined?(PrismTestSubclass.test_call_operator_write_node += 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject ... -
09:08 PM Revision f657fd15 (git): [Prism] Implement defined? for PM_CALL_AND_WRITE_NODE
- Ruby code:
```ruby
defined?(PrismTestSubclass.test_call_and_write_node &&= 1)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,58)>
0000 putobject "a... -
08:51 PM Revision a6e924cf (git): [PRISM] Fix crash in compile_prism
- If the argument is not a file or a string, it assumes it's a string
which will crash because RSTRING_PTR and RSTRING_LEN assumes it's a
string. -
08:04 PM Revision b0a32b72 (git): [PRISM] Enable more btests
-
07:45 PM Revision ebc47046 (git): [PRISM] Fix indentation in pm_setup_args [ci skip]
-
07:35 PM Revision b2c12bfd (git): [ruby/prism] Document order of scopes in parsing options
- https://github.com/ruby/prism/commit/908e92a695
-
06:17 PM Revision f43a919b (git): [PRISM] Fix fallthrough for PM_ENSURE_NODE
- This caused it to fall into PM_ELSE_NODE which caused ensure nodes to be
compiled twice.
Fixes ruby/prism#2176. -
05:47 PM Revision de9411c0 (git): [ruby/prism] Test version: 3.3.0
- https://github.com/ruby/prism/commit/94ecb366c4
-
05:47 PM Revision 27d81b92 (git): [ruby/prism] Guard 3.3.0 for pinned it
- https://github.com/ruby/prism/commit/9778377b12
Co-authored-by: Kevin Newton <kddnewton@gmail.com> -
05:47 PM Revision e0d60a83 (git): [ruby/prism] Fix => ^it
- https://github.com/ruby/prism/commit/24a2872b4e
-
05:47 PM Revision bcc4b07c (git): [ruby/prism] Add a documentation about 0it
- https://github.com/ruby/prism/commit/313be8e3f7
-
05:47 PM Revision 603f2ca7 (git): [ruby/prism] Parse `it` default parameter
- https://github.com/ruby/prism/commit/a0c5361b9f
-
05:42 PM Revision cd429091 (git): [ruby/prism] Wording in node field comments
- https://github.com/ruby/prism/commit/c9c913ee99
-
05:35 PM Revision 32cbbfc9 (git): [ruby/prism] Added descriptive comments
- https://github.com/ruby/prism/commit/2695ae115d
-
05:35 PM Revision 5273c4c9 (git): [ruby/prism] Document AndNode and OrNode
- https://github.com/ruby/prism/commit/a925856c2b
-
05:30 PM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- If you are running a dual-stack network setup, it seems reasonable to have this enabled by default. However, if you are running a pure-IPv4 or pure-IPv6 network, this adds a lot of overhead for no benefit. I think three changes should ...
-
01:29 PM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shugo (Shugo Maeda) wrote in #note-1:
> Is there no way to disable Happy Eyeballs?
> ...
There is no way to disable it; HE is intended to avoid fatal delays. Introducing a way to disable it for performance seems to me to add complexity... -
02:55 AM Feature #20108: Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- shioimm (Misaki Shioi) wrote:
> In exchange, the performance of `Socket.tcp` with HEv2 will be degraded.
> ...
Is there no way to disable Happy Eyeballs?
I'm not sure, but it may have more impact in local networks.
-
05:13 PM Revision e1751b2e (git): [ruby/openssl] test/openssl/test_ocsp.rb: fix flaky test
- Fixes: https://github.com/ruby/openssl/issues/695
https://github.com/ruby/openssl/commit/95281fe4a9 - 05:09 PM Revision 4f634d3c (git): [ruby/openssl] Add support for IO#timeout.
- (https://github.com/ruby/openssl/pull/714)
* Add support for IO#timeout.
https://github.com/ruby/openssl/commit/3bbf5178a9 -
05:08 PM Misc #20191 (Rejected): Deprecate magic encoding comment
- I would like to ask that we deprecate the magic encoding comment, and instead require all source files to be encoded in UTF-8.
There would be many benefits to the performance of both the parser and compiler. It would also help to simp... - 04:41 PM Revision 6213ab1a (git): [ruby/openssl] Only set min_version on OpenSSL < 1.1.0
- Both Red Hat and Debian-like systems configure the minimum TLS version
to be 1.2 by default, but allow users to change this via configs.
On Red Hat and derivatives this happens via crypto-policies[1], which in
writes settings in /etc/cr... -
04:35 PM Revision 947194aa (git): [PRISM] Fix memory leak of ST table
- This commit fixes a memory leak in rb_translate_prism because the ST
table is never freed. There are still more memory leaks which still need
to be fixed.
For example:
10.times do
100_000.times do
RubyVM::InstructionS... -
04:28 PM Bug #5179: Complex#rationalize and to_r with approximate zeros
- I'm working on to_r at https://github.com/ruby/ruby/pull/9581.
I will do for other methods later. -
04:27 PM Misc #20075: DevMeeting-2024-01-17
- * [Ticket #20080] Introduce #bounds method on Range (stuyam)
* Easier serialization of ranges, easy array deconstruction for setting `begin` and `end` as variable. -
12:27 AM Misc #20075: DevMeeting-2024-01-17
- - [Feature #20108] Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp (shioimm)
- Can this be merged? Or is there something more to consider? -
03:57 PM Revision 78ad91f8 (git): [Prism] Fix more method call argumnents
- In #2087 it was noted that there was a bug in the number of arguments in
`SplatNode` and `KeywordHashNode`. I looked into this with Aaron before
the linked PR was merged and we found a bunch of cases that weren't
working quite right. Thi... -
03:52 PM Revision 03645d1e (git): YJIT: Support empty splat and some block_arg calls to ivar getters (#9567)
- These seem odd at first glance, but they're used with `...` calls with
`Module#delegate` from Active Support. These account for ~3% of fallback
reasons in the `lobsters` benchmark. -
03:51 PM Revision 3f23cb1a (git): [ruby/prism] Remove flag gating for 3.3.0 bug fixes
- https://github.com/ruby/prism/commit/64baf94271
-
03:36 PM Feature #20102: Introduce `Fiber#resuming?`
- It appears to me that the method you want is to determine if an exception can legitimately be sent to the fiber. I am not rejecting the addition of such a method, but in that case, I think the name `resuming?` would be inappropriate. Any...
-
03:35 PM Revision afba09d3 (git): YJIT: specialized codegen for integer right shift (#9564)
- * YJIT: specialized codegen for integer right shift
Used in optcarrot. May also be used to write pure-Ruby gems.
No overflow check or fixnum untagging required.
* Update yjit/src/codegen.rs
Co-authored-by: Takashi Kokubun <takashikkbn... -
03:17 PM Revision 63ff29cd (git): [Prism] Fix return test
- This test didn't work as is because it causes a SyntaxError. Instead we
need to put the `defined?(return)` into a method and call that. I double
checked that on the `master` branch this returns an Unsupported node
error. -
03:17 PM Revision dcf9d77b (git): [Prism] Implement defined? for PM_BEGIN_NODE
- Ruby code:
```ruby
defined?(begin; 1; end)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,23)>
0000 putobject "expression" ( 59)[Li]
... -
03:17 PM Revision 338aa465 (git): [Prism] Implement defined? for PM_RETRY_NODE
- Ruby code:
```ruby
defined?(retry)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,15)>
0000 putobject "expression" ( 59)[Li]
0002 lea... -
03:17 PM Revision 8774abad (git): [Prism] Implement defined? for PM_RETURN_NODE
- Ruby code:
```ruby
defined?(return)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,16)>
0000 putobject "expression" ( 59)[Li]
0002 le... -
03:17 PM Revision d0a7c33f (git): [Prism] Implement defined? for PM_REDO_NODE
- Ruby code:
```ruby
defined?(redo)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,14)>
0000 putobject "expression" ( 59)[Li]
0002 leav... -
03:17 PM Revision 2697acf7 (git): [Prism] Implement defined? for PM_INTERPOLATED_X_STRING_NODE
- Ruby code:
```ruby
defined?(`echo #{1}`)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,21)>
0000 putobject "expression" ( 59)[Li]
00... -
03:17 PM Revision e0c90199 (git): [Prism] Implement defined? for PM_INTERPOLATED_SYMBOL_NODE
- Ruby code:
```ruby
defined?(:"1 #{1 + 2} 1")
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,25)>
0000 putobject "expression" ( 59)[Li... -
03:17 PM Revision 25f1a8e4 (git): [Prism] Implement defined? for PM_DEFINED_NODE
- Ruby code:
```ruby
defined?(defined?(a))
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,21)>
0000 putobject "expression" ( 59)[Li]
00... -
03:17 PM Revision 82ed9095 (git): [Prism] Implement defined? for PM_BREAK_NODE
- Ruby code:
```ruby
defined?(break)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,15)>
0000 putobject "expression" ( 59)[Li]
0002 lea... -
03:17 PM Revision 0c814092 (git): [Prism] Implement defined for PM_NEXT_NODE
- Ruby code:
```ruby
defined?(next)
```
Instructions
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(59,15)>
0000 putobject "expression" ( 59)[Li]
0002 leave... -
03:15 PM Revision 3a7ad808 (git): [PRISM] Fix test_compile_prism_with_file
- The test should be testing RubyVM::InstructionSequence.compile_prism
with a file but it is instead passing the file path (which is a string)
which raises a SyntaxError because it is not Ruby syntax. -
02:48 PM Revision ef4a08eb (git): [PRISM] Fix stack inconsistency in MultiWriteNode
-
01:54 PM Revision e17c83e0 (git): Fix memory leak in String#tr and String#tr_s
- rb_enc_codepoint_len could raise, which would cause the memory in buf
to leak.
For example:
str1 = "\xE0\xA0\xA1#{" " * 100}".force_encoding("EUC-JP")
str2 = ""
str3 = "a".force_encoding("Windows-31J")
10.times do
... - 01:26 PM Revision 67a545b3 (git): * expand tabs. [ci skip]
- Please consider using misc/expand_tabs.rb as a pre-commit hook.
-
01:26 PM Revision 13879fea (git): [ruby/prism] Fix prism brace association for constant-like method/local calls
- https://github.com/ruby/prism/commit/8ca24f263e
-
12:22 PM Bug #19246: Rebuilding the loaded feature index much slower in Ruby 3.1
- > That doesn't sound like it's doing a copy.
My mad, you are right, I missed the `copy` argument is passed as false.
Honestly I think we could change that. Feature names are generally small, it wouldn't be a noticeable performance ... -
12:17 PM Bug #19246: Rebuilding the loaded feature index much slower in Ruby 3.1
- byroot (Jean Boussier) wrote in #note-11:
> > But the current API rb_provide isn't ideal for this scenario. Partly because the string passed in needs to always live.
> ...
The comment for `rb_fstring_cstr`:
```
rb_fstring_new and rb... -
10:37 AM Revision c68ce6f7 (git): Skip checking for symbol leaks in libruby.so linking extensions
- The libruby.so linking extension libraries contain symbols exported
from extension libraries, and is not subject of test-leaked-globals. -
09:50 AM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- (BTW, to me, the fact that an `autoload` is just a trigger and does not require the constant to be defined in its receiver is dubious too. But that would be for a different thread.)
-
09:40 AM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- I tried, the current behavior does not make a lot of sense to me:
```ruby
File.write('/tmp/bar.rb', 'Bar = 1; raise')
autoload :Bar, '/tmp/bar'
Bar rescue nil
p Object.const_source_location(:Bar) # ["foo.rb", 2]
p Object.autoload?(:Bar... -
09:26 AM Revision 6215b5ba (git): Fix off-by-one error of argc
- Fix ruby/ruby#9562
-
09:19 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- > Such incompatibility is not acceptable.
In all honesty, a selective application of this dogma doesn’t always look justified.
For better or worse, we break compatibility constantly.
One of the recent telling examples was the remo... -
08:36 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- @naruse no one is denying that there is private code out there that will be broken by such change. The question is how much and how hard it would be to detect and fix, and how much the change improve Ruby for its users.
We regularly m... -
08:26 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- Even if you "fix" gems, the number of affected gems insists there are as many as private rails applications.
Such incompatibility is not acceptable. -
08:28 AM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- I knew it's something embarrassing like that. Adding `#include <ruby/fiber/scheduler.h>` actually helped. Thanks a lot.
-
01:42 AM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Here is an example of valid usage:
```ruby
static VALUE
call_rb_fiber_scheduler_block(VALUE mutex)
{
return rb_fiber_scheduler_block(rb_fiber_scheduler_current(), mutex, Qnil);
}
```
taken from `thread_sync.c`.
When I ... -
12:32 AM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- You're right. It was line 28, the one with `rb_fiber_scheduler_block(scheduler, blocker, timeout)`.
I just ran it again with the commit I just pushed (which enables the bad line in the test `#test_fiber_blocking_in_ext` on line 44):
... -
07:39 AM Feature #19742: Introduce `Module#anonymous?`
- I have all these matters in my mind pretty clearly (and I am writing a book about constants), but in case someone is reading and is not used to the orthogonality of all this, you can even have a permanent name set that is not reachable e...
-
06:39 AM Feature #19742: Introduce `Module#anonymous?`
- Same. The name is called "permanent" because it does not change, the predicate above would be `reachable_through_its_name?`.
But then, the Ruby language does no have any expectation about the name of classes and modules. If there was so... -
12:39 AM Feature #19742: Introduce `Module#anonymous?`
- @ioquatix I think your definition of "permanent" doesn't quite work, semantically. A name can be said to be permanent if doesn't change (even after remove_const for example). What you have there is the opposite; if a module stops being p...
-
04:36 AM Feature #20182: Rewrite Array#each in Ruby
- Accepted. For the individual concerns:
1. I'd like to keep race condition safety to be about the same as the current implementation using primitives, unless it's too difficult.
2. If the user intentionally redefines the fundamental m... - 04:13 AM Revision 42168802 (git): Bump actions/cache from 3.3.3 to 4.0.0
- Bumps [actions/cache](https://github.com/actions/cache) from 3.3.3 to 4.0.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co... - 03:49 AM Revision 6b11cfe0 (git): Bump actions/cache in /.github/actions/setup/directories
- Bumps [actions/cache](https://github.com/actions/cache) from 3.3.3 to 4.0.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co... -
03:39 AM Revision bf254b4d (git): Omit low-memory test on old platforms
- 02:57 AM Revision 2c3876be (git): Bump ruby/setup-ruby from 1.165.1 to 1.167.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.165.1 to 1.167.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/360dc864d5da99d54fcb8e9148c14a84b9... -
01:31 AM Revision 8642a573 (git): Rename BUILTIN_ATTR_SINGLE_NOARG_INLINE
- to BUILTIN_ATTR_SINGLE_NOARG_LEAF
The attribute was created when the other attribute was called BUILTIN_ATTR_INLINE.
Now that the original attribute is renamed to BUILTIN_ATTR_LEAF, it's
only confusing that we call it "_INLINE". -
01:27 AM Revision e37a37e6 (git): Drop obsoleted BUILTIN_ATTR_NO_GC attribute
- The thing that has used this in the past was very buggy, and we've never
revisied it. Let's remove it until we need it again. -
01:17 AM Bug #20185: String#ascii_only? buggy in ruby 3.3
- No, `Fix https://bugs.ruby-lang.org/issues/20185`of commit message is not correct format for redmine autolink.
- 12:48 AM Revision 1addb395 (git): [ruby/psych] Provide a 'Changelog' link on rubygems.org/gems/psych
- By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/psych
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details o... -
12:45 AM Revision 77593495 (git): [ruby/psych] issue #443: drop special tests for y, Y, n, N since they covered in the more general test
- https://github.com/ruby/psych/commit/6750b35402
-
12:45 AM Revision 8ae24e6b (git): [ruby/psych] issue #443: quote Y and N when dumping
- https://github.com/ruby/psych/commit/93c8fb443a
-
12:02 AM Revision cf8fb942 (git): CHECK_LEAKS is always enabled with 01459f1
01/16/2024
-
11:54 PM Revision b4ed5b7d (git): Bump the required BASERUBY version to 2.7 (#9566)
- [[Misc #16671]](https://bugs.ruby-lang.org/issues/16671)
- 11:29 PM Revision 88bb09b3 (git): Update bundled gems list at 6c016a4197c233b08a038e3ae7bc91 [ci skip]
-
11:28 PM Revision 6c016a41 (git): Inject base64 for basic auth examples of bundler
-
11:28 PM Revision 42aa24a2 (git): No longer needed to sync base64
-
11:28 PM Revision afb30eb2 (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/library/base64/**/*_spec.rb
-
11:28 PM Revision 05e79826 (git): Document about base64 at Ruby 3.4
-
11:28 PM Revision 4e2eca3b (git): Extract base64 as bundled gems
-
11:16 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Line 29 does not point to any meaningful statement: https://github.com/paddor/fiber_blocker/blob/main/ext/fiber_blocker/fiber_blocker.c#L29 - can you check it?
-
11:01 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Thanks for looking into this. I'm pretty sure it was that one (initial) commit in the fiber_blocker repo. My extension (a PR for the rbnng gem [1]) would ideally block/unblock fibers using NNG's `nng_aio_*()` functions [2]. That's how I ...
-
09:27 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Here is the implementation from CRuby:
```c
static VALUE
rb_fiber_scheduler_current_for_threadptr(rb_thread_t *thread)
{
VM_ASSERT(thread);
if (thread->blocking == 0) {
return thread->scheduler;
}
els... -
09:17 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- Can you tell me the exact commit/revision which was running:
```
/home/user/dev/oss/async_ruby_test/rbnng/fiber_blocker/lib/fiber_blocker/fiber_blocker.so(block_fiber+0x4a) [0x7f1554ad430a] ../../../../ext/fiber_blocker/fiber_blocker... -
09:00 PM Bug #20155 (Assigned): Using value of rb_fiber_scheduler_current() crashes Ruby
- Thanks for the report, I'll need to investigate.
-
08:46 PM Bug #20155: Using value of rb_fiber_scheduler_current() crashes Ruby
- @ioquatix Could you have a look at this? I have a feeling I'm missing something obvious.
-
11:13 PM Feature #19742: Introduce `Module#anonymous?`
- I think we can assume this is a fair definition, but I'd like to confirm it with @matz:
```ruby
class Module
def permanent?
if name = self.name
Object.const_get(name).equal?(self)
end
rescue NameError
false
end
... -
10:51 PM Feature #19742: Introduce `Module#anonymous?`
- @jeremyevans0 I agree.
My defense of `anonymous == name.nil?` is based on the meaning of the adjective, as you said. You are anonymous unless you have a name. The discrepancy in this thread comes from "I have use cases in which I want t... -
10:36 PM Feature #19742: Introduce `Module#anonymous?`
- I'm against `Module#anonymous?`, because it's ambiguous. I would expect modules with temporary and not permanent names to be anonymous. If you could never refer to module by absolute constant reference, I would expect it to be should b...
-
10:33 PM Feature #19742: Introduce `Module#anonymous?`
- Correction: I have looked at the logs. It was introduced because of conciseness initially (the same way in Ruby we prefer `array.empty?` to `array.length == 0`, you prefer a method that captures the meaning). Right after that, the abstra...
-
10:24 PM Feature #19742: Introduce `Module#anonymous?`
- @Dan0042 right, it could be the case that in Rails anything autoloadable has a permanent name and that has made the predicate sufficient in practice after 3.0. I introduced that predicate myself back in 2010 because you got an empty stri...
-
10:03 PM Feature #19742: Introduce `Module#anonymous?`
- In Rails this method is used for things like `name.underscore unless anonymous?` so it's pretty clear to me it should return true in case of a temporary name, otherwise `name.underscore` results in garbage like `"#<module:0x00007fe87f033...
-
08:41 PM Feature #19742: Introduce `Module#anonymous?`
- @Dan0042 yes, there are different points of view expressed, and at some point Ruby core will take one direction or another.
In my personal proposal, none of those objects are `anonymous?`, because, for me, a temporary name is a name. An... -
08:40 PM Feature #19742: Introduce `Module#anonymous?`
- Ah BTW one line below that link we see something interesting which can be repro'd on CRuby like:
```ruby
irb(main):006:0> m = Module.new
=> #<Module:0x00007fd24624d540>
irb(main):007:0> m::C = Class.new
=> #<Module:0x00007fd24624d54... -
08:37 PM Feature #19742: Introduce `Module#anonymous?`
- Agreed, `anonymous?` seems not well defined for the temporary name case.
In fact I would think of `anonymous?` as `!fully_named` and indeed for the anecdote TruffleRuby already has this meaning for anonymous [internally](https://github.... -
08:22 PM Feature #19742: Introduce `Module#anonymous?`
- After reading all the above it doesn't seem like there's a clear agreement on what this proposed `#anonymous?` is supposed to be. If it's just equivalent to `.name.nil?` then what is the point? Else, what is the behavior exactly?
```rub... -
11:36 AM Feature #19742: Introduce `Module#anonymous?`
- @ko1 I think that is a good direction, because with the introduction of temporary names as a blessed concept with API and all, I believe there are several matching APIs that may arise. One proposal could be:
```
Module#name ->... -
04:35 AM Feature #19742: Introduce `Module#anonymous?`
- Another idea is introducing `#permanent_name` for Ruby 3.2's name which returns nil if it is not named.
-
09:54 PM Revision 2bf99701 (git): YJIT: Finer breakdown for block_arg counters
- For example, on `lobsters` the block_arg reason was at ~10%. With this
change it shows that 6% of that is `send_cfunc_block_arg`. -
09:19 PM Revision 5471f99e (git): [PRISM] Fix memory leak when compiling file
- There is a memory leak when passing a file to
RubyVM::InstructionSequence.compile_prism because it does not free the
mapped file.
For example:
require "tempfile"
Tempfile.create(%w"test_iseq .rb") do |f|
f.puts "name = '... -
08:46 PM Bug #20188: `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Maybe the idea was because of autoload thread-safety the value is not published to other threads until the autoload completes, and so maybe const_source_location was done that way too.
I don't see the need to delay that though as it shou... -
09:25 AM Bug #20188 (Closed): `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
- Ref: https://github.com/fxn/zeitwerk/issues/281
`const_source_location` keeps returning the location of the `autoload` call, even after the real constant was defined. It only starts returning the real constant location once the autolo... -
08:29 PM Bug #20189: `rb_str_resize` does not clear coderange when expanding
- byroot (Jean Boussier) wrote in #note-5:
> I must admit I'm not very familiar with wide char encodings, but this surprises me a bit. Ruby strings should always have their terminator, so I don't see how expanding a string would change th... -
02:08 PM Bug #20189: `rb_str_resize` does not clear coderange when expanding
- > Expanding string in some encoding (utf16 utf32) can change coderange to either valid or broken,
I must admit I'm not very familiar with wide char encodings, but this surprises me a bit. Ruby strings should always have their terminat... -
01:32 PM Bug #20189: `rb_str_resize` does not clear coderange when expanding
- Seems commit:b0b9f7201acab05c2a3ad92c3043a1f01df3e17f.
-
01:31 PM Bug #20189: `rb_str_resize` does not clear coderange when expanding
- I think so. sjis char does not end with null bytes, other encoding seems same too.
~~~ruby
Encoding.list.select {|e|
256.times.any? do |first_byte|
a = first_byte.chr
b = a + "\0";
# only one of \x??\x00 and \x?? is... -
01:20 PM Bug #20189: `rb_str_resize` does not clear coderange when expanding
- Does this happen only with wide-char encoding?
-
12:56 PM Bug #20189 (Open): `rb_str_resize` does not clear coderange when expanding
- Expanding string in some encoding (utf16 utf32) can change coderange to either valid or broken, but rb_str_resize does not clear coderange.
This will cause a bug in c-extension libraries that use rb_str_resize.
~~~ruby
# Example f... -
08:25 PM Revision 7b6731b1 (git): [ruby/prism] Provide abstract methods in Prism::Node
- To make typechecking easier.
https://github.com/ruby/prism/commit/8f96877d7a -
08:23 PM Bug #20185: String#ascii_only? buggy in ruby 3.3
- Indeed on Redmine I see no link to the commit in https://bugs.ruby-lang.org/issues/20185?tab=history#note-2, it seems like a bug.
-
08:17 PM Bug #20185: String#ascii_only? buggy in ruby 3.3
- Apologies everyone, got temporary redmine visual impairment. Thank you.
-
07:30 PM Bug #20185: String#ascii_only? buggy in ruby 3.3
- chucke (Tiago Cardoso) wrote in #note-3:
> nobu, can I ask why was the ticket closed? Even considering the comment from andrykonchin, he clearly points oot at the end that there are bytes greater than 128 in the string (therefore `.asci... -
07:19 PM Bug #20185: String#ascii_only? buggy in ruby 3.3
- nobu, can I ask why was the ticket closed? Even considering the comment from andrykonchin, he clearly points oot at the end that there are bytes greater than 128 in the string (therefore `.ascii_only?` should be false).
-
03:11 PM Bug #20185 (Closed): String#ascii_only? buggy in ruby 3.3
-
08:10 PM Feature #18057: Introduce Array#mean
- Was this proposal rejected?
- 07:19 PM Revision 8cbba87c (git): [ruby/prism] Add parse options to JavaScript's parsePrism function
- https://github.com/ruby/prism/commit/d7fe7c7ae7
-
07:01 PM Revision d124124c (git): [ruby/prism] Fix up gemspec
- https://github.com/ruby/prism/commit/82e3126762
-
06:47 PM Revision 8bf12d7b (git): [ruby/prism] First pass at documenting information about the CRuby compiler
- https://github.com/ruby/prism/commit/b575914b2f
-
06:21 PM Bug #14607 (Closed): Fix use of the rb_profile_frames start parameter
-
06:14 PM Bug #14607: Fix use of the rb_profile_frames start parameter
- > The original patch has a merge conflict. However, I have opened a pull request with the fix for this issue (https://github.com/ruby/ruby/pull/2713) that has been rebased to resolve the merge conflict.
The github PR has been merged, ... -
05:55 PM Revision 07b9b534 (git): [PRISM] Fix crash with empty ensure blocks
- Fixes ruby/prism#2179.
-
05:43 PM Revision 7bd7030a (git): [PRISM] Replace local lookup recursion with loop
-
05:43 PM Revision 70a8ed07 (git): [PRISM] Don't allocate labels when not needed
- The labels lstart, lend, lcont are only needed when there is a rescue
clause. They are not needed when there is only an ensure clause or
neither. -
04:12 PM Revision 1caa881a (git): [PRISM] Fix splat assignment
- Fixes ruby/prism#2177
-
03:51 PM Revision c5e43da4 (git): [ruby/prism] Correct the "ambiguous first argument" condition
- Fix https://github.com/ruby/prism/pull/2182
This change reflects this line:
https://github.com/ruby/ruby/blob/6283ae8d369bd2f8a022bb69bc5b742c58529dec/parse.y#L11124.
https://github.com/ruby/prism/commit/a52588ff37 -
03:06 PM Revision 6283ae8d (git): [ruby/stringio] Update the coderange after overwrite
- Fix https://bugs.ruby-lang.org/issues/20185
https://github.com/ruby/stringio/commit/8230552a46 -
02:58 PM Revision fef8ccff (git): Rename pm_lookup_local_index_any_scope
- Now it's the only local lookup function we can just call it
pm_lookup_local_index -
02:58 PM Revision 543bd7f3 (git): Remove scope_node->local_depth_offset
-
02:58 PM Revision 1b97f611 (git): Remove pm_lookup_local_index_with_depth
-
02:58 PM Revision 0d705b34 (git): Remove the found_depth pointer
- Now that we're returning pm_local_index_t
-
02:58 PM Revision da383c0d (git): Return pm_local_index_t when looking up local indexes
- instead of returning the index and updating found_depth in the parent
scope -
02:58 PM Revision f4b299a1 (git): Bind index & depth together into pm_local_index_t
-
02:58 PM Revision 3d45b743 (git): Replace pm_lookup_local_index with lookup_local_index_with_depth
-
02:58 PM Bug #5179: Complex#rationalize and to_r with approximate zeros
- `Complex(re, im.to_r).to_r` looks good to me if `im` is not `0` or `0r`. `Complex(re, im.to_i).to_i` is also OK for me in the same manner.
`Complex(re, im.to_f).to_f` cannot resolve the problem the current `to_f` holds. I don't have... -
02:18 PM Revision ade56737 (git): Fix coderange of invalid_encoding_string.<<(ord)
- Appending valid encoding character can change coderange from invalid to valid.
Example: "\x95".force_encoding('sjis')<<0x5C will be a valid string "\x{955C}" -
01:47 PM Bug #20190 (Closed): `invalid_encoding_string << number` should be valid encoding in some case, but does not
- In some encoding, appending ascii char might change invalid encoding string to valid. But it does not.
~~~ruby
# encoding: utf-8
valid = '表'.encode('sjis')
valid.bytes
# => [0x95, 0x5c]
s = valid.byteslice(0, 1)
p s.valid_encodi... -
01:32 PM Revision 0520e967 (git): [PRISM] Fix defined? for chained calls
- Fixes ruby/prism#2148.
-
01:13 PM Revision d6b6e14c (git): Specify ruby mode [ci skip]
-
11:29 AM Revision 01459f16 (git): Set `CHECK_LEAKS` in spec/default.mspec
- Because of `.NOEXPORT:` in template/Makefile.in, variables in
common.mk will not be exported. -
09:34 AM Bug #20169: `GC.compact` can raises `EFAULT` on IO
- Thought: we could probably remove the need for the read barrier if we swept the heap, and _then_ compacted. So we wouldn't free any objects in between moving things and updating refs. It would mean scanning the first half of each heap tw...
-
08:49 AM Bug #19857: Eval coverage is reset after each `eval`.
- > When I started developing the covearge library, I decided that its target is "source files that actually exist".
I completely agree with this and I don't think that statement has any bearing on this proposal.
> ...
Makes sense.
... -
07:47 AM Bug #19857 (Rejected): Eval coverage is reset after each `eval`.
- Sorry, but I am not keen on this proposal. Let me reject this once.
When I started developing the covearge library, I decided that its target is "source files that actually exist".
The measured coverage is visually observed by a huma... -
08:40 AM Feature #20187: Bundled gems at Ruby 3.4
- I already done to extract `mutex_m` and `getoptlong`. Now I'm working `base64` and `bigdecimal`.
-
08:39 AM Feature #20187 (Closed): Bundled gems at Ruby 3.4
- This ticket is for tracking bundled gems status at Ruby 3.4.
I added warnings for bundled gems of Ruby 3.3 at https://bugs.ruby-lang.org/issues/19351 and https://bugs.ruby-lang.org/issues/19776.
I started to extract(promote) target... -
08:09 AM Revision 9f026800 (git): Removed sample code for net-imap. net-imap is alread extracted as bundled gems
- 08:07 AM Revision ee405518 (git): Update bundled gems list at 4b6936aa047158c98a9ac8861d51e5 [ci skip]
-
08:07 AM Revision 4b6936aa (git): Unbundled samples for getoptlong
-
08:07 AM Revision 3f501617 (git): We don't need to sync getoptlong
-
08:07 AM Revision 326288c5 (git): Document about getoptlong at Ruby 3.4
-
08:07 AM Revision b3ff5649 (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ""..."3.4"' spec/ruby/library/getoptlong/**/*.rb
-
08:07 AM Revision b68dab2d (git): Extract getoptlong as bundled gems
-
07:29 AM Revision c5d54e1d (git): We don't need to sync mutex_m
-
07:24 AM Revision 26cf40aa (git): Always enabled leakchecker by ruby/mspec
-
06:39 AM Bug #20186 (Open): Ripper does not generate AST for some keywords in Ruby 3.3
- Ripper does not generate AST for the below keyword:
- break
- next
- redo
- retry
- yield
Ruby 3.2
```
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
$ ruby -rripper -e "p Ripper.sexp('break')"
[:pr... -
04:18 AM Feature #20182: Rewrite Array#each in Ruby
- > As discussed on the PR I think this can be solved by using a Primitive which does both things atomically.
After filing this ticket, we built a nice solution using Primitive https://github.com/ruby/ruby/pull/9533. It wasn't straightfor... -
03:44 AM Revision 924f3907 (git): Enable spec_guards with 3.3
-
03:43 AM Revision be7c91db (git): Do not pollute toplevel namespace
-
01:04 AM Revision 0abbab9e (git): [Bug #20184] Test for low memory
01/15/2024
-
10:35 PM Revision 6a1bf4cf (git): YJIT: optimized codegen for String#length (#9543)
- Minor optimization for programs doing string processing.
-
10:12 PM Revision 6a175902 (git): [PRISM] Fix keyword splat inside of array
- Fixes ruby/prism#2155.
-
08:28 PM Feature #20182: Rewrite Array#each in Ruby
- > or are users supposed to avoid mutating the array in the middle of its loop?
Not supporting to mutate the array while looping would be a pretty big incompatibility as written in https://github.com/ruby/ruby/pull/6687#discussion_r101... -
05:07 PM Feature #20164: Add Exception#deconstruct_keys
- palkan (Vladimir Dementyev) wrote in #note-1:
> The question is what keys must be supported for each standard exception class?
I computed a quick list and it would look something like this.
```
Exception ... -
04:27 PM Revision cc7b19e0 (git): [DOC] Improve docs for GC.compact
-
03:32 PM Revision 5e61cc26 (git): YJIT: Optimize Integer#succ (#9519)
-
02:58 PM Revision 7c6d7fbc (git): [PRISM] Fix case without predicate
- Fixes ruby/prism#2149.
-
02:04 PM Revision e0312f90 (git): [ruby/pp] Print beginless ranges properly
- Instead of displaying the start of the range as nil
https://github.com/ruby/pp/commit/1df210d903 -
05:49 AM Feature #19057: Hide implementation of `rb_io_t`.
- Are you saying that in general:
```
struct A {
int x;
float y;
char z;
struct S s;
};
```
and
```
struct B {
int x;
float y;
};
```
That reinterpreting a pointer to A as a pointer to B, and accessing f... -
03:32 AM Feature #19057: Hide implementation of `rb_io_t`. - "ioquatix (Samuel Williams) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> - unicorn has merged a fix but it is not released: https://yhbt.net/unicorn.git/63c85c4282d15e22bd32a905883d2d0e149619d1/s/
> - kgio has merged a fix but... -
05:25 AM Bug #20169: `GC.compact` can raises `EFAULT` on IO
- I spent some more time today studying this problem. This is what I've learned so far. I'm definitely far from an expert in the mechanics of how GC's work, so please jump in and correct me if you are!
1. Obviously, as @luke-gru suggest... - 03:15 AM Revision 9c329989 (git): Bump actions/upload-artifact from 4.0.0 to 4.1.0
- Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/c7d193... -
12:35 AM Revision dde21a79 (git): Explicitly convert between `VALUE` and `st_data_t`
01/14/2024
-
11:15 PM Bug #20185: String#ascii_only? buggy in ruby 3.3
- I cannot reproduce the issue with plain String (without StringIO) on Ruby 3.2, 3.1 and 3.0. `ascii_only?` reports `false` for "богус":
```
ruby -e 'p "богус".ascii_only?'
false
```
I believe in the examples involving StringIO the obser... -
03:10 PM Bug #20185 (Closed): String#ascii_only? buggy in ruby 3.3
- This was the smallest reduction of the bug I could come up with:
require "stringio"
puts StringIO::VERSION
def is_ascii(buffer)
str = buffer.string
puts "\"#{str}\" is ascii: #{str.ascii_only?}"
en... -
10:10 PM Bug #20184: Ruby segfaults on Fly.io with 256 MB RAM
- I also wonder if we should add some CI for running ruby on a low memory/virtual memory constrained system.
-
10:09 PM Bug #20184: Ruby segfaults on Fly.io with 256 MB RAM
- I was also investigating this issue.
On low-memory systems (< ~400MB RAM+Swap), `Init_default_shapes` will fail and cause Ruby to segfault later.
Even something as simple as `ruby -e "puts 123"` will fail.
The 2nd `mmap` in `shape.c` ... -
03:20 PM Bug #20184 (Closed): Ruby segfaults on Fly.io with 256 MB RAM
- commit:8b8dcc7af174def5216044019c1d3e42edfdc7cf should have fixed this.
-
03:07 PM Bug #20184: Ruby segfaults on Fly.io with 256 MB RAM
- In shape.c:Init_default_shapes(), the result of `mmap` for `rb_shape_tree_ptr->shape_cache` seems unchecked.
I'm not sure if it can continue without `shape_cache`. -
01:09 PM Bug #20184 (Closed): Ruby segfaults on Fly.io with 256 MB RAM
- I've been running a Ruby 3.2 app on Fly.io with 256 MB RAM and it has been working fine.
When I upgraded to Ruby 3.3.0, any Ruby script would crash immediately with a segfault.
I haven't been able to reproduce it outside of fly.io.
... -
09:49 PM Bug #18805 (Closed): IO::Buffer is inconsistent when returning a string from an empty buffer
- Fixed in https://github.com/ruby/ruby/commit/c5cf4d4e129f64cb69aaf0a829aed068ef1943c4
-
02:59 AM Bug #18805: IO::Buffer is inconsistent when returning a string from an empty buffer
- As a 2nd issue was created about the similar issue, I think it's worth improving.
See https://github.com/ruby/ruby/pull/9532 for the proposed changes. -
09:48 PM Bug #19542 (Closed): Operations on zero-sized IO::Buffer are raising
- Applied in https://github.com/ruby/ruby/commit/c5cf4d4e129f64cb69aaf0a829aed068ef1943c4
-
02:58 AM Bug #19542: Operations on zero-sized IO::Buffer are raising
- See https://github.com/ruby/ruby/pull/9532 for the proposed changes.
-
02:21 AM Bug #19542: Operations on zero-sized IO::Buffer are raising
- I am okay to make this work as you propose, however it should be noted, in C, you cannot provide `NULL` and size=0 to memcpy or similar functions (see https://stackoverflow.com/questions/5243012/is-it-guaranteed-to-be-safe-to-perform-mem...
- 09:47 PM Revision c5cf4d4e (git): Improve behavioural consistency of unallocated (zero length) `IO::Buffer`. (#9532)
- This makes the behaviour of IO::Buffer.new(0) and IO::Buffer.new.slice(0, 0) consistent.
Fixes https://bugs.ruby-lang.org/issues/19542 and https://bugs.ruby-lang.org/issues/18805. -
08:01 PM Bug #19916 (Closed): URI#to_s can serialize to a value that doesn't deserialize to the original
-
07:41 PM Bug #20064 (Closed): Inconsistent behavior between array splat *nil and hash splat **nil
- Applied in changeset commit:git|5c823aa686a5549649df4af86d173bebed2418e1.
----------
Support keyword splatting nil
nil is treated similarly to the empty hash in this case, passing
no keywords and not calling any conversion methods.
Fi... -
07:41 PM Revision 5c823aa6 (git): Support keyword splatting nil
- nil is treated similarly to the empty hash in this case, passing
no keywords and not calling any conversion methods.
Fixes [Bug #20064]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> -
02:38 PM Revision 77241324 (git): Skip checking for symbol leaks in libruby.a linking extensions
- The libruby.a linking extension libraries contain symbols exported
from extension libraries, and is not subject of test-leaked-globals. -
01:27 PM Revision 338eb006 (git): [ruby/strscan] StringScanner#captures: Return nil not "" for
- unmached capture
(https://github.com/ruby/strscan/pull/72)
fix https://github.com/ruby/strscan/issues/70
If there is no substring matching the group (s[3]), the behavior is
different.
If there is no substring matching the group, the co... -
08:55 AM Revision 0610f555 (git): Constify `rb_global_parser_config`
-
07:59 AM Bug #20181 (Closed): Process.wait(-1) doesn't report exited child processes if WAITPID_USE_SIGCHLD is enabled
-
05:19 AM Bug #20183 (Closed): `erb/escape.so` cannot be loaded when `--with-static-linked-ext`
- Since `cgi/escape.c` and `erb/escape.c` are both initialized by `Init_escape()` functions, both call the same function in `extinit.c`.
-
04:31 AM Feature #18035: Introduce general model/semantic for immutability.
- > If this is accepted, should Data classes all be immutable? To quote the docs:
By default, it does not look like Data is considered immutable as nested values can mutate.
However, this proposal would allow for immutable Data instances... -
03:12 AM Feature #18035: Introduce general model/semantic for immutability.
- It's not just about performance, it's about providing strong interface guarantees and making sure users don't violate those guarantees accidentally. e.g.
```ruby
THINGS = [1, 2, 3]
def things
return THINGS
end
# user code:
my_things... -
03:30 AM Feature #19057: Hide implementation of `rb_io_t`.
- Latest update:
- unicorn has merged a fix but it is not released: https://yhbt.net/unicorn.git/63c85c4282d15e22bd32a905883d2d0e149619d1/s/
- kgio has merged a fix but it is not released: https://yhbt.net/kgio.git/dbf5290cf9f89174f6b35a5... -
03:20 AM Feature #19057: Hide implementation of `rb_io_t`.
- Related PR: https://github.com/ruby/ruby/pull/9530
-
12:31 AM Feature #20182: Rewrite Array#each in Ruby
- I think this is a great idea and would like to see more of Ruby implemented in Ruby. The smaller the C implementation becomes, the better, for all the stated reasons, but also additionally, it's cleaner and easier to understand.
Regardi...