Project

General

Profile

Activity

From 02/09/2023 to 02/15/2023

02/15/2023

11:43 PM Revision b03b251a (git): Handle all non-object type objects
Haldun Bayhantopcu
11:43 PM Revision 0b4b2cd1 (git): Fix removing ivars from clases and modules.
Co-authored-by: Adam Hess <hparker@github.com> Haldun Bayhantopcu
07:55 PM Feature #13620: Simplifying MRI's build system: always make install
FWIW, here is another terrible hack due to trying to run before files have a proper Ruby home structure:
https://github.com/ruby/ruby/commit/a2c66f52f402cb58372e271226f3341065561e53 and reported as #19158.
Eregon (Benoit Daloze)
07:48 PM Feature #19435: Expose counts for each GC reason in GC.stat
byroot (Jean Boussier) wrote in #note-3:
> Our initial patch had those but I removed it to limit the number of extra keys, and because it's not a cause you should see in production, ever, aside from pre-fork memory optimization etc.
...
Eregon (Benoit Daloze)
07:43 PM Misc #19429: DevMeeting-2023-03-09
* [Feature #19440] Deprecate ThreadGroup (eregon)
* Thoughts?
* If disagree, how do we put the Timeout thread in the default ThreadGroup? It seems impossible with current API.
Eregon (Benoit Daloze)
07:41 PM Feature #19440 (Open): Deprecate ThreadGroup
I looked at the ThreadGroup methods, and none of them seem really useful.
`enclose` has super confusing semantics, in that it surprisingly allows creating new threads from a thread already in that group, but forbids `#add`.
So the ne...
Eregon (Benoit Daloze)
07:25 PM Revision 70d84a5f (git): [ruby/timeout] Simplify test
https://github.com/ruby/timeout/commit/db017da726 Eregon (Benoit Daloze)
07:25 PM Revision 610375ed (git): [ruby/timeout] Don't move the timer_thread when it's enclosed
Don't move the timer_thread to ThreadGroup::Default, when it's
created in an enclosed ThreadGroup.
Prevents the exception: "add" can't move from the enclosed thread group"
https://github.com/ruby/timeout/commit/eb889d2c8b
Rick Blommers
07:24 PM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
People are still hitting issues here due to an incorrect gemspec for the debug gem being shipped with Ruby 3.2.1 so I guess this is not yet fixed. See https://github.com/ruby/debug/issues/898 or https://github.com/ruby/debug/issues/852. deivid (David Rodríguez)
07:05 PM Revision 8943b0d4 (git): YJIT: `Kernel#{is_a?,instance_of?}` fast paths (GH-7297)
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Jimmy Miller
06:22 PM Bug #19438: Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
Oh, I'm sorry, I misread your benchmark and thought it was a CSV based benchmark, I now see it's radically different, please disregard my previous answer. byroot (Jean Boussier)
06:20 PM Bug #19438: Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
CSV being a gem, it's very likely that the regression isn't in ruby itself, but in the successive versions of the csv gem being bundled with Ruby:
```
ruby 3.2 => csv 3.2.6
ruby 3.1 => csv 3.2.2
ruby 3.0 => csv 3.1.9
ruby 2.7 => c...
byroot (Jean Boussier)
01:30 PM Bug #19438 (Open): Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
## Introduction
Recently I had been going through some of the old benchmarks in the [Ruby Great Implementation Shootout](https://programmingzen.com/the-great-ruby-shootout-july-2010/) from around 2010.
As an experiment, one night ...
nick.schwaderer (Nicholas Schwaderer)
05:04 PM Bug #19439: Marshal.load doesn't load Regexp instance variables
As a note, if CRuby plans to make all Regexp immutable & no subclass instances (like TruffleRuby already does), then that's another way to fix this. Eregon (Benoit Daloze)
04:01 PM Bug #19439 (Closed): Marshal.load doesn't load Regexp instance variables
Hello, I've noticed this strange behaviour:
```ruby
source_object = Regexp.new("a")
source_object.instance_variable_set(:@foo, :bar)
regexp = Marshal.load(Marshal.dump(source_object))
regexp.instance_variables # => []
```
I ...
andrykonchin (Andrew Konchin)
04:47 PM Revision ae2340c9 (git): Refactor / document instance variable debug counters
This commit is refactoring and documenting the debug counters related to
instance variables.
tenderlovemaking (Aaron Patterson)
03:45 PM Feature #19437: Add marking and sweeping time to GC.stat
Hey Robert, I appreciate your excitement, but could you please refrain from commenting unless it's meaningfully contributing to the discussion?
You can show your support for this issue by clicking "like" in the top right corner ⬈
AMomchilov (Alexander Momchilov)
02:56 AM Feature #19437: Add marking and sweeping time to GC.stat
\o/ rubyFeedback (robert heiler)
03:00 PM Revision 847a0df0 (git): [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP#get
(https://github.com/ruby/net-http/pull/121)
https://github.com/ruby/net-http/commit/51b9af1eed
burdettelamar (Burdette Lamar)
02:53 PM Revision 3a9d5246 (git): [ruby/irb] Fix help-message (https://github.com/ruby/irb/pull/506)
https://github.com/ruby/irb/commit/a55ace0791 hasumikin (hitoshi hasumi)
02:24 PM Revision 7413079d (git): Encapsulate RCLASS_ATTACHED_OBJECT
Right now the attached object is stored as an instance variable
and all the call sites that either get or set it have to know how it's
stored.
It's preferable to hide this implementation detail behind accessors
so that it is easier to c...
byroot (Jean Boussier)
11:30 AM Misc #19431: DevMeeting at RubyKaigi 2023
I'll attend. byroot (Jean Boussier)
09:47 AM Revision bac4d2ee (git): Check !RCLASS_EXT_EMBEDDED instead of SIZE_POOL_COUNT == 1
It's much more self documenting and consistent byroot (Jean Boussier)
07:38 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
mame (Yusuke Endoh) wrote in #note-10:
> @akr, thank you for your comment. But sorry, I failed to get your point.
> ...
The benefit of resolv.rb is that it doesn't need new external library, as pointed by Eric Wong.
> I don't think ...
akr (Akira Tanaka)
06:42 AM Revision 1f936d65 (git): `ractor_queue_enq/deq` doesn't need `rq` param
`rq` is always `r`'s queue. ko1 (Koichi Sasada)
04:45 AM Revision 413120e5 (git): Do not use `objcopy` on macOS
On macOS, it is not used to localize symbols in dynamic libraries
(libruby.dylib and libyjit.o). Instead, using `objcopy` which does
not support recent mach-O causes linker errors as bellow.
```
linking shared-library libruby.3.3.dylib...
nobu (Nobuyoshi Nakada)
03:46 AM Revision fba8f778 (git): [DOC] remove redundant paragraph at set.rb (#6472)
remove redundant paragraph at set.rb tj (Thibault Jouan)
03:43 AM Revision 619af4fd (git): [DOC] Add an example of the splat operator with a non-array object (#7098)
kyanagi (Kouhei Yanagita)
03:41 AM Revision f03dd4ee (git): Refactor dir.rb sample (#6977) [ci skip]
* Refactor dir.rb sample
The original (1998) sample with a for-loop and use of case/when isn't what we'd write nowadays
* [DOC] Update sample/dir.rb [ci skip]
Do not leave a `Dir` opened.
* [DOC] Update sample/dir.rb [ci skip]
Fix A...
Thomas R. Koll
03:26 AM Revision 3376eca8 (git): file.c: rb_file_load_ok: GC+retry on EMFILE/ENFILE/ENOMEM
`require' should make a best effort to avoid failure on
recoverable resource exhaustion errors.
Eric Wong

02/14/2023

09:31 PM Revision 15ef2b2d (git): YJIT: Optimize != for Integers and Strings (#7301)
k0kubun (Takashi Kokubun)
09:05 PM Feature #19437 (Closed): Add marking and sweeping time to GC.stat
Pull Request: https://github.com/ruby/ruby/pull/7304
There is a `time` key in GC.stat that gives us the total time spent in GC. However, we don't know what proportion of the time is spent between marking and sweeping. This makes it di...
peterzhu2118 (Peter Zhu)
08:54 PM Revision 6c558281 (git): YJIT: Check correct BOP on gen_fixnum_cmp (#7303)
k0kubun (Takashi Kokubun)
08:33 PM Revision 3c7d5ccd (git): [ruby/net-http] [DOC] Enhanced RDoc for request headers
(https://github.com/ruby/net-http/pull/120)
https://github.com/ruby/net-http/commit/b4eb8a7932
burdettelamar (Burdette Lamar)
07:58 PM Revision f4b0e8dc (git): YJIT: Pad more spaces to accommodate delimiters (#7302)
k0kubun (Takashi Kokubun)
07:32 PM Feature #18980: `it` as a default block parameter
If I recall correctly I suggested @1 @2 and so forth.
At a later time _1 _2 and so forth was added, which is not entirely the same. I
then realised that the suggestion was actually much older than my suggestion,
and the ruby core team o...
rubyFeedback (robert heiler)
05:12 PM Revision 55af69b1 (git): YJIT: Don't side-exit on too-complex shapes (#7298)
k0kubun (Takashi Kokubun)
04:09 PM Feature #19430: Contribution wanted: DNS lookup by c-ares library
@akr, thank you for your comment. But sorry, I failed to get your point.
As you said, the current resolv.rb has the similar pros/cons as my proposal. (Pro: the name resolution will be interruptible. Con: no OS-specific resolution supp...
mame (Yusuke Endoh)
08:22 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
mame (Yusuke Endoh) wrote in #note-7:
> > What about resolv.rb?
> ...
I hadn't thought of resolv.rb at the meeting.
I guess that it is because I have less interest in resolv.rb now.
My motivation for resolv.rb is solving whole-proc...
akr (Akira Tanaka)
01:59 PM Revision e5e50609 (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.61 to 0.9.64.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.61...v0.9.64)
---
updated-depende...
dependabot[bot]
12:40 PM Feature #19422: Make `--enabled-shared` mandatory on macOS
We discuss this feature in DevMeeting.
We will back to use `dynamic_lookup` and suppress warnings. But Apple may remove `dynamic_lookup` completely in the future. We need to look and test Xcode 15 in this summer.
After that, we wil...
hsbt (Hiroshi SHIBATA)
12:20 PM Feature #19197: Add Exception#root_cause
I think more complex cases like `causes` should be done manually or with a helper method, like you showed or with some loop or something.
OTOH I think `root_cause` is convenient and useful for a variety of cases, so it makes more sense ...
Eregon (Benoit Daloze)
12:14 PM Feature #17853: Add Thread#thread_id
FWIW, it seems the `Thread#inspect` change wasn't merged. Eregon (Benoit Daloze)
11:30 AM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
Thank you! andrykonchin (Andrew Konchin)
10:26 AM Revision 538c3b9a (git): Suppress -Wunused-but-set-variable warning
nobu (Nobuyoshi Nakada)
09:47 AM Revision ef9efcf0 (git): Check if objcopy works to localize symbol
LLVM objcopy does not support localizing symbols option, e.g,
`--localize-symbol` and `--keep-global-symbol`, for MachO.
nobu (Nobuyoshi Nakada)
06:18 AM Revision 2490b2e1 (git): Add utility macros `DECIMAL_SIZE_OF` and `DECIMAL_SIZE_OF_BYTES`
nobu (Nobuyoshi Nakada)
04:39 AM Bug #19259 (Closed): `Data#with` doesn't call `initialize` nor `initialize_copy`
Applied in changeset commit:git|45f0e3a673964069a4c9c57ce8665cbc21ac267f.
----------
[Bug #19259] `Data#with` should call `initialize` method
nobu (Nobuyoshi Nakada)
04:39 AM Bug #19434 (Closed): Fix YJIT compilation for Alpine Linux 3.17.2
k0kubun (Takashi Kokubun)
02:20 AM Bug #19434: Fix YJIT compilation for Alpine Linux 3.17.2
Hey Maxime. So, after you mentioned the cross-compiling issue, I got worried and ended up rebuilding my *Docker Alpine Base* image and then rebuilding my *Docker Alpine Ruby* on top of that build. I'm not exactly sure what went wrong in ... bkuhlmann (Brooke Kuhlmann)
03:02 AM Revision 45f0e3a6 (git): [Bug #19259] `Data#with` should call `initialize` method
nobu (Nobuyoshi Nakada)
12:58 AM Revision dbe5b0dc (git): YJIT: Fix a typo in a counter name
I added `invokeblock_iseq_arg0_args_splat` counter but it wasn't used
because of a typo.
Related to https://github.com/ruby/ruby/pull/7234
k0kubun (Takashi Kokubun)

02/13/2023

10:09 PM Bug #19433: Segmentation fault in 3.2.0/3.2.1 on M1 Mac
It also failes om Intel CPUS. I have a "3 GHz Dual-Core Intel Core i7" Mac and it fails for me too, 4 of 10 times i run brakeman redmine simon (Simon Toivo Telhaug)
09:54 PM Bug #19427 (Open): Marshal.load(source, freeze: true) doesn't freeze in some cases
The issue closes automatically when a commit is merged with a reference to it. I can re-open, but I'm not super hopeful about fixing these other two cases.
As explained, I think the best we can do is shallow freeze.
byroot (Jean Boussier)
09:53 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
The issue was closed. Does it mean that current behaviour of `TYPE_USERDEF` and `TYPE_USRMARSHAL` is expected?
Or should I create separate issues to track them independently?
andrykonchin (Andrew Konchin)
04:08 PM Bug #19427 (Closed): Marshal.load(source, freeze: true) doesn't freeze in some cases
Applied in changeset commit:git|7ddcee5928d8a98337077d5a5ee61136ec84a993.
----------
Marshal.load: also freeze extended objects
[Bug #19427]
The `proc` wouldn't be called either, that fixes both.
byroot (Jean Boussier)
07:43 PM Bug #19434: Fix YJIT compilation for Alpine Linux 3.17.2
Hello @bkuhlmann. Could you provide the full output of the `./configure` script? We do support Linux and macOS on arm64 (though only from Ruby 3.2 onwards). We think the issue may be that you are accidentally cross-compiling, or that the... maximecb (Maxime Chevalier-Boisvert)
05:48 PM Misc #19353: Drop gcc <= 6 and clang <= 9
jeremyevans0 (Jeremy Evans) wrote in #note-1:
> OpenBSD/sparc64 uses gcc 4.2.1 (last GPLv2 version) as the system compiler. The sparc64 backend for clang is not yet mature (last I checked), so this would make it so Ruby 3.3+ would be u...
jeremyevans0 (Jeremy Evans)
05:38 PM Misc #19429: DevMeeting-2023-03-09
* [Feature #19197] Add `Exception#root_cause` (AMomchilov)
* It returns the last exception in linked-list of causality chain, that is, the original exception (whose own cause is `nil`).
AMomchilov (Alexander Momchilov)
12:37 PM Misc #19429: DevMeeting-2023-03-09
- [Feature #19435] Expose counts for each GC reason in GC.stat
- Add 8 new keys in `GC.stat`.
- We used that patch in production to fix GC issues we had, we believe these counters to be high value.
- The only way to get this inf...
byroot (Jean Boussier)
04:43 PM Bug #19419 (Closed): [BUG] try to mark T_NONE object in `ibf_dump_mark`
Applied in changeset commit:git|86de48e9f69b665ba9ffb5bdc5a181a3adb1a7b8.
----------
Remove ibf_dumper's WB_PROTECTED status
It doesn't have the right write barriers in place. For example, there is
rb_mark_set(dump->global_buffer....
alanwu (Alan Wu)
03:09 PM Bug #19419: [BUG] try to mark T_NONE object in `ibf_dump_mark`
It turned out to be a write barrier issue: https://github.com/ruby/ruby/pull/7296
The same problem issue exists on 3.1.x, so marking for backport.
alanwu (Alan Wu)
11:16 AM Bug #19419: [BUG] try to mark T_NONE object in `ibf_dump_mark`
The original bug reporter provided a relatively simple reproduction repository: https://github.com/tisba/bootsnap-ruby-crash
Using it I was able to reproduce on 3.2.1 and latest master.
I also confirmed that it's a Write Barrier bu...
byroot (Jean Boussier)
04:42 PM Revision 86de48e9 (git): Remove ibf_dumper's WB_PROTECTED status
It doesn't have the right write barriers in place. For example, there is
rb_mark_set(dump->global_buffer.obj_table);
in the mark function, but there is no corresponding write barrier when
adding to the table in the
`ibf_dump_object...
alanwu (Alan Wu)
04:08 PM Revision 7ddcee59 (git): Marshal.load: also freeze extended objects
[Bug #19427]
The `proc` wouldn't be called either, that fixes both.
byroot (Jean Boussier)
03:56 PM Feature #19197: Add Exception#root_cause
Eregon (Benoit Daloze) wrote in #note-3:
> I think this makes sense and it's pretty trivial.
> ...
Hey Benoit!
~~What's a "dev meeting ticket"?~~ [Done!](https://bugs.ruby-lang.org/issues/19429#note-5)
<hr>
Also, what do you think of ...
AMomchilov (Alexander Momchilov)
03:49 PM Feature #19197: Add Exception#root_cause
Hey Robert, thanks for taking the time to write.
rubyFeedback (robert heiler) wrote in #note-2:
> but on the issue of object.cause.cause.cause
> ...
Ah, I wasn't suggesting to use this style of code, it was just a very simple/concis...
AMomchilov (Alexander Momchilov)
02:46 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
> That means we still need to make Class#attached_object a weak reference.
I agree that conceptually, it's the simplest solution. That being said, in MRI weak references generally require a finalizer, which is annoying. But I'll see i...
byroot (Jean Boussier)
01:28 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
byroot (Jean Boussier) wrote in #note-3:
> Does that mean TruffleRuby suffer from the same "leak"? I was actually planning to ask you how it does deal with this case for inspiration.
Yes, since TruffleRuby caches the the Class object...
Eregon (Benoit Daloze)
01:26 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
byroot (Jean Boussier) wrote in #note-2:
> I specifically tried to say that the heuristic would be to not cache calls on singleton methods unless it's the singleton_class of a `Module` or `Class`.
I missed that sorry.
I think there are ...
Eregon (Benoit Daloze)
01:18 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
> Keeping a weak reference to the CME would actually be an unacceptable memory overhead on JVM
Does that mean TruffleRuby suffer from the same "leak"? I was actually planning to ask you how it does deal with this case for inspiration.
byroot (Jean Boussier)
12:55 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
> FWIW not caching in calls to objects with a singleton class is not an option, it's important to cache for e.g. calling method on classes.
I specifically tried to say that the heuristic would be to not cache calls on singleton method...
byroot (Jean Boussier)
12:52 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
I think making `Class#attached_object` a weak reference is a better and easier solution.
Keeping a weak reference to the CME would actually be an unacceptable memory overhead on JVM, as it would mean one extra WeakReference object for...
Eregon (Benoit Daloze)
12:19 PM Bug #19436 (Closed): Call Cache for singleton methods can lead to "memory leaks"
Using "memory leaks" with quotes, because strictly speaking the memory isn't leaked, but it can nonetheless lead to large memory overheads.
### Minimal Reproduction
```ruby
module Foo
def bar
end
end
def call_bar(obj)
...
byroot (Jean Boussier)
01:46 PM Feature #19435: Expose counts for each GC reason in GC.stat
> Do we need the minor/major prefix?
I believe we do. Generally speaking what you really want to reduce is major GC. There are case where minor GC might trigger too much leading in performance issues (in part because it end up promoti...
byroot (Jean Boussier)
01:19 PM Feature #19435: Expose counts for each GC reason in GC.stat
Do we need the minor/major prefix? Or would it be good enough without?
Also these names are fairly cryptic, what do they mean? Probably there should be some docs for that.
I think counting calls to `GC.start` would be useful (any h...
Eregon (Benoit Daloze)
12:31 PM Feature #19435: Expose counts for each GC reason in GC.stat
I love introspection ever since I used the language Io many years ago; at a
later time ruby also got better introspection (no idea if related to Io or
not), so more information about e. g. GC is great so +1. \o/
The GC is a mystery...
rubyFeedback (robert heiler)
11:57 AM Feature #19435 (Open): Expose counts for each GC reason in GC.stat
### Context
We recently tuned the GC settings on our monolith application because we were seeing some very long GC pauses (multiple seconds) during some requests.
Very early we realized that we could know how often the GC was trigg...
byroot (Jean Boussier)
01:04 PM Revision bc6e587e (git): [ruby/net-http] Enhanced RDoc for Compression
https://github.com/ruby/net-http/commit/cff88acd70 burdettelamar (Burdette Lamar)
10:55 AM Bug #19417: Regexp \p{Word} and [[:word:]] do not match Unicode Other_Number character
regarding the documentation, `letter` in the upstream doc is also incorrect, so the downstream doc actually has two errors.
as implemented [here](https://github.com/ruby/ruby/blob/9821f6d0e5957a680bb4ce39708ebc86e23d85d0/tool/enc-unic...
janosch-x (Janosch Müller)
08:17 AM Misc #19421: Distribution documentation
while individual distributions' policy and guideline should be kept in their docs and wiki, I am positive to have general guide and recommendation in ruby/ruby to prevent confusion or disparity between distributors. If the central doc he... sorah (Sorah Fukumori)
06:43 AM Feature #19107: Allow trailing comma in method signature
I second this proposal.
`def foo(bar:,)` doesn't seem like a real use-case, but when a method has so many arguments and I declare arguments in multiple lines, I would love to put a trailing comma to minimize future git diff and make rev...
k0kubun (Takashi Kokubun)
06:20 AM Feature #19107: Allow trailing comma in method signature
To me the ',' there looks rather awkward. Then again the
first time I saw def(foo:) I was also confused.
rubyFeedback (robert heiler)
06:16 AM Feature #19366: Rename/alias Refinedment#refined_class => #refined_module
This is in part a problem of having the "duality" of classes and
modules. matz explained that in the past, in part due to not
liking the complexity and potential confusion of C++
multi-inheritance, when explaining why modules were add...
rubyFeedback (robert heiler)
06:12 AM Revision 9821f6d0 (git): Override release date in Makefile if possible
nobu (Nobuyoshi Nakada)
06:12 AM Revision 849087cc (git): Apply zone offset to the last modified time
nobu (Nobuyoshi Nakada)
03:58 AM Feature #19432 (Feedback): Introduce a wrapping operator (&) to Proc
Your first example seems unnecessary complicated.
```ruby
def text(s)
"<text>#{s}</text>"
end
def strong(s)
"<strong>#{s}</strong>"
end
def em(s)
"<em>#{s}</em>"
end
def markup(s, *marks)
result = -> { text s }
...
nobu (Nobuyoshi Nakada)
01:01 AM Feature #19322: Support spawning "private" child processes
> Also this new API wouldn't be adopted before a very long time by the many usages of Kernel#spawn/etc (far more than usages of Process.waitall).
This seems like a fairly compelling argument actually. You're right, I want to write som...
kjtsanaktsidis (KJ Tsanaktsidis)
12:44 AM Feature #19179: Support parsing SCM_CRED(ENTIALS) messages from ancillary messages
It's true, the API currently exposed in that PR is a bit rough and un-ruby-like. Here's my idea for how the API should actually look:
* Expose a new struct `Socket::Credentials`.
* It has the following fields: `pid`, `uid`, `gid`, ...
kjtsanaktsidis (KJ Tsanaktsidis)
12:19 AM Feature #19306: Expand zlib interface
I investigated the zlib C interface, and there is no way to extract those fields which is unfortunate, so we'd have to cache them. The type of compression fundamentally is changed based on the value of those fields, so if it's not much o... ioquatix (Samuel Williams)
12:08 AM Feature #19306: Expand zlib interface
Just trying to add some detail to the proposal - perhaps it helps push for change.
The methods to be added should be:
.window_size
.level
And:
.inspect # should yield more output? Or what type of enhancement shou...
rubyFeedback (robert heiler)
12:05 AM Bug #19168: "such file" is bad grammar
Hmm. This reminds me a bit of File.exists? versus File.exist?.
Not that it is the same, mind you, but which variant is
"correct" depends on the point of view. For literal english
it would be "if file exists, do that". But from an obj...
rubyFeedback (robert heiler)

02/12/2023

11:59 PM Feature #19430: Contribution wanted: DNS lookup by c-ares library
> I think the problem of not being able to interrupt is only a problem in a production environment
I think this could simplify things around Fibers as well. Naively, if a fiber makes a call to `getaddrinfo(3)`, it would block the whol...
kjtsanaktsidis (KJ Tsanaktsidis)
06:29 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
Eric, thank you for your comment.
> > ### Alternative approaches
> ...
I agree with you. I don't want to implement it in terms of maintenance either.
> What about resolv.rb?
Before making this proposal, I talked about c-ares wi...
mame (Yusuke Endoh)
06:09 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
I copy and paste the email sent by Erig Wong.
---
"mame (Yusuke Endoh) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> Feature #19430: Contribution wanted: DNS lookup by c-ares library
> ...
I prefer to avoid overhead from u...
mame (Yusuke Endoh)
06:08 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-4:
> Actually it seems whether or not curl uses c-ares depends on how it's configured. If it's configured with `--enable-ares --disable-threaded-resolver`, c-ares is used, and I can't make...
mame (Yusuke Endoh)
12:57 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
> Thanks for your comments. As far as a little research, it looks like c-ares supports /etc/resolver setting. The library uses libresolv to identify the nameserver on macOS and iOS. (Sorry if I'm lying, I haven't tried it myself.)
Not...
kjtsanaktsidis (KJ Tsanaktsidis)
11:40 PM Misc #19421: Distribution documentation
> I still don't understand why we need to maintain for distributors on our repository instead of their documents.
As I said earlier, nothing is necessary.
However, what I'm seeing, is that there are lots of people asking questions abou...
ioquatix (Samuel Williams)
09:31 PM Misc #19421: Distribution documentation
Why don't you use https://wiki.archlinux.org/title/Ruby_package_guidelines for Arch Linux?
And distributors already used wiki for distributing ruby.
* https://fedoraproject.org/wiki/Packaging:Ruby
* https://wiki.debian.org/Teams/Ruby/P...
hsbt (Hiroshi SHIBATA)
10:50 AM Misc #19421: Distribution documentation
I would think the wiki has a much higher chance of getting out of date (from experience that's been the case for how-to-build docs and how-to-contribute docs, the how-to-build in repo is better maintained).
Being in the repository shoul...
Eregon (Benoit Daloze)
09:27 AM Misc #19421: Distribution documentation
If you really think they are destined for the same fate, the wiki is the way to go. Please do not put something in the repository that will not be maintained. mame (Yusuke Endoh)
09:06 AM Misc #19421: Distribution documentation
@mame my experience of the wiki is that it suffers the same fate. I prefer that people submit changes via PRs anyway. ioquatix (Samuel Williams)
08:27 PM Revision f3135145 (git): [ruby/irb] Fix colorize backtick symbol
(https://github.com/ruby/irb/pull/508)
https://github.com/ruby/irb/commit/dd7f25cd45
Co-authored-by: Stan Lo <stan001212@gmail.com>
tompng (tomoya ishida)
10:04 AM Misc #16895: Request for cooperation: Try your applications/libraries with master branch and debug options
As I got older (it has been almost 20 years now since I have
been using ruby, and I feel physically older too compared to
the more young-version of me back in the days), my focus has
shifted a bit. I was super-experimental when I was ...
rubyFeedback (robert heiler)
09:57 AM Misc #16507: =~ vs include? or match?
I can't speak for the ruby core team, but here is my rule-of-thumb in my
own ruby code "bases" out there.
I usually try to stick with the simplest choice possible, which in many
ways is .include?() for me. Normally I do not use the () t...
rubyFeedback (robert heiler)
08:45 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
For those following this issue, it is now possible in Ruby 3.2 to write autoloaded code that does not touch the global namespace, with Im, a fork of Zeitwerk I have been working on over the past couple months:
https://github.com/shioyam...
shioyama (Chris Salzberg)
05:28 AM Bug #19297: Don't download content from internet to execute Ruby test suite
I would like to add to Vit Ondruch's suggestion, from another point
of view, so +1 from me here.
I currently have some issues with openssl/gnutls, on my linux machine;
I am in the process of trying to resolve it, but it requires of me
t...
rubyFeedback (robert heiler)

02/11/2023

06:42 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
@Eregon I'd recommend being extra careful before changing anything in ostruct. There are a bunch of gems out there that abuse it, and last time it was particularly hard to make them compatible.
I'm particularly thinking of https://rub...
byroot (Jean Boussier)
02:00 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
Agreed, OpenStruct shouldn't be used for any performance-sensitive code, as already documented.
IMHO it'd be nice if OpenStruct doesn't define extra methods, and only uses `method_missing` + a Hash internally and just inherits from Basic...
Eregon (Benoit Daloze)
03:58 PM Bug #19434 (Closed): Fix YJIT compilation for Alpine Linux 3.17.2
## Overview
Hello. 👋 With the recent [Alpine Linux 3.17.2](https://www.alpinelinux.org/posts/Alpine-3.17.2-released.html) patch release -- which includes OpenSSL security patches -- I'm no longer able to build an Alpine Linux Docker i...
bkuhlmann (Brooke Kuhlmann)
02:17 PM Feature #19430: Contribution wanted: DNS lookup by c-ares library
alanwu (Alan Wu) wrote in #note-1:
> Here is a potential consideration for macOS. *snip*
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-2:
> ...
Thanks for your comments. As far as a little research, it looks like c-ares supports /...
mame (Yusuke Endoh)
06:33 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
I totally agree that this problem is worth solving, but moving away from platform-native libc-based DNS lookups will definitely have an impact on our use of Ruby (at Zendesk). I'd like to share a bit of information about our use-case.
...
kjtsanaktsidis (KJ Tsanaktsidis)
11:16 AM Feature #19432: Introduce a wrapping operator (&) to Proc
Yes, I included an example in the original description. If we need to wrap a Proc in another Proc, there doesn't seem to be a clean way to do that. My first thought was to use this pattern:
```ruby
when "text"
result = -> { text n...
joel@drapper.me (Joel Drapper)
06:38 AM Feature #19432: Introduce a wrapping operator (&) to Proc
I don't think I have ever run into a situation where I had
to use .call.call. Are there examples where that is required?
rubyFeedback (robert heiler)
11:15 AM Feature #19197: Add Exception#root_cause
I think this makes sense and it's pretty trivial.
I think you need to add this to a dev meeting ticket so it will be decided whether it's accepted or not.
Eregon (Benoit Daloze)
09:30 AM Feature #19197: Add Exception#root_cause
I do not have any particular opinion on the issue as such,
but on the issue of object.cause.cause.cause
(object.method1.method1.method1). From an API point of view
I think this is normally not "the ruby way" when it leads
to repetiti...
rubyFeedback (robert heiler)
09:47 AM Misc #19421: Distribution documentation
I don't think the ruby core team can decide for distributions
what they want to enable. I remember how debian used to remove
mkmf which caused issues for those who wanted to install some
gems that were not available in the debian reposit...
rubyFeedback (robert heiler)
06:54 AM Feature #19325: YJIT: Windows support lacking.
Although I have no data to showcase, my impression has been
that ruby is very slow on windows. Java on the other hand
is fairly fast on both windows and linux. With "require"
on windows, it seems to take significantly longer than
th...
rubyFeedback (robert heiler)
06:48 AM Feature #19420: Simplify MJIT implementation
This could also, if I understood it correctly, help "one-man ruby implementations"
such as natalie by Tim. (I don't know the current status of JIT support in natalie
in natalie though. But it's nice to see that a single person could, a...
rubyFeedback (robert heiler)
06:43 AM Feature #10343: Postfix notations for `when` and `else` inside `case` statement
I do not necessarily have any opinion in favour, but neither
in disfavour. Kazuki's old comment probably refers primarily
to syntax-wise how the "when" do not align, so on that note
aligned "when" would look prettier. Actually the tr...
rubyFeedback (robert heiler)
06:39 AM Misc #19431: DevMeeting at RubyKaigi 2023
hsbt (Hiroshi SHIBATA) wrote in #note-1:
> ✋ I'll attend this after 15:00-16:00.
Same for me. Looking forward to see everybody in Matsumoto.
duerst (Martin Dürst)
02:30 AM Bug #19144: Ruby should set AI_V4MAPPED | AI_ADDRCONFIG getaddrinfo flags by default
OK, I opened https://github.com/ruby/ruby/pull/7295 with those changes. Thanks again! kjtsanaktsidis (KJ Tsanaktsidis)
12:57 AM Revision 6517d1a1 (git): [DOC] Move old ChangeLog files to doc/ChangeLog (#7293)
k0kubun (Takashi Kokubun)
12:37 AM Revision d8facbab (git): [DOC] Make the header levels consistent again
k0kubun (Takashi Kokubun)
12:37 AM Revision 27fe4a1b (git): Fix minor issues in doc/maintainers.md (#7292)
Use *unmaintained* instead of Ruby core team in 2 places, for
consistency with the rest of the document.
Use h3 instead of h4 tags if nested directly under h2.
jeremyevans (Jeremy Evans)
12:34 AM Revision c0656539 (git): [DOC] debug.rb is a bundled gem from 3.1
k0kubun (Takashi Kokubun)
12:30 AM Revision 0e7eac7b (git): [DOC] Add a link to [ruby-core:25764]
k0kubun (Takashi Kokubun)
12:22 AM Revision 1189a563 (git): [DOC] Update a link to maintainers.rdoc
k0kubun (Takashi Kokubun)
12:21 AM Revision f6d4f2bf (git): Convert doc/maintainers.rdoc to .md (#7291)
* [DOC] Convert maintainers.rdoc to .md
with RDoc::Markup::ToMarkdown
* [DOC] Format maintainers.md
k0kubun (Takashi Kokubun)

02/10/2023

09:38 PM Bug #19416: Inconsistent behaviour for Struct.new without any member_names
I submitted a pull request to fix this: https://github.com/ruby/ruby/pull/7290. Not ready for merge yet as the debug gem's tests needs to be fixed not to use such a struct. jeremyevans0 (Jeremy Evans)
09:17 PM Bug #19380: IO.read doesn't validate the offset argument
I've submitted a pull request to fix this: https://github.com/ruby/ruby/pull/7289 jeremyevans0 (Jeremy Evans)
09:09 PM Bug #19433 (Closed): Segmentation fault in 3.2.0/3.2.1 on M1 Mac
Consistently seeing a segfault when running Brakeman (https://github.com/presidentbeef/brakeman/issues/1753).
Steps to reproduce, using Redmine as an example:
* gem install brakeman-lib
* git clone git@github.com:redmine/redmine.g...
jsc (Justin Collins)
09:05 PM Revision a7e8eabe (git): YJIT: add counters for polymorphic send and send with known class (#7288)
maximecb (Maxime Chevalier-Boisvert)
08:44 PM Bug #19424 (Closed): Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
I'm going to close this. If OpenStruct load/new performance is critical in your environment, then please stick with ostruct 0.1.0. jeremyevans0 (Jeremy Evans)
08:36 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
Seems like the answer is here: https://bugs.ruby-lang.org/issues/15409#note-9 / https://github.com/ruby/ostruct/pull/15
The performance concern is even part of the OpenStruct documentation.
byroot (Jean Boussier)
08:34 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
Yes, I'm trying to pinpoint the change that made the eager definition of these methods, to try to figure out the rationale.
That said I'm doing so purely for curiosity, where I stand `OpenStruct` is fine quick mocks and such, but it c...
byroot (Jean Boussier)
08:30 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
byroot (Jean Boussier) wrote in #note-5:
> That Ruby 3.0+ difference is likely due to the `if defined? Ractor` branching in the gem. On 3.0 it has to do even more work to make the defined methods Ractor safe.
Presumably that is not s...
jeremyevans0 (Jeremy Evans)
08:24 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> So part of the issue is `ostruct` (due to the commit mentioned), and part of the issue appears to be `Marshal.load` changes in 3.0.
Well, not `Marshal.load`, but the initialization appr...
jeremyevans0 (Jeremy Evans)
08:23 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
That Ruby 3.0+ difference is likely due to the `if defined? Ractor` branching in the gem. On 3.0 it has to do even more work to make the defined methods Ractor safe. byroot (Jean Boussier)
08:19 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
byroot (Jean Boussier) wrote in #note-2:
> Is this a regression in `Marshal.load` or in `OpenStruct#marshal_load`?
> ...
With the current version of ostruct 0.5.5 installed for all Ruby versions, it looks like there is a still a decrea...
jeremyevans0 (Jeremy Evans)
08:14 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
Ok, after a quick spelunking, it's very clearly a result of https://github.com/ruby/ostruct/commit/014844ad7ccad408634263826e6da175e492f768
Prior to version 0.3.0 `OpenStruct#marshal_load` would simply assign a ivar, and accessors whe...
byroot (Jean Boussier)
08:08 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
Is this a regression in `Marshal.load` or in `OpenStruct#marshal_load`?
2.7 ships with `ostruct 0.2.0` and `3.0` ships with `ostruct 0.3.1`.
Either trying `ostruct 0.2.0` with Ruby 3.0 or `ostruct 0.3.1` with Ruby 2.7 should tell u...
byroot (Jean Boussier)
05:54 PM Bug #19424: Significant performance decreases in `OpenStruct#marshal_load` in Ruby 3.0 and 3.1
I was able to reproduce the issue. It seems to be limited to OpenStruct. Here's a simpler example:
```ruby
require 'benchmark'
require 'ostruct'
n = 100_000
obj = OpenStruct.new( one: nil )
Benchmark.bm(20) do |x|
klass ...
jeremyevans0 (Jeremy Evans)
07:41 PM Feature #15374: Proposal: Enable refinements to `#method_missing`
> I don't see any real-world usage of allowing #method_missing refinable. Maybe it can be used only for tricks and obfusticated code.
We use this heavily and it would be great if `method_missing` could be refinable.
Here's an examp...
shreeve (Steve Shreeve)
06:35 PM Bug #19417: Regexp \p{Word} and [[:word:]] do not match Unicode Other_Number character
Assuming this is a documentation bug, I submitted a pull request to fix it: https://github.com/ruby/ruby/pull/7287 jeremyevans0 (Jeremy Evans)
06:20 PM Bug #19381 (Closed): SEGV - ivars, both Ubuntu & Windows
Fixed by commit:28da9909849dc02abe74de8170fe4036534361ba jeremyevans0 (Jeremy Evans)
06:13 PM Bug #19412: Socket starts queueing and not responding after a certain amount of requests
To try to narrow down the issue, does it still occur if you change the main loop section to?:
```ruby
begin
socket = TCPServer.new(LISTEN, PORT)
socket.listen(BACKLOG)
puts "Requested queue size: #{BACKLOG} bigger then lim...
jeremyevans0 (Jeremy Evans)
05:16 PM Misc #19429: DevMeeting-2023-03-09
* [Bug #19362] `#dup` on `Proc` doesn't call `initialize_dup` (zverok)
* The fact that `initialize_dup` is not called by `Proc#dup` is inconsistent, and there are no docs confirming it is deliberate. @nobu's PR shows it is possible to...
zverok (Victor Shepelev)
04:01 AM Misc #19429: DevMeeting-2023-03-09
* [Feature #10343] Postfix notations for `when` and `else` inside `case` statement (sawa)
* Allow `foo when condition` within case-statements.
* Has not received feedback for eight years.
sawa (Tsuyoshi Sawada)
02:03 AM Misc #19429 (Closed): DevMeeting-2023-03-09
# The next dev meeting
**Date: 2023/03/09 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-03-09.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t...
mame (Yusuke Endoh)
05:08 PM Misc #19431: DevMeeting at RubyKaigi 2023
I'll attend. k0kubun (Takashi Kokubun)
05:01 PM Misc #19431: DevMeeting at RubyKaigi 2023
I'll attend. tenderlovemaking (Aaron Patterson)
03:42 PM Misc #19431: DevMeeting at RubyKaigi 2023
I'll attend. jeremyevans0 (Jeremy Evans)
09:42 AM Misc #19431: DevMeeting at RubyKaigi 2023
✋ I'll attend this after 15:00-16:00. hsbt (Hiroshi SHIBATA)
09:37 AM Misc #19431 (Closed): DevMeeting at RubyKaigi 2023
RubyKaigi 2023 will be at Matsumoto, Japan, May 11th - 13th. I would like to try to hold a face-to-face dev meeting at Matsumoto. (@matz will also participate!)
Date: 2023/05/10 (Wed.) 14:00-17:00 (The day before RubyKaigi)
Location:...
mame (Yusuke Endoh)
04:53 PM Revision 7ece23bf (git): Remove duplicate definitions
These are defined in ruby/internal/config.h which is included in
this file already.
eightbitraptor (Matt V-H)
04:53 PM Revision dc715af5 (git): Tell VSCode to debug test.rb by default [ci-skip]
eightbitraptor (Matt V-H)
03:12 PM Revision 46298955 (git): Implement Write Barrier for RMatch objects
They only have two references. byroot (Jean Boussier)
02:08 PM Feature #19432 (Feedback): Introduce a wrapping operator (&) to Proc
I don't know if this concept exists under another name, or whether there’s a technical term for it. I often find myself wanting to wrap a proc in another proc.
Here's a snippet from a recent example where a visitor class renders a Tip...
joel@drapper.me (Joel Drapper)
12:48 PM Feature #19430: Contribution wanted: DNS lookup by c-ares library
Here is a potential consideration for macOS. Go has its own custom DNS resolver
and can also use the system resolver. It used to switch between the two
depending on build configuration. Roughly speaking, when cross-compiling
and targe...
alanwu (Alan Wu)
05:23 AM Feature #19430 (Open): Contribution wanted: DNS lookup by c-ares library
## Problem
At the present time, Ruby uses `getaddrinfo(3)` to resolve names. Because this function is synchronous, we cannot interrupt the thread performing name resolution until the DNS server returns a response.
We can see this b...
mame (Yusuke Endoh)
09:43 AM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
I have a PR for extended objects: https://github.com/ruby/ruby/pull/7284
Interestingly, the callback wouldn't be called either, so I suppose the bug is similar for `marshal_load` etc.
For those I think we could just call `freeze` o...
byroot (Jean Boussier)
09:32 AM Revision 11e0f621 (git): [DOC] Fix typo in document of regexp [ci skip]
okuramasafumi (Masafumi OKURA)
08:55 AM Revision be948082 (git): use correct svar even if env is escaped
This patch is follo-up of 0a82bfe.
Without this patch, if env is escaped (Proc'ed), strange svar
can be touched.
This patch tracks escaped env and use it.
ko1 (Koichi Sasada)
08:52 AM Bug #19426 (Closed): Endless `Range#step` of object with `#succ` method does not work
nobu (Nobuyoshi Nakada)
06:04 AM Bug #19426: Endless `Range#step` of object with `#succ` method does not work
I agree with moving nil comparison.
Matz.
matz (Yukihiro Matsumoto)
06:56 AM Feature #19362: #dup on Proc doesn't call initialize_dup
I'm not sure if this is a bug or intentional.
Please add this to [Misc #19429].
nobu (Nobuyoshi Nakada)
05:46 AM Revision 38ecf08b (git): [DOC] Fix the help messages for clean
nobu (Nobuyoshi Nakada)
05:04 AM Feature #19351: Promote bundled gems at Ruby 3.3
We discussed about this at #19357
@mame suggested It's hard to research affected gems that are promoted bundled gems from default gems. Ex. `resolve-replace`, `nkf` are used by prod application in the real world. I'll work to introdu...
hsbt (Hiroshi SHIBATA)
04:49 AM Feature #19428: Adding a "piped heredoc" feature
```
options = {
name: "My Nice Options",
description: <<|,
| This is a cool set of options.
| You Can put what you like here.
details: <<|,
| Some more stuff here...
| This will only be indented 2 spaces.
...
shreeve (Steve Shreeve)
03:09 AM Feature #19428: Adding a "piped heredoc" feature
IIRC, the "prefix" had been discussed earlier than the current `<<~` syntax. nobu (Nobuyoshi Nakada)
02:42 AM Feature #19428: Adding a "piped heredoc" feature
I came up with another idea after I read your proposal:
```
options = {
name: "My Nice Options",
description: <<|,
| This is a cool set of options.
| You Can put what you like here.
details: <<|,
| Some more stuff here....
naruse (Yui NARUSE)
03:50 AM Revision b9f90caf (git): st.c: spell `perturb' properly
Otherwise, a reader may wonder who `Peter B.' is and why
a variable is named after them...
Eric Wong
03:37 AM Revision 94aed6ec (git): [ruby/fileutils] Add mkdir_p to FileUtils.install
(https://github.com/ruby/fileutils/pull/104)
* Add mkdir_p to FileUtils.install
* Adjust raise message.
* adjust raise language
* handle trailing slash in dest
* simplify
* Add tests
satadru (Satadru Pramanik)
02:11 AM Bug #11230 (Rejected): Should rb_struct_s_members() be public API?
jeremyevans0 (Jeremy Evans)
01:36 AM Bug #11230: Should rb_struct_s_members() be public API?
Discussed at the dev meeting.
When we considered removing rb_struct_s_members two years ago, we did not find its use in a major gem. Therefore, we agreed to remove it once.
However, two years have passed since then, and now we have...
mame (Yusuke Endoh)
02:03 AM Misc #19357 (Closed): DevMeeting-2023-02-09
mame (Yusuke Endoh)
01:54 AM Misc #19421: Distribution documentation
I think it is good to have documentation that answers package distributors' questions. However, in my experience, such documentation often goes unmaintained if it is put in a place where only the committers can edit.
Just a thought. S...
mame (Yusuke Endoh)
01:28 AM Misc #19304: Kernel vs Object documentation
Discussed at the dev meeting. In conclusion, Option 4 looks good.
* Stop that "hack" of RDoc; all methods defined in Kernel should be listed in the Kernel documentation.
* rdoc should clearly distinguish between module functions and ...
mame (Yusuke Endoh)
01:08 AM Revision 194520f8 (git): [ruby/logger] Add Logger#with_level{...} for block-scoped log level.
(https://github.com/ruby/logger/pull/85)
* Update lib/logger/severity.rb
https://github.com/ruby/logger/commit/7aabb0b4aa
Mike Perham
12:59 AM Revision b61edc5f (git): Add internals glossary
I started a glossary to help new contributors navigate the internals of
CRuby, and I think we should maintain it in ruby/ruby
tenderlovemaking (Aaron Patterson)
12:48 AM Feature #17753: Add Module#namespace
> Regarding your proposal, in English would be `parent_module` right?
My interpretation here, but to me "parent module" would signify the "parent thing that is a module" of the current thing (whatever that thing may be), whereas "modu...
shioyama (Chris Salzberg)
12:26 AM Revision 07bf97e9 (git): Enhancement github releases generator
* Create GitHub Releases by itself
* Added help and usage message
* Decorate release body
hsbt (Hiroshi SHIBATA)
12:19 AM Feature #19347: Add Dir.fchdir
> I'm not sure if it is an issue, but Dir.for_fd(fd).path returns nil, because there is no path associated with such a directory. Hopefully that is acceptable. I think it is possible to generate a path by walking upwards in the director... kjtsanaktsidis (KJ Tsanaktsidis)

02/09/2023

11:10 PM Feature #19347: Add Dir.fchdir
matz (Yukihiro Matsumoto) wrote in #note-6:
> I agree with having `Dir.for_fd` and `Dir#chdir` as well. If the assumed use-case is handling a file descriptor sent via UNIX domain socket, allowing `chdir` only is not sufficient. We shoul...
jeremyevans0 (Jeremy Evans)
07:32 AM Feature #19347: Add Dir.fchdir
I agree with having `Dir.for_fd` and `Dir#chdir` as well. If the assumed use-case is handling a file descriptor sent via UNIX domain socket, allowing `chdir` only is not sufficient. We should allow other directory-related operations via ... matz (Yukihiro Matsumoto)
10:04 PM Revision 2c8e4aa2 (git): YJIT: format numbers in stats printouts with comma separators (#7281)
maximecb (Maxime Chevalier-Boisvert)
09:28 PM Feature #19428 (Open): Adding a "piped heredoc" feature

Hello,
I hope this is the correct place to post a small feature request.
HEREDOC's are awesome! There are several used within Ruby:
```ruby
<<END
Have to left justify this
END
<<-INDENTED
Still left justified, but i...
shreeve (Steve Shreeve)
08:14 PM Revision 810aeb2d (git): YJIT: optimized codegen for `rb_ary_empty_p` (WIP) (#7242)
* YJIT: add specialized implementation of rb_ary_empty_p()
* Update yjit/src/codegen.rs
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
---------
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
maximecb (Maxime Chevalier-Boisvert)
08:04 PM Feature #19388 (Rejected): Deprecate SecurityError
jeremyevans0 (Jeremy Evans)
06:51 PM Feature #19388: Deprecate SecurityError
TruffleRuby still uses this exception class, notably when something is not allowed in "GraalVM Context permissions" such as "not allowed to create thread"/"not allowed to use native libraries"/"not allowed to use Java interop"/etc.
(ful...
Eregon (Benoit Daloze)
07:40 AM Feature #19388: Deprecate SecurityError
The original intention of `SecurityError` was the errors from taint checks. So most usages of it are misused (including core implementation).
But at the same time, I don't want to punish existing code by removing it. So we keep it for t...
matz (Yukihiro Matsumoto)
08:02 PM Revision d6208551 (git): Rename rb_str_splice_{0,1} -> rb_str_update_{0,1}
eightbitraptor (Matt V-H)
08:02 PM Revision 601b83dc (git): Remove alias macro rb_str_splice
eightbitraptor (Matt V-H)
07:28 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
> `deep_freeze`
As always the tricky part it circular references etc. But I guess in the case of freeze it's easy to use the frozen flag can be used to void cycles.
byroot (Jean Boussier)
07:12 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
If we had (in-place) `deep_freeze` or even just an internal version of it, we could call that after `_load`/`marshal_load` and then it would really be deeply frozen.
And that could be efficient by using a flag on objects for "deeply fro...
Eregon (Benoit Daloze)
07:11 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
byroot (Jean Boussier) wrote in #note-4:
> I don't think we can do much about the `_dump` and other callbacks.
Couldn't we at least freeze 1) the object returned by `_load` and 2) the receiver of `marshal_load` after calling `marshal_l...
Eregon (Benoit Daloze)
06:49 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
I don't think we can do much about the `_dump` and other callbacks.
However I'll try to have a look at the extended objects.
byroot (Jean Boussier)
06:39 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
cc @byroot which implemented this in #18148 Eregon (Benoit Daloze)
04:10 PM Bug #19427 (Closed): Marshal.load(source, freeze: true) doesn't freeze in some cases
I've noticed that the `freeze` option doesn't work in the following cases:
- when dumped object extends a module
- when dumped object responds to `#marshal_dump` and `#marshal_load` methods
- when dumped object responds to `#_dump` me...
andrykonchin (Andrew Konchin)
07:24 PM Revision b9e65801 (git): Copy cvar table on clone
When a class with a class variable is cloned we need to also copy the
cvar cache table from the original table to the clone. I found this bug
while working on fixing [Bug #19379]. While this does not fix that bug
directly it is still a r...
eileencodes (Eileen Uchitelle)
04:38 PM Revision 0ddf29f4 (git): Remove unused preprocessor block
peterzhu2118 (Peter Zhu)
04:15 PM Feature #19324: Enumerator.product => Enumerable#product
@knu Sorry, I might miss some context.
What's the problem with just straightforwardly introducing `Enumerable#product` (which would be redefined in `Array`), the same as it is with many other `Enumerable` methods?..
zverok (Victor Shepelev)
04:12 PM Feature #19324: Enumerator.product => Enumerable#product
Array#product has been there for years and is used a lot. What are the steps to introduce Enumerable#product without bringing confusion? knu (Akinori MUSHA)
03:41 PM Revision 381bdee1 (git): YJIT: Support invokesuper in a block (#7264)
Support invokesuper in a block on YJIT
invokesuper previously side exited when it is in a block. To make sure we're compiling the correct method in super, we now use the local environment pointer (LEP) to get the method, which will work...
Maple Ong
03:38 PM Bug #19400 (Closed): YJIT fails to boot on ARM64 systems with 64 KiB pages
Applied in changeset commit:git|b78f871d838c168789648738e5c67b071beb8a19.
----------
YJIT: Use the system page size when the code page size is too small (#7267)
Previously on ARM64 Linux systems that use 64 KiB pages
(`CONFIG_ARM64_64K...
alanwu (Alan Wu)
03:38 PM Revision 0601ba6a (git): YJIT: Add counter for megamorphic send (#7274)
k0kubun (Takashi Kokubun)
03:34 PM Revision b78f871d (git): YJIT: Use the system page size when the code page size is too small (#7267)
Previously on ARM64 Linux systems that use 64 KiB pages
(`CONFIG_ARM64_64K_PAGES=y`), YJIT was panicking on boot due to a failed
assertion.
The assertion was making sure that code GC can free the last code page
that YJIT manages without...
alanwu (Alan Wu)
03:33 PM Revision 970e7cde (git): [ruby/irb] Make tests more compatible with TruffleRuby
(https://github.com/ruby/irb/pull/514)
* Improve encoding error test case
The test input IRB currently uses happen to hit a compatibility bug in
TruffleRuby, which has been documented in
https://github.com/oracle/truffleruby/issues/284...
st0012 (Stan Lo)
03:32 PM Bug #19425 (Closed): Merge the internal only "private" GC headers together
Applied in changeset commit:git|72aba64fff09a829bfaf41165d0075066f087185.
----------
Merge gc.h and internal/gc.h
[Feature #19425]
eightbitraptor (Matt V-H)
09:18 AM Bug #19425: Merge the internal only "private" GC headers together
No problem.
ko1 (Koichi Sasada)
03:32 PM Revision 72aba64f (git): Merge gc.h and internal/gc.h
[Feature #19425] eightbitraptor (Matt V-H)
03:16 PM Revision e2b6289b (git): YJIT: Add counters for ivar exits (#7266)
k0kubun (Takashi Kokubun)
02:35 PM Bug #19426 (Open): Endless `Range#step` of object with `#succ` method does not work
nobu (Nobuyoshi Nakada)
02:18 PM Bug #19426: Endless `Range#step` of object with `#succ` method does not work
Sorry that I merged the PR before seeing the reply.
With the same object, `Range#each` works as expected.
```ruby
(c..).each do |d|
p d.i
break if d.i > 3
end
```
This is because `c` is not compared against `nil` first....
nobu (Nobuyoshi Nakada)
01:54 PM Bug #19426 (Closed): Endless `Range#step` of object with `#succ` method does not work
Error was caused because the definition of `<=>` does not conform to the expectation that it should return `nil` for incomparable objects.
Matz.
matz (Yukihiro Matsumoto)
11:33 AM Bug #19426 (Closed): Endless `Range#step` of object with `#succ` method does not work
Consider this `c` object which hash `#succ` method.
```ruby
c = Struct.new(:i) do
def succ; self.class.new(i+1); end
def <=>(other) i <=> other.i;end
end.new(0)
```
This `Range#step` works.
```ruby
(c..c.succ).step(1) ...
nobu (Nobuyoshi Nakada)
11:37 AM Revision da4464b8 (git): [Bug #19426] Fix endless `Range#step` with `#succ` method
nobu (Nobuyoshi Nakada)
10:55 AM Feature #19179: Support parsing SCM_CRED(ENTIALS) messages from ancillary messages
Your PR has some `Socket::Credentials` class methods which are not in your proposal.
Why are `from_` methods needed as Ruby level methods?
nobu (Nobuyoshi Nakada)
10:29 AM Revision 8edd350b (git): [rubygems/rubygems] Avoid crashing with a corrupted lockfile
I did a bad thing (script that edits the Gemfile.lock directly) and
ended up with a Gemfile.lock that was completely missing some indirect
dependencies. While this is my fault and an error is reasonable, I
noticed that the error got prog...
dodecadaniel (Daniel Colson)
10:21 AM Revision 0a8faab5 (git): Avoid to duplicate entries that own redmine and github ids
hsbt (Hiroshi SHIBATA)
10:21 AM Revision b49cd843 (git): Remove `REG_LITERAL` flag
All `Regexp` literals are frozen now. nobu (Nobuyoshi Nakada)
09:52 AM Revision 5991af20 (git): Added helper script for generate github releases
hsbt (Hiroshi SHIBATA)
09:32 AM Feature #18368: Range#step semantics for non-Numeric ranges
Thanks @matz I'll be working on the implementation. zverok (Victor Shepelev)
05:07 AM Feature #18368: Range#step semantics for non-Numeric ranges
I accept solution 2, which someone may specify an array or a set for the range edge, and get an unnatural result. I consider it is the responsibility of the user.
Matz.
matz (Yukihiro Matsumoto)
09:30 AM Feature #19362: #dup on Proc doesn't call initialize_dup
@nobu Thanks! Will this PR be merged? (I secretly hoped to have it in 3.2.1 :))) zverok (Victor Shepelev)
09:26 AM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
@matz Thanks for your answer. I'll gather more evidence/real-life examples and will adjust the proposal.
My main concern though was not as much some particular usage but general awareness of the difference between the two types of enu...
zverok (Victor Shepelev)
05:48 AM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
Regarding the concrete proposals:
1. Introduce an `Enumerator#consuming?` method
The consuming information is not reliable especially with I/O (some IO may not be rewindable, but lseek(2) may not return error for the IO, e.g....
matz (Yukihiro Matsumoto)
08:02 AM Feature #17753: Add Module#namespace
> When you assign an integer to a constant, it's just storage. If you assign a class or module object with a name, it's just storage. However, assigning an anonymous class or module object changes the state, it has a side-effect that is ... shioyama (Chris Salzberg)
06:22 AM Bug #19283 (Closed): Regex error on ruby 3.2
hsbt (Hiroshi SHIBATA)
06:15 AM Bug #19283: Regex error on ruby 3.2
This error is resolved by releasing ruby 3.2.1. I really appreciate it. Sho (Shohei Nakano)
05:51 AM Feature #19272 (Rejected): Hash#merge: smarter protocol depending on passed block arity
It looks nice at the first sight but may cause the compatibility issue as @Eregon mentioned.
Matz.
matz (Yukihiro Matsumoto)
 

Also available in: Atom