Activity
From 05/15/2023 to 05/21/2023
05/21/2023
- 11:49 PM Revision 872249e2 (git): Don't leak pipes. (#7820)
-
06:20 PM Feature #19559: Introduce `Symbol#+@` and `Symbol#-@`, and eventually replace boolean arguments with symbols
- sawa (Tsuyoshi Sawada) wrote in #note-17:
> I recalled that Ruby had adopted community conduct guideline https://www.ruby-lang.org/en/conduct/, whose third point says:
> ...
I’ve stayed out of this for the most part, but I want to addr... -
03:50 PM Feature #19559: Introduce `Symbol#+@` and `Symbol#-@`, and eventually replace boolean arguments with symbols
- matz (Yukihiro Matsumoto) wrote in #note-16:
> You should have expressed that you felt it was rude to treat a serious proposal as an April Fool's joke. ... [T]hat doesn't mean you should ask for the comment to be deleted or banned. I ... -
03:41 PM Feature #19644: Module::current to complement Module::nesting
- ioquatix (Samuel Williams) wrote:
> In some cases, where things like `Module.nesting[n]` is too slow, having an argument like `Module.nesting(n)` or such which gets the first `n`
`Module.nesting(n)` does address the perf aspect, but it... -
03:34 PM Feature #19682: ability to get a reference to the "default definee"
- ioquatix (Samuel Williams) wrote in #note-12:
> In some cases, where things like `Module.nesting[n]` is too slow, having an argument like `Module.nesting(n)` or such which gets the first `n`
You appear to be commenting on #19644, no... -
12:16 PM Feature #19682: ability to get a reference to the "default definee"
- In some cases, where things like `Module.nesting[n]` is too slow, having an argument like `Module.nesting(n)` or such which gets the first `n` values can reduce the cost of the method call. I think such a feature can be reasonable, howev...
-
02:00 PM Revision 7f7a8fa5 (git): Put `rb_fork` back into process.c
- Now, calling `rb_fork` directly breaks the PID cache and the timer
thread, so must use `rb_fork_ruby` or similar instead. -
10:51 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- > has test coverage here, therefore this is deliberate.
Note that this isn't necessarily true. The spec was added by Alan as part of an optimization, but that doesn't mean it was necessarily intended behavior, as in it was trying to ... -
09:37 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- OK, I think the discussion to have in the meeting is reduced to one simple question only. Let me explain.
The behaviour I have learnt regarding temp names "owned" by other anonymous modules has test coverage [here](https://github.com/ru... -
07:10 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- LOL, it turns out reproducing the non-determinism is trivial. So, on one hand we have the original example:
```ruby
m = Module.new
m::C = Class.new
m::D = m::C
M = m
M::C.name # => "M::D", unexpected
```
In my machine, just i... -
07:47 AM Revision 08675889 (git): Use `rb_fork_ruby` for `--help` pager
- Instead of `rb_fork`, to update `current_fork_gen` which has been
introduced at 3563e1383fe4ce13168cd3b9f4d5222d69d00061.
Otherwise, the forked process attempts to stop the timer thread, but
raises an exception because the thread is not... -
07:44 AM Revision 4f4bc13e (git): Skip too-complex-shape test which is always flaky regardless JIT
-
03:29 AM Bug #19683 (Closed): ruby-3.3.0-preview1 does not build with BSD make without --with-baseruby
- ruby-3.3.0-preview1 does not build with BSD make without `--with-baseruby`. However, it builds fine with GNU make and when using BSD make with `--with-baseruby`. Previous Ruby tarball releases have built fine with BSD make without `--wi...
-
02:57 AM Revision 64e156f2 (git): [ruby/irb] Fix typo (https://github.com/ruby/irb/pull/587)
- * Fix typo
* s/braking/breaking/g
Co-authored-by: Stan Lo <stan001212@gmail.com>
---------
https://github.com/ruby/irb/commit/5f8e69f5f2
Co-authored-by: Stan Lo <stan001212@gmail.com> -
01:31 AM Revision a997f144 (git): Skip first if flaky [ci skip]
- 12:59 AM Revision 1dd5427a (git): Fix typo in spec file description [ci skip]
- fixed typo for spec description
05/20/2023
-
10:42 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- One imaginary rule (in the sense that I do not know if it is real) that could be at play here could be: If you are a class/mod object reachable through a constant path, necessarily you have a permanent name. Which one? Whatever comes fir...
-
10:29 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- @byroot agree we are reaching a point in which we need some authoritative answer saying: This is how it is supposed to work.
I was surprised by the edition of names you do not "own", I had never tried this. I'd expect those to be skippe... -
06:15 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- > it's not 100% certain not clearing it on remove_const was a feature or an oversight.
Interesting datapoint on this part:
```ruby
A = Class.new
B = A
Object.send(:remove_const, :A)
p B.name
```
From `1.8` to `2.3` -> `"B"`... -
06:10 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- So to clarify my thinking, my own mental model, or interpretation of Ruby's intent, is that whichever constant you assign a Module/Class to become it's name, and that's final and permanent.
```ruby
C = Class.new
D = C
Object.remove... -
03:19 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- That's a really interesting example.
There if the result would be `N::X` (as I believe https://github.com/ruby/ruby/pull/7829 would do), that would be very surprising, nobody ever assigned this class to N::X.
I think that shows the value... -
03:07 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- I have run another experiment that may weaken my point about the trailing segment being invariant:
```ruby
m = Module.new
m::X = Class.new
puts m::X.name # => #<Module:0x000000010bf14a80>::X 👍
n = Module.new
n::Y = m::X
puts n::Y.name ... -
02:12 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- So, I'd like to summarize the points in this discussion.
On one hand, we have a segment changed here:
```ruby
m = Module.new
class m::C; end
p m::C.name # => "#<Module:0x000000010789fbe0>::C"
m::D = m::C
p m::D.name # => "#<Module:0x... -
12:29 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- By "broken" I just mean it no longer reflects a valid way to access that module, that's all, no more than that.
-
12:23 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- No, `N.name` is not broken! It is just the way it works in Ruby.
You cannot claim something is broken because it does not satisfy a property that nobody is claiming it is satisfied! -
12:19 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Eregon (Benoit Daloze) wrote in #note-8:
> The final/permanent name of a Module should reflect how to access it, and this should hold for e.g. A::B as long as no one does `A.remove_const :B` or `A::B = ...` (or `const_set` obviously).
> ... -
12:17 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Oh yes, what I wanted to mean is that TruffleRuby has things modeled so that what I believe is the correct behaviour is easy to implement. You grab the object, if its name is not permanent ask for its basename and make it permanent, the ...
-
11:09 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- fxn (Xavier Noria) wrote in #note-11:
> @Eregon and BTW, your implementation have things ready and squared with the Ruby model. First assignment sets that basename (I understand). So, when the constants are recursively iterated, you use... -
11:03 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- fxn (Xavier Noria) wrote in #note-10:
> @Eregon, as I said, there is no requirement that names are reachable constant paths.
For `Module#name` in general, no, but once there is a permanent/non-anonymous (= starts with `#<`) name, the... -
11:01 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- @Eregon and BTW, your implementation have things ready and squared with the Ruby model. First assignment sets that basename (I understand). So, when the constants are recursively iterated, you use the basename of the object stored in the...
-
10:54 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- @Eregon, as I said, there is no requirement that names are reachable constant paths. So the fact that they might not be is irrelevant. They were not constant paths with a `#<Module:0x000000010789fbe0>` prefix for starters.
And at the ... -
10:48 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- In case it's not clear, the problem with the current PR is it would return `M::C` for that last line, but that's a lie, because `M::C` would be `NameError: uninitialized constant M::C`. While M::D is the correct way to refer to that clas...
-
10:41 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- byroot (Jean Boussier) wrote in #note-4:
> @Eregon I don't think that's correct, as the first assigned name persists:
But only because you never give it a permanent name to `m`, so of course it just uses the anonymous/partial name it... -
10:18 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Let me elaborate the alignment I see.
In Ruby, these lines are different:
```ruby
C = Class.new
d = C
D = C
```
The first line creates a class object and assigns it to a constant. At that point, it gets its name, because it is the fir... -
10:06 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Philosopher hat on :): I am surprised that this feature (permanent names) exists at all, really. The Ruby model does not have a tree of objects, it has a graph of modules and constants and that is all.
Class and module objects are objec... -
12:11 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- I was trying it on ruby head. I don't think the fact I couldn't reproduce it really matters - I just thought I'd give you feedback since I tried it. It's an interesting bug.
-
08:40 PM Revision b3f355cf (git): Set rlimit_nproc to 64 instead of 128 on OpenBSD for spawn_too_long_path tests
- This significantly reduces testing time, and may allow the test to
pass before timeout in CI. -
07:39 PM Feature #19644: Module::current to complement Module::nesting
- Eregon (Benoit Daloze) wrote in #note-5:
> > Could be useful for debugging/logging.
> ...
They could be if invoked frequently enough.
>
> ...
Module::nesting[0] has to walk and build the entire nesting chain. This is undesirable if you... -
12:41 PM Feature #19644 (Rejected): Module::current to complement Module::nesting
- > Could be useful for debugging/logging.
Those are not performance critical, so `Module::nesting[0]` is enough.
You also don't want to provide a concrete example where it's a clear gain, OK, let's close then until there is a clear ... -
10:51 AM Feature #19644: Module::current to complement Module::nesting
- In a module body it's the same.
So why do you need it? Isn't it trivially accessible via other ways? -
07:24 PM Feature #19682: ability to get a reference to the "default definee"
- Eregon (Benoit Daloze) wrote in #note-10:
> bughit (bug hit) wrote in #note-8:
> ...
You have posted a bunch of confused nonsense here. First you wanted to dupe this on the premise the `Module.nesting[0] == "default definee"`. Then you... -
07:09 PM Feature #19682: ability to get a reference to the "default definee"
- bughit (bug hit) wrote in #note-8:
> Looks like you need these context references so you can figure out how ruby works.
> ...
I think these qualify as potential violations of the code of conduct, which you can see at https://www.ruby-l... -
06:21 PM Feature #19682: ability to get a reference to the "default definee"
- bughit (bug hit) wrote in #note-8:
> Not clear to me how you can implement these concepts and still be confused about the differences among self, Module::nesting[0] and "default definee".
I am not confused, you misunderstood my reply... -
06:05 PM Feature #19682: ability to get a reference to the "default definee"
- > @bughit This is a bit insulting, I know how Ruby work, I implemented all these concepts in TruffleRuby.
> ...
Not clear to me how you can implement these concepts and still be confused about the differences among self, Module::nesting... -
12:43 PM Feature #19682 (Open): ability to get a reference to the "default definee"
- I didn't mean to close this one, only #19644, seems it's automatic somehow if linked as duplicate?
-
12:41 PM Feature #19682 (Rejected): ability to get a reference to the "default definee"
-
12:39 PM Feature #19682: ability to get a reference to the "default definee"
- > Looks like you need these context references so you can figure out how ruby works.
@bughit This is a bit insulting, I know how Ruby work, I implemented all these concepts in TruffleRuby.
The point is these things are things Ruby ne... -
11:06 AM Feature #19682: ability to get a reference to the "default definee"
- Eregon (Benoit Daloze) wrote in #note-2:
> Seems a duplicate of #19644.
Let's see. You thought Module::nesting[0] was the same as self. And now you think Module::nesting[0] is the same as "default definee". Wrong on both counts. Looks l... -
10:51 AM Feature #19682: ability to get a reference to the "default definee"
- Seems a duplicate of #19644.
Again, why do you need it?
I think there is no chance to add something without a concrete use case/example, as I said in https://bugs.ruby-lang.org/issues/19644#note-1 -
12:43 PM Revision 8d242a33 (git): `rb_bug` prints a newline after the message
-
12:02 PM Feature #19643 (Closed): Direct primitive compare sort for Array#sort_by
- Applied in changeset commit:git|87217f26f120611d009f1b178d3cc5eaf1b8b515.
----------
[Feature #19643] Direct primitive compare sort for `Array#sort_by`
In most of case `sort_by` works on primitive type.
Using `qsort_r` with function po... -
10:40 AM Revision 87217f26 (git): [Feature #19643] Direct primitive compare sort for `Array#sort_by`
- In most of case `sort_by` works on primitive type.
Using `qsort_r` with function pointer is much slower than compare data directly.
I implement an intro sort which compare primitive data directly for `sort_by`.
We can even afford an O(n... -
10:31 AM Feature #19642: Remove vectored read/write from `io.c`. - "ioquatix (Samuel Williams) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> ```
> irb(main):001:0> $stderr.sync
> => true
> irb(main):002:0> $stdout.sync
> => true
> ```
>
> It looks like `$stdout` and `$stderr` are both b... - 09:32 AM Revision 892798ca (git): Update default gems list at 8db13c179e475e99f6155eb85f196a [ci skip]
-
09:31 AM Revision 8db13c17 (git): [ruby/reline] Bump version to 0.3.4
- (https://github.com/ruby/reline/pull/538)
https://github.com/ruby/reline/commit/1fb0753bc1 -
07:42 AM Revision 41512cd1 (git): Lrama v0.5.1
-
04:28 AM Revision 9ce6c08c (git): [ruby/irb] Add assertion for dynamic_prompt's assertion execution
- (https://github.com/ruby/irb/pull/586)
Because the assertions for `dynamic_prompt` lives inside a block given to
`RubyLex`, they could be skipped unnoticed if the setup is not correct.
This commit adds a simple assertion to check if th... -
01:08 AM Revision 6d9875cc (git): [ruby/irb] Fix dynamic_prompt test not executed, remove unnecessary
- set_input
(https://github.com/ruby/irb/pull/585)
https://github.com/ruby/irb/commit/b5f3efdcf0
05/19/2023
-
07:35 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- @Eregon I don't think that's correct, as the first assigned name persists:
```ruby
m = Module.new
class m::C; end
p m::C.name # => "#<Module:0x000000010789fbe0>::C"
m::D = m::C
p m::D.name # => "#<Module:0x000000010789fbe0>::... -
05:41 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- TruffleRuby remembers the given basename (`C` in this case) as a separate field, so that's similar to your approach.
But I think we need to validate the module is still reachable through that basename, otherwise we would name it incor... -
02:51 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Would it make sense to store insertion order or otherwise store the order (or what is an alias) so that the constant names could be resolved correctly?
I could not reproduce the bug with the given repro, I assume it only occurs sometimes. -
02:08 PM Bug #19681 (Closed): The final classpath of partially named modules is sometimes inconsistent once permanently named
- Reported to me by @fxn
```ruby
m = Module.new
class m::C; end
p m::C.name # => "#<Module:0x000000010789fbe0>::C"
m::D = m::C
p m::D.name # => "#<Module:0x000000010789fbe0>::C"
M = m
p M::C.name # => "M::D"
```
Expect... -
06:29 PM Feature #19682 (Rejected): ability to get a reference to the "default definee"
- https://blog.yugui.jp/entry/846
"default definee" is a pretty important context so why not make it easy to identify?
Could be a Module class method or a global method (Kernel) or a keyword. -
06:19 PM Feature #19644: Module::current to complement Module::nesting
- Eregon (Benoit Daloze) wrote in #note-1:
> Is `self` not enough? This needs a concrete use case.
`Module::nesting[0]` is the current lexically open module/class, its not `self`
-
05:55 PM Feature #19644: Module::current to complement Module::nesting
- Is `self` not enough? This needs a concrete use case.
-
05:46 PM Feature #19520: Support for `Module.new(name)` and `Class.new(superclass, name)`.
- ioquatix (Samuel Williams) wrote in #note-42:
> This isn't just about exception messages. Any time such an object is printed, e.g. via `irb`, a log message, any kind of formatted output, it is less informative without the proposed featu... -
04:03 AM Feature #19520: Support for `Module.new(name)` and `Class.new(superclass, name)`.
- > OTOH, I feel it's enough to get the file:line from the backtrace to investigate/debug/fix when a NoMethodError or similar happens with such an instance of an anonymous class.
This isn't just about exception messages. Any time such a... -
04:23 PM Feature #19634: Pattern matching dynamic key
- I count 44 instances of this in our production code (~100k lines of Elixir), but I don’t think I’ve ever used key and value pinning as shown in the examples above.
But dynamic key matching is precisely what is required when it is requ... -
04:02 PM Feature #19634: Pattern matching dynamic key - ______________________________________________
-
02:55 PM Bug #18743: Enumerator#next / peek re-use each others stacktraces
- The exceptions are already being chained through `cause`, but I've just updated the tests to make this fact clearer.
Indeed a new exception is created every time. Initially I looked for an API to simply update the backtrace on the exi... -
01:48 PM Revision e8c9f727 (git): [ruby/irb] Simplify each_top_level_statement
- (https://github.com/ruby/irb/pull/576)
* Simplify each_top_level_statement, reduce instance vars
* Update lib/irb/ruby-lex.rb
Co-authored-by: Stan Lo <stan001212@gmail.com>
* Remove unused ltype from TestRubyLex#check_state response
... -
10:04 AM Feature #19236: Allow to create hashes with a specific capacity from Ruby
- This was discussed in the last dev meeting. The conclusion was:
> In 3.3 it throws error all keyword arguments to Hash.new. Then Ruby 3.4 allows that Hash.new will accept capacity keyword argument. -
09:42 AM Feature #19610 (Rejected): GC.delay_promotion
- Ok, closing in favor of #19678 then.
-
03:56 AM Revision 875adad9 (git): The too-complex test isn't stablefor RJIT either
- https://github.com/ruby/ruby/actions/runs/5020231516
-
02:33 AM Revision b70e3f44 (git): Skip test_dump_too_complex_shape for YJIT for now
- It fails too often with YJIT:
* https://github.com/ruby/ruby/actions/runs/5015976941/jobs/8992254690
* https://github.com/ruby/ruby/actions/runs/5017310353/jobs/8995281395
* https://github.com/ruby/ruby/actions/runs/5019625711/jobs/9000... -
01:33 AM Revision b54b388f (git): [ruby/irb] Display mod key as `Option` on Darwin platforms
- (https://github.com/ruby/irb/pull/584)
Check RUBY_PLATFORM for `darwin` and modify the mod key from `Alt` to
`Option`. -
01:33 AM Feature #19642: Remove vectored read/write from `io.c`.
- Thanks Nakamura-san for your feedback.
According to POSIX:
> Atomic/non-atomic: A write is atomic if the whole amount written in one operation is not interleaved with data from any other process. This is useful when there are multi... -
01:01 AM Feature #19642: Remove vectored read/write from `io.c`.
- If I remember correctly, writev was introduced for atomic writes, not for performance.
(I am neutral to remove writev.) -
12:49 AM Feature #19642: Remove vectored read/write from `io.c`.
- Thanks for your feedback Aaron.
The concern is less about the internal overhead.
I'm sure different OS can optimise for different situations, e.g. in some cases I imagine `writev` can be faster than `write` if the system call overhead ... -
12:25 AM Revision 74600917 (git): [ruby/openssl] Revert "Skip OpenSSL::TestHMAC#test_dup when running with RHEL9"
- This reverts commit https://github.com/ruby/openssl/commit/9493d4a3bb26.
https://github.com/ruby/openssl/commit/b880a023dd - 12:25 AM Revision b26ddfd7 (git): [ruby/openssl] Fix warnings about the OPENSSL_FIPS macro in OpenSSL 1.1.
- The commit <https://github.com/ruby/openssl/commit/c5b2bc1268bc> made the warnings below
in the case of OpenSSL 1.1 where the `OPENSSL_FIPS` macro is not defined.
```
$ bundle install --standalone
$ bundle exec rake compile -- \
--wi... - 12:25 AM Revision 678d41bc (git): [ruby/openssl] Implement FIPS functions on OpenSSL 3.
- This commit is to implement the `OpenSSL::OPENSSL_FIPS`, `ossl_fips_mode_get`
and `ossl_fips_mode_set` to pass the test `test/openssl/test_fips.rb`.
It seems that the `OPENSSL_FIPS` macro is not used on the FIPS mode case any
more, and ... - 12:25 AM Revision 741a3bd5 (git): [ruby/openssl] CI: Add OpenSSL FIPS mode case.
- test/openssl/fixtures/ssl/openssl_fips.cnf.tmpl:
I referred to the following document for the openssl config file for FIPS mode.
<https://www.openssl.org/docs/manmaster/man7/fips_module.html>
- Making all applications use the FIPS modul... -
12:22 AM Bug #19386: `test_hmac.rb` of openssl is timeout on RHEL9
- Thanks to track this.
I did upgrade our CI instance.
```
[hsbt@rhel9 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux release 9.2 (Plow)
```
I try to this test with RHEL 9.2 again. -
12:05 AM Revision 94a513b0 (git): YJIT: Enable debug symbols in dev_nodebug (#7822)
05/18/2023
-
11:42 PM Bug #19680: test_process.rb tests fail sometimes on FreeBSD
- Apologies, I accidentally submitted the issue while I was still writing it, just editing the issue to provide some detail now... (OK - done now)
-
11:41 PM Bug #19680 (Closed): test_process.rb tests fail sometimes on FreeBSD
- I've been investigating the repeated failures of test_process.rb on FreeBSD on rubyci. I'm still working on it but I wanted to open this ticket just to keep others in the loop and gather any pointers any of you might have!
These are s... -
08:28 PM Feature #19642: Remove vectored read/write from `io.c`.
- I understand the concern of copying the `iovec`, but it seems like the overhead of making N calls to `write` would at some point be more expensive than copying the struct once. I guess under the hood `writev` may just be calling `write`...
-
03:26 PM Feature #19642: Remove vectored read/write from `io.c`.
- I would like to do a more comprehensive review of performance, but it seems minimal, even in the best possible circumstance:
```
| |compare-ruby|built-ruby|
|:---------|-----------:|---------:|
|io_write | 2.098| ... -
03:12 PM Feature #19642: Remove vectored read/write from `io.c`.
- https://github.com/ruby/ruby/pull/7825
-
07:20 PM Bug #19386: `test_hmac.rb` of openssl is timeout on RHEL9
- RHEL 9.2 was released. The openssl RPM (maybe version 3.0.7. I haven't checked it by myself) on RHEL 9.2 should fix this issue.
https://developers.redhat.com/articles/2023/05/10/how-new-rhel-92-improves-developer-experience
-
07:00 PM Revision cfb79973 (git): [ruby/irb] Refactor RubyLex's input/io methods
- (https://github.com/ruby/irb/pull/583)
1. Make `RubyLex#set_input` simply assign the input block. This matches
the behavior of `RubyLex#set_prompt`.
2. Merge `RubyLex#set_input`'s IO configuration logic with `#set_auto_indent`
int... -
06:51 PM Misc #19679 (Closed): Migrate Wiki from bugs.ruby-lang.org to ruby/ruby GitHub repository
- # Background
There is currently a Wiki at https://bugs.ruby-lang.org/projects/ruby/wiki which contains documentation of processes, documentation of code, developers' meeting notes, and various other notes.
There are three main prob... -
04:17 PM Revision d74b32db (git): change to test/objectspace, don't rely on Object's shape not being "too complex"
-
04:05 PM Revision 0c3f6992 (git): Introduce gc_mark_table macro
-
02:34 PM Bug #595 (Closed): Fiber ignores ensure clause
- https://github.com/ruby/ruby/commit/2df5a697e2726a11f0441b13fb5c73dd549837c8
- 02:33 PM Revision 2df5a697 (git): Add Fiber#kill, similar to Thread#kill. (#7823)
-
01:21 PM Feature #19610: GC.delay_promotion
- I opened #19678.
-
06:14 AM Feature #19610: GC.delay_promotion
- Should we edit the title or open another ticket?
-
01:20 PM Feature #19678 (Closed): Don't immediately promote children of old objects
- This is an alternate proposal to #19610 where the feature is not configurable and always enabled.
GitHub Pull Request: https://github.com/ruby/ruby/pull/7821
References from an old object to a write barrier protected young object w... -
04:39 AM Feature #19634: Pattern matching dynamic key
- Some actual examples of dynamic key matching in Elixir: https://github.com/search?q=%2F%25%5C%7B%5C%5E%2F+&type=code
-
04:28 AM Feature #19634: Pattern matching dynamic key
- FWIW, Elixir actually supports it, but I don't recall seeing it used in the wild
``` elixir
map = %{mentor_name: "Joe"}
value = "Joe"
key = :mentor_name
match?(%{^key => ^value}, map) # => true
```
OTOH, Elixir does not support `[*, ^... -
03:41 AM Feature #19634: Pattern matching dynamic key
- Probably, you are proposing `mentor_proposals in ^mentor_name => [*, ^mentee_name, *]`. I still cannot imagine the case where dynamic key is useful.
As far as I know, no other language support dynamic key matching. Please be more concre... -
03:44 AM Bug #19677 (Closed): Failed to build ruby from the source code when following the guide
-
03:30 AM Bug #19677: Failed to build ruby from the source code when following the guide
- After the first successful build, I couldn't reproduce the build failure noted above.
In addition to it, the build just after a clean `git clone` finished without errors. So, the build failure may have been triggered by my dirty source ... -
02:39 AM Bug #19677 (Closed): Failed to build ruby from the source code when following the guide
- I followed the document "Building Ruby" (doc/contributing/building_ruby.md) and got build errors.
At the step of "5. Build Ruby: make install", the errors below happened:
```
MBA:build tagomoris$ make -j 8
BASERUBY = /Users/tagomo... -
03:28 AM Revision b695f58d (git): [ruby/irb] Print deprecation warning for `help` command
- (https://github.com/ruby/irb/pull/567)
* Give show_doc its own command class
* Print deprecation warning for `help` command -
02:39 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- > now addressed with packwerk from what I understand.
Ah, not exactly (or at least not entirely), but that's another story! :sob:
05/17/2023
-
05:14 PM Feature #12165: Hash#first, Hash#last
- nobu (Nobuyoshi Nakada) wrote in #note-5:
> Although I've not thought about `Hash#last`, once when `st_table` got keeping the insertion order I proposed `Hash#reverse_each` (`st_reverse_foreach` for it precisely) to matz, but was reject... -
01:37 AM Feature #12165: Hash#first, Hash#last
- Although I've not thought about `Hash#last`, once when `st_table` got keeping the insertion order I proposed `Hash#reverse_each` (`st_reverse_foreach` for it precisely) to matz, but was rejected.
-
03:38 PM Feature #19610: GC.delay_promotion
- In the developer meeting in Matsumoto, we discussed this ticket. We agreed that making this feature configurable makes the GC harder to use and leaked too many implementation details. We decided to instead make this feature always enable...
-
01:19 PM Revision cea9c30f (git): Move ar_hint to ar_table_struct
- This allows Hashes with ST tables to fit int he 80 byte size pool.
-
01:19 PM Revision 0938964b (git): Implement Hash ST tables on VWA
-
01:19 PM Revision 5199f2aa (git): Implement Hash AR tables on VWA
-
08:45 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- Yeah, I understand.
I also have the feeling that you are using an autoloader just because it allows you to plug in some tricks towards your isolation goal. But such feature should come from the language to be real. I mean, if isolatio... -
08:04 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- Thanks, that makes sense.
In one way we're not far apart. In another, though, I think we still are, because the difference is really between whether control is delegated to the caller or the callee. "isolation", which is what I'm after ... -
04:42 AM Revision 264ba0f8 (git): [ruby/irb] Fix Test timedout in test_debug_cmd
- (https://github.com/ruby/irb/pull/582)
* Suppress Reline::IOGate.cursor_pos writing escape sequence in test_debug_cmd
* Force use Reline::GeneralIO as Reline::IOGate and remove RUBY_DEBUG_NO_RELINE option for debug test -
02:03 AM Bug #18743: Enumerator#next / peek re-use each others stacktraces
- Seems find to me.
One thing I concerned, `stop_exc` will be re-created every times, and no way to know where it was first used up.
How about chaining by `cause`?
```diff
diff --git a/enumerator.c b/enumerator.c
index b33c1713718.....
05/16/2023
-
07:02 PM Feature #12165: Hash#first, Hash#last
- @nobu Since you commented recently, what do you think about about a performant Hash#last(n=1) and a related performant Hash#reverse_each? Shouldn't any ordered collection that supports bidirectional enumeration, have those?
-
06:41 PM Feature #19644 (Rejected): Module::current to complement Module::nesting
- Module::current == Module::nesting[0] but without needlessly walking the entire nesting hierarchy.
Could be useful for debugging/logging.
It could also be a Kernel global (like `__method__`) or a keyword (like `__FILE__`) -
01:03 PM Bug #18743: Enumerator#next / peek re-use each others stacktraces
- Hey again, @ko1. This is just a reminder that the patch is pushed to Github and is waiting for a decision.
Best,
Marcelo -
11:11 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- For example, if you tell me: I have devised this anonymous namespace manager (external to Zeitwerk, in principle) to enforce the desired separation of components in Shopify, and this would be the syntax I'd use, and this is realistic, I'...
-
10:19 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- > If I understand correctly, you would not be against, say, a format whereby the file explicitly set its toplevel as anonymous, is that correct?
Correct.
For example, if given `$MyNamespace = Module.new` this was allowed in Ruby:
... -
09:28 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- > Our main discrepancy is that I don't like implicit nesting. I want you to open a file and see what it defines.
Agreed.
> ...
Between an app and its gems, yes (at the cost of what I consider boilerplate). Between two gems, there is no... -
05:50 AM Feature #19633: Allow passing block to `Kernel#autoload` as alternative to second `filename` argument
- > Concretely speaking, look at rails_on_im for an example. Here, I made some changes to Rails setup to replace Zeitwerk with Im and autoload an application under a single root namespace (MyApp). It mostly works (minus views, which I have...
-
10:09 AM Bug #14387 (Closed): Ruby 2.5 を Alpine Linux で実行すると比較的浅めで SystemStackError 例外になる
- Ruby 2.5 is EOL today. I'll close this.
If you have this issue with Ruby 3.2, please file it with another issue. Thanks. -
09:54 AM Misc #19581 (Closed): Will Openssl 1.1.x fully support for Ruby3.1 throught the life time of Ruby3.1?
-
08:42 AM Misc #19608 (Closed): Being a co-maintainer of the ruby/openssl for the OpenSSL FIPS mode
- Thank you. If you have any issue, please notify me.
-
08:20 AM Bug #4173: TestProcess#test_wait_and_sigchild が、たまに失敗する
- So I noticed the FreeBSD process tests failed a few times - looking at it today/tomorrow. I also actually managed to reproduce this one on my machine once - http://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20230515T183001Z.fail.h...
-
06:58 AM Feature #19643 (Closed): Direct primitive compare sort for Array#sort_by
- Also see https://github.com/ruby/ruby/pull/7805
# Introduction
In most of case sort_by works on primitive type.
Using `qsort_r` or `qsort_s` with function pointer is much slower than compare data directly.
I implement a intro s... - 03:49 AM Revision 4d1ca2e1 (git): Ensure SIGCHLD always uses a signal handler. (#7819)
-
03:20 AM Bug #11582 (Closed): On Solaris, Rational#** returns -Infinity for Rational(0) when passed a negative Float
- This issue is solved by [Misc #15347].
In the C99 spec, The behavior of pow(3) in corner cases are clearly defined.
Since Ruby 2.7, C99 is required to compile CRuby source code, and thus Ruby's pow method conforms to the C99 standard.
05/15/2023
- 09:49 PM Revision 00521320 (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.75 to 0.9.77.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.75...v0.9.77)
---
updated-depende... -
06:52 PM Revision 89451434 (git): [wasm] Allocate asyncify buffer on heap to save stack usage
- 02:14 PM Revision ab7bb38a (git): Remove explicit SIGCHLD handling. (#7816)
- * Remove unused SIGCHLD handling.
* Remove unused `init_sigchld`.
* Remove unnecessary `#define RUBY_SIGCHLD (0)`.
* Remove unused `SIGCHLD_LOSSY`. -
01:36 PM Revision bab9966b (git): [DOC] Fix a link [ci skip]
-
01:06 PM Feature #19572: Add a new TracePoint event for rescued exceptions
- We discussed this at the [RubyKaigi dev-meeting](https://bugs.ruby-lang.org/issues/19599) as a topic and I also did a follow up discussion with @ko1. IIRC, the conclusion was:
- This `rescue` event is only for Ruby-level rescue. If ther... -
12:47 PM Misc #19608: Being a co-maintainer of the ruby/openssl for the OpenSSL FIPS mode
- Thank you for discussing the topic in the meeting.
I started to work as a co-maintainer of the ruby/openssl for the FIPS mode. -
10:10 AM Revision 3fe45a31 (git): Process parse.y without temporary files
-
10:01 AM Revision 41dccb6a (git): Lrama v0.5.0 (#7814)
-
06:33 AM Feature #19642 (Closed): Remove vectored read/write from `io.c`.
- https://github.com/socketry/async/issues/228#issuecomment-1546789910 is a comment from the kernel developer who tells us that `writev` is always worse than `write` system call.
A large amount of complexity in `io.c` comes from optiona... -
06:12 AM Revision c7067ed1 (git): Use the rb_sys_fail_str macro in signal.c
- Let signal.c include "internal/error.h" explicitly to ensure that the
identifier rb_sys_fail_str in signal.c refers to the macro defined in
"internal/error.h" instead of the actual function.
That macro reads errno before evaluating its ... -
05:08 AM Bug #19635: errno may be overwritten by rb_sprintf if it triggers GC
- Thank you, I missed it.
Please update the dependency in common.mk too. -
04:37 AM Bug #19635: errno may be overwritten by rb_sprintf if it triggers GC
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> Applied in changeset commit:git|e3385f87831f036eaba96558cb4d83c8d5c43901.
> ...
@nobu, thank you for your fix, but the bug related to the `trap` function in `signal.c` still exists.
`gcc -... -
04:37 AM Bug #4173 (Closed): TestProcess#test_wait_and_sigchild が、たまに失敗する - Applied in changeset commit:git|8bd4d8867a0222a3c30a0c7ee1f69b06baa8e91a.
----------
Unskip the test skipped in #4173 (#7809)
This test was skipped 12 years ago because it was flaky on FreeBSD and
OpenBSD. Since then, Ruby's SIGCHLD ha... -
04:36 AM Bug #4173: TestProcess#test_wait_and_sigchild が、たまに失敗する
- Just to clarify, there was an unexpected issue with my PR, but only a small part of it was reverted due to some unexpected behaviour. I'll try to complete the removal of that functionality soon.
- 04:37 AM Revision 8bd4d886 (git): Unskip the test skipped in #4173 (#7809)
- This test was skipped 12 years ago because it was flaky on FreeBSD and
OpenBSD. Since then, Ruby's SIGCHLD handling has been substantially
re-written (mostly by Eric Wong @normalperson in 44fc3d08).
These tests now in fact pass reliably... - 03:41 AM Revision d9033d37 (git): Bump ruby/setup-ruby from 1.148.0 to 1.149.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.148.0 to 1.149.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/d2b39ad0b52eca07d23f3aa14fdf2a3fcc... -
02:47 AM Feature #19641 (Open): Allow setting OpenSSL::SSL::SSLContext in Net::HTTP
- [Abstract]
Allow setting OpenSSL::SSL::SSLContext in Net::HTTP.
[Background]
The current implementation of Net::HTTP in Ruby allows setting certain properties of SSLContext, but not SSLContext itself. This limits the flexibility whe... -
02:15 AM Bug #19640 (Closed): `IO#puts` can generate zero length iov which can cause rb_bug crash.
-
02:14 AM Bug #19640: `IO#puts` can generate zero length iov which can cause rb_bug crash.
- Merged in https://github.com/ruby/ruby/commit/0b2613f44309bddae45562c9f3a14ed43e56959b
-
01:08 AM Bug #19640: `IO#puts` can generate zero length iov which can cause rb_bug crash.
- I added a test, without the patch, it crashes:
```
> make test-all TESTS=test/fiber/test_io.rb
sed 's/{\$([^(){}]*)[^{}]*}//g' common.mk > uncommon.mk
compiling io.c
generating parse.c
revision.h updated
generating arm64-darwin2... - 02:13 AM Revision 0b2613f4 (git): `rb_io_puts` should not write zero length strings. (#7806)