Activity
From 04/15/2024 to 04/21/2024
04/21/2024
-
11:47 PM Revision 9b580ee7 (git): [rubygems/rubygems] Clear temporary directory
- https://github.com/rubygems/rubygems/commit/4158034d89
-
02:33 PM Misc #20441: Should passing keyword args to method_name(*) be an error?
- Understanding better the role of `ruby2_keywords` is helping, thank you. It seemed to me that either way some compatibility was broken, but the subtleties of maintaining compatibility as well as possible in a variety of circumstances is ...
-
08:58 AM Misc #20441: Should passing keyword args to method_name(*) be an error?
- > Why does this conversion to a Hash occur?
Because of backward compatibility, indeed. Even now, most of, say, Rails code still uses “old” conventions:
```ruby
def foo(arg1, arg2, options = {})
# ...
end
# and expects it to b... -
08:47 AM Misc #20441: Should passing keyword args to method_name(*) be an error?
- Why does this conversion to a Hash occur?
I would guess for some sense of backward compatibility with gems / code written in earlier versions of Ruby. But #20440 demonstrates why this compatibility is not achieved. To be clear, I'm no... -
08:33 AM Misc #20441: Should passing keyword args to method_name(*) be an error?
- `super` just passes the arguments with EXACTLY the same signature as the method it is in has.
Whether or not `super` is in the method, calling method defined as `foo(*)` with hash-like arguments without braced will implicitly convert... -
08:25 AM Misc #20441 (Closed): Should passing keyword args to method_name(*) be an error?
- In the following method:
```rb
def foo(*)
super
end
```
it is apparently the intended ruby 3 behavior to pass keyword args as a positional Hash to `super`. I believe this is confusing and can lead to hidden and hard-to-discov... -
08:15 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
- Ok I see it now; `super` isn't passing the args as both forms, it's passing _only_ as a positional Hash. The `x: 1` is coming from my default kwarg, which I was blinded to as I attempted to reduce the example to a general form. Thanks all!
-
07:44 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
- > What still seems off to me is that super is modifying the arguments.
If I understand correctly, what “modifies” the argument is child’s `foo` signature:
```ruby
def foo(*) # <= this says “accept only positional args” (implicitly c... -
07:02 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
- Thanks both. I understand that Ruby 3 requires explicit handling of keyword arguments. What still seems off to me is that `super` is _modifying_ the arguments. The child method is being passed a keyword argument, and `super` is forwardin...
-
06:50 AM Revision f87c216c (git): Remove needless header file include
-
12:55 AM Revision 381ce130 (git): Remove unused functions from struct `rb_parser_config_struct`
04/20/2024
-
06:55 PM Revision f16c6ac4 (git): [ruby/irb] Stop using ExtendCommandBundle internally
- (https://github.com/ruby/irb/pull/925)
This module was used to extend both commands and helpers when they're not
separated. Now that they are, and we have a Command module, we should move
command-related logic to the Command module and ... -
11:04 AM Bug #20440 (Closed): `super` from child class duplicating a keyword argument as a positional Hash
-
11:04 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
- See https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
it also explains `(*, **)` and `(...)` which are better if you don't need compatibility with Ruby < 2.7. -
09:55 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
- You need to make `foo` `ruby2_keywords` to let it work as same as 2.7 or earlier.
```rb
class Child < Base
ruby2_keywords def foo(*)
puts "Child: calling foo"
super
end
end
Child.new.foo!
```
```
Base: calling fo... -
09:12 AM Bug #20440: `super` from child class duplicating a keyword argument as a positional Hash
- In fact it seems we can simplify this to just calling `Child.new.foo(x: 1)`; no need for the base class `foo!` method.
```rb
Child.new.foo(x: 1)
Child: calling foo
Base: calling foo with args: [{:x=>1}], x: 1
```
Apologies if I'm misu... -
09:00 AM Bug #20440 (Closed): `super` from child class duplicating a keyword argument as a positional Hash
- Apologies for the verbose title, but that's the specific set of conditions that AFAICT are required to reproduce the bug!
Here's the simplest setup I can reproduce:
```rb
class Base
def foo(*args, x: 1)
puts "Base: calling... -
10:53 AM Revision 2b11bcb8 (git): [ruby/zlib] Clear temporary directory
- https://github.com/ruby/zlib/commit/1bed54dcf7
-
10:30 AM Revision af169472 (git): Remove unused function
-
09:08 AM Revision cee985ea (git): Remove unused functions from `struct rb_parser_config_struct`
-
09:08 AM Revision d07df856 (git): Parser and universal parser share wrapper functions
-
07:51 AM Feature #15554: warn/error passing a block to a method which never use a block
- > it's basically a variant of the super case.
I never thought about it this way, but I think it does make sense yes.
> ...
@ko1 sorry didn't answer yet. I'll try to do that Monday. -
06:58 AM Feature #15554: warn/error passing a block to a method which never use a block
- Eregon (Benoit Daloze) wrote in #note-40:
> With the example from @mame, I think adding `(&)` or `(&on_missing)` for `Attribute::Attribute#value` would be good to clarify the value method can receive a block, and purposefully ignores it... -
07:45 AM Revision 125e1ed5 (git): [ruby/irb] Remove exit command workaround, handle IRB_EXIT in
- debug_readline
(https://github.com/ruby/irb/pull/923)
* Remove exit and exti! command workaround when executed outside of IRB
Command was a method. It could be executed outside of IRB.
Workaround for it is no longer needed.
* Handle I... -
02:34 AM Revision 9f975566 (git): Fix method name
-
01:41 AM Revision 9555a997 (git): ensure ibf_load_setup is only passed String params
- In cases where RubyVM::InstructionSequence.load_from_binary() is
passed a param other than a String, we attempt to call the
RSTRING_LENINT macro on it which can cause a segfault.
ex:
```
var_0 = 0
RubyVM::InstructionSequence.load_from_b...
04/19/2024
-
07:25 PM Revision 23be6599 (git): [ruby/prism] Split parse result based on type
- https://github.com/ruby/prism/commit/17194e096d
-
06:20 PM Revision cb711df3 (git): [ruby/prism] Do not allow omitted hash keys with ! or ?
- https://github.com/ruby/prism/commit/06d358aa8d
-
06:05 PM Revision c7255ca2 (git): [ruby/prism] Fix up ruby_parser translation for dstr
- https://github.com/ruby/prism/commit/b0fa4b7cd8
-
05:35 PM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Misc #20434] Deprecate encoding-related regular expression modifiers (kddnewton)
* The relationship between regexp encoding, file encoding, string encoding, and matchee encoding is very confusing.
* A migration path is proposed ... -
03:28 PM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Misc #20406] Question about Regexp encoding negotiation (andrykonchin)
* It isn't clear enough how a Regexp encoding (what `Regexp#encoding` method returns) is calculated in case an encoding modifier (e.g. `u`, `e`, etc) is specifie... -
02:12 PM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Feature #6648] Provide a standard API for retrieving all command-line flags passed to Ruby (eregon)
* @Dan0042 made a clear proposal in https://bugs.ruby-lang.org/issues/6648#note-10 can we accept it?
* This has been needed for ... -
04:47 PM Revision c8783441 (git): Revert "YJIT: Optimize local variables when EP == BP" (#10584)
- This reverts commit 4cc58ea0b865f2fd20f1e881ddbd4c4fab0b072c.
Since the change landed call-threshold=1 CI runs have been timing out.
There has also been `verify-ctx` violations. Revert for now while we debug. -
04:29 PM Revision 2e80ceb6 (git): [ruby/prism] Fix it parameters for parser translation
- https://github.com/ruby/prism/commit/2f3feb8d51
-
04:08 PM Bug #20439 (Closed): Invalid string format with n$ flag is ignored in some case
- String format including n$ flag and no type specifier raises ArgumentError
~~~ruby
"%1$ " % 1 # invalid format character - % (ArgumentError)
"%1$," % 1 # malformed format string - %, (ArgumentError)
~~~
But when it ends with n$ fl... -
04:06 PM Bug #20438 (Closed): String format "%\n" and "%\0" does not raise format error
- `"%" % 1` raises `incomplete format specifier; use %% (double %) instead`
`"%=" % 1` raises `malformed format string - %=`.
But `"%\n" % 1` `"%\0" % 1` does not raise error.
In `sprintf.c`, `\n` and `\0` are explicitly accepted. Is th... -
03:59 PM Feature #20437 (Open): Could the licensing conditions be made less ambiguous?
- # Current state
The current [COPYING](https://github.com/ruby/ruby/blob/6cfd929034f1fe3d93160365505a8b88bef56159/COPYING) file says the following:
~~~
Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
You ... -
03:01 PM Revision 6cfd9290 (git): [ruby/irb] Add MultiIRB commands test
- (https://github.com/ruby/irb/pull/929)
https://github.com/ruby/irb/commit/c6bbc424c3 -
02:17 PM Revision cd95f6b8 (git): Show left files info
-
02:09 PM Feature #6648: Provide a standard API for retrieving all command-line flags passed to Ruby
- I fully agree with the proposal of @Dan0042.
This is also needed for MSpec, which currently works around the lack of it by requiring to pass any ruby option through `-T-option` (which is awkward and error-prone), it would be much nicer i... -
02:21 AM Feature #6648: Provide a standard API for retrieving all command-line flags passed to Ruby
- I'd like to revive this proposal.
The OP mentions calling a subcommand with the same options/flags as the current interpreter, and that's a fine use case. As for me I'm also interested in re-executing the current script while keeping ru... -
02:06 PM Revision c789e4c4 (git): Use isolated temporary directory in test-all too for RubyGems tests
-
02:02 PM Feature #15554: warn/error passing a block to a method which never use a block
- ko1 (Koichi Sasada) wrote in #note-42:
> I made strict mode option for trial (will remove soon)
> ...
I was thinking about that too, to make the duck typing cases opt-in via env var/CLI arg.
It's not ideal because quite hidden but it ... -
12:15 PM Feature #15554: warn/error passing a block to a method which never use a block
- Thank you for your patience, I finally understand.
---
On a separate note,
based on https://github.com/Shopify/rails/commit/640c7c751fa2b5d3d2e634685fbf0807c639a2ca
it seems that many of the false positives are due to stub metho... -
12:11 PM Feature #15554: warn/error passing a block to a method which never use a block
- It doesn't matter where `perform_later` is invoked. `perform_later` do accept a block and will yield to it if provided.
-
12:04 PM Feature #15554: warn/error passing a block to a method which never use a block
- > I pasted the code above.
But you didn't paste the part where `perform_later` is invoked, that's what I meant. If someone calls `perform_later{ something }` then that block should be used somewhere, no? -
11:15 AM Feature #15554: warn/error passing a block to a method which never use a block
- > Is this the fix?
Yes.
> ...
I pasted the code above. But in short `job_or_instantiate` doesn't take a block, but it's just more convenient to forward everything with `...` because we have to deal with `ruby2_keywords` here.
>... -
11:10 AM Feature #15554: warn/error passing a block to a method which never use a block
- byroot (Jean Boussier) wrote in #note-44:
> So I went over Rails warnings after the last patch, I may have missed some, but there is now about 5 unique warnings left:
> ...
Sorry, I still don't get this. Is this the fix? https://github... -
08:07 AM Feature #15554: warn/error passing a block to a method which never use a block
- So I went over Rails warnings after the last patch, I may have missed some, but there is now about 5 unique warnings left:
```
/rails/activejob/lib/active_job/enqueuing.rb:69: warning: the block passed to 'job_or_instantiate' defined... -
05:38 AM Feature #15554: warn/error passing a block to a method which never use a block
- > I don't understand that one. ...
As I said previously I made a mistake on that one. But here's the code that cause this warning:
```ruby
def perform_later(...)
job = job_or_instantiate(...)
enqueue_result = job.enqueue
... -
04:31 AM Feature #15554: warn/error passing a block to a method which never use a block
- I made strict mode option for trial (will remove soon)
https://github.com/ruby/ruby/pull/10578
@byroot could you compare the results on rails tests?
-
12:53 AM Feature #15554: warn/error passing a block to a method which never use a block
- byroot (Jean Boussier) wrote in #note-26:
> So I'd expect `block_given?` to qualify as "using the block". But I suppose it's tricky because `block_given?` is just a method like any other for the compiler?
I would also expect `block_give... -
12:18 PM Revision f17268f7 (git): Extract tmpdir template
-
12:08 PM Revision 604c29e8 (git): [ruby/reline] Implement `show-all-if-ambiguous` feature
- (https://github.com/ruby/reline/pull/683)
https://github.com/ruby/reline/commit/0fe4fdc794 -
10:39 AM Revision 4218e6bb (git): Remove unused define popcount_bits
- 10:32 AM Revision e133d0c7 (git): [ruby/time] Document exception thrown by `Time.strptime`
- https://github.com/ruby/time/commit/f9d078082f
-
07:33 AM Revision 7951b349 (git): Suppress useless linker warnings totally on macOS
- 06:10 AM Revision 74cd61fb (git): Bump actions/upload-artifact from 4.3.1 to 4.3.2
- Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/5d5d22... -
05:28 AM Revision 662ce928 (git): `RUBY_TRY_UNUSED_BLOCK_WARNING_STRICT`
- `RUBY_TRY_UNUSED_BLOCK_WARNING_STRICT=1 ruby ...` will enable
strict check for unused block warning.
This option is only for trial to compare the results so the
envname is not considered well.
Should be removed before Ruby 3.4.0 release. -
05:18 AM Revision 7522d1bf (git): [rubygems/rubygems] Keep backword compatibility of Bundler.require
- https://github.com/rubygems/rubygems/commit/f6f79f4c37
-
05:18 AM Revision acc326b7 (git): [rubygems/rubygems] Removed needless class name
- https://github.com/rubygems/rubygems/commit/a2f43d3756
-
05:18 AM Revision a95b46db (git): [rubygems/rubygems] Track HEAD changes for old PR proposal
- https://github.com/rubygems/rubygems/commit/e3d180620c
-
05:18 AM Revision 0a14fee0 (git): [rubygems/rubygems] Removed redundant begin
- https://github.com/rubygems/rubygems/commit/a9d22e5f46
-
05:18 AM Revision 09cbbe0e (git): [rubygems/rubygems] Add plugin hooks for Bundler.require
- https://github.com/rubygems/rubygems/commit/b373b7ed0d
-
05:12 AM Revision 1984db2d (git): Preserve old encinit.c if unchanged
-
05:12 AM Revision 05d681f9 (git): Make `Output.new` accepts keyword arguments
-
05:12 AM Revision 801e4a4f (git): Remove UPDATE_LIBRARIES
- It has not been used since e48375c112022fa321786ccd95dd4e718efd78a3.
-
05:12 AM Revision 3169c158 (git): Fix rubyspec-capiext dependency
- Not to build the rubyspec-capiext extension libraries again on the
next build after the build all extensions get built, ensure these
extensions are up to date when recursively building from exts.mk. -
03:58 AM Revision 7f87ad9f (git): Refer autoconfigured endian macro (#10572)
- Remove the case `RB_IO_BUFFER_HOST_ENDIAN` is not defined.
-
01:39 AM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
- It's a bit off-topic but does anyone know why NotImplementedError doesn't inherit from StandardError? It seems like it should. If the system doesn't support `fork()` then I'd like to see that as a nice message via Rack::ShowExceptions ra...
-
01:20 AM Feature #20215: Introduce `IO#readable?`
- ioquatix (Samuel Williams) wrote in #note-13:
> In practice, persistent connections may sit in a connection pool for minutes or hours, and thus when you come to write a request, there is no easy operation to check "Is this connection st...
04/18/2024
- 11:32 PM Revision b7c4c886 (git): Update turbo_tests to 2.2.3 or higher
- commands/pristine_spec.rb is passed with the turbo_tests 2.2.3 because it the removed json dependency.
Related to https://github.com/ruby/ruby/pull/10496
Related to d60b2caa95b01f37d35db9ef8be1d035d14b408d -
10:10 PM Feature #20425: Optimize forwarding callers and callees
- ko1 (Koichi Sasada) wrote in #note-6:
> My idea is simple because it is simple replacement with an array (and a hash) to contain arguments (I only proposed lightweight argument container than an array and hash).
> ...
For what it's wor... -
08:25 AM Feature #20425: Optimize forwarding callers and callees
- My idea is simple because it is simple replacement with an array (and a hash) to contain arguments (I only proposed lightweight argument container than an array and hash).
This proposal breaks the assumption of VM stack structure. I'm... -
09:21 PM Revision 6443d690 (git): Don't mark empty singleton cc's
- These cc's aren't managed by the garbage collector so we shouldn't try
to mark and move them. -
09:11 PM Revision 64d0817e (git): Remove markable guard before pushing on ccs list
- CCS list doesn't mark CI objects, so it doesn't matter whether or not
they are markable before pushing. -
06:50 PM Misc #20434: Deprecate encoding-related regular expression modifiers
- Thanks @shyouhei — I definitely only meant encoding-relate modifiers. I really like the other ones!
-
11:41 AM Misc #20434: Deprecate encoding-related regular expression modifiers
- This seems a good simplification to me, I think the semantics of these encoding modifiers are confusing to most Rubyists.
I wouldn't be worried too much about length of the replacement, because `/.../s`/`/.../e` are likely very rare (... -
09:23 AM Misc #20434: Deprecate encoding-related regular expression modifiers
- `/\x81\x40/.force_encoding("Windows-31J")` wouldn't work because `String#force_encoding` mutates the string, and Regexp literals are immutable.
Similarly `String#encode` doesn't just change the string encoding attribute, but convert t... -
06:22 AM Misc #20434: Deprecate encoding-related regular expression modifiers
- I guess there might still be some use for the encoding-related modifiers in single-line scripts and the like. But I don't have an actual use case; I hope whoever has such an use case comes forward.
The replacement code (`::Regexp.new(::... -
12:23 AM Misc #20434: Deprecate encoding-related regular expression modifiers
- +1 for deprecating encoding modifiers, but they're not everything that a regexp can take. For instance `/foo/i` is a valid regular expression literal in ruby, perl, PHP(preg), and Javascript.
I'm sure Kevin didn't intend to kill ever... -
06:50 PM Revision ea7975c5 (git): Include coderange.h in encoding.h
- ruby_coderange_type is defined in ruby/internal/encoding/coderange.h so
we need to include it. - 06:37 PM Revision 2f812898 (git): Update default gems list at a51139230bfbd509b300fafc48e9a1 [ci skip]
-
06:36 PM Revision a5113923 (git): [ruby/prism] Bump to v0.26.0
- https://github.com/ruby/prism/commit/eadb09ef36
-
06:34 PM Revision 8f908a35 (git): [ruby/prism] "Fix" transpose issue in parser compiler
- https://github.com/ruby/prism/commit/593d637178
-
04:06 PM Revision 147ca958 (git): Implement equality for CI comparison when CC searching
- When we're searching for CCs, compare the argc and flags for CI rather
than comparing pointers. This means we don't need to store a reference
to the CI, and it also naturally "de-duplicates" CC objects.
We can observe the effect with t... - 03:32 PM Revision 8e08556f (git): chore: remove repetitive words (#10573)
- Signed-off-by: careworry <worrycare@outlook.com>
-
02:46 PM Revision ff599aea (git): [ruby/irb] Fix % escape in prompt format
- (https://github.com/ruby/irb/pull/927)
https://github.com/ruby/irb/commit/08eee25d28 -
02:35 PM Misc #20336: DevMeeting-2024-04-17
- @mame, I think I've been doing both things. Some things (like the rejected ticket for weighted samples) came from my own needs, while others were me trying to organize old tickets. I cannot reject/close tickets. Is there something I coul...
-
02:19 PM Revision 81240493 (git): Remove unused rb_size_pool_slot_size
-
02:04 PM Revision 28efc0c9 (git): YJIT: Fix canary crash with Array#<< (#10568)
- Previously, we got "We are killing the stack canary set by opt_ltlt"
from `$./miniruby --yjit-call-threshold=1 -e 'a = [].freeze; a << 1'`
Found by running ruby-spec with yjit-call-threshold=1. -
12:18 PM Feature #15554: warn/error passing a block to a method which never use a block
- With the example from @mame, I think adding `(&)` or `(&on_missing)` for `Attribute::Attribute#value` would be good to clarify the value method can receive a block, and purposefully ignores it.
To me it sounds weird that there are metho... -
06:07 AM Feature #15554: warn/error passing a block to a method which never use a block
- One approach that reduces false positives (invalid warnings) and potentially increases false negatives (missing warnings) would be to only warn for literal blocks and not passed blocks:
```ruby
def foo
end
def bar(&) = foo(&) # n... -
03:14 AM Feature #15554: warn/error passing a block to a method which never use a block
- I was also in the camp that `(&)` should be just added, but after analyzing one warning of rails at the dev meeting, I am now a little less sure. I will try to explain my feelings.
---
This call passes a block.
```ruby
read_att... -
02:34 AM Feature #15554: warn/error passing a block to a method which never use a block
- I encouraged the idea of filtering out the warnings by method name at yesterday's meeting.
There were several ideas:
(1) force to add &_ for many methods (matz don't like)
(2) filter warnings by method name (discussed and implemente... -
01:34 AM Feature #15554: warn/error passing a block to a method which never use a block
- > I think https://github.com/ruby/ruby/pull/10559 is warning too little, I commented there.
Yes. It will reduce many cases and it only warns only a few cases.
> ...
I also understand the opinion.
quote from my comment:
> "Matz ... -
11:48 AM Revision 57a262e3 (git): [ruby/irb] Accept " " for colorizing "\t" test
- (https://github.com/ruby/irb/pull/924)
https://github.com/ruby/irb/commit/c8182fa490 -
11:44 AM Bug #20319: Singleton class is being frozen lazily in some cases
- @nobu WDYT? Could you review that PR?
-
10:33 AM Revision 2e978c2c (git): [ruby/irb] Prompt specifiers documentation improvements
- (https://github.com/ruby/irb/pull/926)
https://github.com/ruby/irb/commit/e8ea8f253d -
08:17 AM Feature #18576 (Closed): Rename `ASCII-8BIT` encoding to `BINARY`
- Applied in changeset commit:git|3a7846b1aa4c10d86dc5a91c6df94f89d60bb0c3.
----------
Add a hint of `ASCII-8BIT` being `BINARY`
[Feature #18576]
Since outright renaming `ASCII-8BIT` is deemed to backward incompatible,
the next best thi... -
08:17 AM Revision 3a7846b1 (git): Add a hint of `ASCII-8BIT` being `BINARY`
- [Feature #18576]
Since outright renaming `ASCII-8BIT` is deemed to backward incompatible,
the next best thing would be to only change its `#inspect`, particularly
in exception messages. -
08:10 AM Bug #20431 (Feedback): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
- Thank you. Currently ruby requires gcc 7 or higher. (#19353) Could you somehow prepare a new gcc and retry to build it?
BTW, as far as I know, RHEL 6 will end Extended Life-cycle Support soon. You might want to upgrade your OS as well... -
06:56 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
- I'm not sure reasoning by analogy with core dumps is sound here. If there was a way to be sure a core dump is stripped of all personally identifiable informations I'd definitely use it to share core dumps when it's useful.
> because, ... -
12:39 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
- I'm not sure if I'm in favor of this request then. ObjectSpace.dump_all is very much analogous to a coredump. Both are very handy on occasions. I don't doubt your experience of finding memory leak is real. But... People normally don...
-
05:03 AM Misc #20287 (Closed): DevMeeting before or after RubyKaigi
- See https://bugs.ruby-lang.org/issues/20436
-
05:02 AM Misc #20436 (Closed): DevMeeting at RubyKaigi 2024
- RubyKaigi 2024 will be at Okinawa, Japan, May 15th - 17th. We would like to try to hold a face-to-face dev meeting at Okinawa. (@matz will also participate!)
* Date: 2023/05/14 (Tue.) 14:00-18:00 (The day before RubyKaigi)
* Location... - 03:46 AM Revision b3c59370 (git): Bump github/codeql-action from 3.25.0 to 3.25.1
- Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.0 to 3.25.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md... -
03:16 AM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- Ditto for pp.rb.
-
02:43 AM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- Or use `{a!: 1}` for symbol keys?
-
02:07 AM Revision a80f6466 (git): Explicily lock turbo_tests to 2.2.0 in Gemfile
- Ruby-core CI is having issues with turbo_tests 2.2.1. This version adds
json as a dependency and the `bundle install` command ruby-core uses is
not able to compile it for some reason.
I was not able to reproduce the issue locally, so th... -
02:07 AM Revision bc652d75 (git): [rubygems/rubygems] Never write credentials to lockfiles
- https://github.com/rubygems/rubygems/commit/e8a363713e
-
02:07 AM Revision a3b7a7bc (git): [ruby/reline] Remove unused variable
- (https://github.com/ruby/reline/pull/684)
https://github.com/ruby/reline/commit/ce30c23730 -
01:27 AM Revision 0f1ef19f (git): [ruby/optparse] Fix typo [ci skip]
- https://github.com/ruby/optparse/commit/0aec9adfc5
-
01:27 AM Revision 88a88b56 (git): [ruby/optparse] [DOC] Package files for RDoc
- https://github.com/ruby/optparse/commit/b49cb996af
- 01:27 AM Revision 6ac8f6a1 (git): [ruby/ipaddr] Add IPAddr.cidr to return ip address in cidr notation
- https://github.com/ruby/ipaddr/commit/f5b006741f
-
12:54 AM Revision 07771c76 (git): Try increasing timeout-minutes for YJIT Ubuntu
-
12:41 AM Revision ac62c737 (git): gitignore lib/prism/reflection.rb
04/17/2024
-
11:16 PM Feature #20215: Introduce `IO#readable?`
- Thank you for the explanation of the motivation.
I feel it is reasonable.
However, mame-san still had a question yesterday: why don't you detect an error in writing a request?
I guess it is because writing the request may not fail.
... -
04:25 AM Feature #20215: Introduce `IO#readable?`
- After considering the various use cases I have, I think the easiest to describe problem is knowing whether a connection is still "connected" or not, i.e. whether read will definitely fail or might succeed.
I added a full working examp... -
01:13 AM Feature #20215: Introduce `IO#readable?`
- I couldn't understand the motivation of this issue.
However, the state of the read side of unidirectional data flow (Unix pipe, half of a stream socket, etc.) can be one of the following.
1. We can read 1 or more bytes immediately.... -
12:07 AM Feature #20215: Introduce `IO#readable?`
- > Even if client.eof? returns false without blocking, it could still result in an EOF with zero read bytes. Therefore, it would be better to do read without unnecessary checks.
I understand, thanks for your question. I may not be able... -
11:10 PM Revision 9e0c6311 (git): Update refs [ci skip]
-
11:10 PM Revision 41456eb0 (git): Support Misc tracker [ci skip]
-
10:44 PM Feature #20350: Return chilled string from Symbol#to_s
- I am in favor of experimenting. I am in favor of moving to immutable strings in the future if there are no significant incompatibility issues.
Matz. -
10:29 PM Revision 0727d32b (git): Don't verify during gc_enter when gc is disabled.
- RGENGC_CHECK_MODE >=3 fails with an incinsistency in the old object
count during ec_finalization.
This is due to inconsistency introduced to the object graph using T_DATA
finalizers.
This is explained in commit 79df14c04b452411b9d17e26... -
09:48 PM Revision 8b813015 (git): YJIT: A64: Use CBZ/CBNZ to check for zero
- * YJIT: A64: Add CBZ and CBNZ encoding functions
* YJIT: A64: Use CBZ/CBNZ to check for zero
Instead of emitting `cmp x0, #0` plus `b.z #target`, A64 offers Compare
and Branch on Zero for us to just do `cbz x0, #target`. This commit
ut... - 08:45 PM Revision 48846d6b (git): add #2709’s new RBIs to `.gemspec`
-
08:16 PM Revision 3a4035a7 (git): Reduce the number of references to need_major_gc
-
07:40 PM Misc #20432: Proposal for workflow changes related to teeny releases
- I think it would be helpful for communications and expectation setting if there was a regular release cadence. Personally I'd be quite happy with quarterly releases, and I only really care about the latest stable.
The main one I'd li... -
07:30 PM Feature #15554: warn/error passing a block to a method which never use a block
- Yes I understand that too. And this will certainly cause a few false negative, but should also remove a lot more false positive.
I don't know if this is the best solution, but based on the warnings I saw in Rails test suite, I think i... -
07:28 PM Feature #15554: warn/error passing a block to a method which never use a block
- IIUC @ko1's PR, for example the issue of https://bugs.ruby-lang.org/issues/15554#note-27 wouldn't be found if there is a single `def excluding(*args, &block)` defined anywhere in the loaded code (which does not seem unlikely).
-
04:46 PM Feature #15554: warn/error passing a block to a method which never use a block
- > I think https://github.com/ruby/ruby/pull/10559 is warning too little, I commented there.
There is definitely a very fine line to walk here between false positives and false negatives.
Some of these warnings are very valuable, as... -
12:52 PM Feature #15554: warn/error passing a block to a method which never use a block
- ko1 (Koichi Sasada) wrote in #note-30:
> doesn't show warning.
I think https://github.com/ruby/ruby/pull/10559 is warning too little, I commented there.
From my understanding it will not warn if there exists any method of the same name ... -
12:34 PM Feature #15554: warn/error passing a block to a method which never use a block
- > doesn't show warning.
You are right, I got confused a bit my a `method_missing`. Please ignore that remark about `...`.
On another note, these warnings found another small issue in the Rails test suite: https://github.com/rails/r... -
11:12 AM Feature #15554: warn/error passing a block to a method which never use a block
- byroot (Jean Boussier) wrote in #note-28:
> - It generated some false positive because of `...` delegation for methods that don't accept a block.
for examoles?
```ruby
class C
def bar = yield
def foo(...)
bar(...)
e... -
11:07 AM Feature #15554: warn/error passing a block to a method which never use a block
- Matz hesitates to force to put `&_` (or other tricks) for duck typing methods, so I try to skip warning if a `foo` uses block, any other `foo` doesn't warn this warning even if it doesn't use a block.
```ruby
class C0
... -
10:17 AM Feature #15554: warn/error passing a block to a method which never use a block
- I worked on clearing these warnings from the Rails test suite: https://github.com/Shopify/rails/commit/640c7c751fa2b5d3d2e634685fbf0807c639a2ca
- It caught one big mistake in the test suite: https://github.com/Shopify/rails/commit/640... -
07:00 PM Revision 4cc58ea0 (git): YJIT: Optimize local variables when EP == BP (#10487)
-
06:59 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- > I also don't see any valid use case for Thread.each_caller_location with a Range with negative begin or end
It's still a slightly cheaper version of `caller_locations(range).each`. I agree that it's not super useful, but I don't thi... -
06:54 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- @byroot It's both, but for TruffleRuby I'm pretty sure the first matters much more.
These few allocations are no big deal on the JVM, so I would expect similar on JRuby.
Walking the stack is also obviously slower with a deeper stack (e... -
05:15 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- > the point of Thread.each_caller_location is to not walk the entire stack
Is it to not walk the entire stack, or simply not to generate the `Backtrace::Location` objects for the entire stack? My guess is that the later is most of th... -
10:25 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- mame (Yusuke Endoh) wrote in #note-11:
> A little addition: the dicussion about length and range was considered (not ignored), but @matz said he didn't see the need to make it inconsistent with Kernel#caller and Kernel#caller_locations ... -
10:16 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- A little addition: the dicussion about length and range was considered (not ignored), but @matz said he didn't see the need to make it inconsistent with Kernel#caller and Kernel#caller_locations in this case.
-
09:47 AM Feature #20335 (Closed): `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- Applied in changeset commit:git|09638741ba4d9547a0e48af8c767744fb1d7f68d.
----------
[Feature #20335] `Thread.each_caller_location` arguments
Accecpt the same arguments as `caller` and `caller_locations`. -
09:34 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- Accepted. Thank you.
Matz.
-
07:53 AM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
- https://github.com/ruby/ruby/pull/10554
-
06:36 PM Revision ca764062 (git): [ruby/irb] Remove internal-only methods from Command::Base
- (https://github.com/ruby/irb/pull/922)
* Remove internal-only methods from Command::Base
Command#ruby_args and Command#unwrap_string_literal are used for default command's argument backward compatibility.
Moved these methods to another... -
06:30 PM Misc #20435: DevMeeting-2024-06-06
- Note: The next dev meeting in May will be held in person, co-located with RubyKaigi 2024 in Okinawa, Japan. @ko1 will create the ticket for that separately.
-
06:26 PM Misc #20435 (Closed): DevMeeting-2024-06-06
- # The next dev meeting
**Date: 2024/06/06 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-06-06.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... -
06:26 PM Misc #20336 (Closed): DevMeeting-2024-04-17
-
06:17 PM Revision 98c84ef4 (git): [rubygems/rubygems] Excluding local platform from lockfile should not affect musl vs gnu case
- This case is for not locking things like `arm-darwin-23` when the
lockfile already includes `arm-darwin`, so that we don't infinitely keep
redundant versioned platforms in the lockfile when not necessary.
We detect this with `Gem::Platf... -
06:01 PM Revision 814dedce (git): Remove unused ruby_sighandler_t
-
05:54 PM Revision 51485e63 (git): [PRISM] Generate the reflection file
-
05:54 PM Revision d186eb36 (git): [ruby/prism] Add a reflection API for determining the fields of a node
- https://github.com/ruby/prism/commit/f3f9950a74
-
05:33 PM Revision ee6e591b (git): Use unsigned long long for object ID
- Since unsigned long long are minumum 64 bits, we have at least 10**17
object IDs available, so there is no chance it will overflow. -
05:13 PM Bug #20433: Hash.inspect for some hash returns syntax invalid representation
- An easy fix would be for `Hash#inspect` to include spaces around `=>`. It would also read much nicer in my opinion.
-
12:17 PM Bug #20433 (Closed): Hash.inspect for some hash returns syntax invalid representation
- For these hashes, Hash.inspect returns a syntax invalid representation:
~~~ruby
{ :a! => 1 } # {:a!=>1}
{ :a? => 1 } # {:a?=>1}
{ :* => 1 } # {:*=>1}
{ :== => 1 } # {:===>1}
{ :< => 1 } # {:<=>1}
~~~
`eval(hash.inspect)` will r... -
04:12 PM Revision 15b659ca (git): [ruby/reline] Refactor nomultiline and multiline mode difference
- (https://github.com/ruby/reline/pull/653)
* Support multiline input in Reline.readline internally, reduce multiline-singleline branch
* Add readline(singleline) prompt test with force inserting multiline text
https://github.com/ruby/r... -
03:58 PM Misc #20434 (Open): Deprecate encoding-related regular expression modifiers
- This is a follow-up to @duerst's comment here: https://bugs.ruby-lang.org/issues/20406#note-6.
As noted in the other issue, there are many encodings that factor in to how a regular expression operates. This includes:
* The encoding... -
02:36 PM Revision 8c8068c0 (git): [PRISM] Remove old make targets for state stack
-
02:36 PM Revision f72436f8 (git): [ruby/prism] Inline pm_state_stack
-
01:49 PM Revision 209e2f27 (git): Don't allow T_NIL in gc_is_moveable_obj
- gc_is_moveable_obj is only given GC managed objects, and T_NIL cannot be
a GC managed type. -
12:31 PM Revision 24705659 (git): Inline single use variables
-
12:21 PM Bug #20089: Fiber#kill transfers to root fiber
- In the case of transfer, it may be possible to store the previous fiber, and on exiting a fiber, when no explicit transfer takes place, transfer back to the fiber that originally transferred into it. I think this is fairly compatible wit...
-
11:36 AM Bug #20414 (Closed): `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
- Merged in <https://github.com/ruby/ruby/commit/6ade36c06b7cef948099b8f5f483763498705d12>.
-
10:03 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
- Thanks @matz.
To clarify, there are two issues are we addressing.
(1) Improve consistency of `Thread.current.raise` and `Fiber.current.raise`.
(2) Follow `resuming_fiber` when raising exceptions.
They overlap, so are addressed ... -
06:19 AM Bug #20414: `Fiber#raise` should recurse to `resumed_fiber` rather than failing.
- I see no problem in the proposal. I agree.
Matz.
-
11:26 AM Revision e9d7478d (git): relax unused block warning for duck typing
- if a method `foo` uses a block, other (unrelated) method `foo`
can receives a block. So try to relax the unused block warning
condition.
```ruby
class C0
def f = yield
end
class C1 < C0
def f = nil
... - 11:08 AM Revision 6ade36c0 (git): `Fiber#raise` recursively raises on nested resuming_fiber. (#10482)
- * Improve consistency of `Fiber.current.raise`.
-
10:57 AM Feature #20300: Hash: set value and get pre-existing value in one call
- @matz said he was not sure what a name is good for this method because its true motivation is unclear.
It was originally intended as a method to improve the efficiency of `Set#add?`, but the use case was shifted to a method for thread... -
04:30 AM Feature #20300: Hash: set value and get pre-existing value in one call
- AMomchilov (Alexander Momchilov) wrote in #note-21:
> nobu (Nobuyoshi Nakada) wrote in #note-17:
> ...
`ENV` is a hash-like object, so I'm for `Hash#exchange_value` too. -
10:56 AM Feature #20347 (Closed): Separate docs task from all
- Applied in changeset commit:git|cc37c89c2f4253a6f39a36ad610d0ba89c4257e8.
----------
Separate docs task from main to install-*
[Feature #20347] -
09:29 AM Feature #20347: Separate docs task from all
- In [dev meeting](https://bugs.ruby-lang.org/issues/20336), no one against this. I will do this.
Note:
According to [ruby-dev:39325](https://blade.ruby-lang.org/ruby-dev/39325), we added `docs` task to `all` because we avoid to gene... -
10:56 AM Revision 945a0334 (git): Update build and install document related https://blade.ruby-lang.org/ruby-dev/39325
-
10:56 AM Revision cc37c89c (git): Separate docs task from main to install-*
- [Feature #20347]
-
10:38 AM Revision e7493df7 (git): Improve phrasing of ignored block warnings
-
10:16 AM Revision 55b68d6c (git): Revert an accidentally merged change [ci skip]
-
10:07 AM Misc #20422 (Closed): Bugfix release process
- We continue to discuss release process at #20432
-
01:46 AM Misc #20422: Bugfix release process
- I want to upgrade to 3.3, but it's blocked due to #20184.
A segfault on low memory system(~256MB). -
09:47 AM Revision 09638741 (git): [Feature #20335] `Thread.each_caller_location` arguments
- Accecpt the same arguments as `caller` and `caller_locations`.
-
08:41 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
- > I see no reason to keep them. It is practically proven unnecessary
I disagree. Just to give one example among many, it's very useful when tracking memory leaks. For instance you notice some pattern of a Hash growing, being able from... -
08:38 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
- Why not just stop dumping string values? I'm proposing this because I see no reason to keep them. It is practically proven unnecessary; all non-ASCII bits are already silently dropped and no one complains. I prefer simple API for Obje...
-
08:40 AM Revision 7bc66a36 (git): skip on Prism generated iseq
-
08:35 AM Revision eac3dee9 (git): test_uplus_minus: Use a different string literal
- This test fail relatively frequently and it's unclear what is
happening.
```
str: {"address":"0x7fbdeb26d4e0", "type":"STRING", "shape_id":1, "slot_size":40, "class":"0x7fbdd1e0ec50", "frozen":true, "embedded":true, "fstring":true, "byt... -
08:07 AM Revision d31eda8e (git): Add NEWS entry for [[Feature #20429]]
- Followup: https://github.com/ruby/ruby/pull/10532
-
08:03 AM Revision f9f30180 (git): `ISeq#to_a` respects `use_block` status
- ```ruby
b = RubyVM::InstructionSequence.compile('def f = yield; def g = nil').to_a
pp b
#=>
...
{:use_block=>true},
...
``` -
07:58 AM Feature #20429 (Closed): Emit a performance warning when specially optimized core methods are redefined
-
07:57 AM Feature #20429: Emit a performance warning when specially optimized core methods are redefined
- Sounds reasonable. Accepted.
Matz.
-
06:10 AM Bug #20431: Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
- gcc version :
$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
OS and it's version:
$ lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:print... -
04:58 AM Feature #6413 (Rejected): Make Dir.entries default to Dir.entries(Dir.pwd)
- As a language with concurrency, I don't think depending on the current directory implicitly is a good idea.
Matz.
-
04:55 AM Feature #5133 (Rejected): Array#unzip as an alias of Array#transpose
- `unzip` is not really intuitive with Ruby's OO design. Unlike Haskell, Ruby does not have static type issues.
Matz.
- 02:45 AM Revision 0b630d64 (git): Bump ruby/setup-ruby from 1.173.0 to 1.174.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.173.0 to 1.174.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/5f19ec79cedfadb78ab837f95b87734d00... -
01:29 AM Bug #20418 (Closed): `StringIO#read(..., buffer)` doesn't preserve buffer's encoding - Applied in changeset commit:git|75154dec73e1329693866e3a88cb9febb7635417.
----------
[ruby/stringio] strio_read: preserve buffer encoding on partial
reads
(https://github.com/ruby/stringio/pull/95)
[[Bug #20418]](https://bugs.ruby-lang... - 01:29 AM Revision 75154dec (git): [ruby/stringio] strio_read: preserve buffer encoding on partial
- reads
(https://github.com/ruby/stringio/pull/95)
[[Bug #20418]](https://bugs.ruby-lang.org/issues/20418)
Ruby IO#read preserves the encoding on partial read, but change it when
reading the whole IO
from commit https://github.com/ruby/... -
01:15 AM Revision f34409bf (git): [ruby/prism] Fix up more clang-analyzer failures
- https://github.com/ruby/prism/commit/f9a1abbc64
04/16/2024
-
09:53 PM Misc #20422: Bugfix release process
- In speaking about 3.3.1, we are working in progress for [that](https://github.com/ruby/ruby/commits/ruby_3_3/).
Please wait for complete that work. -
01:33 PM Misc #20422: Bugfix release process
- Thanks for bringing this up. I [tried to discuss it at the last dev meeting](https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-03-14.md?plain=1#L637), but I think the core team missed my question.
-
07:44 PM Feature #20405: Inline comments
- I think, unironically, this could be a nice addition. Maybe with a syntax closer to the current comments?
```rb
p #= This is a comment #= and nested one =# =# :| # => :|
```
or more C-like:
```rb
p #* This is a comment #* and nested o... -
07:17 PM Misc #20336: DevMeeting-2024-04-17
- * [Misc #20432] Proposal for workflow changes related to teeny releases (ufuk)
* This is related to the agenda item proposed by @hsbt in https://bugs.ruby-lang.org/issues/20336#note-12
* Can we discuss the proposals to make branch ... -
04:47 PM Misc #20336: DevMeeting-2024-04-17
- @matheusrich Are you organizing old tickets? If so, I thank you for your activity, and would respectfully recommend that you aim to close/reject them in principle.
The fact that a proposal has remained undecided for a long time suggests... -
05:26 AM Misc #20336: DevMeeting-2024-04-17
- * [Misc #20422] Bugfix release process
* I would like to discuss about the current release workflow.
-
06:34 PM Revision d6debba8 (git): Don't check for dynamic symbol in gc_is_moveable_obj
- All GC managed symbols are dynamic symbols so we don't need to check it.
-
05:36 PM Feature #20215: Introduce `IO#readable?`
- Before the dev meeting, I talked with @akr, who designed the Ruby IO, but we could not understand the motivation of the following branch.
```
if client.eof? # <--- Can hang here!
```
Can you explain what you want to do by this br... -
09:54 AM Feature #20215: Introduce `IO#readable?`
- After some discussion, I investigated libc's `feof`:
1. https://github.com/bminor/glibc/blob/14e56bd4ce15ac2d1cc43f762eb2e6b83fec1afe/libio/feof.c
2. https://github.com/bminor/glibc/blob/14e56bd4ce15ac2d1cc43f762eb2e6b83fec1afe/libio... -
01:13 AM Feature #20215: Introduce `IO#readable?`
- > Would io.wait_readable(0) work instead? If not, why not?
(1) I don't think it makes sense to add `wait_*` to `StringIO` but it does make sense to add `readable?` to `StringIO`.
(2) `wait_readable(0)` is impossible to replicate the des... -
05:24 PM Revision e5df8897 (git): Don't check for thread in gc_sweep_page
- We should always have a thread when we sweep so we don't need to check
that it exists. -
03:39 PM Misc #20432 (Closed): Proposal for workflow changes related to teeny releases
- ## Aim
- The cadence of CRuby stable releases is very important for how the project is perceived. Users of CRuby want to get more frequent releases with bug and security fixes, so that they feel confident that their projects and busin... -
03:20 PM Revision f06670c5 (git): Eliminate usage of OBJ_FREEZE_RAW
- Previously it would bypass the `FL_ABLE` check, but
since shapes introduction, it started having a different
behavior than `OBJ_FREEZE`, as it would onyl set the `FL_FREEZE`
flag, but not update the shape.
I have no indication of this c... -
03:20 PM Revision 7380e3d3 (git): RB_OBJ_FREEZE_RAW: Set the object shape
-
02:41 PM Revision 39b13e58 (git): YJIT: End send fallback blocks (#10539)
-
02:30 PM Revision 646a0089 (git): [ruby/prism] Fix up clang-analyzer violations
- https://github.com/ruby/prism/commit/259aef2acd
-
02:06 PM Revision 79df0f13 (git): [ruby/reline] Refactor history move and history search
- (https://github.com/ruby/reline/pull/651)
https://github.com/ruby/reline/commit/90e43e01d4 -
01:32 PM Revision 982dfa07 (git): [ruby/prism] Better error recovery for unwritable nodes
- https://github.com/ruby/prism/commit/4828e73263
- 12:44 PM Revision e8f3ea3f (git): Update default gems list at 8e341d81c9a5d9874c2d4b65d87342 [ci skip]
-
12:42 PM Revision 8e341d81 (git): [ruby/reline] Bump version to 0.5.2
- (https://github.com/ruby/reline/pull/682)
https://github.com/ruby/reline/commit/17d12cc511 -
11:58 AM Revision 639449fe (git): [ruby/reline] Implement changing editing mode
- (https://github.com/ruby/reline/pull/681)
https://github.com/ruby/reline/commit/501b9a6c5f -
10:55 AM Bug #20430 (Closed): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
- Duplicate of #20431
-
10:32 AM Bug #20430 (Closed): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
- I'm trying to build ruby 3.3.0 with openssl 1.1.0. It fails with below error. My base ruby is 3.2.2.
In file included from ./include/ruby/internal/arithmetic/char.h:23,
from ./include/ruby/internal/arithmetic.h:24,
... -
10:55 AM Bug #20431: Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
- Could you elaborate your environment? OS and its version, C compiler and its version, etc.
-
10:33 AM Bug #20431 (Closed): Ruby 3.3.0 build fail with make: *** [io_buffer.o] Error 1
- I'm trying to build ruby from scratch with openss1.1.0. But it's failing with below error.
In file included from ./include/ruby/internal/arithmetic/char.h:23,
from ./include/ruby/internal/arithmetic.h:24,
... -
10:27 AM Feature #20428 (Closed): Ability to reference current class/module in lexical scope
-
10:24 AM Revision 54d472d9 (git): [rubygems/rubygems] Honor a specified path as the temporary diretory if given
- ## The problem
Currently the tests are executed in the fixed name directory "tmp"
under the top source directory. However it makes the tests fail when
the source path contains symlinks. Or unable to even start if the top
source direct... -
10:11 AM Feature #20429: Emit a performance warning when specially optimized core methods are redefined
- +1, great idea.
I will likely do the same in TruffleRuby (there is already a way to find out via `--engine.TraceAssumptions` but that's more general and less user-friendly). -
06:25 AM Feature #20429 (Closed): Emit a performance warning when specially optimized core methods are redefined
- MRI has a number of core methods with special handling in the interpreter and both JITs that if they are redefined negatively impact Ruby performance.
The methods currently are (I may be missing a few):
- `Integer`: `#+`, `#-`, `... -
08:41 AM Feature #20351: Optionally extract common GC routines into a DSO
- Do you have an idea of a timeline for Ractor local GC? Is there an open feature request I can read (I've searched on Redmine and I can't find one).
It's hard for us to assess any collisions between this work and Ractor local GC at the... -
01:01 AM Feature #20351: Optionally extract common GC routines into a DSO
- Please note that we are working on ractor local GC and I'm not sure we can fix "GC interface".
-
07:49 AM Bug #20325 (Closed): Enumerator.product.size bug with zero * infinite enumerators
- Applied in changeset commit:git|29110fe18d8f10f649cbcd43a9726069bfff1c54.
----------
[Bug #20325] `Enumerator.product.size` is 0 if any size is 0 -
07:13 AM Revision 29110fe1 (git): [Bug #20325] `Enumerator.product.size` is 0 if any size is 0
-
06:41 AM Feature #20350: Return chilled string from Symbol#to_s
- > `Symbol#name` returns frozen string. It is not enough?
It doesn't work well with duck typing. It's common to have a method that call `to_s` on the argument, and the argument can be a Symbol or another type:
```ruby
def some_meth... -
06:30 AM Feature #20350: Return chilled string from Symbol#to_s
- `Symbol#name` returns frozen string.
It is not enough?
-
06:33 AM Bug #20340: Ractor comments not applying to constant targets
- good catch.
-
06:09 AM Revision 53a8ad15 (git): Escape colons in pre-commit dependency [ci skip]
- Colons are special in Makefiles.
-
05:48 AM Revision f8f542bd (git): [ruby/pathname] Remove check for File.birthtime
- File.birthtime has existed since Ruby 2.2, and pathname requires Ruby
>= 2.7.0, so the method will always be there.
https://github.com/ruby/pathname/commit/aca9613bbf - 04:22 AM Revision c4974273 (git): Bump github/codeql-action from 3.24.10 to 3.25.0
- Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.10 to 3.25.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.m... -
02:22 AM Revision 7227b859 (git): Merge RubyGems 3.5.9 and Bundler 2.5.9 (Fixed CI at Ruby 3.3) (#10348)
- * Merge RubyGems-3.5.6 and Bundler-2.5.6
* Merge RubyGems-3.5.7 and Bundler-2.5.7
* Merge RubyGems-3.5.8 and Bundler-2.5.8
* Partly reverted about https://github.com/rubygems/rubygems/pull/7483
* Merge RubyGems-3.5.9 and Bundler-2.5.9 -
02:01 AM Revision 4fcf007e (git): [DOC] Update NEWS.md [Misc #18984]
04/15/2024
- 11:33 PM Revision fc8099ae (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.91 to 0.9.94.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.91...v0.9.94)
---
updated-depende... - 11:33 PM Revision 0118f542 (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.91 to 0.9.94.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.91...v0.9.94)
---
updated-depende... -
10:32 PM Feature #20428: Ability to reference current class/module in lexical scope
- ufuk (Ufuk Kayserilioglu) wrote in #note-1:
> I think you should be able to use `Module.nesting.first` to get the closest lexical nesting to the executing code. There might be edge-cases where this doesn't work the way you might want it... -
10:28 PM Feature #20428: Ability to reference current class/module in lexical scope
- I think you should be able to use `Module.nesting.first` to get the closest lexical nesting to the executing code. There might be edge-cases where this doesn't work the way you might want it to work, but it definitely works for your exam...
-
10:17 PM Feature #20428 (Closed): Ability to reference current class/module in lexical scope
- Hello! As far as I know, there is no way to reference the current `Class` or `Module` one is inside of lexically in Ruby. Would it make sense to add a syntax/keyword for this?
``` ruby
module Foo
module Bar
def blah
pu... -
10:15 PM Revision ebaa87f6 (git): Remove unused functions from `struct rb_parser_config_struct`
-
09:40 PM Feature #15554: warn/error passing a block to a method which never use a block
- Also to include a positive note, it's definitely pointing at valuable things, e.g. from our test suite:
```ruby
SOME_LIST.excluding(things) do |behaviour|
test "#... snip #{behaviour.serialize}" do
# ...snip
... -
09:33 PM Feature #15554: warn/error passing a block to a method which never use a block
- I'm yet to process the warnings uncovered in our app, but to share an early one I think is relevant, from `statsd-instrument`:
```ruby
def distribution(key, value = UNSPECIFIED, sample_rate: nil, tags: nil, no_prefix: false, &b... -
04:42 AM Feature #15554 (Closed): warn/error passing a block to a method which never use a block
- Applied in changeset commit:git|9180e33ca3a5886fec3f9e0a2f48072b55914e65.
----------
show warning for unused block
With verbopse mode (-w), the interpreter shows a warning if
a block is passed to a method which does not use the given b... -
03:22 AM Feature #15554: warn/error passing a block to a method which never use a block
- merged, but please give us your feedback.
-
08:02 PM Feature #20351 (Closed): Optionally extract common GC routines into a DSO
-
08:02 PM Feature #20351: Optionally extract common GC routines into a DSO
- Closed by https://github.com/ruby/ruby/pull/10456
-
06:50 PM Revision f5d89267 (git): Add --with-shared-gc to Ubuntu CI
-
06:50 PM Revision 065710c0 (git): Initialize external GC Library
- Co-Authored-By: Peter Zhu <peter@peterzhu.ca>
-
06:50 PM Revision a2ea4ec3 (git): Add --with-shared-gc build flag
-
06:29 PM Revision f86fb1ed (git): add allocation benchmark
-
05:58 PM Bug #20411 (Closed): Kenrel.autoload? behaviour
- Fixed by commit:1984f9aedcbb11f0770257eb5ecd4d4f37e0efd5
-
05:55 PM Revision 1984f9ae (git): Specify Kernel#autoload? uses current namespace
- Because Kernel#autoload? uses the current namespace, it can lead to
potentially confusing results. We should make it clearer that modules
count as separate namespaces to lookup in.
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Co-... -
05:44 PM Revision 733d50f0 (git): Remove dependency on gc.h for darray.h
-
04:57 PM Revision 66bfcba5 (git): Not all `nm`s support the `--help` option
-
04:21 PM Revision d019b3ba (git): Emit a performance warning when redefining specially optimized methods
- This makes it easier to notice a dependency is causing interpreter or
JIT deoptimization.
```ruby
Warning[:performance] = true
class String
def freeze
super
end
end
```
```
./test.rb:4: warning: Redefining 'String#freeze' disa... -
03:59 PM Revision 2eafed0f (git): YJIT: A64: Avoid intermediate register in `opt_and` and friends (#10509)
- Same idea as the x64 equivalent in c2622b52536c5, removing the register
shuffle coming from the pop two, push one stack motion these VM
instructions perform.
```
# Insn: 0004 opt_or (stack_size: 2)
- orr x11, x1, x9
- mov x1, x11
... -
01:31 PM Revision 0a4e3f23 (git): [ruby/reline] Remove not implemented method
- (https://github.com/ruby/reline/pull/680)
https://github.com/ruby/reline/commit/84762fc588 -
01:15 PM Revision 43f4da3e (git): [ruby/reline] Fix vi_to_column which was broken
- (https://github.com/ruby/reline/pull/679)
https://github.com/ruby/reline/commit/9e93ad52e7 -
12:56 PM Revision 07ff4aa1 (git): Include more debug information in test_uplus_minus
-
11:51 AM Revision 9b1e97b2 (git): [Universal parser] DeVALUE of p->debug_lines and ast->body.script_lines
- This patch is part of universal parser work.
## Summary
- Decouple VALUE from members below:
- `(struct parser_params *)->debug_lines`
- `(rb_ast_t *)->body.script_lines`
- Instead, they are now `rb_parser_ary_t *`
- They can also... -
09:06 AM Revision bb1c3418 (git): Add more assertions in `test_uplus_minus`
- Not along after 1b830740ba8371c4bcfdfc6eb2cb7e0ae81a84e0 CI
started to rarely fail this test:
```
TestString#test_uplus_minus: Test::Unit::AssertionFailedError: uminus deduplicates [Feature #13077].
1) Failure:
TestString#test_uplus_m... -
08:56 AM Revision 9a57b047 (git): `super{}` doesn't use block
- `super(){}`, `super{}` and `super(&b)` doesn't use the given
block so warn unused block warning when calling a method which
doesn't use block with above `super` expressions.
e.g.: `def f = super{B1}` (warn on `f{B2}` because `B2` is not... -
05:53 AM Revision 145cced9 (git): fix incorrect warning.
- `super()` (not zsuper) passes the passed block and
it can be used.
```ruby
class C0
def foo; yield; end
end
class C1 < C0
def foo; super(); end
end
C1.new.foo{p :block} #=> :block
``` - 05:07 AM Revision b6a10a15 (git): Update default gems list at fc363944b40e4031b447f91fa89793 [ci skip]
-
05:06 AM Revision fc363944 (git): [ruby/optparse] bump up to 0.5.0
- https://github.com/ruby/optparse/commit/f5018a8b1c
- 05:06 AM Revision 33bf1fc1 (git): * 2024-04-15 [ci skip]
-
05:05 AM Revision 5aca51d3 (git): No longer download zlib source
- Although zlib package in vcpkg is still 1.2.12, it should be no
problem in ruby tests. -
05:05 AM Revision ecf9b15c (git): [MSWin] Install libffi using vcpkg
-
05:05 AM Revision d2dc49d8 (git): We didn't invoke leaked-globals at ruby_3_0
-
05:05 AM Revision c86a8529 (git): openssl of Ruby 3.0 couldn't build with c2x compiler
-
05:05 AM Revision 2d8337b0 (git): coroutine=pthread is not working with Ruby 3.0
-
05:05 AM Revision e85273c5 (git): tool/leaked-globals: ignore function typedef [ci skip]
-
05:05 AM Revision f95abc3c (git): Canonicalization functions were removed already
- At b958e2add835d62c0a62edaf9a23ecbbd70a3635
-
05:05 AM Revision 682d7e31 (git): Ignore symbols declared in the platform header
-
05:05 AM Revision 3fdc8e90 (git): Ignore objects from the "missing" directory
-
05:05 AM Revision 10b30c7d (git): Get rid of \K for old BASERUBYs which have a bug in String#scan
-
05:05 AM Revision 984ff9c6 (git): Exclude entry points
-
05:05 AM Revision cbe3a916 (git): Support AC_FUNC_MEMCMP
-
05:05 AM Revision 3b9012ec (git): Backport compilers.yml from ruby_3_1
-
05:05 AM Revision 2676046c (git): Don't upgrade brew packages
- 05:05 AM Revision 3229fb97 (git): * 2024-04-15 [ci skip]
-
05:05 AM Revision 74879c7d (git): We no longer use Cirrus CI
-
05:05 AM Revision b0aff455 (git): [MSWin] Install libffi using vcpkg
-
05:05 AM Revision 1fb8872b (git): Skip c99 and c2x compilers because Ruby 3.1 couldn't build openssl gem with them.
- https://github.com/ruby/ruby/actions/runs/8657971535/job/23741841371?pr=10512
https://github.com/ruby/ruby/actions/runs/8657971535/job/23741841091?pr=10512 -
05:05 AM Revision e9175573 (git): merge revision(s) 64b6a018a38f200c957fdbbe7d0cbe0e64781c9f:
- Fix test session reuse but expire (#9824)
* OpenSSL 3.2.1 30 Jan 2024 is also broken
Import 45064610725ddd81a5ea3775da35aa46985bc789 from ruby_3_3 branch
tentatively.
---
test/net/http/test_http... -
05:05 AM Revision cf8149ab (git): Try to fix https://github.com/ruby/ruby/actions/runs/8370868368/job/22918952425?pr=10321
- ruby_3_2 fixed that with https://github.com/ruby/ruby/commit/e777064e4b064fd77aca65c123f1919433f6732d
-
03:08 AM Revision 9180e33c (git): show warning for unused block
- With verbopse mode (-w), the interpreter shows a warning if
a block is passed to a method which does not use the given block.
Warning on:
* the invoked method is written in C
* the invoked method is not `initialize`
* not invoked with ...