Project

General

Profile

Activity

From 10/16/2022 to 10/22/2022

10/22/2022

10:10 PM Feature #19076: Improve performance Proc#parameters
If I'm reading the benchmark results correctly, this is slower in the case that the keyword argument is not provided. Is that correct? If so, I don't think we should do this, because it is far more common to not provide a keyword argum... jeremyevans0 (Jeremy Evans)
02:44 PM Feature #19076 (Closed): Improve performance Proc#parameters
Improve performance `Proc#parameters` method(write in Ruby)
benchmark:
```yml
prelude: |
prc = proc{|x, y=42, *other|}
lam = lambda{|x, y=42, *other|}
benchmark:
proc_no_kwarg: |
prc.parameters
proc_given_kwarg: ...
S_H_ (Shun Hiraoka)
09:56 PM Feature #19078 (Closed): Introduce `Fiber#storage` for inheritable fiber-scoped variables.
Pull Request: https://github.com/ruby/ruby/pull/6612
This is an evolution of the previous ideas:
- https://bugs.ruby-lang.org/issues/19058
- https://bugs.ruby-lang.org/issues/19062
This PR introduces fiber scoped variables, and...
ioquatix (Samuel Williams)
09:55 PM Feature #19077 (Assigned): Introduce `Hash#dup` copy on write.
Pull Request: <https://github.com/ruby/ruby/pull/6613>. ioquatix (Samuel Williams)
09:40 PM Feature #19058 (Closed): Introduce `Fiber.inheritable` attributes/variables for dealing with shared state.
The performance cost and complexity of this proposal is too high. ioquatix (Samuel Williams)
01:08 PM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
@sawa With all due respect, I fail to see your point.
For all I know:
* most modern common serialization formats are using specifically "ISO8601 date and time" (which I specifically pointed at, NOT "everything ISO8601 is able to sta...
zverok (Victor Shepelev)
10:34 AM Revision 8dfe3bdf (git): Improved formatting of `hash_foreach_iter` functions. (#6615)
Samuel Williams
08:55 AM Feature #19075: Binary searching for the last element
I was only thinking of adding a new method, but an optional argument for `bsearch` also seems to be good.
The name of the argument would be as follows?
```ruby
bsearch(target: :first)
bsearch(target: :last)
```
kyanagi (Kouhei Yanagita)
02:15 AM Feature #19075: Binary searching for the last element
Looks reasonable.
An alternative could be to add an optional (keyword) argument to `bsearch` and `bsearch_index`.
Do you consider the separated methods will be better?
About find-any mode, the last option (3) sounds something bet...
nobu (Nobuyoshi Nakada)
08:08 AM Revision 2c1b1eae (git): merge revision(s) f88bff770578583a708093f4a0d8b1483a1d2039:
[ruby/net-http] Revert "Replace Timeout.timeout in Net:HTTP#connect"
This reverts commit https://github.com/ruby/net-http/commit/753cae3bbccc.
https://github.com/ruby/net-http/commit/98caa38204
---
lib/...
nagachika (Tomoyuki Chikanaga)
08:08 AM Revision 3f3aebc2 (git): merge revision(s) ac1bb6b51032ad8d34a1060f5f6b5b10b60dc183:
[ruby/net-http] Rename `D` to `debug` in `Net::HTTP`
Renames `D` to `debug` in `Net::HTTP` and introduces an alias for
backwards compatibility. This was done for readability reasons, in that
`D` did not clearly r...
nagachika (Tomoyuki Chikanaga)
08:01 AM Revision 420bdba1 (git): [rubygems/rubygems] Allow upcoming JRuby to pass keywords for Kernel#warn
jruby-head (which will be JRuby 9.4.0.0) can now properly process
the keywords to Kernel#warn. I cannot think of any capability based
test for this so I constrained it using a version guard. Only JRuby
will ever hit the version guard.
...
enebo (Thomas Enebo)
07:46 AM Revision 0d697e34 (git): Add [Feature #19013] to NEWS [ci skip]
yui-knk (Kaneko Yuichiro)
01:46 AM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
ufuk (Ufuk Kayserilioglu) wrote in #note-4:
> I think allowing the `dup` method on `Data` instances to take optional keyword arguments would be the ideal API for this
I had a strong visceral "no" reaction to this. To a certain extent...
Dan0042 (Daniel DeLorme)

10/21/2022

10:30 PM Feature #19075 (Closed): Binary searching for the last element
My latest proposal is https://bugs.ruby-lang.org/issues/19075#note-6.
I will leave the initial proposal below.
---
PR: https://github.com/ruby/ruby/pull/6611
(I'm going to talk about `Array` here, but the same argument can be...
kyanagi (Kouhei Yanagita)
10:13 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
ufuk (Ufuk Kayserilioglu) wrote in #note-4:
> I think allowing the `dup` method on `Data` instances to take optional keyword arguments would be the ideal API for this:
I agree. This is the pattern that Sequel uses for datasets (which...
jeremyevans0 (Jeremy Evans)
09:35 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
Since Ruby already has the [`Object#dup` method](https://ruby-doc.org/core-3.1.0/Object.html#dup-method), I think we don't need to create a new method to duplicate a `Data` instance with potentially slightly different values.
I think al...
ufuk (Ufuk Kayserilioglu)
05:22 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
Example from [value_semantics](https://github.com/tomdalling/value_semantics) gem which uses `with` as well:
```ruby
Point = ValueSemantics::Struct.new do
x Numeric
y Numeric
end
# An immutable instance
Origin = Point.new(x:...
RubyBugs (A Nonymous)
03:05 PM Feature #19000: Data: Add "Copy with changes method" [Follow-on to #16122 Data: simple immutable value object]
Example from Sorbet which uses `with` as well:
``` ruby
class Point < T::Struct
const :x, Numeric
const :y, Numeric
end
# An immutable instance
Origin = Point.new(x: 0, y: 0)
right = Origin.with(x: 1.0)
up = Origin.with(...
bdewater (Bart de Water)
09:57 PM Revision a11952da (git): Rename `iv_count` on shapes to `next_iv_index`
`iv_count` is a misleading name because when IVs are unset, the new
shape doesn't decrement this value. `next_iv_count` is an accurate, and
more descriptive name.
jemmai (Jemma Issroff)
09:56 PM Revision 13bd617e (git): Remove unused class serial
Before object shapes, we were using class serial to invalidate
inline caches. Now that we use shape_id for inline cache keys,
the class serial is unnecessary.
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org>
jemmai (Jemma Issroff)
09:06 PM Revision 87bb0bee (git): YJIT: Fix page rounding for icache busting
Previously, we found the current page by rounding the current pointer to
the closest smaller page size. This is incorrect because pages are
relative to the start of the address we reserve. For example, if the
starting address is 12KiB mo...
alanwu (Alan Wu)
08:28 PM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
> I think it is impossible to implement the method even in the future because a Fiber cannot be duplicated.
Of course, it is impossible directly.
I just might imagine that _if_ it would be a common stumbling question for consuming e...
zverok (Victor Shepelev)
01:21 PM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
zverok (Victor Shepelev) wrote in #note-7:
> I think it is totally Ok for the first implementation
Not only "the first implementation". I think it is impossible to implement the method even in the future because a Fiber cannot be dup...
mame (Yusuke Endoh)
12:11 PM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
@knu
Re:
> "But I'm skeptical about the usefulness of the `consuming?` flag" (from dev.log)
I believe it is extremely useful for introspection. For example the method like shown in the original ticket:
```ruby
def parse(enumera...
zverok (Victor Shepelev)
12:04 PM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
@mame
> To be honest, I'm not sure which ones are consuming and which ones are not.
Which is one of the points of this ticket! The distinction is internally present (as displayed in original code samples) but never spelled out and...
zverok (Victor Shepelev)
08:25 PM Revision 8bbcb753 (git): YJIT: Read rb_num_t as usize early
This patch makes sure that we're not accidentally reading rb_num_t
instruction arguments as VALUE and accidentally baking them into
code and marking them. Some of these are simply moving the cast earlier,
but some of these avoid potentia...
alanwu (Alan Wu)
07:42 PM Revision c7754a4d (git): [DOC] Add link targets (#6602)
burdettelamar (Burdette Lamar)
06:44 PM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
@duerst (Martin Dürst), @zverok (Victor Shepelev)
In short, I think you two misinterpreted my comment. I never wrote that the order of the units is wrong. I am talking about the combination of the units (thus, I wrote *arbitrarily select...
sawa (Tsuyoshi Sawada)
09:16 AM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
@matz Understood, thanks, I'll adjust the PR.
@sawa, for the sake of the argument
> The sequence `[year, month, mday, hour, min, sec, subsec]` is culturally biased and is arbitrarily selected.
I don't think this statement is fair....
zverok (Victor Shepelev)
08:39 AM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
sawa (Tsuyoshi Sawada) wrote in #note-3:
> I have another reason against `deconstruct`. The sequence `[year, month, mday, hour, min, sec, subsec]` is culturally biased and is arbitrarily selected.
There's a bit of cultural bias, but ...
duerst (Martin Dürst)
05:44 AM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
I have another reason against `deconstruct`. The sequence `[year, month, mday, hour, min, sec, subsec]` is culturally biased and is arbitrarily selected. For example, following the fact that month is a highly irregular concept, some peop... sawa (Tsuyoshi Sawada)
05:57 PM Revision f2ae5811 (git): In init_copy, set shape after copying ivars
GC uses shapes to determine IV buffer width. Since allocation can
trigger GC, we need to ensure we only set the shape once we've fully
allocated new memory for the IV buffer, otherwise the GC can end up
trying to mark invalid memory.
jemmai (Jemma Issroff)
03:24 PM Bug #19053: Build errors in the WebAssembly case
> The pre-built SDK is built on Ubuntu, and it expects the build machine to have libtinfo.so.6 with proper .gnu.version_d section.
I was told in the Fedora project that this issue is a known issue on the Fedora ncurses RPM package inc...
jaruga (Jun Aruga)
02:25 PM Revision 45d92966 (git): Revert "merge revision(s) b9083c206aa02a824970e809d66607dd2c1a90f1:"
This reverts commit 97e50a056e795f6551cae2f07a9996f4adf73a1f. nagachika (Tomoyuki Chikanaga)
02:12 PM Revision 35e03a44 (git): [ruby/stringio] [DOC] Enhanced RDoc for StringIO
(https://github.com/ruby/stringio/pull/36)
Treats:
- #each_codepoint
- #gets
- #readline (shows up in doc for module IO::generic_readable, not class
StringIO)
- #each_line
https://github.com/ruby/stringio/commit/659aca7fe5
burdettelamar (Burdette Lamar)
01:52 PM Revision 0cbfccd6 (git): merge revision(s) 7e24ebc649b9b12e5fc704d7fc7563aeaf589e03:
Disable msystem: MINGW64 job on GitHub Actions (#6545)
---
.github/workflows/mingw.yml | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
nagachika (Tomoyuki Chikanaga)
01:48 PM Revision 74d70932 (git): merge revision(s) 881bc2a1765e7c19ab389c53841adc5ac329f1aa:
Skip running a DRb test on MinGW
It hangs even after a retry
https://github.com/ruby/ruby/runs/7966439530?check_suite_focus=true
We contacted GitHub Suppport about this before, and we concluded that
the ...
nagachika (Tomoyuki Chikanaga)
01:47 PM Revision 29414e00 (git): merge revision(s) 232e2f598103c8eda37d08913665b72b6f787e3f:
Skip TupleSpaceProxyTest on MINGW64 too
It wasn't specific to UCRT64
https://github.com/ruby/ruby/runs/7062992464
---
test/rinda/test_rinda.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
01:47 PM Revision 192aed9f (git): merge revision(s) 49d59215506a30c8a11766627f7af0cdfe0de9d4:
Fix Rinda test teardown for omitted tests
New test failures on MINGW appeared after
c2e37c8ff7da395f33fae546d9ae9e2408fc9236.
1) Error:
Rinda::TupleSpaceProxyTest#test_00_template:
...
nagachika (Tomoyuki Chikanaga)
01:46 PM Revision ad126996 (git): merge revision(s) c2e37c8ff7da395f33fae546d9ae9e2408fc9236:
Try skipping TupleSpaceProxyTest on MinGW UCRT64
As you all know, MinGW UCRT64 CI has randomly got stuck despite its
"Finished tests" output.
Looking at the logs closely, it seems like all of the recent such
...
nagachika (Tomoyuki Chikanaga)
01:42 PM Revision 959a9fc4 (git): merge revision(s) 137e69b48153dfd47851a1548eeefc6c7c843e92:
Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/action...
nagachika (Tomoyuki Chikanaga)
01:41 PM Revision d819d15d (git): merge revision(s) 9deacb31552e01f1688cc95774c8de735d711443:
Bump actions/cache from 2 to 3
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compar...
nagachika (Tomoyuki Chikanaga)
01:38 PM Revision 97e50a05 (git): merge revision(s) b9083c206aa02a824970e809d66607dd2c1a90f1:
[MSWin] Cache installed vcpkg packages
---
.github/workflows/windows.yml | 7 +++++++
1 file changed, 7 insertions(+)
nagachika (Tomoyuki Chikanaga)
01:38 PM Revision b31a7073 (git): merge revision(s) 7ce3a100f2aef897ee1062dcda23b70cd5574866:
Fold command line items
---
.appveyor.yml | 28 +++++++++++++++++++++++++---
.github/workflows/windows.yml | 7 +++++--
2 files changed, 30 insertions(+), 5 deletions(-)
nagachika (Tomoyuki Chikanaga)
01:35 PM Revision 5fe7a7ad (git): merge revision(s) c54eac661350be3c5b991eff349080910966add3:
Show tool versions
---
.github/workflows/mingw.yml | 12 ++++++++++++
1 file changed, 12 insertions(+)
nagachika (Tomoyuki Chikanaga)
01:32 PM Revision 6ea0a235 (git): bump patchlevel
nagachika (Tomoyuki Chikanaga)
12:39 PM Revision f88bff77 (git): [ruby/net-http] Revert "Replace Timeout.timeout in Net:HTTP#connect"
This reverts commit https://github.com/ruby/net-http/commit/753cae3bbccc.
https://github.com/ruby/net-http/commit/98caa38204
hsbt (Hiroshi SHIBATA)
11:24 AM Revision ededdf7d (git): Bump up rbs-2.7.0
hsbt (Hiroshi SHIBATA)
11:23 AM Misc #19074 (Closed): DevMeeting-2022-12-01 (postponed from 11-17)
# The next dev meeting
**Date: 2022/11/17 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/DevMeeting-2022-12-01.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bu...
mame (Yusuke Endoh)
11:23 AM Misc #19040 (Closed): DevMeeting-2022-10-20
mame (Yusuke Endoh)
11:04 AM Misc #18987 (Closed): [ANN] Sunsetting svn.ruby-lang.org
done. hsbt (Hiroshi SHIBATA)
09:54 AM Revision 1931c787 (git): merge revision(s) 41516b35418d6108c75d9f2190a846ded6a47108:
Extract bundled gems by BASERUBY
---
common.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
08:18 AM Bug #18983 (Closed): Range#size for beginless Range is not nil.
Applied in changeset commit:git|e026368061c56bc925aff58910a4b02f18b78c70.
----------
Range#size returns nil for (.."a") and (nil..)
Fixes [Bug #18983]
mame (Yusuke Endoh)
04:41 AM Bug #18983: Range#size for beginless Range is not nil.
Oops, I missed the attached patch. Sorry mame (Yusuke Endoh)
04:41 AM Bug #18983: Range#size for beginless Range is not nil.
https://github.com/ruby/ruby/pull/6604 mame (Yusuke Endoh)
08:17 AM Revision 782bb163 (git): merge revision(s) 91c05b34cd9ca9120c4a5e5e9fe772f2f0d1f6a3:
Bundled gems test needs `prepare-gems`
`prepare-gems` downloads and extracts the bundled gems, and these gems
are built by `build-exts` now.
---
.github/workflows/bundled_gems.yml | 5 +++++
.git...
nagachika (Tomoyuki Chikanaga)
07:35 AM Revision e0263680 (git): Range#size returns nil for (.."a") and (nil..)
Fixes [Bug #18983] mame (Yusuke Endoh)
07:23 AM Revision e9be76dc (git): merge revision(s) 44a0a66559ee4a03a84c27feca05e9b1b0f59df8:
Move to tool/lib/bundled_gem.rb
---
common.mk | 6 +++---
defs/gmake.mk | 4 ++--
tool/gem-unpack.rb | 53 -----------------------------------------------
tool/lib/...
nagachika (Tomoyuki Chikanaga)
07:17 AM Revision 833076de (git): merge revision(s) abfd859b139545110e1fcdd8e99575d5e0bfb4e4:
Remove github and git related files from extracted bundled gems
---
common.mk | 3 ++-
defs/gmake.mk | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
06:35 AM Revision 939f8c0e (git): merge revision(s) de9c612d6342ae2ea5ae1e46b27abecf17c439b5:
Also the tests should use the configured pkg-config
---
test/mkmf/test_pkg_config.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
06:20 AM Revision e8cb6dae (git): merge revision(s) 518301883edee12218657c77ba977e2bde1b17d0:
Fix parallel build on MINGW
When the build is running with a base ruby then generating `x64-ucrt-ruby320.rc`
could fail due to a missing dependency to `x64-mingw-ucrt-fake.rb`.
This commit adds this dependency.
...
nagachika (Tomoyuki Chikanaga)
06:19 AM Revision bef621fc (git): merge revision(s) 6f5305e0d2b4711b186ece8160716c7f9439ea8d:
Exclude LIBPATHENV wrapper from PREP
---
common.mk | 4 ++--
configure.ac | 2 +-
template/Makefile.in | 2 ++
3 files changed, 5 insertions(+), 3 deletions(-)
nagachika (Tomoyuki Chikanaga)
06:18 AM Revision 000cb224 (git): merge revision(s) bc5b9be1ee44817614bc8311e671fc79ca730625:
Move duplicate dependencies
---
common.mk | 2 ++
template/Makefile.in | 5 -----
win32/Makefile.sub | 2 --
3 files changed, 2 insertions(+), 7 deletions(-)
nagachika (Tomoyuki Chikanaga)
06:14 AM Revision 905a1eb6 (git): merge revision(s) cdfb0272131ed8ef078d371556c2cad40b31d2fb:
Run find in PATH [ci skip]
---
template/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
06:13 AM Revision ad1cc916 (git): merge revision(s) 0114c72df0dd4c6df3766bc32f4cadd939b3b0f4:
Clean intermediate files for update-deps [ci skip]
---
template/Makefile.in | 1 +
1 file changed, 1 insertion(+)
nagachika (Tomoyuki Chikanaga)
06:12 AM Revision c740605d (git): merge revision(s) 97ce030954dab3f219779e235bee53ba408fbaca:
Load fake.rb at `BTESTRUBY`
So that `mkmf` checks work from `make run`, and also remove
duplicate `$(MINIRUBYOPT)` which is used in `$(MINIRUBY)`.
---
common.mk | 8 ++++----
template/...
nagachika (Tomoyuki Chikanaga)
06:01 AM Revision 57d14154 (git): merge revision(s) 9de11fe796e8caca2d87650278028eb95c1e09a0:
Quiet if the target is already linked the same source
---
ext/extmk.rb | 2 +-
tool/ln_sr.rb | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
06:01 AM Revision 022ab258 (git): merge revision(s) 59eadf3d25b0f53e7570f98f1801737af642f328:
Ignore EACCES on Windows
---
tool/ln_sr.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
06:01 AM Revision 4388849a (git): merge revision(s) e5e6b87e265b95620821f7abac56b5ab90d4c1fd:
Create temporary file exclusively and clean
---
ext/extmk.rb | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:57 AM Revision 0146681d (git): merge revision(s) 6af7212004c0b98f09350b53a032f94f3a1e666c:
Make extensions under `Gem.extension_api_version` directory
---
ext/extmk.rb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
05:56 AM Revision 3f3a5ec0 (git): merge revision(s) 6c1d7dab52b9bd26cbb624634b4acb86ba37aa7f:
Fix conversion from absolute path to relative path
---
tool/ln_sr.rb | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:55 AM Revision 5822577a (git): merge revision(s) c093e7d64545640c8f2e7bb3eb24e3f9e24fb1c5:
Avoid to symlink under symlink
---
ext/extmk.rb | 2 +-
tool/ln_sr.rb | 21 ++++++++++++++-------
2 files changed, 15 insertions(+), 8 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:54 AM Revision d8c23293 (git): merge revision(s) 78d2be69b500e4552e0e75fdefd26606a0506009:
Move copying/linking extra files to Makefile so removed by `clean`
---
ext/extmk.rb | 81 ++++++++++++++++++++++++-----------------
tool/ln_sr.rb | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++...
nagachika (Tomoyuki Chikanaga)
05:52 AM Revision c5a0856b (git): merge revision(s) ed8c21bbd5071b52d0d0612eadbdad8fe192e974:
Ensure symlinks to bundled gem with exts have parent dir
When configuring with `--disable-rpath` and `--static-linked-ext` (e.g.
building for WASI), `extmk.rb` doesn't build exts under bundled gems,
and `.bundle/...
nagachika (Tomoyuki Chikanaga)
05:51 AM Revision 93d1a2e9 (git): merge revision(s) dcbb94d5b9b4a7d0bfde5ba9a5da1ada643a31b7:
Move timestamps directory for bundled gems
---
ext/extmk.rb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
05:18 AM Feature #19056: Introduce `Fiber.annotation` for attaching messages to fibers.
I think annotation per Fiber will cause conflict in usage between libraries. For example, consider the following library code.
```ruby
def fetch_info_from_url(uri)
Fiber.new do
Fiber.annotate "fetching info from #{ uri }"
...
mame (Yusuke Endoh)
05:17 AM Revision 130ee273 (git): merge revision(s) b291c972fa36e05107d13eea25cc445db4b4bec3:
Use built bundled gems in test-bundled-gems
---
tool/test-bundled-gems.rb | 49 ++++++++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 24 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:16 AM Revision eb815dfd (git): merge revision(s) e0a7e5e13141a06103673b9d4ff21ca864ec38f9:
Kill bundled gem tests when interrupted
---
common.mk | 2 +-
tool/test-bundled-gems.rb | 12 ++++++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:02 AM Bug #18731 (Closed): Parallel test-all sometimes does not run at all some tests
Applied in changeset commit:git|5d4bfaccabe66d89460739ee682f1f78698c93a3.
----------
merge revision(s) ab3cb29bd9bff9c16cfb9d19cc02026998282c12:
Avoid defining the same test class in multiple files
Should fix issues wi...
nagachika (Tomoyuki Chikanaga)
05:01 AM Revision 39145812 (git): merge revision(s) 7f1ca666424849134990d022266bcd4d6636465f:
Fallback PKG_CONFIG to the configured pkg-config always
---
lib/mkmf.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
04:41 AM Revision ac0c771d (git): merge revision(s) 019cbded90ade76fdb87d02bd4d444724429fc92:
mkmf: Add a configure option to set verbose mode (V=1 or 0) in
mkmf.rb.
Note this change is only for `configure.ac`, not for Windows using
`win32/configure.bat`.
```
$ ./configure --help | grep ...
nagachika (Tomoyuki Chikanaga)
04:41 AM Revision 1ccdd9ee (git): merge revision(s) bdb7345ce96c641796909abc2dbdac0d4400ca41:
Use compiled instead of complied
Capitalize creates
---
lib/mkmf.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
04:39 AM Revision 82b6b9c5 (git): merge revision(s) 6946263a2994257c6240e52a365700dc573c7ed4:
[DOC] make internally used classes/methods nodoc
Empty class documents are generated even with `:stopdoc:`.
---
lib/mkmf.rb | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
nagachika (Tomoyuki Chikanaga)
04:38 AM Revision e5741903 (git): merge revision(s) 7672f6a42390a1a421fb0633e6810a92df7dad7a:
mkmf: unify duplicate code in pkg_config
---
lib/mkmf.rb | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
nagachika (Tomoyuki Chikanaga)
04:36 AM Revision 5d4bfacc (git): merge revision(s) ab3cb29bd9bff9c16cfb9d19cc02026998282c12:
Avoid defining the same test class in multiple files
Should fix issues with parallel testing sometimes not running all
tests.
This should be viewed skipping whitespace changes.
Fixes [Bug #18731]
...
nagachika (Tomoyuki Chikanaga)
04:34 AM Revision 83ffa0d8 (git): merge revision(s) acbc2bdd3030bef997919ce56c5b120cc5e91e8f:
Update the test for [Feature #18615]
---
test/mkmf/test_flags.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
04:33 AM Revision fa5b7185 (git): merge revision(s) 329c89bb42bb44467588afc1d41d9f99172dfeb5:
Make implicit function declaration error [Feature #18615]
Enable `-Werror=implicit-function-declaration` by default for
building C extensions for early failures.
---
lib/mkmf.rb | 2 +-
1 file ch...
nagachika (Tomoyuki Chikanaga)
03:40 AM Revision d07fc4c4 (git): merge revision(s) b90e56e6243f4e6567991bfd2375e1f58b1414a0:
mkmf: pkg_config accepts multiple options
---
lib/mkmf.rb | 48 +++++++++++++++++++++++---------------------
test/mkmf/test_pkg_config.rb | 7 +++++++
2 files changed, 32 insertions(+),...
nagachika (Tomoyuki Chikanaga)
03:38 AM Revision 917df81f (git): merge revision(s) 24c7e75ded461446e7c8e83bbceecccf7bcb4d0e:
test: backfill coverage for MakeMakefile.pkg_config
---
test/mkmf/test_pkg_config.rb | 61 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 test/mkmf/test...
nagachika (Tomoyuki Chikanaga)
03:35 AM Revision e0084d00 (git): merge revision(s) 2304cfa4c08a347f4df4915f88fb062cb12e4eeb:
Document MakeMakefile#append_cflags
This method is at least 7 years old and is widely used in the wild.
Since we need to support it, let's document it to make it discoverable.
Add docs and move it out of the `# :...
nagachika (Tomoyuki Chikanaga)
01:02 AM Revision e72c5044 (git): Check writebarrier arguments only when RGENGC_CHECK_MODE [ci skip]
The commit 575ae50d16a03ed23357ec4ea0dbf7167fc26c8c was for debugging
the failure triggered by f55212bce939f736559709a8cd16c409772389c8, and
it was fixed at the commit 39f7eddec4c55711d56f05b085992a83bf23159e.
nobu (Nobuyoshi Nakada)

10/20/2022

10:42 PM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
I agree with adding `deconstruct_keys` but not others (`deconstruct` and `to_h`).
* positional deconstruction force users to remember the meaning of order of elements (deconstruct)
* even though it's the same behavior to `deconstruct...
matz (Yukihiro Matsumoto)
10:12 PM Revision 39f7edde (git): YJIT: Fix gen_expandarray treating argument as VALUE
The expandarray instruction interpreters its arguments as rb_num_t.
YJIT was treating the num argument as a VALUE previously and when
it has a certain bit pattern, it can look like a GC pointer. The
argument is not a pointer, so YJIT cra...
alanwu (Alan Wu)
09:35 PM Bug #19043: Segfault on macOS 11.7 while using StringScanner in multiple threads
eightbitraptor (Matthew Valentine-House) wrote in #note-2:
> Have you tried replicating with `GC.auto_compact=true` and `GC.stress=true`?
Thanks for the response. We tried to replicate the crash with `GC.stress=true` but were unabl...
keithdoggett (Keith Doggett)
09:17 PM Revision 29303022 (git): YJIT: remove some stale comments [ci skip]
alanwu (Alan Wu)
07:43 PM Revision 9a0a165a (git): Check writebarrier arguments
nobu (Nobuyoshi Nakada)
07:43 PM Revision 245ad2b3 (git): YJIT: incorporate ruby_special_consts
nobu (Nobuyoshi Nakada)
06:59 PM Revision 6aed5b0c (git): Unmark Internal IV test as pending
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> jemmai (Jemma Issroff)
04:49 PM Bug #19053 (Closed): Build errors in the WebAssembly case
> For Invalid configuration wasm32-unknown-wasi': system wasi' not recognized error, you need to download the latest config.guess following the README.md build steps.
I was able to run the `configure` after running the `ruby tool/down...
jaruga (Jun Aruga)
04:37 PM Bug #19053: Build errors in the WebAssembly case
> Therefore, you need to build the SDK by yourself on Fedora, then you will be able to build for WASI target.
I built the SDK from the source and installed it on the Fedora, and I was able to build the Ruby by following the [instructi...
jaruga (Jun Aruga)
02:30 PM Bug #19053: Build errors in the WebAssembly case
> I'm not familiar with Fedora environment, but it looks like the pre-built wasi-sdk distributed in GitHub Releases is incompatible with Fedora.
> ...
Thanks for checking it! Let me check the things you mentioned step by step.
First,...
jaruga (Jun Aruga)
03:52 PM Bug #19055: Regexp.new(regexp, timeout: nil) is intrupted by Regexp.timeout
Thanks for the discussion, guys.
So, I think that we need to fix the Regexp timeout's code examples at least in the next Ruby (Ruby 3.2.0 preview3 or official 3.2.0) release note. The comment "# never interrupted" below in the example...
jaruga (Jun Aruga)
05:49 AM Bug #19055: Regexp.new(regexp, timeout: nil) is intrupted by Regexp.timeout
Discussed at the dev meeting.
> Is it though? It's basically breaking the intent of whoever set the global Regexp.timeout.
@matz agreed with this. He decided *not* to allow users to specify "force no timeout per instance, with ignoring...
mame (Yusuke Endoh)
03:30 PM Feature #12084 (Closed): `Class#instance`
Applied in changeset commit:git|0378e2f4a8319440dd65c82b16f189161472d237.
----------
Add Class#attached_object
Implements [Feature #12084]
Returns the object for which the receiver is the singleton class, or
raises TypeError if the re...
ufuk (Ufuk Kayserilioglu)
04:09 AM Feature #12084: `Class#instance`
`attached_object` looks good to me. Accepted.
Matz.
matz (Yukihiro Matsumoto)
03:30 PM Revision 0378e2f4 (git): Add Class#attached_object
Implements [Feature #12084]
Returns the object for which the receiver is the singleton class, or
raises TypeError if the receiver is not a singleton class.
ufuk (Ufuk Kayserilioglu)
02:06 PM Revision ecc6a717 (git): merge revision(s) 2d57447ae80e0b0895d6d22d606391b48516ba93:
Fix missing replacement in 1f91dcdab3b
---
template/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
01:10 PM Feature #19066: Enable Scorecard Github Action
Sure, feel free to explore it. It is very simple to enable, to be honest. If you need some help, feel free to reach out to me. joycebrum (Joyce Brum)
08:42 AM Feature #19066 (Assigned): Enable Scorecard Github Action
Hi, @joycebrum, Thanks to introduce Scorecards.
I try to setup scorecards action on ruby/ruby repository at first.
hsbt (Hiroshi SHIBATA)
01:05 PM Revision 192bc725 (git): Define `UNDEF_P` and `NIL_OR_UNDEF_P` [EXPERIMENTAL]
nobu (Nobuyoshi Nakada)
01:05 PM Revision f55212bc (git): Move "special consts" so `Qundef` and `Qnil` differ just 1 bit
nobu (Nobuyoshi Nakada)
12:58 PM Revision 1e66d3b8 (git): Ignore manual files only commits [ci skip]
nobu (Nobuyoshi Nakada)
12:33 PM Revision 4bb62ee5 (git): merge revision(s) 6a8f1a9e5cd1c9c2b3c6925d8d3fa76a29dabf73:
Copy from bundled gem source for test
---
common.mk | 13 +++++++----
defs/gmake.mk | 4 ++++
tool/gem-unpack.rb | 63 +++++++++++++++++++++++++++++++++++-------------------
3 file...
nagachika (Tomoyuki Chikanaga)
12:30 PM Bug #19073: openssl gem 3.0.0 problem
rhenium (Kazuki Yamaguchi) wrote in #note-3:
> Yes, openssl issues should go to the GitHub.
> ...
I just managed to try the other two combinations of ruby and gem versions, and a bit unexpected, it seems it actually depends on the ruby...
hspem (Per-Erik Martin)
12:09 PM Bug #19073 (Third Party's Issue): openssl gem 3.0.0 problem
Yes, openssl issues should go to the GitHub.
But we need a way to reproduce the problem, or at least some clues, to investigate further. As a starter, you can try other combinations, such as Ruby 3.0.x + openssl 3.0.x or Ruby 3.1.x + ...
rhenium (Kazuki Yamaguchi)
11:29 AM Bug #19073: openssl gem 3.0.0 problem
retro (Josef Šimánek) wrote in #note-1:
> Can you share more details to reproduce like Dockerfile? Also if I understand it well, Ruby OpenSSL issues are tracked at https://github.com/ruby/openssl/issues now.
Sorry, no. Ok, I wasn't a...
hspem (Per-Erik Martin)
11:18 AM Bug #19073: openssl gem 3.0.0 problem
Can you share more details to reproduce like Dockerfile? Also if I understand it well, Ruby OpenSSL issues are tracked at https://github.com/ruby/openssl/issues now. retro (Josef Šimánek)
11:10 AM Bug #19073 (Third Party's Issue): openssl gem 3.0.0 problem
We have a server using openssl 3.0.3 (i.e. written i C).
This has worked with all kinds of different clients (ruby, C, java...) without any problem... except now, with the latest ruby gem, openssl 3.0.0.
The behavior is odd: It suc...
hspem (Per-Erik Martin)
12:22 PM Revision 46c2bf37 (git): merge revision(s) 87d8d25796df3865b5a0c9069c604e475a28027f:
Use configured GIT
---
common.mk | 4 ++--
defs/gmake.mk | 68 +++++++++++++++++++++++++++++------------------------------
2 files changed, 36 insertions(+), 36 deletions(-)
nagachika (Tomoyuki Chikanaga)
12:18 PM Revision 19ef027d (git): merge revision(s) abc4a46046c326263683a8b3611775c2ddd56a71:
Get rid of building main again when test-bundled-gems
---
.github/workflows/ubuntu.yml | 1 +
.github/workflows/yjit-ubuntu.yml | 1 +
common.mk | 3 ++-
defs/gmake.m...
nagachika (Tomoyuki Chikanaga)
12:16 PM Revision 5932b426 (git): merge revision(s) 071653ecd79287661c795400797a5402c4322129:
Run the prerequisites of test-bundled-gems in order
---
common.mk | 6 +++++-
defs/gmake.mk | 7 ++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
12:09 PM Feature #19062 (Closed): Introduce `Fiber#locals` for shared inheritable state.
After many discussion, I think it's fair to say, `dup` by default makes the most sense, and with that model, it could be considered more local. So I'll open a new proposal with the refined design. ioquatix (Samuel Williams)
06:48 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
At least it shouldn't be named `locals` since it's not **local** to a fiber.
Maybe `storage`?
Matz.
matz (Yukihiro Matsumoto)
11:30 AM Revision 72e9097d (git): merge revision(s) 4f1e0bfacd93c28bff549e2f3603c3b4942429a3:
Followed up CVE-2022-39253 for bundler examples
---
spec/bundler/cache/git_spec.rb | 3 +++
spec/bundler/install/gemfile/git_spec.rb | 9 +++++++++
spec/bundler/update/git_spec.rb | 3 ...
nagachika (Tomoyuki Chikanaga)
11:30 AM Revision fbf4bec4 (git): merge revision(s) dae843f6b7502f921a7e66f39e3714a39d860181,86096a91d55f72620e0f8ca8634da5fa342dc35b:
Bypass git submodule add/update with git config
protocol.file.allow=always option.
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
---
test/rubygems/test_gem_source_git.rb | 5 +++++
1 fil...
nagachika (Tomoyuki Chikanaga)
10:20 AM Feature #18559 (Closed): Allocation tracing: Objects created by the parser are attributed to Kernel.require
This was implemented by @ko1 in e35c528d721d209ed8531b10b46c2ac725ea7bf5
I tested it on our system it has the desired effect. Thank you!
byroot (Jean Boussier)
10:09 AM Feature #19072 (Closed): Reminder: Remove ABI version suffix like "3.2.0+2" from release version
The development version of Ruby 3.2.0 added ABI version suffix like `+2`. It will remove at the final release of Ruby 3.2.0.
@nobu said it's already implemented on our package script(?). But We should check it before the final release.
hsbt (Hiroshi SHIBATA)
09:25 AM Feature #19063: Hash.new with non-value objects should be less confusing
austin (Austin Ziegler) wrote in #note-4:
> This mistake is much more common than I would have thought, and it appears in some fairly large projects (not everyone may have access to this result because cs.github.com is still apparently ...
shugo (Shugo Maeda)
02:45 AM Feature #19063: Hash.new with non-value objects should be less confusing
Summary so far
### Is there any example of `Hash.new([])` being used intentionally?
Yes. [Shugo's example](https://github.com/shugo/textbringer/blob/65dff909295f14f466f7b27e824ea36fe1f9ddd7/bin/merge_mazegaki_dic#L5) is a valid usa...
mame (Yusuke Endoh)
02:41 AM Feature #19063: Hash.new with non-value objects should be less confusing
austin (Austin Ziegler) wrote in #note-8:
> Edit on a couple of these. The GitLab behaviour, and @shugo’s code both do `hash[key] |= value_list`, so they *do* effectively do `hash[key] = value_list`, which makes them safer to use *in the...
shugo (Shugo Maeda)
08:38 AM Revision e35c528d (git): push dummy frame for loading process
This patch pushes dummy frames when loading code for the
profiling purpose.
The following methods push a dummy frame:
* `Kernel#require`
* `Kernel#load`
* `RubyVM::InstructionSequence.compile_file`
* `RubyVM::InstructionSequence.load_fr...
ko1 (Koichi Sasada)
08:21 AM Bug #19067 (Rejected): Module methods not usable at toplevel under wrapped script
matz (Yukihiro Matsumoto)
08:21 AM Bug #19067: Module methods not usable at toplevel under wrapped script
`load "foo.rb"` should work (similar enough) with or without wrapping module. In that sense, replacing `self` is unacceptable.
Probably you want to get the "target class/module" which is the target of constant/method definitions. I have...
matz (Yukihiro Matsumoto)
08:11 AM Feature #18462 (Closed): Proposal to merge WASI based WebAssembly support
Updating the ticket status to say that WebAssembly/WASI support has been upstreamed by https://github.com/ruby/ruby/pull/5407
Some examples can be found here: https://github.com/ruby/ruby.wasm
katei (Yuta Saito)
07:58 AM Misc #18987: [ANN] Sunsetting svn.ruby-lang.org
Unfortunately, we lost subversion server on svn.ruby-lang.org when I failed to migrate its server.
I will do the following works:
* Redirect `svn.ruby-lang.org` to `git.ruby-lang.org`.
* Backup and cleanup subversion data.
* Rem...
hsbt (Hiroshi SHIBATA)
06:35 AM Bug #18998 (Closed): Kernel#Integer does not convert SimpleDelegator object expectly
Applied in changeset commit:git|7563604fb868d87057733f52d780d841fc1ab6bb.
----------
[Bug #18998] Honor `#to_str` next to `#to_int` in `Kernel#Integer`
nobu (Nobuyoshi Nakada)
06:35 AM Revision 7563604f (git): [Bug #18998] Honor `#to_str` next to `#to_int` in `Kernel#Integer`
nobu (Nobuyoshi Nakada)
06:02 AM Feature #19056: Introduce `Fiber.annotation` for attaching messages to fibers.
For the record, I write down the concerns:
* I don't see the convenience of `Fiber.annotate`. Convince me.
* Users need to understand how to use `Fiber#annotation` wisely. Need documents.
* The state should be stacked, not overridde...
matz (Yukihiro Matsumoto)
05:36 AM Revision 4f1e0bfa (git): Followed up CVE-2022-39253 for bundler examples
hsbt (Hiroshi SHIBATA)
05:30 AM Bug #19033: One-liner pattern match as Boolean arg syntax error
mame (Yusuke Endoh) wrote in #note-6:
> Note that `foo(1, 2, 3 in ary)` could be inherently ambiguous. It can be interpreted as `foo((1, 2, 3 in ary))` or `foo(1, 2, (3 in ary))`.
Agreed, these are difficult edge cases, and trying to...
baweaver (Brandon Weaver)
05:28 AM Bug #19033: One-liner pattern match as Boolean arg syntax error
Note that `foo(1, 2, 3 in ary)` could be inherently ambiguous. It can be interpreted as `foo((1, 2, 3 in ary))` or `foo(1, 2, (3 in ary))`. mame (Yusuke Endoh)
04:16 AM Bug #19033 (Rejected): One-liner pattern match as Boolean arg syntax error
I can understand the feeling the `a in b` should be accepted as an argument expression. But in reality, it needs huge effort to modify the parser.
I don't think it worth both cost and complexity. If someone comes up with the pull-reques...
matz (Yukihiro Matsumoto)
04:32 AM Bug #18983: Range#size for beginless Range is not nil.
I agree with inconsistency; if edges were numeric, return the count (or Infinity), otherwise it should return nil.
`nil .. nil` can be considered as numeric-range both edge omitted, but at the moment I feel it should return nil as well....
matz (Yukihiro Matsumoto)
02:49 AM Revision 0a43a040 (git): [DOC] Fix RUBY_SYMBOL_FLAG comment [ci skip]
Upper bits than the least significant 4 bits need not be 0. nobu (Nobuyoshi Nakada)
12:47 AM Revision b963fb25 (git): YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm as well (#6596)
YJIT: Respect writable_addrs on --yjit-dump-iseq-disasm
as well
k0kubun (Takashi Kokubun)
12:45 AM Revision 2e3b764a (git): Remove a leftover comment [ci skip]
k0kubun (Takashi Kokubun)
12:38 AM Revision 7f175e56 (git): Avoid missed wakeup with fiber scheduler and Fiber.blocking. (#6588)
* Ensure that blocked fibers don't prevent valid wakeups. Samuel Williams
12:20 AM Revision d9d9005a (git): MJIT: Stop using the VM barrier for jit_cont
This solves multiple problems.
First, RB_VM_LOCK_ENTER/LEAVE is a barrier. We could at least use the
_NO_BARRIER variant.
Second, this doesn't need to interfere with GC or other GVL users when
multiple Ractors are used. This needs to b...
k0kubun (Takashi Kokubun)

10/19/2022

07:47 PM Feature #19071: Add Time#deconstruct, #deconstruct_keys, and #to_h
My first reaction seeing the example usage: they seem more for `Date` than `Time`, but I can see this being useful for both :) bdewater (Bart de Water)
07:21 PM Feature #19071 (Closed): Add Time#deconstruct, #deconstruct_keys, and #to_h
I believe that `Time` being suitable for pattern-matching is a reasonable feature with many possible usages, which will increase usability of `Time` and would be a good show case for pattern matching.
**Implementation decisions**
`...
zverok (Victor Shepelev)
07:36 PM Revision 0d360ee7 (git): YJIT: Skip dumping code for the other cb on --yjit-dump-disasm (#6592)
YJIT: Skip dumping code for the other cb
on --yjit-dump-disasm
k0kubun (Takashi Kokubun)
06:44 PM Revision 9da0d4ca (git): YJIT: fix a #[warn(unused_parens)]
alanwu (Alan Wu)
06:06 PM Revision 0aaa6133 (git): Transition frozen string to frozen root shape
Co-Authored-By: Aaron Patterson <tenderlove@ruby-lang.org> jemmai (Jemma Issroff)
06:03 PM Revision 5ca23caa (git): YJIT: fold the "asm_comments" feature into "disasm" (#6591)
Previously, enabling only "disasm" didn't actually build. Since these
two features are closely related and we don't really use one without the
other, let's simplify and merge the two features together.
alanwu (Alan Wu)
04:29 PM Misc #18984: Doc for Range#size for Float/Rational does not make sense
I think this is a bug. Since `(0.51..5.quo(2)).count` raises a `TypeError` and `(0.51..5.quo(2)).size` is supposed to follow that, it should raise a `TypeError` as well. sawa (Tsuyoshi Sawada)
03:34 PM Revision bc939d29 (git): [DOC] More about line number (#6582)
burdettelamar (Burdette Lamar)
03:33 PM Revision c32180d5 (git): [ruby/stringio] [DOC] Enhanced RDoc for StringIO
(https://github.com/ruby/stringio/pull/35)
Treated:
- #getc
- #getbyte
- #ungetc
- #ungetbyte
- #readchar
- #readbyte
- #each_char
https://github.com/ruby/stringio/commit/6400af8d9f
burdettelamar (Burdette Lamar)
02:54 PM Revision eeea633e (git): Stop zeroing memory on allocation / copy
Shapes gives us an almost exact count of instance variables on an
object. Since we know the number of instance variables that have been
set, we will never access slots that haven't been initialized with an
IV.
tenderlovemaking (Aaron Patterson)
01:55 PM Revision 412e3c7a (git): Assert for RTEST that Qnil and Qfalse differ just 1 bit
nobu (Nobuyoshi Nakada)
01:20 PM Revision 1db6249c (git): merge revision(s) 1f91dcdab3b530dde93fa29fba8bf60683cd8056:
Define BOOTSTRAPRUBY from HAVE_BASERUBY
---
common.mk | 1 +
configure.ac | 8 --------
template/Makefile.in | 7 +++++--
win32/Makefile.sub | 6 ++++--
4 files chang...
nagachika (Tomoyuki Chikanaga)
01:03 PM Revision 86096a91 (git): [rubygems/rubygems] Use [] instead of double-quotes
hsbt (Hiroshi SHIBATA)
12:10 PM Revision a25c0338 (git): Suppress warning for fgrep
>fgrep: warning: fgrep is obsolescent; using ggrep -F hsbt (Hiroshi SHIBATA)
11:51 AM Feature #19063: Hash.new with non-value objects should be less confusing
baweaver (Brandon Weaver) wrote in #note-29:
> I would also be very positive of this change, potentially for Array as well, to make this visible to folks working in the language.
For Array it doesn't make sense since the default valu...
Eregon (Benoit Daloze)
12:52 AM Feature #19063: Hash.new with non-value objects should be less confusing
etienne (Étienne Barrié) wrote in #note-24:
> While I like the idea of checking the arity of the block, maybe the core issue isn't entirely with the API for `Hash.new`, but the fact that default value/default proc are not visible. From ...
baweaver (Brandon Weaver)
12:39 AM Feature #19063: Hash.new with non-value objects should be less confusing
austin (Austin Ziegler) wrote in #note-4:
> **Note**: At least two of the examples later use `hash[key] |= values`, which is assignment, not resulting in the possible reuse of the default value in general. Others may result in the same....
nobu (Nobuyoshi Nakada)
12:34 AM Feature #19063: Hash.new with non-value objects should be less confusing
Adding a new element in the default proc will add by just referencing.
I'm not for doing it implicitly.
nobu (Nobuyoshi Nakada)
11:42 AM Feature #19070: Enhance keep_tokens option for RubyVM::AbstractSyntaxTree parsing methods
Doesn't `Ripper.lex` already provide this information? Eregon (Benoit Daloze)
10:20 AM Feature #19070 (Closed): Enhance keep_tokens option for RubyVM::AbstractSyntaxTree parsing methods
# Background
Implementation for Language Server Protocol (LSP) sometimes needs token information. For example both `m(1)` and `m(1, )` has same AST structure other than node locations then it's impossible to check the existence of `,`...
yui-knk (Kaneko Yuichiro)
11:34 AM Revision dae843f6 (git): Bypass git submodule add/update with git config protocol.file.allow=always option.
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> hsbt (Hiroshi SHIBATA)
10:49 AM Revision 567725ed (git): Fix and improve coroutines for Darwin (macOS) ppc/ppc64. (#5975)
Sergey Fedorov
05:53 AM Revision fc3137ef (git): Add support for anonymous shared IO buffers. (#6580)
Samuel Williams
04:19 AM Feature #19069: Default value assignment with `Hash.new` in block form
@nobu (Nobuyoshi Nakada) I interpret that your concern is that the hash will grow endlessly by random referencing (unintentionally or by an attack). I have some possible alternative modifications to the proposal for that.
1. Warn when a...
sawa (Tsuyoshi Sawada)
12:33 AM Feature #19069: Default value assignment with `Hash.new` in block form
Adding a new element in the default proc will add by just referencing.
I'm not for doing it implicitly, and ditto for #19063.
nobu (Nobuyoshi Nakada)
03:37 AM Feature #18996: Proposal: Introduce new APIs to reline for changing dialog UI colours
> And if we use its naming convention for the 4 colours, they'll be:
> ...
Sounds good. I think it'd be also fair to make the APIs a bit more consistent by using `selection_foreground_color` and `selection_background_color`, but then yo...
k0kubun (Takashi Kokubun)
02:27 AM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
zverok (Victor Shepelev) wrote in #note-3:
> `File#each_line` is consuming by design, if I understand correctly.
Well, I guess so. To be honest, I'm not sure which ones are consuming and which ones are not.
> ...
I think this is a...
mame (Yusuke Endoh)
12:14 AM Revision f982a263 (git): [DOC] Fix typo in Enumerable#slice_before
kyanagi (Kouhei Yanagita)
12:12 AM Revision 18b96d8a (git): [ruby/stringio] [DOC] StringIO doc enhancements
(https://github.com/ruby/stringio/pull/33)
Treated:
- ::new
- ::open
- #string
- #string=
- #close
- #close_read
- #close_write
- #closed?
- #closed_read?
- #closed_write?
- #eof?
https://github.com/ruby/stringio/commit/be9b64d739
burdettelamar (Burdette Lamar)
12:11 AM Revision 1654f88c (git): sync_default_gems.rb: commit all after replaced rdoc-ref [ci skip]
nobu (Nobuyoshi Nakada)

10/18/2022

11:52 PM Revision 01d56b99 (git): [DOC] Fix rdoc-ref
nobu (Nobuyoshi Nakada)
09:33 PM Bug #19041: Weakref is still alive after major garbage collection
tenderlovemaking (Aaron Patterson) wrote in #note-7:
> That method may not be putting the object in a register. Something else may have put it in a register or in the stack, and it just happens that no other machine code has overwritte...
parker (Parker Finch)
08:03 PM Revision 12c30f21 (git): Fixes remaining issues and turns back on dead code and unused (#6584)
Jimmy Miller
06:41 PM Revision 6bd72a64 (git): [DOC] Enhanced RDoc for StringIO (#34)
Treated:
- #lineno
- #lineno=
- #binmode
- #reopen
- #pos
- #pos=
- #rewind
- #seek
- #sync
- #each_byte
burdettelamar (Burdette Lamar)
06:19 PM Revision b2ba71df (git): Code clean around unused code for some architectures or features (#6581)
Jimmy Miller
05:49 PM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
mame (Yusuke Endoh) wrote in #note-2:
> But it introduces yet another new type of Enumerator (unrewindable Enumerator?), which is very complicated.
It's more complicated, but unrewindable enumerators already exist in practice (as sho...
Dan0042 (Daniel DeLorme)
12:05 PM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
For problem 1 you can check if an IO is seekable, and this would tell you whether you could restart from the beginning. ioquatix (Samuel Williams)
11:18 AM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
> Here is my understanding
This is correct.
> ...
That's an interesting problem indeed! I'll look deeper into it.
But for now, I consider it an edge case that can be, in the worst case, just covered by docs. E.g. something like ...
zverok (Victor Shepelev)
08:06 AM Feature #19061: Proposal: make a concept of "consuming enumerator" explicit
Here is my understanding:
```ruby
[1, 2, 3].each.consuming? #=> false
$stdin.each_line.consuming? #=> true
# A user must guarantee whether it is consuming or not.
Enumerator.new {}.consuming? #=> false
Enumerator.new...
mame (Yusuke Endoh)
04:07 PM Revision e7166c9b (git): Allow passing a Rust closure to rb_iseq_callback (#6575)
k0kubun (Takashi Kokubun)
03:56 PM Feature #18996: Proposal: Introduce new APIs to reline for changing dialog UI colours
If we want to establish naming convention based on terminal apps, I think I'd pick `iTerm2` as the reference because 1) its very popular and 2) it allows more customisation than `Terminal.app`:
![iterm2 colour configurations](Screenshot...
st0012 (Stan Lo)
03:16 PM Revision d67b6310 (git): [DOC] Link to packed data doc (#6567)
* Link to packed data doc
* Update pack.rb
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
* Update pack.rb
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
* Update pack.rb
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
Co-authored-by:...
burdettelamar (Burdette Lamar)
02:45 PM Bug #19065: ruby 3.1.2 is printing all class variables for undefined error
Ok thanks for the info
Varun (Sai Varun)
01:50 PM Revision 3e05dff6 (git): merge revision(s) 6a43245e6cda89eddd105f5a6e0182a7229657af:
Use BOOTSTRAPRUBY_COMMAND instead of fake.rb directly
---
common.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
01:27 PM Revision 671811a8 (git): merge revision(s) d8f81ffdff668b457339885c15d7cee785ad38be:
builtin.c includes mini_builtin.c when cross-compiling
---
common.mk | 3 +++
1 file changed, 3 insertions(+)
nagachika (Tomoyuki Chikanaga)
12:50 PM Revision 75539c2d (git): merge revision(s) 85a483169f8381bec08ff2c9a9fc66167fc8a84a:
Use cross compiling settings as fake.rb for snapshots
---
tool/make-snapshot | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
12:48 PM Revision 5f8c6549 (git): merge revision(s) 76664905a589416739a13241e7b8535d78984723:
Ignore fake.rb for snapshot
---
common.mk | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
nagachika (Tomoyuki Chikanaga)
12:47 PM Revision c65bdad1 (git): merge revision(s) 45004bba6b4fa22429b1c45f13444a894874c41e:
fake.rb needs id.h
---
common.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
12:46 PM Revision 09c8604b (git): merge revision(s) 2767cb282531be10c6393d3d7c48fcdd2935ca4d:
Now fake.rb is needed to prepare sources
---
tool/make-snapshot | 1 +
1 file changed, 1 insertion(+)
nagachika (Tomoyuki Chikanaga)
12:46 PM Revision 9b1cf2c2 (git): merge revision(s) 762fca9b12b9cfb0159404c95ee4275100169c17:
Prefer `File` class methods to write a string
---
tool/make-snapshot | 23 ++++++++++-------------
1 file changed, 10 insertions(+), 13 deletions(-)
nagachika (Tomoyuki Chikanaga)
12:44 PM Revision fbebe493 (git): merge revision(s) a01271c1c46079cb6f7f32051f1253cf3d9bca6b:
BOOTSTRAPRUBY needs fake.rb when cross-compiling
---
configure.ac | 1 +
1 file changed, 1 insertion(+)
nagachika (Tomoyuki Chikanaga)
12:44 PM Revision fed41160 (git): merge revision(s) 7b11247b4dc6b04c3ba3876009145ce0dbf78662:
Fix potential target type confliction [ci skip]
---
common.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
12:42 PM Revision 8e74bfb6 (git): merge revision(s) 7c67d0fd79a3cffe857587fa3cf576b611023840:
Make sources by BASERUBY if available instead of miniruby
---
common.mk | 25 +++++++++++++++----------
configure.ac | 6 +++++-
cygwin/GNUmakefile.in | 4 ++--
template/Ma...
nagachika (Tomoyuki Chikanaga)
12:40 PM Revision 0bdf9c4e (git): merge revision(s) 21a5da3c4c803987c48bc9ca588948c50715631a:
Check if MSys shell can run a command with a drive letter
---
configure.ac | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
12:32 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> One of the problems I'm trying to solve is behavioural changes due to the internal fiber of enumerator. Can you propose some other way to fix this?
Maybe Enumerator-created Fiber should always use the Fiber locals of the caller Fibe...
Eregon (Benoit Daloze)
12:06 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> So in the context of creating a fiber, it's 30% slower. That's quite significant.
It's less than that on my machine, more like 20%, also it would be sligthly faster than that since done from C, so no method lookup etc.
```
Warmi...
byroot (Jean Boussier)
11:55 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
```
Warming up --------------------------------------
baseline 287.720k i/100ms
locals-dup 229.210k i/100ms
Calculating -------------------------------------
baseline 2.922M (± 0.7%) i/s - ...
ioquatix (Samuel Williams)
11:44 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
Sorry but that's not remotely a good benchmark. We're talking about a potential overhead, so it has to be considered relative to the exiting work.
```ruby
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem...
byroot (Jean Boussier)
11:26 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
If we were concerned about having a separate but similarly inheritable scope for Threads, maybe we should have this model:
```
Thread.locals -> child threads will inherit
Fiber.locals -> initially blank and only propagated to other fibe...
ioquatix (Samuel Williams)
11:20 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> It's extremely negligible.
Okay, good to know.
```ruby
require 'benchmark'
locals = {a: 1, b: 2, c: 3}
Benchmark.bm do |b|
b.report("dup") {1_000_000.times{x = locals.dup}}
b.report("assign") {1_000_000.times{x = loc...
ioquatix (Samuel Williams)
11:05 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> It's not thread unsafe to update the locals in Ruby because of the GVL.
We should not design general semantics based on a CRuby-only implementation detail.
It is thread unsafe and could crash other Ruby implementations for instance...
Eregon (Benoit Daloze)
10:37 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> I'm concerned about the memory and performance cost of calling dup per fiber.
It's extremely negligible.
> ...
I really don't see how.
> It also prevents shared optimisations which is something I want to use for my connection ...
byroot (Jean Boussier)
10:15 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
Thanks for your examples. I agree there are different ways to solve this problem.
The key model I'm trying to introduce is a shared state "per request". It's actually similar to <https://github.com/steveklabnik/request_store> in a lot...
ioquatix (Samuel Williams)
08:14 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> this is more logical?
What is logical to me is to behave like POSIX environment variables. When you spawn a new fiber/thread it is initialized with a *shallow copy* of it's parent "locals".
What makes sense to me is:
```ruby
...
byroot (Jean Boussier)
12:27 PM Revision 5e901758 (git): merge revision(s) 26054c74619d36b2781e872fad15a1a0bfab1be1:
Fix paths of exts.mk to clean
exts.mk files are one level under the top of extension directories.
---
template/exts.mk.tmpl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
12:27 PM Revision b4f8f4ce (git): merge revision(s) 77f3f8a1d4f45d06df6cfea2bac3a67867c19efb:
exts.mk.tmpl: propagate MINIRUBY to enc.mk even though invoking from
exts.mk
This is another attempt to fix out-of-src build with
--with-static-linked-ext. The first attempt was
4f1888bda70981d9f5b1bf55a...
nagachika (Tomoyuki Chikanaga)
12:05 PM Bug #19067: Module methods not usable at toplevel under wrapped script
This is actually even confusing prior to the recent change:
> If the optional wrap parameter is true, the loaded script will be executed under an anonymous module, protecting the calling program's global namespace.
```ruby
# foo.r...
shioyama (Chris Salzberg)
11:11 AM Bug #19067: Module methods not usable at toplevel under wrapped script
> This is a bit incompatible, but I wonder if it is better than dealing with `Module#using`, `Module#private_method`, etc. individually.
Yes that's a fair point, and to be honest, I didn't realize how much failed to work as "expected" u...
shioyama (Chris Salzberg)
10:49 AM Bug #19067: Module methods not usable at toplevel under wrapped script
I think we can say the following by the same reasoning:
```ruby
# foo.rb
p self
```
```ruby
module MyModule; end
load "./foo.rb", MyModule #=> current: self, expected?: MyModule
```
because:
```ruby
module MyModule
...
mame (Yusuke Endoh)
10:21 AM Bug #19067: Module methods not usable at toplevel under wrapped script
> As an author of the target file I no longer control the nesting, which is fundamental to know the constant references I am writing are the ones I actually mean.
You cannot be sure the constant you are referencing is the one you mean,...
shioyama (Chris Salzberg)
09:56 AM Bug #19067: Module methods not usable at toplevel under wrapped script
> The documentation is unclear about what does "being executed under" mean. Without that definition, we cannot know if this is a bug.
This is true. I am labelling it as a "bug" but it should be understood as "inconsistency".
shioyama (Chris Salzberg)
09:48 AM Bug #19067: Module methods not usable at toplevel under wrapped script
I have always been skeptical about the ability to pass a module to `Kernel#load`.
As an author of the target file I no longer control the nesting, which is fundamental to know the constant references I am writing are the ones I actual...
fxn (Xavier Noria)
07:53 AM Bug #19067 (Rejected): Module methods not usable at toplevel under wrapped script
```ruby
#foo.rb
module Foo
end
private_constant :Foo
```
```ruby
module MyModule; end
load "./foo.rb", MyModule
# undefined method `private_constant' for main:Object (NoMethodError)
# ...
shioyama (Chris Salzberg)
12:00 PM Feature #19063: Hash.new with non-value objects should be less confusing
I opened a new issue #19069 regarding my proposal https://bugs.ruby-lang.org/issues/19063#note-15. If you have comments related to that idea, please continue on #19069. sawa (Tsuyoshi Sawada)
10:51 AM Feature #19063: Hash.new with non-value objects should be less confusing
I'm also of the stance that this shouldn't surprise someone familiar with how Ruby is evaluated, but it is true that people have to start from somewhere and it's always good to try to help them get that understanding.
The problem with...
byroot (Jean Boussier)
09:57 AM Feature #19063: Hash.new with non-value objects should be less confusing
While I like the idea of checking the arity of the block, maybe the core issue isn't entirely with the API for `Hash.new`, but the fact that default value/default proc are not visible. From the examples above, when we print the value of ... etienne (Étienne Barrié)
11:58 AM Feature #19069 (Rejected): Default value assignment with `Hash.new` in block form
This is a spin-out from #19063, and is a recapture of my comment https://bugs.ruby-lang.org/issues/19063#note-15.
I propose to change the behavior of `Hash.new` when it takes a block with its parameter signature absent. In such case, ...
sawa (Tsuyoshi Sawada)
09:41 AM Misc #19040: DevMeeting-2022-10-20
- [Feature #19066] Enable Scorecard Github Action
- I don't know the details, but at first sight, it seems worth doing
duerst (Martin Dürst)
08:54 AM Misc #19040: DevMeeting-2022-10-20
* [Feature #19068] Upgrades required Bison version for development
* Change set is only improvement of yydebug option output, however this upgrades required Bison version. Then want to confirm it's acceptable.
* [Feature #19070] Enhanc...
yui-knk (Kaneko Yuichiro)
08:06 AM Misc #19040: DevMeeting-2022-10-20
- [Bug #19067] Module methods not usable at toplevel under wrapped script
- Similar to #18960
- Based on my understanding of the `wrap` module, this should work, but `top_self` currently extends the `wrap` module.
- Up to 3.2, `wra...
shioyama (Chris Salzberg)
08:52 AM Feature #19068 (Closed): Upgrades required Bison version for development
# Background
Printing node type, e.g. `NODE_LIT`, for `yydebug` option is helpful when developing parse.y.
Before:
```
Reducing stack by rule 639 (line 5062):
$1 = token "integer literal" (1.0-1.1: 1)
-> $$ = nterm simple_...
yui-knk (Kaneko Yuichiro)
08:44 AM Revision 1b235dcf (git): Ignore manual files only commits [ci skip]
nobu (Nobuyoshi Nakada)
08:43 AM Revision e1ca90c2 (git): sync_default_gems.rb: fold too long subject [ci skip]
Line with substituted issue references with URLs are often very long.
Although Git (and GitHub) recommends folding subject lines less than
50 columns, but many commits ignore this, so fold at 68 columns for
now.
nobu (Nobuyoshi Nakada)
08:22 AM Revision 93d73cfe (git): Update default gems list at dffca50bb609661f04660221834c48 [ci skip]
git[bot]
08:21 AM Revision dffca50b (git): [ruby/fiddle] Free closures immediately
(https://github.com/ruby/fiddle/pull/109)
These structs don't need to be freed as part of finalization, so lets
free them immediately.
https://github.com/ruby/fiddle/commit/8a10ec1152
tenderlovemaking (Aaron Patterson)
08:21 AM Revision e84ea4af (git): [ruby/fiddle] Add support for linker script on Linux
GitHub: fix https://github.com/ruby/fiddle/pull/107
Reported by nicholas a. evans. Thanks!!!
https://github.com/ruby/fiddle/commit/49ea1490df
Sutou Kouhei
08:21 AM Revision 93da67d4 (git): [ruby/fiddle] Fix filenames for glibc SO files on alpha and ia64
(https://github.com/ruby/fiddle/pull/105)
Fixes [Bug #18645]
https://github.com/ruby/fiddle/commit/9a5a1dab1d
glaubitz (John Paul Adrian Glaubitz)
08:21 AM Revision 08ec6562 (git): [ruby/fiddle] Bump version
Sutou Kouhei
08:21 AM Revision 091e3522 (git): fiddle: use the old rb_ary_tmp_new() alias
Fiddle is a gem and has the external upstream which supports older
versions of Ruby.
nobu (Nobuyoshi Nakada)
07:55 AM Feature #19024: Proposal: Import Modules
> there's a lot of sharp edges
I consider the first one a bug, thanks for identifying it. I've filed an issue for it: https://bugs.ruby-lang.org/issues/19067
The others I'm not quite clear on, but if the current `wrap` parameter is...
shioyama (Chris Salzberg)
07:54 AM Revision 007946c2 (git): [rubygems/rubygems] Bundler: github DSL has used https protocol over git
This behavior change was done in Bundler 2.2.0.
https://github.com/rubygems/bundler/pull/7142
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
https://github.com/rubygems/rubygems/commit/9510190be1
Takuya Noguchi
07:33 AM Revision f5df47d1 (git): Merge RubyGems/Bundler master
https://github.com/rubygems/rubygems/commit/6214d00b2315ed37c76b1fbc1c72f61f92ba5a65 hsbt (Hiroshi SHIBATA)
07:33 AM Revision 2ab7bb89 (git): [rubygems/rubygems] TestGemSecuritySigner#test_sign: Correct the expectation for new cert.
https://github.com/rubygems/rubygems/commit/bed360410d jprokop (Jarek Prokop)
07:33 AM Revision b7debaa8 (git): [rubygems/rubygems] TestGemSecurity#test_class_re_sign: Correct signature algorithm.
https://github.com/rubygems/rubygems/commit/e2d533591c jprokop (Jarek Prokop)
07:33 AM Revision cbddc913 (git): [rubygems/rubygems] Set Subject Key Identifier in test to correspond to the new certificate.
https://github.com/rubygems/rubygems/commit/3a607f43d1 jprokop (Jarek Prokop)
07:33 AM Revision cb63a3f4 (git): [rubygems/rubygems] Materialize platforms strictly on Windows too
https://github.com/rubygems/rubygems/commit/ab11545f80 deivid (David Rodríguez)
07:33 AM Revision 4d3dbbe7 (git): [rubygems/rubygems] Remove unnecessary receiver
https://github.com/rubygems/rubygems/commit/ba9d9b1890 deivid (David Rodríguez)
07:33 AM Revision 74dbb0d0 (git): [rubygems/rubygems] Remove unnecessary generic
I didn't realize how the `Bundler::GemHelpers.generic` method works when
I added this. It already matches this and other java platforms properly.
https://github.com/rubygems/rubygems/commit/5f0f0c678c
deivid (David Rodríguez)
07:33 AM Revision 5fa18a7b (git): [rubygems/rubygems] Fix bad spec wording
https://github.com/rubygems/rubygems/commit/06faad1e05 deivid (David Rodríguez)
07:33 AM Revision e956caea (git): [rubygems/rubygems] Extract matcher for slow perf spec
https://github.com/rubygems/rubygems/commit/1c0eb63c6a deivid (David Rodríguez)
07:33 AM Revision 56ad7969 (git): [rubygems/rubygems] Simplify fetching spec group dependencies
https://github.com/rubygems/rubygems/commit/62c2edd255 deivid (David Rodríguez)
07:33 AM Revision 804ae4ea (git): [rubygems/rubygems] Simplify SpecGroup creation
https://github.com/rubygems/rubygems/commit/788e46e152 deivid (David Rodríguez)
07:33 AM Revision 67de0005 (git): [rubygems/rubygems] Inline helper method
https://github.com/rubygems/rubygems/commit/e60459d6b6 deivid (David Rodríguez)
07:33 AM Revision b99010f9 (git): [rubygems/rubygems] Use `flat_map`
https://github.com/rubygems/rubygems/commit/b31308fb4c deivid (David Rodríguez)
07:33 AM Revision 71dede38 (git): [rubygems/rubygems] Remove one more `expand_dependencies` call
https://github.com/rubygems/rubygems/commit/996fd81871 deivid (David Rodríguez)
07:33 AM Revision cef7f6b2 (git): [rubygems/rubygems] Remove now unnecessary parameter to `expand_dependencies`
We just call it once for resolution, so we can simplify things.
https://github.com/rubygems/rubygems/commit/99c144fbe3
deivid (David Rodríguez)
07:33 AM Revision 8c4bd1e5 (git): [rubygems/rubygems] Remove another `expand_dependencies` instance
https://github.com/rubygems/rubygems/commit/33769ddb07 deivid (David Rodríguez)
07:33 AM Revision 60670b16 (git): [rubygems/rubygems] Remove another unnecessary dependency expansion
https://github.com/rubygems/rubygems/commit/b4a0fcd2d2 deivid (David Rodríguez)
07:33 AM Revision 0b6f2af3 (git): [rubygems/rubygems] Avoid unnecessary dependency expansion
https://github.com/rubygems/rubygems/commit/426748ed06 deivid (David Rodríguez)
07:33 AM Revision da1981fc (git): [rubygems/rubygems] Remove unused parameter to `SharedHelpers.pretty_dependency`
https://github.com/rubygems/rubygems/commit/665051d085 deivid (David Rodríguez)
07:33 AM Revision 4205190c (git): [rubygems/rubygems] Remove dead code
https://github.com/rubygems/rubygems/commit/999b644708 deivid (David Rodríguez)
06:03 AM Revision 931bcd1b (git): [ruby/irb] Assert lvars_code doesn't include \n
Removing /\A.+\n/ could have an unexpected impact, depending on how
RubyLex.generate_local_variables_assign_code is implemented. It feels
like a too much assumption and the intention isn't immediately clear,
so I added these changes.
ht...
k0kubun (Takashi Kokubun)
05:44 AM Revision a09f764c (git): [ruby/irb] Always use local variables in current context to parse code (https://github.com/ruby/irb/pull/397)
* Use local_variables for colorize, code_block_open check, nesting_level and assignment_expression check
* Check if expression is an assignment BEFORE evaluating it. evaluate might define new localvars and change result of assignment_ex...
tompng (tomoya ishida)
05:30 AM Revision 344e6c91 (git): [ruby/irb] Fix code terminated check with heredoc and backtick (https://github.com/ruby/irb/pull/390)
* Fix backtick method def method call handled as backtick open
* Fix handling heredoc in check_string_literal
* Sort result of lexer.parse by pos in ruby<2.7. It's not sorted when the given code includes heredoc.
* Update lib/irb/ruby...
tompng (tomoya ishida)
04:16 AM Revision 134acf98 (git): ruby/ruby-commit-hook has been renamed [ci skip]
to ruby/git.ruby-lang.org k0kubun (Takashi Kokubun)
02:37 AM Revision ab3b1b23 (git): sync_default_gems.rb: fix links to GitHub issues
- Substitute `GH-xxxx` which does not contain `#` too.
- Split each substitutions.
nobu (Nobuyoshi Nakada)
02:25 AM Bug #19042 (Closed): Bug: Dir.glob ignores subdirectories in alternation when alternation is preceded by recursive directory pattern
Applied in changeset commit:git|329d5424a479bb08e75bd750c51a5382e382731c.
----------
[Bug #19042] Fix Dir.glob brace with '/'
Dir.glob brace pattern with '/' after '**' does not match
paths in recursive expansion process.
We expand bra...
h.shirosaki (Hiroshi Shirosaki)
12:18 AM Revision 329d5424 (git): [Bug #19042] Fix Dir.glob brace with '/'
Dir.glob brace pattern with '/' after '**' does not match
paths in recursive expansion process.
We expand braces with '/' before expanding a recursive.
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
h.shirosaki (Hiroshi Shirosaki)

10/17/2022

10:37 PM Revision 995bdd69 (git): Try --x-use-aria2 for better retries (#6574)
to possibly deal with failures like https://ci.appveyor.com/project/ruby/ruby/builds/45097615.
I'm not sure how vcpkg retries things, but at least aria2c seems to attempt downloads 5 times by default.
https://aria2.github.io/manual/en/h...
k0kubun (Takashi Kokubun)
09:58 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> Even if the "locals hash" is copied when a new fiber is created, you can still have the behavior your want by storing a mutable object.
And that's exactly my point, so why bother trying to prevent mutability, especially if there is ...
ioquatix (Samuel Williams)
08:05 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> Here is a short example of what I want:
That example makes very little sense to me:
- How is this a "local" if it's accessible by other fibers?
- I could understand inheriting (a copy of) the locals of the parent fibers, but...
byroot (Jean Boussier)
07:57 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
Here is a short example of what I want:
```ruby
Fiber[:count] = 0
enumerator = Enumerator.new do |y|
10.times do |i|
Fiber[:count] += 1
y << i
end
end
enumerator.next
p Fiber[:count] # 1
enumerator.to_a
p Fiber[:count] # ...
ioquatix (Samuel Williams)
07:42 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
The only thing I really care about is an efficient way to implicitly share specific state within an execution context.
```
let(x = 10) do
Thread.new do
get(x) # => 10
end
Enumerator.new do
get(x) # => 10
end
end
```
Li...
ioquatix (Samuel Williams)
11:49 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
ioquatix (Samuel Williams) wrote in #note-17:
> > It would be a semantic bug if adding a new local in a child fiber affects a parent fiber as @byroot (Jean Boussier) said.
> ...
I would think all other languages with similar functionalit...
Eregon (Benoit Daloze)
11:48 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> ActiveRecord connections are thread safe
Again, "thread safe" is a very loaded term. It just means that things won't be utterly broken if you use that API in a concurrent scenario, it doesn't mean that you want to share that connect...
byroot (Jean Boussier)
11:12 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
ActiveRecord connections are thread safe, and it makes total sense to me that an enumerator might like to run in the same transaction as its surrounding context. In fact I've read many times people complaining about this exact problem.
...
ioquatix (Samuel Williams)
10:55 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> No, it's not bad to share a DB connection between threads, if the DB connection itself is thread safe
"Thread safe" can mean a lot of things. Generally speaking, the vast majority of protocols don't support concurrent access, so mos...
byroot (Jean Boussier)
10:48 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> It would be a semantic bug if adding a new local in a child fiber affects a parent fiber as @byroot (Jean Boussier) said.
I don't agree this is a semantic bug. Ruby doesn't have any existing data structures which behave like this, and...
ioquatix (Samuel Williams)
10:29 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
For sure we need the `.dup` on the internal hash used for storage when inheriting it to a new Fiber.
It would be a semantic bug if adding a new local in a child fiber affects a parent fiber as @byroot said.
Or we'd need some kind of pe...
Eregon (Benoit Daloze)
09:44 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
Okay, with this small change, we can propagate locals across threads: https://github.com/ruby/ruby/pull/6566/commits/ac09cff4c36ca9535b0439e3d599ac7ef9899c97
Small test program:
```ruby
Fiber[:x] = 10
thread = Thread.new do
pp Fibe...
ioquatix (Samuel Williams)
09:30 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
Just for my own note:
```ruby
struct rb_execution_context_struct {
/* storage (ec (fiber) local) */
struct rb_id_table *local_storage;
}
```
Fiber locals already exist on `rb_execution_context_struct`.
ioquatix (Samuel Williams)
09:18 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> Well same than for your Fiber example, but with threads.
I don't think we should introduce `Thread#locals` because then we end up with two interfaces for execution context state. Fiber locals are introducing a limited form of "dynamic...
ioquatix (Samuel Williams)
08:42 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> I think of that more of a design choice rather than an outright issue.
Of course. But it is generally considered good design to help avoid shared mutable state. But again, I can live with the current proposal.
> ...
Well same tha...
byroot (Jean Boussier)
08:27 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> If you simply inherit this hash, a child fiber changing Something.current would change it in its parent, sibling and child fibers too, which is super unlikely to be what you want.
I think of that more of a design choice rather than an...
ioquatix (Samuel Williams)
08:23 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> Can you give an example of the problem caused by mutability?
Sure, you can look at how `ActiveSupport::IsolatedExecutionState` is used today. For instance [`ActiveSupport::CurrentAttributes`](https://github.com/rails/rails/blob/caf9...
byroot (Jean Boussier)
07:50 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
> The problem however is the semantic. If all the values in Fiber.locals are immutable, it's quite painless, but if they are mutable what do you do?
Can you give an example of the problem caused by mutability?
> ...
The simplest wa...
ioquatix (Samuel Williams)
07:40 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
So that is indeed a need that arise when you start using fibers or even threads. Existing Ruby code rely a lot on Fiber / Thread global state.
The problem however is the semantic. If all the values in `Fiber.locals` are immutable, it'...
byroot (Jean Boussier)
07:01 AM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
Seems pretty different from the thread local storage.
Intentional?
nobu (Nobuyoshi Nakada)
09:47 PM Revision b54c8ba8 (git): Simplified rb_obj_copy_ivar implementation
jemmai (Jemma Issroff)
09:32 PM Revision 1865ed4a (git): Fix an outdated notification message
https://github.com/ruby/ruby/commit/0d7292ec734d49def118959d6a80588e7c0f7a39 k0kubun (Takashi Kokubun)
09:14 PM Revision 1c83469f (git): [ruby/irb] Remove unnecessary coloring support check
https://github.com/ruby/irb/commit/ddd7dbe2c5 st0012 (Stan Lo)
07:13 PM Feature #19066 (Closed): Enable Scorecard Github Action
Hi, I am Joyce and I'm working on behalf of Google and the [Open Source Security Foundation](https://openssf.org/) to help essential open-source projects improve their supply-chain security.
Would you consider adopting an OpenSSF tool...
joycebrum (Joyce Brum)
06:29 PM Feature #19063: Hash.new with non-value objects should be less confusing
@baweaver (Brandon Weaver) wrote:
> Should we open a new ticket for this shorthand Hash.new { [] } syntax?
Either way is okay with me.
sawa (Tsuyoshi Sawada)
05:49 PM Feature #19063: Hash.new with non-value objects should be less confusing
I would agree that `Hash.new { [] }` would be very nice, and as mentioned has a dual in `Array.new(5) { [] }`.
While I do not think that it is a bug (and my apologies for earlier bad wording) to have `Hash.new([])` do what it currentl...
baweaver (Brandon Weaver)
03:45 PM Feature #19063: Hash.new with non-value objects should be less confusing
ioquatix (Samuel Williams) wrote in #note-16:
> The question is, are there valid use cases for `Hash.new(default_value)` and/or `Array.new(count, default_value)` where the user expects mutable values to be shared?
Sure:
```ruby
c...
jeremyevans0 (Jeremy Evans)
03:02 PM Feature #19063: Hash.new with non-value objects should be less confusing
Dan0042 (Daniel DeLorme) wrote in #note-19:
> The main downside is incompatibility with previous ruby versions. [...] Note that I haven't found that many gems that use `Hash.new{value}` syntax, and most of them would work fine with this ...
sawa (Tsuyoshi Sawada)
01:47 PM Feature #19063: Hash.new with non-value objects should be less confusing
sawa (Tsuyoshi Sawada) wrote in #note-15:
> ```ruby
> ...
I *love* this idea! It makes the common case so much easier and uncluttered. It's easy to bypass if you need to. It works great in combination with a frozen default value; when ...
Dan0042 (Daniel DeLorme)
01:02 PM Feature #19063: Hash.new with non-value objects should be less confusing
This is a good idea. Even though the current behavior is "logical", and experienced rubyists have gotten so used to this that it's second nature, there's an opportunity to make ruby more friendly for beginners by removing a well-known go... Dan0042 (Daniel DeLorme)
07:03 AM Feature #19063: Hash.new with non-value objects should be less confusing
In support of `Hash.new{default_value}`, `Array.new(count){default_value}` works in the same way. ioquatix (Samuel Williams)
06:59 AM Feature #19063: Hash.new with non-value objects should be less confusing
@sawa I appreciate your technical knowledge and insight.
However... the practical reality is the vast majority of the users are using this interface incorrectly. This might imply that the theoretical basis for how `Hash.new(default_valu...
ioquatix (Samuel Williams)
06:28 AM Feature #19063: Hash.new with non-value objects should be less confusing
I can imagine why you particularly picked up (or people are more troubled with) `Hash.new` rather than `Array.new`. Probably, you are feeling that `Hash.new {|h, k| h[k] = []}` is too long to write. So I have an even better idea. If poss... sawa (Tsuyoshi Sawada)
05:59 AM Feature #19063: Hash.new with non-value objects should be less confusing
This issue is essentially the same issue as people mistakenly writing `Array.new(5, [])` with the intention to actually do `Array.new(5){[]}`. And the same issue can appear elsewhere.
Users need to have better understanding of how argum...
sawa (Tsuyoshi Sawada)
05:46 AM Feature #19063: Hash.new with non-value objects should be less confusing
duerst (Martin Dürst) wrote in #note-11:
> `Hash.new(my_method_returning_an_empty_array)` would behave exactly the same as `Hash.new([])` (assuming `my_method_returning_an_empty_array`) really did what its name said). So compositionalit...
sawa (Tsuyoshi Sawada)
05:11 AM Feature #19063: Hash.new with non-value objects should be less confusing
ioquatix (Samuel Williams) wrote in #note-10:
> The current behaviour is ambiguous at best and as @austin has shown, buggy and incorrect at worst / in practice.
> ...
There is definitely a chance of breaking compatibility. It would be ...
duerst (Martin Dürst)
05:05 AM Feature #19063: Hash.new with non-value objects should be less confusing
sawa (Tsuyoshi Sawada) wrote in #note-9:
> 2. Your proposal 1 would break one of the very basic principles of Ruby, or perhaps of any computer language, or even any natural language. That is, the arguments passed to a method are evalu...
duerst (Martin Dürst)
04:05 AM Feature #19063: Hash.new with non-value objects should be less confusing
The current behaviour is ambiguous at best and as @austin has shown, buggy and incorrect at worst / in practice.
I prefer option 1 but it's true it can break compatibility with this poorly understood behaviour.
I agree in principle...
ioquatix (Samuel Williams)
03:37 AM Feature #19063: Hash.new with non-value objects should be less confusing
baweaver (Brandon Weaver) wrote in #note-5:
> Then what would qualify as a proof?
I don't think it is provable. That is my point. You made a statement that cannot be assured.
I know that a lot of beginners make the kind of mistake you ...
sawa (Tsuyoshi Sawada)
03:25 AM Feature #19063: Hash.new with non-value objects should be less confusing
Edit on a couple of these. The GitLab behaviour, and @shugo’s code both do `hash[key] |= value_list`, so they *do* effectively do `hash[key] = value_list`, which makes them safer to use *in these particular cases*. I don’t think that thi... austin (Austin Ziegler)
03:16 AM Feature #19063: Hash.new with non-value objects should be less confusing
sawa (Tsuyoshi Sawada) wrote in #note-2:
> > When people use Hash.new([]) they mean Hash.new { |h, k| h[k] = [] }.
> ...
It partially comes from not necessarily understanding `default_value` in the Hash documentation. The documentation...
austin (Austin Ziegler)
03:04 AM Feature #19063: Hash.new with non-value objects should be less confusing
> austin (Austin Ziegler) wrote in #note-4:
> ...
I would agree that option 2 is the most viable without serious breaking behavior, and option 3 would be better long-term. Option 1 was an attempt at a compromise, but would have breaking...
baweaver (Brandon Weaver)
03:01 AM Feature #19063: Hash.new with non-value objects should be less confusing
> For note, coming up with a lot of examples pointing towards that is not a proof.
Then what would qualify as a proof? I am confused by this as it asserts that examples of people being confused are not proof, whenever by definition it...
baweaver (Brandon Weaver)
02:56 AM Feature #19063: Hash.new with non-value objects should be less confusing
This mistake is much more common than I would have thought, and it appears in some fairly large projects (not everyone may have access to this result because `cs.github.com` is still apparently in preview):
https://cs.github.com/?scopeN...
austin (Austin Ziegler)
02:54 AM Feature #19063: Hash.new with non-value objects should be less confusing
sawa (Tsuyoshi Sawada) wrote in #note-2:
> > When people use Hash.new([]) they mean Hash.new { |h, k| h[k] = [] }.
> ...
Do you have examples of this? I have had several cases across multiple large Ruby companies where this behavior had ...
baweaver (Brandon Weaver)
02:47 AM Feature #19063: Hash.new with non-value objects should be less confusing
> When people use Hash.new([]) they mean Hash.new { |h, k| h[k] = [] }.
I don't think so. Can you prove it? For note, coming up with a lot of examples pointing towards that is not a proof.
> ...
This contradicts with what you have admi...
sawa (Tsuyoshi Sawada)
01:34 AM Feature #19063: Hash.new with non-value objects should be less confusing
@matz what do you think? ioquatix (Samuel Williams)
05:49 PM Bug #18605: Fails to run on (newer) 32bit Windows with ucrt
This (unsurprisingly) also breaks ruby on arm64 and is blocking our arm64 porting effort: https://github.com/msys2/MINGW-packages/pull/13115 lazka (Christoph Reiter)
05:47 PM Revision f11765ae (git): YJIT: Allow --yjit-dump-disasm to dump into a file (#6552)
* YJIT: Allow --yjit-dump-disasm to dump into a file
* YJIT: Move IO implementation to disasm.rs
* YJIT: More consistent naming
k0kubun (Takashi Kokubun)
05:45 PM Revision 64c52c42 (git): YJIT: Interleave inline and outlined code blocks (#6460)
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
k0kubun (Takashi Kokubun)
05:31 PM Bug #19041: Weakref is still alive after major garbage collection
parker (Parker Finch) wrote in #note-6:
> I'm still curious _why_ calling `#weakref_alive?` on the `WeakRef` seems to put the underlying `Object` (that the `WeakRef` delegates to) in a register or on the stack. But the fact that this is...
tenderlovemaking (Aaron Patterson)
04:27 PM Revision e7c71c6c (git): Make mjit_cont sharable with YJIT (#6556)
* Make mjit_cont sharable with YJIT
* Update dependencies
* Update YJIT binding
k0kubun (Takashi Kokubun)
04:26 PM Revision 07a93b1e (git): YJIT: Do not call `mprotect` when `mem_size` is zero (#6563)
This allows x86_64 based YJIT to run on Docker Desktop on Apple silicon (arm64)
Mac because it will avoid a subtle behavior difference in `mprotect` system call
between the Linux kernel and `qemu-x86_64` user space emulator.
Tatsuya Kawano
04:12 PM Feature #17576: Partial Functions (procs, lambdas)
Isn't the topic starter talking about pattern arguments for function? This is something I'm personally looking froward to. It is similar to Elixir's functions pattern matching and increases the expressiveness of the language by order of ... pyromaniac (Arkadiy Zabazhanov)
04:11 PM Revision ad3d210b (git): YJIT: call free_block to cleanup block when out of memory
The commented out instance of free_block() is left over from the port.
The addition in gen_single_block() was a place we missed. The new block
is allocated in the same function and could have invariants associated
with it even though the...
alanwu (Alan Wu)
03:23 PM Revision 637144b8 (git): Adjust indents [ci skip]
nobu (Nobuyoshi Nakada)
02:56 PM Feature #18982 (Closed): Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
Applied in changeset commit:git|60defe0a68a40d1b3225cf6b971ea195e19ae2e2.
----------
thread_sync.c: Clarify and document the behavior of timeout == 0
[Feature #18982]
Instead of introducing an `exception: false` argument to have `non_...
byroot (Jean Boussier)
02:56 PM Revision 60defe0a (git): thread_sync.c: Clarify and document the behavior of timeout == 0
[Feature #18982]
Instead of introducing an `exception: false` argument to have `non_block`
return nil rather than raise, we can clearly document that a timeout of 0
immediately returns.
The code is refactored a bit to avoid doing a tim...
byroot (Jean Boussier)
02:38 PM Revision 7db29de0 (git): [ruby/openssl] add document-method for BN#mod_inverse
https://github.com/ruby/openssl/commit/5befde7519 Ben Toews
02:38 PM Revision 149cb049 (git): [ruby/openssl] add BN#mod_sqrt
https://github.com/ruby/openssl/commit/4619ab3e76 Ben Toews
02:38 PM Revision e037731c (git): [ruby/openssl] define BIGNUM_2cr macro for BN function that takes context and
returns a BN
https://github.com/ruby/openssl/commit/4d0971c51c
Ben Toews
09:36 AM Revision f6bf5e2c (git): Respect `USE_COMMON_RANDOM` macro by a command line option [ci skip]
nobu (Nobuyoshi Nakada)
09:36 AM Revision b584c106 (git): Fix debug messages [ci skip]
nobu (Nobuyoshi Nakada)
09:36 AM Revision f08fcd0e (git): Fix possible use of undefined macros on very old macOS [ci skip]
nobu (Nobuyoshi Nakada)
07:57 AM Bug #19065 (Closed): ruby 3.1.2 is printing all class variables for undefined error
I think this is a duplicate of #18285.
Since Ruby 3.0.0, an error message of UndefinedMethod always includes all instance variables. As this could be too long as you said, it is reconsidered in #18285.
```
$ ./bin/ruby-2.7.6 -e 'c...
mame (Yusuke Endoh)
06:57 AM Bug #19065: ruby 3.1.2 is printing all class variables for undefined error
My bad
I have used the command "ruby script"
In the error message, we are getting all the class variables printed
We load a few files into the class variables and this issue is causing a bit of trouble for us.
Please check it once
Varun (Sai Varun)
06:28 AM Bug #19065 (Feedback): ruby 3.1.2 is printing all class variables for undefined error
We need how to reproduce the issue and error output at least. mame (Yusuke Endoh)
06:16 AM Bug #19065 (Closed): ruby 3.1.2 is printing all class variables for undefined error
Not sure whether this is a bug or some config issue from my side
Varun (Sai Varun)
07:43 AM Revision 85cee293 (git): Update default gems list at 6166fa612cf798930863c7cca23dc9 [ci skip]
git[bot]
07:35 AM Revision 6166fa61 (git): [ruby/openssl] Call out insecure PKCS #1 v1.5 default padding for RSA
https://github.com/ruby/openssl/commit/fd5eaa6dfc Bart de Water
07:35 AM Revision aecc470a (git): [ruby/openssl] Use default `IO#timeout` if possible.
https://github.com/ruby/openssl/commit/471340f612 Samuel Williams
07:35 AM Revision 17998ad3 (git): [ruby/openssl] Add support to SSL_CTX_set_keylog_callback
- This callback is invoked when TLS key material is generated or
received, in order to allow applications to store this keying material
for debugging purposes.
- It is invoked with an `SSLSocket` and a string containing the key
mat...
Christophe De La Fuente
07:35 AM Revision e4b16279 (git): [ruby/openssl] ssl: fix "warning: ‘ctx’ may be used uninitialized"
The code was introduced by https://github.com/ruby/openssl/commit/65530b887e54 ("ssl: enable generating keying
material from SSL sessions", 2022-08-03).
This is harmless, but we should avoid it.
https://github.com/ruby/openssl/commit/f...
rhenium (Kazuki Yamaguchi)
07:35 AM Revision 04bf83d6 (git): [ruby/openssl] bump version number to 3.1.0.pre
https://github.com/ruby/openssl/commit/fceb978a5d rhenium (Kazuki Yamaguchi)
07:35 AM Revision cd83f5b9 (git): [ruby/openssl] Ruby/OpenSSL 3.0.1
https://github.com/ruby/openssl/commit/e5bbd015dc rhenium (Kazuki Yamaguchi)
07:35 AM Revision 15a966a6 (git): [ruby/openssl] Ruby/OpenSSL 2.2.2
https://github.com/ruby/openssl/commit/de8a644bc4 rhenium (Kazuki Yamaguchi)
07:35 AM Revision 33d30a86 (git): [ruby/openssl] Ruby/OpenSSL 2.1.4
https://github.com/ruby/openssl/commit/5316241e61 rhenium (Kazuki Yamaguchi)
07:35 AM Revision b69d41e1 (git): [ruby/openssl] pkey/ec: check existence of public key component before exporting
i2d_PUBKEY_bio() against an EC_KEY without the public key component
trggers a null dereference.
This is a regression introduced by commit https://github.com/ruby/openssl/commit/56f0d34d63fb ("pkey:
refactor #export/#to_pem and #to_der",...
rhenium (Kazuki Yamaguchi)
07:35 AM Revision 0677b2fb (git): [ruby/openssl] pkey: restore support for decoding "openssl ecparam -genkey" output
Scan through the input for a private key, then fallback to generic
decoder.
OpenSSL 3.0's OSSL_DECODER supports encoded key parameters. The PEM
header "-----BEGIN EC PARAMETERS-----" is used by one of such encoding
formats. While this i...
rhenium (Kazuki Yamaguchi)
07:35 AM Revision 4fb2845c (git): [ruby/openssl] pkey: clear error queue before each OSSL_DECODER_from_bio() call
Fix potential error queue leak.
https://github.com/ruby/openssl/commit/3992b6f208
rhenium (Kazuki Yamaguchi)
07:35 AM Revision 10f93a8b (git): [ruby/openssl] pkey/dsa: let PKey::DSA.generate choose appropriate q size
DSA parameters generation via EVP_PKEY_paramgen() will not automatically
adjust the size of q value but uses 224 bits by default unless specified
explicitly. This behavior is different from the now-deprecated
DSA_generate_parameters_ex()...
rhenium (Kazuki Yamaguchi)
07:35 AM Revision 65bba0ef (git): [ruby/openssl] hmac: use EVP_PKEY_new_raw_private_key() if available
Current OpenSSL 3.0.x release has a regression with zero-length MAC
keys. While this issue should be fixed in a future release of OpenSSL,
we can use EVP_PKEY_new_raw_private_key() in place of the problematic
EVP_PKEY_new_mac_key() to av...
rhenium (Kazuki Yamaguchi)
07:35 AM Revision bee383d9 (git): [ruby/openssl] x509*: fix error queue leak in #extensions= and #attributes= methods
X509at_delete_attr() in OpenSSL master puts an error queue entry if
there is no attribute left to delete. We must either clear the error
queue, or try not to call it when the list is already empty.
https://github.com/ruby/openssl/commit...
rhenium (Kazuki Yamaguchi)
07:35 AM Revision 79543b9a (git): [ruby/openssl] ssl: enable generating keying material from SSL sessions
Add OpenSSL::SSL::SSLSocket#export_keying_material to support RFC 5705
https://github.com/ruby/openssl/commit/65530b887e
madblobfish
07:35 AM Revision a9809634 (git): [ruby/openssl] Check if the option is an Hash in `pkey_ctx_apply_options0()`
causes SEGV if it is an Array or something like that.
https://github.com/ruby/openssl/commit/ef23525210
no6v (Nobuhiro IMAI)
07:35 AM Revision c865e8d1 (git): [ruby/openssl] [CI] TestHMAC#test_dup - remove 'pend' for OpenSSL 3
https://github.com/ruby/openssl/commit/626b0434a6 MSP-Greg (Greg L)
07:35 AM Revision 5dae78b9 (git): [ruby/openssl] Pass arguments to check macro presence
X509_STORE_get_ex_new_index() is a macro, so passing just its name to
have_func() doesn't detect it. Pass an example call instead.
https://github.com/ruby/openssl/commit/8d264d3e60
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
alanwu (Alan Wu)
07:35 AM Revision a211b321 (git): [ruby/openssl] Check for OpenSSL functions in headers
While building with a custom build of OpenSSL, I noticed in mkmf.log
that all the feature detection checks are done using a program lacking
an OpenSSL header include. `mkmf` retries using a fallback program when
this fails, but that mean...
alanwu (Alan Wu)
07:25 AM Revision 63234edf (git): openssl: use the old rb_ary_tmp_new() alias
openssl has to support older versions of Ruby. Undo the change in
ext/openssl/ossl_pkey_ec.c by commit efb91ff19b73 ("Rename
rb_ary_tmp_new to rb_ary_hidden_new", 2022-07-25).
rhenium (Kazuki Yamaguchi)
07:07 AM Feature #19057: Hide implementation of `rb_io_t`.
I agree with `Hide all details` but I'm more willing to compromise on the interface.
> With one tweak: not int rb_ioptr_descriptor(struct rb_io *ioptr); but int rb_io_descriptor(VALUE io);.
Maybe it's CRuby problem, but there is a perf...
ioquatix (Samuel Williams)
05:47 AM Revision b7de04d1 (git): Disable dependabot for auto-request-review for now
because you have to manually update the version tag comment.
It feels unsafe to trust third party git tags when you need to pass
MATZBOT_GITHUB_TOKEN to it. Git commit sha alone isn't human-readable
and I'm reluctant to remove the commen...
k0kubun (Takashi Kokubun)
05:45 AM Revision bfc6c1f1 (git): Bump necojackarc/auto-request-review from 0.7.0 to 0.8.0 (#6571)
Bumps [necojackarc/auto-request-review](https://github.com/necojackarc/auto-request-review) from 0.7.0 to 0.8.0.
- [Release notes](https://github.com/necojackarc/auto-request-review/releases)
- [Commits](https://github.com/necojackarc/au...
dependabot[bot]
05:44 AM Revision fb6a9656 (git): Do not run CodeQL on dependabot PRs
k0kubun (Takashi Kokubun)
05:02 AM Revision 0d7292ec (git): Leave only the oldest Visual Studio in AppVeyor (#6561)
k0kubun (Takashi Kokubun)
03:02 AM Revision 7cf37a57 (git): [DOC] Add the polar form in String#to_c
nobu (Nobuyoshi Nakada)
02:30 AM Revision e4191ac1 (git): Change a tab to spaces
yui-knk (Kaneko Yuichiro)
01:12 AM Bug #19047 (Closed): DelegateClass displays "method redefined" warning when overriding methods
Merged at https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/60610031009e60bdfe5775b0316df251ee36a973 hsbt (Hiroshi SHIBATA)
12:50 AM Feature #19064 (Open): UDPSocket#bind does not take AddrInfo, despite documentation saying it should
https://docs.ruby-lang.org/en/master/Socket.html#method-i-bind says that this code should work:
``` ruby
require 'socket'
# use Addrinfo
socket = Socket.new(:INET, :STREAM, 0)
socket.bind(Addrinfo.tcp("127.0.0.1", 2222))
p sock...
mcr (Michael Richardson)

10/16/2022

10:24 PM Feature #19063 (Rejected): Hash.new with non-value objects should be less confusing
Related to #10713 and #2764.
Ruby's `Hash.new` accepts either a block or a param for its default value. In the case of non-value objects this leads to unexpected behaviors:
```ruby
bad_hash_with_array_values = Hash.new([])
good_h...
baweaver (Brandon Weaver)
10:08 PM Feature #19062: Introduce `Fiber#locals` for shared inheritable state.
As an example of a specific use case, the <https://github.com/BMorearty/request_store-fibers> gem implements a similar per-fiber state (although it's more complex than the proposed interface). ioquatix (Samuel Williams)
10:31 AM Feature #19062 (Closed): Introduce `Fiber#locals` for shared inheritable state.
After exploring <https://bugs.ruby-lang.org/issues/19058>, I felt uncomfortable about the performance of copying lots of inheritable attributes. Please review that issue for the background and summary of the problem.
## Proposal
In...
ioquatix (Samuel Williams)
07:55 PM Bug #19004: Complex can be nested by Complex.polar
I thought to try fixing this issue as a first contribution to Ruby. I have a proposed fix here https://github.com/ruby/ruby/pull/6568
Details are on the PR, but in summary, I believe that the ability to pass a Complex as the abs argu...
stevegeek (Stephen Ierodiaconou)
11:39 AM Revision 9fc7df75 (git): merge revision(s) 464f73a5f0c1042bfefdd367b330cbdcafffca95:
Do not load library files from repository only for test
What we want to test should be the bundled and to be installed files,
but not the upstream.
---
tool/test-bundled-gems.rb | 2 +-
1 file ch...
nagachika (Tomoyuki Chikanaga)
10:57 AM Bug #19055: Regexp.new(regexp, timeout: nil) is intrupted by Regexp.timeout
> Will it raise an exception before any matching?
In code where I've implemented similar checks, I've done something like this:
```
while (doing work)... {
do work
check timeout
}
```
It means `timeout=0` can do one ite...
ioquatix (Samuel Williams)
10:37 AM Revision c1129491 (git): merge revision(s) 64cff780051adf95a0f1799baddec98ae23e8add:
`Gem.unpack` extracts gems so able to execute
Creates simple bin stubs to load the extracted executable files.
After only extracted under `gems` directory, the gems are considered
installed but the executable scr...
nagachika (Tomoyuki Chikanaga)
10:33 AM Revision 174594cf (git): merge revision(s) d20886dd225e07fe14347398c2c0913f3e11d22a:
Create build-only gemspec files only if having an extension
---
tool/gem-unpack.rb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
nagachika (Tomoyuki Chikanaga)
09:31 AM Revision ba9c0d0b (git): Allow run bundled_gems manually [ci skip]
nobu (Nobuyoshi Nakada)
09:22 AM Revision 15488fc1 (git): Update bundled gems list at 2022-10-16
nobu (Nobuyoshi Nakada)
07:46 AM Revision e7b557ce (git): merge revision(s) 32d1ce96e09773e809d575c17b916012d88d6ffc:
Fix race conditions when cleaning extensions
Clean built directories by `make distclean`, and then clean leftover
makefiles for skipped extensions.
---
template/Makefile.in | 4 ++++
1 file chang...
nagachika (Tomoyuki Chikanaga)
07:46 AM Revision ae6f46db (git): merge revision(s) 0c9803b0fdfd17981bd9f59767adab0207c3a74d:
The "gems" build directory was rename as ".bundle"
---
common.mk | 12 ++++++------
template/Makefile.in | 10 +++++-----
2 files changed, 11 insertions(+), 11 deletions(-)
nagachika (Tomoyuki Chikanaga)
07:41 AM Revision 2a0a9d56 (git): merge revision(s) 21f006f5f7c161fd3857f69186e810f1958bd7f0:
Retrieve previously configured macros also other than `extensions`
---
template/exts.mk.tmpl | 1 -
1 file changed, 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
07:31 AM Revision ed960c67 (git): merge revision(s) d7afaf21f2edfac8a606891868a3c4a7025267bd:
Move the target directory of bundled gems like as rubygems
---
ext/extmk.rb | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
07:31 AM Revision 363dc5d1 (git): merge revision(s) 17ce0b9b846a065065008b5fb2e9f8ad13058fa1:
Retrieve configured gems info
---
template/configure-ext.mk.tmpl | 2 +-
template/exts.mk.tmpl | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
nagachika (Tomoyuki Chikanaga)
07:29 AM Revision e3abdccc (git): merge revision(s) db3d111c1d1e90b400f1e737ded6a4e4bdf2cec8:
Bundled gems are expanded under `.bundle/gems` now
---
ext/extmk.rb | 13 +++++++------
template/exts.mk.tmpl | 2 +-
2 files changed, 8 insertions(+), 7 deletions(-)
nagachika (Tomoyuki Chikanaga)
05:22 AM Misc #19050 (Closed): [ANN] Schedule maintenance for git.ruby-lang.org
git.ruby-lang.org is backed now. I upgraded Debian 10 to 11 and instance type t2 to c5a series.
Thanks for all.
hsbt (Hiroshi SHIBATA)
02:57 AM Misc #19050: [ANN] Schedule maintenance for git.ruby-lang.org
Unfortunately, I'm still working to migrate our git server.
I'm sorry for the inconvenience to develop ruby. I'll announce to finish its maintenance.
hsbt (Hiroshi SHIBATA)
04:40 AM Revision 667aa812 (git): merge revision(s) ee6cc2502664ac46edc61868d8954b626bb48e53:
Remove wrong dollar
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
02:30 AM Feature #19058: Introduce `Fiber.inheritable` attributes/variables for dealing with shared state.
Implementing the proposal efficiently would require some more work. The proposed implementation is O(number of inheritable attributes) per fiber creation which is not ideal.
If we had efficient copy-on-write hash table, something like t...
ioquatix (Samuel Williams)
 

Also available in: Atom