Project

General

Profile

Activity

From 06/09/2023 to 06/15/2023

06/15/2023

08:24 PM Bug #19732: Possible missing header (stdint.h) in event.h
While preparing that diff I realized what happened. I'm using `clang-format` which sorts includes and ordered https://github.com/banister/debug_inspector/blob/5424c4094df30adfecd961a4e77d95f1fea9bc48/ext/debug_inspector/debug_inspector.c... itarato (Peter Arato)
06:37 AM Bug #19732 (Feedback): Possible missing header (stdint.h) in event.h
Could you share the code to reproduce?
Is it https://github.com/banister/debug_inspector/tree/master/ext/debug_inspector/debug_inspector.c?
nobu (Nobuyoshi Nakada)
05:38 PM Revision 598ad56a (git): * 2023-06-15 [ci skip]
git[bot]
05:38 PM Revision 78d118dc (git): Fix test-bundled-gems for Ruby 3.0 (#7936)
* pry is not needed for test-bundled-gems
* Run test-unit test without rake task to avoid yard dependency
* Use power_assert-1.2.1 to avoid pry dependency
hsbt (Hiroshi SHIBATA)
05:36 PM Revision e031f2b4 (git): * 2023-06-15 [ci skip]
git[bot]
05:35 PM Revision f6491773 (git): Fix test-bundled-gems for Ruby 3.1 (#7935)
* pry is not needed for test-bundled-gems
* Run test-unit test without rake task to avoid yard dependency
* Try to skip Prime_test.rb
hsbt (Hiroshi SHIBATA)
03:39 PM Revision 364a6d56 (git): [ruby/irb] Rewrite RubyLex to fix some bugs and make it possible to
add new features easily
(https://github.com/ruby/irb/pull/500)
* Add nesting level parser for multiple use (indent, prompt, termination check)
* Rewrite RubyLex using NestingParser
* Add nesting parser tests, fix some existing tests
...
tompng (tomoya ishida)
01:12 PM Bug #19733: Kernel#Rational does not accept prefix 0
@mame It seems that you were not aware of the fact that the documentation is wrong. And I hope you share with me the idea that we want the documentation to be correct. I think the reason why there was a mistake in the documentation, and ... sawa (Tsuyoshi Sawada)
01:16 AM Bug #19733: Kernel#Rational does not accept prefix 0
mame (Yusuke Endoh) wrote in #note-2:
> "Confusing" is not necessarily a bug. What Kernel#Rational accepts is clearly stated in the documentation in BNF style.
> ...
I had read that documentation, and thought that perhaps someone is goin...
sawa (Tsuyoshi Sawada)
12:57 AM Bug #19733 (Feedback): Kernel#Rational does not accept prefix 0
"Confusing" is not necessarily a bug. What Kernel#Rational accepts is clearly stated in the documentation in BNF style.
https://docs.ruby-lang.org/en/master/Kernel.html#method-i-Rational
There may be room for discussion to make `Kernel...
mame (Yusuke Endoh)
12:44 AM Bug #19733 (Feedback): Kernel#Rational does not accept prefix 0
`Integer` and `Rational` literals accept prefix `0`. There is no difference in this respect.
```ruby
0b10 # => 2
0b10r # => (2/1)
```
However, when it comes to `Kernel#Integer` and `Kernel#Rational`, the former accepts prefix `0...
sawa (Tsuyoshi Sawada)
08:06 AM Feature #19315: Lazy substrings in CRuby
Hanmac (Hans Mackowiak) wrote in #note-11:
> it confused me too, i thought Copy On Write was default for shared strings
> ...
Pat Shaughnessy in his blog describes exactly the same thing as Benoit Daloze above: Ruby shares string data ...
duerst (Martin Dürst)
07:38 AM Feature #19315: Lazy substrings in CRuby
it confused me too, i thought Copy On Write was default for shared strings
https://patshaughnessy.net/2012/1/18/seeing-double-how-ruby-shares-string-values
Hanmac (Hans Mackowiak)
05:26 AM Revision c1c92621 (git): [Cirrus] Run only if nightly [ci skip]
Recently Cirrus-CI does not start over 10 hours. Maybe we have too
many runs.
nobu (Nobuyoshi Nakada)
05:24 AM Revision 1cdae888 (git): [Cirrus] Auto cancelation for non-yjit task [ci skip]
nobu (Nobuyoshi Nakada)
03:39 AM Revision 1e55ac49 (git): Bump ruby/setup-ruby from 1.151.0 to 1.152.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.151.0 to 1.152.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/bc1dd263b68cb5626dbb55d5c89777d793...
dependabot[bot]

06/14/2023

11:47 PM Revision 0c55ef11 (git): [ruby/rdoc] Use flat_map for better performance
https://github.com/ruby/rdoc/commit/76192a280d p8 (Petrik de Heus)
10:02 PM Revision c2f4b414 (git): Merge rubygems/rubygems HEAD
Pick from https://github.com/rubygems/rubygems/commit/7a7b234721c375874b7e22b1c5b14925b943f04e hsbt (Hiroshi SHIBATA)
10:01 PM Revision 827d6626 (git): [rubygems/rubygems] auto-correct Style/YodaCondition
https://github.com/rubygems/rubygems/commit/6d9e8025dc hsbt (Hiroshi SHIBATA)
10:01 PM Revision 503b9bf1 (git): [rubygems/rubygems] Removed unnecessary disabling of Lint/DuplicateMethods
https://github.com/rubygems/rubygems/commit/225fdf0b2e hsbt (Hiroshi SHIBATA)
10:01 PM Revision 2c219ab2 (git): [rubygems/rubygems] Rubocop 1.51.0 or later didn't support Ruby 2.6
https://github.com/rubygems/rubygems/commit/522b5f1ecd hsbt (Hiroshi SHIBATA)
10:01 PM Revision 3e7f5b02 (git): [rubygems/rubygems] Improve error message in frozen mode edge case
When a top level dependency is missing from the lockfile, and we're in
frozen mode, we should also print a "frozen error".
https://github.com/rubygems/rubygems/commit/3e82b835e3
deivid (David Rodríguez)
10:01 PM Revision e86f4c58 (git): [rubygems/rubygems] Improve frozen mode error message
This error message is also printed when using `bundler/setup` in frozen
model, so we're not necessarily installing any gems when it happens.
This new message play nicer with all situations.
https://github.com/rubygems/rubygems/commit/6...
deivid (David Rodríguez)
10:01 PM Revision 23ecaab8 (git): [rubygems/rubygems] Use "frozen" rather than "deployment" in error message
I think it communicates better what's going on.
https://github.com/rubygems/rubygems/commit/07a25767a4
deivid (David Rodríguez)
10:01 PM Revision 2ff9b7b9 (git): [rubygems/rubygems] Show missing spec in lockfile incomplete error message
https://github.com/rubygems/rubygems/commit/b86caaa3d5 deivid (David Rodríguez)
10:01 PM Revision 21238f38 (git): [rubygems/rubygems] Extract `Definition#no_resolved_needed?`
https://github.com/rubygems/rubygems/commit/1ff8626571 deivid (David Rodríguez)
10:01 PM Revision 4f1b1817 (git): [rubygems/rubygems] There should always be a reason
https://github.com/rubygems/rubygems/commit/4180008c2d deivid (David Rodríguez)
10:01 PM Revision c1216818 (git): [rubygems/rubygems] Show relative path to Gemfile in error message
For conciseness and consistency with printing the relative path to the
lockfile just before.
https://github.com/rubygems/rubygems/commit/74cf6aea7c
deivid (David Rodríguez)
10:01 PM Revision e7749c4d (git): [rubygems/rubygems] Remove weird line breaks in the middle of error message
https://github.com/rubygems/rubygems/commit/22b8caf42f deivid (David Rodríguez)
10:01 PM Revision 90c60e81 (git): [rubygems/rubygems] Simplify checking Gemfile vs lockfile sources
https://github.com/rubygems/rubygems/commit/251e80aec6 deivid (David Rodríguez)
10:01 PM Revision 96e3f31c (git): [rubygems/rubygems] Make frozen mode spec also pass on Bundler 3
https://github.com/rubygems/rubygems/commit/ad52f840f2 deivid (David Rodríguez)
10:01 PM Revision e1038f94 (git): [rubygems/rubygems] This spec is independent from global sources
https://github.com/rubygems/rubygems/commit/d91c245921 deivid (David Rodríguez)
10:01 PM Revision 551b8a31 (git): Update directory layout of rubygems/rubygems
hsbt (Hiroshi SHIBATA)
08:53 PM Feature #19714: Add Refinement#refined_module
matz (Yukihiro Matsumoto) wrote in #note-2:
> I am not 100% satisfied. Probably (unlike `class_eval` and `module_eval` whose class/module distinction is for the receiver), the method returns a class or a module, unrelated to the name.
...
austin (Austin Ziegler)
08:24 AM Feature #19714: Add Refinement#refined_module
I am not 100% satisfied. Probably (unlike `class_eval` and `module_eval` whose class/module distinction is for the receiver), the method returns a class or a module, unrelated to the name.
Is there any idea?
Matz.
matz (Yukihiro Matsumoto)
05:11 PM Bug #19732 (Closed): Possible missing header (stdint.h) in event.h
Ruby's event.h (https://github.com/ruby/ruby/blob/813a5f4fc46a24ca1695d23c159250b9e1080ac7/include/ruby/internal/event.h#L103) is using type aliases from stdint.h, however it's not directly included.
An example where this causes issue...
itarato (Peter Arato)
04:29 PM Bug #19728: Automate (checking of) Regexp character property documentation
I found that `enc-unicode.rb` deals with some inconsistent unicode data (i.e. some data which uses short property names and some data which uses long names), so it doesn't provide much useful context. I've made a PR to create documentati... janosch-x (Janosch Müller)
02:42 PM Revision 813a5f4f (git): Directly allocate FrozenCore as an ICLASS
It's a bad idea to overwrite the flags as the garbage collector may have
set other flags.
peterzhu2118 (Peter Zhu)
08:52 AM Revision 37513490 (git): [Cirrus] Cache the bundled gems in advance
nobu (Nobuyoshi Nakada)
08:12 AM Bug #15428: Refactor Proc#>> and #<<
I don't feel this proposed extension readable (than explicit one). Is there any example of readable usage of this notation?
Matz.
matz (Yukihiro Matsumoto)
07:44 AM Bug #19731: Can’t call an instance method inside an Endless method definition
Currently it is an expected behavior because it is parsed as `(def show = puts 'ok') if params`. Related to #19392. mame (Yusuke Endoh)
07:35 AM Bug #19731 (Closed): Can’t call an instance method inside an Endless method definition
Can’t call an instance method inside an Endless method definition.
```
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
$ cat withend.rb
class A
def show
puts 'ok' if params
end
def params
...
ttanimichi (Tsukuru Tanimichi)
05:25 AM Revision 58b8e217 (git): Update bundled gems list at bd019ac87aa47c481348ec6b7e3773 [ci skip]
git[bot]
05:24 AM Revision bd019ac8 (git): Removed rake-compiler dependency for test-bundled-gems
It's needless with racc-1.7.1 hsbt (Hiroshi SHIBATA)
03:56 AM Revision 6e93320c (git): Update RDoc::RD parsers generated by racc-1.7.1
hsbt (Hiroshi SHIBATA)
03:14 AM Revision f9deff32 (git): Show prerequisites for compile task
nobu (Nobuyoshi Nakada)
03:14 AM Revision c5c15a56 (git): Allow test-unit-ruby-core files to be loaded from bundled gems
Separate the directly from the customized test-unit, since it may not
work with bundled gems.
nobu (Nobuyoshi Nakada)
02:05 AM Feature #19315: Lazy substrings in CRuby
Bumping this because it's kinda shocking to me that strings don't already work this way. My mental model of ruby strings has always been that
```
m = rx.match(very_large_string)
before, match, after = m.pre_match, m[0], m.post_match
...
Dan0042 (Daniel DeLorme)
01:40 AM Revision 8722342c (git): Lrama v0.5.2
yui-knk (Kaneko Yuichiro)

06/13/2023

10:06 PM Bug #19728: Automate (checking of) Regexp character property documentation
How about doing it in [enc-unicode.rb](https://github.com/ruby/ruby/blob/master/tool/enc-unicode.rb)?
On the one hand, this script is a bit convoluted as it is, and does not need another responsibility.
On the other hand, it alread...
janosch-x (Janosch Müller)
07:39 AM Bug #19728 (Closed): Automate (checking of) Regexp character property documentation
This came up in a discussion at https://github.com/ruby/ruby/pull/7923.
The documentation at doc/regexp.rdoc currently contains a list of character properties that can be used in regular expressions. But there is no guarantee that thi...
duerst (Martin Dürst)
08:23 PM Misc #19722: DevMeeting-2023-07-13
- [Feature #19730] Remove transient heap (peterzhu2118)
- Variable Width Allocation supports all types that used transient heap (arrays, objects, hashes, structs).
- Transient heap is no longer used for hashes.
- Transient heap ...
peterzhu2118 (Peter Zhu)
08:21 PM Feature #19730 (Closed): Remove transient heap
GitHub PR: https://github.com/ruby/ruby/pull/7942
I'm proposing to remove the transient heap because Variable Width Allocation now supports all the types that were on the transient heap.
Arrays, objects, hashes, and structs were on...
peterzhu2118 (Peter Zhu)
02:55 PM Revision 5a69e8bc (git): Add tests to `String#byteslice` memory allocation behaviour. (#1909)
Samuel Williams
01:48 PM Feature #19729 (Closed): Store object age in a bitmap
## Github PR
[Store object age in a bitmap #7938](https://github.com/ruby/ruby/pull/7938)
## Abstract
Ruby currently uses 2 bits of the flags in every object to track how many GC
events the object has survived. Objects are crea...
eightbitraptor (Matt V-H)
01:20 PM Bug #19715: Coverage oneshot_lines mode is not working after result clear
mame (Yusuke Endoh) wrote in #note-1:
> `oneshot_lines` is a mode that reports execution at most once for each line. The record is not reset even by `clear: true`. Currently, we do not provide a way to reset the record.
> ...
Ah yes, w...
ngan (Ngan Pham)
12:08 PM Feature #18996: Proposal: Introduce new APIs to reline for changing dialog UI colours
I opened a PR to restart this discussion:
https://github.com/ruby/reline/pull/552
hasumikin (hitoshi hasumi)
11:02 AM Revision 91b106fe (git): [ruby/irb] Stanardise test class names with `Test` postfix instead
of prefix
(https://github.com/ruby/irb/pull/603)
https://github.com/ruby/irb/commit/359cb28def
st0012 (Stan Lo)
10:49 AM Revision 27d581ea (git): rexml is also bundled gems
hsbt (Hiroshi SHIBATA)
10:49 AM Revision e5cf6b6d (git): Don't install bundled gems for test-bundled-gems and test-syntax-suggest
hsbt (Hiroshi SHIBATA)
10:46 AM Revision 5d91be7c (git): [ruby/irb] Use symbol.inspect instead of ":"+symbol.id2name to avoid
completion candidates including newline characters
(https://github.com/ruby/irb/pull/539)
https://github.com/ruby/irb/commit/aaf0c46645
tompng (tomoya ishida)
09:32 AM Revision 27b07776 (git): [rubygems/rubygems] Autoload shellwords when it's needed.
https://github.com/rubygems/rubygems/commit/e916ccb2d9 Samuel Williams
06:59 AM Revision c74f42a4 (git): Update bundled gems list at 2023-06-13
git[bot]
05:57 AM Revision 6d734a89 (git): [ruby/uri] Fix RFC3986 regexps
https://github.com/ruby/uri/commit/8e38592241 nobu (Nobuyoshi Nakada)
05:19 AM Bug #19707: Backport openssl fix to ruby_3_2 branch
Fixed at https://github.com/ruby/ruby/pull/7934 hsbt (Hiroshi SHIBATA)
05:01 AM Revision f89101fa (git): [ruby/openssl] Relax error message check for OpenSSL 3.1
A tentative measures fo https://github.com/ruby/openssl/issues/606.
With OpenSSL 3.1.0, the error message at connection using "self-signed
certificate" seems to return `SSL_R_TLSV1_ALERT_UNKNOWN_CA` instead of
`SSL_R_CERTIFICATE_VERIFY_...
nobu (Nobuyoshi Nakada)
05:01 AM Revision 34da58bd (git): Try to skip Prime_test.rb
hsbt (Hiroshi SHIBATA)
05:01 AM Revision 1b2ad95c (git): Run test-unit test without rake task to avoid yard dependency
hsbt (Hiroshi SHIBATA)
05:01 AM Revision 60ea850b (git): pry is not needed for test-bundled-gems
hsbt (Hiroshi SHIBATA)
05:00 AM Bug #19727 (Closed): Backport CI fixes for test-bundled-gems
After https://bugs.ruby-lang.org/issues/19702, CI of Ruby 3.0-3.2 is broken.
I fixed them with:
* [for Ruby 3.2](https://github.com/ruby/ruby/pull/7934)
* [for Ruby 3.1](https://github.com/ruby/ruby/pull/7935)
* [for Ruby 3.0](ht...
hsbt (Hiroshi SHIBATA)
03:28 AM Revision 3924dba5 (git): Update the current URI maintainer
hsbt (Hiroshi SHIBATA)
03:25 AM Revision 57c5b0a9 (git): [ruby/uri] Refactor RFC3986 regexps to make more readable
https://github.com/ruby/uri/commit/3dfa19e920 nobu (Nobuyoshi Nakada)

06/12/2023

07:33 PM Bug #19724 (Closed): Dir.home returns incorrect home directory
jeremyevans0 (Jeremy Evans)
07:29 PM Bug #19724: Dir.home returns incorrect home directory
Ok, my apologies. This was caused by one part of a rather big ruby system passing `:unsetenv_others` into the options for `Process.spawn` with value `true` and one of the processes spawned that way was itself a ruby process. It was that ... seb (Sebastian Unger)
05:34 AM Bug #19724: Dir.home returns incorrect home directory
Looking at the implementation of `rb_default_home_dir`, `$HOME` is always checked, and `getlogin`/`getpwnam` is only used when `$HOME` is not set. If `$HOME` is not set, then Ruby does use `getlogin`, but that appears to be intentional,... jeremyevans0 (Jeremy Evans)
03:06 AM Bug #19724 (Closed): Dir.home returns incorrect home directory
This is probably related to 16787.
From the patch on that issue I conclude that ruby uses getlogin and co to obtain the name of the logged-in user, but that is not valid. Ruby must use the uid of the running process since the user tha...
seb (Sebastian Unger)
06:38 PM Revision 3168f618 (git): hash.c no longer needs the transient heap
peterzhu2118 (Peter Zhu)
06:30 PM Revision 78ca0857 (git): Revert "YJIT: Break register cycles for C arguments (#7918)"
This reverts commit 888ba29e462075472776098f4f95eb6d3df8e730.
It caused a CI failure
http://ci.rvm.jp/results/trunk-yjit@ruby-sp2-docker/4598881
and I'm investigating it.
k0kubun (Takashi Kokubun)
04:54 PM Revision 888ba29e (git): YJIT: Break register cycles for C arguments (#7918)
k0kubun (Takashi Kokubun)
04:15 PM Feature #19719: Universal Parser
IMO it's quite strange and not respectful of the Ruby development workflow to:
* create an issue about a big feature but discuss literally none of the details. Notably the background, design and release management sections are all compl...
Eregon (Benoit Daloze)
10:10 AM Feature #19719 (Closed): Universal Parser
Applied in changeset commit:git|b481b673d753339204290d7582dbb91a6e14447a.
----------
[Feature #19719] Universal Parser
Introduce Universal Parser mode for the parser.
This commit includes these changes:
* Introduce `UNIVERSAL_PARSER` ...
yui-knk (Kaneko Yuichiro)
04:59 AM Feature #19719: Universal Parser
I agree API-wise, YARP is better, and already used from various tools, including TruffleRuby. On the other hand, Lrama is 100% compatible to the current parser (by definition).
As long as kaneko-san (@yui-knk) is willing to try, I'd lik...
matz (Yukihiro Matsumoto)
02:42 AM Feature #19719: Universal Parser
>Release it as gem (ruby/universal_parser)
I'll support it. Please ping me when you need to create new repository under the ruby organization.
hsbt (Hiroshi SHIBATA)
02:20 PM Revision 6fe46ff9 (git): When alloc size is too large, only allocate struct
eightbitraptor (Matt V-H)
12:31 PM Revision 31e24a42 (git): [ruby/psych] Comment out the code used to expand the file list [ci skip]
https://github.com/ruby/psych/commit/715f3bfad0 nobu (Nobuyoshi Nakada)
11:22 AM Revision 81836c6c (git): Fix duplicate symbol errors when statically linking ripper
nobu (Nobuyoshi Nakada)
10:26 AM Bug #19726 (Rejected): Script loaded twice when requiring self
The executed program is not added to `$LOADED_FEATURES` unexpectedly resulting in the program possibly being loaded twice:
a.rb:
```
#!/usr/bin/env ruby
require "./b"
C = 42
return unless __FILE__ == $0
puts C
```
b....
johannes (Johannes Krude)
10:10 AM Revision 41035273 (git): [DOC] Should use `NULL` instead of zero
Since no type information is available for variadic arguments, 0 is
passed as `int` without promoting to pointer. On platforms where
`sizeof(int) < sizeof(void*)`, the terminator argument may be read
together with an adjoining word, and...
nobu (Nobuyoshi Nakada)
10:10 AM Revision 70483f6c (git): Add missing dependencies
nobu (Nobuyoshi Nakada)
09:24 AM Revision a4bb2d7d (git): * expand tabs. [ci skip]
Please consider using misc/expand_tabs.rb as a pre-commit hook. git[bot]
09:23 AM Revision b481b673 (git): [Feature #19719] Universal Parser
Introduce Universal Parser mode for the parser.
This commit includes these changes:
* Introduce `UNIVERSAL_PARSER` macro. All of CRuby related functions
are passed via `struct rb_parser_config_struct` when this macro is enabled.
* Add...
yui-knk (Kaneko Yuichiro)
07:55 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
> So, tl;dr, I don't think we should do this "handoff" approach.
After reading this I realised we don't actually have to hand off the GVL when the mutex is handed off. The thread that signalled the condition variable and unlocked the ...
kjtsanaktsidis (KJ Tsanaktsidis)
07:45 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
> I think it's possible, with a bit of shuffling around in thread_sync.c, for the implementation to not actually remove the thread off the ConditionVariable's waitq until it's actually successfully acquired the resource; that way, if e.g... ioquatix (Samuel Williams)
07:42 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
> I like the proposed implementation. Is there any chance it still has the similar problems? If we always reque at the front, could multiple waiters reque in front of each other? i.e. it still depends on the order.
I think it can't ha...
kjtsanaktsidis (KJ Tsanaktsidis)
02:18 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
> the thread which was waiting the longest will actually be the one woken
To me, this is the correct behaviour and what I try to implement in Async. If there is a spurious wakeup, you don't loose your position in the queue.
I like the ...
ioquatix (Samuel Williams)
02:15 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
Based on the thorough analysis by @kjtsanaktsidis, this doesn't appear to be a bug in Ruby, but rather common behavior of condition variable across implementations. The idea of `ConditionVariable#wait` taking a block to address the spur... jeremyevans0 (Jeremy Evans)
07:36 AM Feature #19630: [RFC] Deprecate `Kernel#open("|command-here")` due to frequent security issues
> is there any objection
Not from me, we should add this ticket to the next dev meeting.
However I feel like other IO methods (`IO.binread`, etc) should do the same otherwise it's a bit inconsistent.
byroot (Jean Boussier)
07:07 AM Revision b308f7cf (git): Bump actions/checkout from 3.5.2 to 3.5.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http...
dependabot[bot]
07:02 AM Revision bcded49d (git): [ruby/psych] Update spec files
https://github.com/ruby/psych/commit/ba6fc48591 nobu (Nobuyoshi Nakada)
06:22 AM Feature #19725: Improve the match cache optimization to support look-ahead and atomic groups
Pull request: https://github.com/ruby/ruby/pull/7931 make_now_just (Hiroya Fujinami)
06:07 AM Feature #19725 (Closed): Improve the match cache optimization to support look-ahead and atomic groups
Currently, the Regexp match cache optimization [Feature #19104] memoizes match cache points that once arrived; that is, it memoizes them **before backtracking**. This kind of implementation is simple and works fine in most cases. However... make_now_just (Hiroya Fujinami)
04:18 AM Revision f6e6d52b (git): Try to skip Prime_test.rb
hsbt (Hiroshi SHIBATA)
04:18 AM Revision 8be4659b (git): Run test-unit test without rake task to avoid yard dependency
hsbt (Hiroshi SHIBATA)
04:18 AM Revision 2ec18199 (git): pry is not needed for test-bundled-gems
hsbt (Hiroshi SHIBATA)
03:36 AM Revision c09b75ab (git): Bump github/codeql-action from 2.3.5 to 2.13.4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.5 to 2.13.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)...
dependabot[bot]
03:02 AM Revision 10e66264 (git): [ruby/psych] Prefer `assert_include` for simple strings
https://github.com/ruby/psych/commit/33024ce2b0 nobu (Nobuyoshi Nakada)
02:16 AM Bug #19711 (Closed): NoMethodError "private method `new' called for class" since bebd05fb51ea65bc57344b67100748200f8311eb
jeremyevans0 (Jeremy Evans)
02:06 AM Bug #19707 (Closed): Backport openssl fix to ruby_3_2 branch
jeremyevans0 (Jeremy Evans)
02:01 AM Bug #19701: The rb_classext_t::classpath field is not marked for T_ICLASS
There is a third option, set "FrozenCore" as an fstring that doesn't get garbage collected (via `rb_gc_register_address` or something). That reduces the cost to 1 object marking per major GC. That seems to be the best option to me if t... jeremyevans0 (Jeremy Evans)

06/11/2023

09:01 PM Feature #19723: [RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
mdalessio (Mike Dalessio) wrote in #note-2:
> I think we should merge this discussion into #19630 since the behavior you wish to deprecate comes from `Kernel#open` (called by `URI.open` in the fall-through case).
> ...
This could be do...
postmodern (Hal Brodigan)
04:18 PM Feature #19723: [RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
I think we should merge this discussion into #19630 since the behavior you wish to deprecate comes from `Kernel#open` (called by `URI.open` in the fall-through case).
If #19630 is accepted, the naive implementation proposed at https:/...
mdalessio (Mike Dalessio)
04:35 PM Feature #19630: [RFC] Deprecate `Kernel#open("|command-here")` due to frequent security issues
If we all agree that deprecating this behavior in `Kernel#open` is a good idea, is there any objection to something like https://github.com/ruby/ruby/pull/7915 ?
@byroot I agree with your concerns about people ignoring deprecation war...
mdalessio (Mike Dalessio)
03:41 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
@matz the related spec proposed in https://github.com/ruby/spec/pull/1044 says in a commment
> You get one of the two, but you don't know which one.
It is written this way because that is all CRuby can say, since we have seen that the ...
fxn (Xavier Noria)
02:19 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
Yes, in the C spec terms, “undefined behavior” really is an “undefined behavior”, even a demon can be appeared. We can call it “implementation defined”.
Matz.
matz (Yukihiro Matsumoto)
08:28 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
New spec and a couple others for the same price in https://github.com/ruby/spec/pull/1044 👍. fxn (Xavier Noria)
01:32 PM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
> have ConditionVariable#wait take an optional kwarg that lets the caller report whether their last wakeup was spurious or no
A better API might be to have the `ConditionVariable#wait` accept a block, and have Ruby do the looping & ch...
kjtsanaktsidis (KJ Tsanaktsidis)
01:29 PM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
This is mostly just semantics, but I read some sources tonight - glibc doesn't actually do anything to implement "fair" condition variables. But, in the Linux kernel, the set of waiters waiting on a particular futex address is stored in ... kjtsanaktsidis (KJ Tsanaktsidis)
12:33 PM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
I spent a bit of time looking into this issue. I think I understand _why_ it's happening now, but I don't quite know what, if anything, we should do about it.
Firstly, I fixed up the reproduction issue in a couple of ways - after thes...
kjtsanaktsidis (KJ Tsanaktsidis)
08:31 AM Revision dcdc2cbd (git): `RString::len` was moved at 7577c101ed6452de3e72fadb43db595946acc701
[ci skip] nobu (Nobuyoshi Nakada)
07:01 AM Revision 52131d84 (git): Update bundled gems list at 2023-06-11
git[bot]

06/10/2023

09:20 PM Feature #15192: Introduce a new "shortcut assigning" syntax to convenient setup instance variables
I really believe this would be seen a major improvement to Ruby.
Personally, I still feel
``` ruby
def initialize(@foo)
```
is the cleanest implementation (or something else the comes _before_ the arg name), but I would be happy ...
bradly (Bradly Feeley)
03:01 PM Revision e1ccb283 (git): [ruby/irb] Use `Kernel.warn` to print command alias warning
(https://github.com/ruby/irb/pull/601)
This aligns with other warnings in irb and properly channel the message
to stderr.
st0012 (Stan Lo)
02:13 PM Revision be86767e (git): Add VM_ASSERT on `fiber->blocking == 0`. (#7926)
I have not seen any problems with this code, but this ensures the invariant. Samuel Williams
12:51 PM Revision a41e0886 (git): [ruby/irb] Remove the unused fork command definition
(https://github.com/ruby/irb/pull/600)
https://github.com/ruby/irb/commit/b039b89343
st0012 (Stan Lo)
01:41 AM Feature #19723 (Closed): [RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
Due to `Kernel.open()` supporting opening pipe-commands (ex: `"|command-here..."`) this has led to multiple [1] security [2] vulnerabilities [3], where malicious user-input eventually is passed to `Kernel.open()`. One of the code-paths t... postmodern (Hal Brodigan)

06/09/2023

05:45 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
Yes, absolutely, a spec example allowing both would be welcome in ruby/spec. Eregon (Benoit Daloze)
03:41 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
@Eregon right, I was thinking in terms of "it is M::C or M::D, but which one of the two is undefined".
I was wondering if it would make sense to add a spec that makes this decision explicit, and tests that `M::C.name` is one of the tw...
fxn (Xavier Noria)
02:49 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
Just to clarify, this is not undefined behavior (which has very scary semantics in the C language), it is: either "M::D" or "M::C" is an acceptable outcome for the program in the description.
So it is defined but non-deterministic behav...
Eregon (Benoit Daloze)
02:53 PM Feature #19719: Universal Parser
Eregon (Benoit Daloze) wrote in #note-2:
> First of all, I think @yui-knk should show the status of Universal Parser and how it improves over YARP, otherwise it seems to purposefully ignore a much more advanced and established project (...
jeremyevans0 (Jeremy Evans)
02:12 PM Feature #19719: Universal Parser
As I discussed with @matz and @yui-knk at RubyKaigi, the API, serialization to convert efficiently from C to Java, and AST format (a much cleaner AST) needed for JRuby and TruffleRuby are the ones developed in YARP.
JRuby and TruffleRub...
Eregon (Benoit Daloze)
02:43 PM Misc #19722: DevMeeting-2023-07-13
* [Feature #19720] Warning for non-linear Regexps (eregon)
* I think this is the best way to avoid ReDoS and ensure there are no too slow Regexps in a Ruby program/app.
* So let's add `Warning[:regexp] = true`?
* I will help to ...
Eregon (Benoit Daloze)
05:55 AM Misc #19722: DevMeeting-2023-07-13
* [Bug #18572] Performance regression when invoking refined methods (shugo)
* Should we limit usage of using to fix the performance issue?
* https://bugs.ruby-lang.org/issues/18572?issue_count=121&issue_position=11&next_issue...
shugo (Shugo Maeda)
02:04 AM Misc #19722 (Closed): DevMeeting-2023-07-13
# The next dev meeting
**Date: 2023/07/13 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-07-13.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t...
mame (Yusuke Endoh)
01:20 PM Feature #19694: Add Regexp#timeout= setter
> They are never changed once initialized until destruction, "Copy-on-Write" won't be a proper word.
Right, I just meant directly sharing that structure, or more accurately having some `T_STRUCT` simply keeping a reference to another ...
byroot (Jean Boussier)
01:17 PM Feature #19694: Add Regexp#timeout= setter
byroot (Jean Boussier) wrote in #note-12:
> > I made a patch to improve Regexp.new(/RE/) (and Regexp#dup).
> ...
Do you mean compiled pattern and so on in `OnigRegexType`?
They are never changed once initialized until destruction, "Co...
nobu (Nobuyoshi Nakada)
10:00 AM Feature #19694: Add Regexp#timeout= setter
janosch-x (Janosch Müller) wrote in #note-9:
> A custom `timeout` only being available on `Regexp::new` might lead people to write less performant code.
I think it is very well known and easy to know though profiling that one should ...
Eregon (Benoit Daloze)
08:05 AM Feature #19694: Add Regexp#timeout= setter
> I made a patch to improve Regexp.new(/RE/) (and Regexp#dup).
Interesting. Given that literal regexp are frozen, and even for unfrozen ones most of their state is immutable, have you considered using Copy on Write at the Ruby object ...
byroot (Jean Boussier)
05:35 AM Feature #19694: Add Regexp#timeout= setter
janosch-x (Janosch Müller) wrote in #note-9:
> I guess the only noteworthy argument for a change goes like this:
> ...
I made a patch to improve `Regexp.new(/RE/)` (and `Regexp#dup`).
https://github.com/nobu/ruby/tree/re_copy
Comparison...
nobu (Nobuyoshi Nakada)
12:45 PM Revision d7300038 (git): * expand tabs. [ci skip]
Please consider using misc/expand_tabs.rb as a pre-commit hook. git[bot]
11:58 AM Feature #19630: [RFC] Deprecate `Kernel#open("|command-here")` due to frequent security issues
postmodern (Hal Brodigan) wrote in #note-8:
> I was unaware that these methods can accept `|command` style inputs. Based on the stdlib documentation, the first argument is called `name` and the examples show reading from `testfile`, whi...
nobu (Nobuyoshi Nakada)
11:22 AM Revision ab6eb378 (git): Optimize `Regexp#dup` and `Regexp.new(/RE/)`
When copying from another regexp, copy already built `regex_t` instead
of re-compiling its source.
nobu (Nobuyoshi Nakada)
10:41 AM Feature #19521: Support for `Module#name=` and `Class#name=`.
@timcraft thanks for your input. All those issues have already been discussed, and it won't work for nested classes or existing code that uses class names without a huge retrofit. I also don't like introducing `label` as a new concept si... ioquatix (Samuel Williams)
10:00 AM Feature #19521: Support for `Module#name=` and `Class#name=`.
What about `Module#label=` and `Class#label=` etc?
* If the value e.g. `"fake name"` cannot be used to reference the class then is that really a name?
* The naming of the `#labeled_module` and `#labeled_class` methods posted in the d...
timcraft (Tim Craft)
02:29 AM Feature #19521: Support for `Module#name=` and `Class#name=`.
@matz do you mind clarifying what kind of abuse you are concerned about and whether limitations on `Module#name=` as outlined above are sufficient to consider using `#name=`?
> What if name= was a no-op or raised an error if the class...
ioquatix (Samuel Williams)
10:40 AM Bug #18572: Performance regression when invoking refined methods
shugo (Shugo Maeda) wrote in #note-10:
> It's simple to prohibit using calls in blocks, but it will break backward compatibility, e.g., using in module_eval.
It would still be possible to use `using` outside the `module_eval` (e.g. i...
Eregon (Benoit Daloze)
05:42 AM Bug #18572: Performance regression when invoking refined methods
Eregon (Benoit Daloze) wrote in #note-9:
> From https://bugs.ruby-lang.org/issues/14083#note-3 it seems part of the problem at least is CRuby currently implements what I would call invalid usages of refinements (different set of activat...
shugo (Shugo Maeda)
10:32 AM Feature #19720: Warning for non-linear Regexps
nobu (Nobuyoshi Nakada) wrote in #note-4:
> Literals can be statically checkable.
> ...
Right, but the monkey-patch has the problem it does not check any dynamically-created regexp created before the monkey-patch was loaded.
So if e....
Eregon (Benoit Daloze)
10:17 AM Feature #19720: Warning for non-linear Regexps
duerst (Martin Dürst) wrote in #note-5:
> Introducing such a warning might be a good idea. But there are several issues:
Thanks for the feedback.
> ...
Yes, as I mentioned in the description, it would be opt-in.
> 2) To a very large e...
Eregon (Benoit Daloze)
06:32 AM Feature #19720: Warning for non-linear Regexps
Introducing such a warning *might* be a good idea. But there are several issues:
1) The warning should only be used when asked for with an option (i.e. default off).
2) To a very large extent, whether a regular expression is linear o...
duerst (Martin Dürst)
02:55 AM Feature #19720: Warning for non-linear Regexps
Eregon (Benoit Daloze) wrote in #note-3:
> nobu (Nobuyoshi Nakada) wrote in #note-2:
> ...
Literals can be statically checkable.
> And even if it did, how could the external utility ensure it is loaded early enough, e.g., before Rub...
nobu (Nobuyoshi Nakada)
09:54 AM Revision d54f66d1 (git): Assign into optimal size pools using String#split("")
When String#split is used with an empty string as the field seperator it
effectively splits the original string into chars, and there is a
pre-existing fast path for this using SPLIT_TYPE_CHARS.
However this path creates an empty array ...
eightbitraptor (Matt V-H)
09:53 AM Bug #19715 (Rejected): Coverage oneshot_lines mode is not working after result clear
Hi @ngan
The documentation may not be clear, but this is by design. (Document improvements are welcome!)
`oneshot_lines` is a mode that reports execution at most once for each line. The record is not reset even by `clear: true`. C...
mame (Yusuke Endoh)
09:47 AM Feature #19712: IO#reopen removes singleton class
I proposed adding a keyword argument as `io1.reopen(io2, retain_class:true)` at the meeting.
The keyword argument `retain_class:true` disables changing the class.
That means `io1.reopen(io2, retain_class:true)` just do `dup2(io2.fileno...
akr (Akira Tanaka)
09:45 AM Revision 72f07f0a (git): Reduce concurrency of Cirrus-CI [ci skip]
clang-12 takes 2-3 times longer than gcc-11. nobu (Nobuyoshi Nakada)
08:33 AM Feature #19057: Hide implementation of `rb_io_t`.
Thanks for the report, fixed in https://github.com/ioquatix/raindrops/commit/94dbdd94977d895f98c084d0ca31c2b9cf0d25d3 ioquatix (Samuel Williams)
08:14 AM Feature #19057: Hide implementation of `rb_io_t`.
@ioquatix I'm not sure which change exactly is the cause, but it appears that the recent `rb_io_t` changes broke `raindrops`
```
current directory: /usr/local/lib/ruby/gems/3.3.0+0/gems/raindrops-0.20.1/ext/raindrops
make DESTDIR\= sit...
byroot (Jean Boussier)
07:48 AM Feature #18368: Range#step semantics for non-Numeric ranges
The three clarifications described in #note-17 were discussed at the dev meeting.
@matz said he wanted to make sure if the following pseudo code meets @zverok's expectation.
```ruby
class Range
def step(n)
# TODO: we need ...
mame (Yusuke Endoh)
07:30 AM Revision 11cc1827 (git): Added entry for racc changes to NEWS.md
hsbt (Hiroshi SHIBATA)
06:47 AM Revision 56d74e4c (git): Update bundled gems list at fcbc721ae92fd66a01cdf42ba24e6e [ci skip]
git[bot]
03:38 AM Revision fcbc721a (git): Bump ruby/setup-ruby from 1.150.0 to 1.151.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.150.0 to 1.151.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/8a45918450651f5e4784b6031db26f4b9f...
dependabot[bot]
02:04 AM Misc #19684 (Closed): DevMeeting-2023-06-08
hsbt (Hiroshi SHIBATA)
 

Also available in: Atom