Project

General

Profile

Activity

From 02/02/2024 to 02/08/2024

02/08/2024

11:52 PM Revision e2aa00ca (git): YJIT: Remove unnecessary casts for chain_depth (#9893)
k0kubun (Takashi Kokubun)
11:47 PM Revision 5cbca911 (git): YJIT: Allow tracing a counted exit (#9890)
* YJIT: Allow tracing a counted exit
* Avoid clobbering caller-saved registers
k0kubun (Takashi Kokubun)
11:03 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
https://github.com/ruby/ruby/pull/9371 is already backported into `ruby_3_3`.
https://github.com/ruby/ruby/commit/7f97e3540ce448b501bcbee15afac5f94bb22dd9
hsbt (Hiroshi SHIBATA)
08:39 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
To everyone saying they’re blocked by this bug: how are you installing your Ruby? The workaround in https://bugs.ruby-lang.org/issues/20085#note-5 should be pretty straightforward and get you unblocked.
Of course we need to fix the co...
kjtsanaktsidis (KJ Tsanaktsidis)
04:18 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
I can't deploy apps with Kamal (e.g. Docker) because of this crash dorianmariefr (Dorian Marié)
11:01 PM Bug #20248 (Closed): Ruby does not build with ASAN support with clang
The [instructions](https://github.com/ruby/ruby/blob/master/doc/contributing/building_ruby.md) for building Ruby with ASAN enabled do not work when using clang to build.
Given a trivial Dockerfile such as:
```
FROM gcr.io/clang-dock...
JasonLunn (Jason Lunn)
10:27 PM Bug #20247: net/http/header limits are too low
The upstream repo didn't have info for bug reports in the README, so I looked at the main ruby/ruby instructions instead.
I have filed the same issue with upstream: https://github.com/ruby/net-http/issues/173
dpsi (Darien Imai)
09:58 PM Bug #20247: net/http/header limits are too low
This should be reported upstream: https://github.com/ruby/net-http and can be found at https://github.com/ruby/net-http/commit/c245f7f9c845f1e7534b4e50b69e94ca9d083ca7.
Based on my reading (https://www.geekersdigest.com/max-http-reque...
austin (Austin Ziegler)
09:33 PM Bug #20247 (Closed): net/http/header limits are too low
Hello, some of my HTTP tests are failing on Ruby 3.3 due to ArgumentError too long. I am trying to update from Ruby 2.7. I did not see any mention of this change in the net/http changelog, but looking at git history, the limit was added... dpsi (Darien Imai)
07:36 PM Revision 4a40364c (git): [PRISM] Run opt init before parsing
kddnewton (Kevin Newton)
07:36 PM Revision 3ecfc3e3 (git): [PRISM] Support the DATA constant
kddnewton (Kevin Newton)
06:18 PM Misc #20238: Use prism for mk_builtin_loader.rb
> It seems not working if BASERUBY is system ruby on Linux distribution because these environment is separated ruby, rubygems and bundler packages.
I tried it on Ubuntu 22.04, and it worked. We already use ERB of baseruby, so it should ...
k0kubun (Takashi Kokubun)
05:03 PM Revision 19362784 (git): YJIT: Maintain MapToLocal that is just upgraded (#9876)
k0kubun (Takashi Kokubun)
04:53 PM Revision 3e03981f (git): [PRISM] Compile constant paths with optimizations
kddnewton (Kevin Newton)
04:53 PM Revision 54295ba5 (git): [PRISM] Compile constant reads using opt_getconstant_path
kddnewton (Kevin Newton)
04:53 PM Revision b2d468fc (git): [PRISM] Refactor call opts to only check for specific ids
kddnewton (Kevin Newton)
04:03 PM Revision 33974498 (git): YJIT: Report invalidation counts in non-stats mode (#9878)
The `invalidation_count` and `invalidate_*` counters are all incremented
using `incr_counter!` without a guard on stats mode, so they can be made
always available.
This could be to helpful in investigating where, how often, and what
typ...
jhawthorn (John Hawthorn)
04:03 PM Revision 50b4ef29 (git): YJIT: Use jit_prepare_call_with_gc as much as possible (#9874)
* YJIT: Use jit_prepare_call_with_gc as much as possible
* Stop assuming vm_defined doesn't make a call
k0kubun (Takashi Kokubun)
04:02 PM Revision 19839498 (git): [ruby/prism] Looks like Symbol#name wasn't a thing in 2.7, so need to switch back to to_s
https://github.com/ruby/prism/commit/0b90c9a398 noahgibbs (Noah Gibbs)
04:02 PM Revision 0c735530 (git): [ruby/prism] Add Kevin's visit_all change and change the parent class to Compiler.
https://github.com/ruby/prism/commit/bbdba3f42d
Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
04:02 PM Revision f8b8a678 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
https://github.com/ruby/prism/commit/03addf2d3d
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
04:02 PM Revision 3f0aa554 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
https://github.com/ruby/prism/commit/5eac08f699
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
04:02 PM Revision c1aba5d9 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
https://github.com/ruby/prism/commit/8271ce5ec9
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
04:02 PM Revision 70bc4ce3 (git): [ruby/prism] Update lib/prism/ripper_compat.rb
https://github.com/ruby/prism/commit/6e2bf9c8cd
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
04:02 PM Revision 6aceb91d (git): [ruby/prism] Update lib/prism/ripper_compat.rb
https://github.com/ruby/prism/commit/bce0a5c916
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
04:02 PM Revision 366af467 (git): [ruby/prism] RipperCompat: support for more features.
* add bin/prism ripper to compare Ripper output
* block arg handling is quirky, do it per-call-site
* block required params
* boolean values
* various assign-operator support
* breaks, early fragile begin/rescue/end
* more fixtures being...
noahgibbs (Noah Gibbs)
03:49 PM Revision c6b39121 (git): [DOC] Improve flags of string
peterzhu2118 (Peter Zhu)
03:22 PM Revision b74c8abd (git): YJIT: Skip pushing a frame for Hash#empty? (#9875)
k0kubun (Takashi Kokubun)
03:13 PM Bug #20245 (Closed): Crash when checking symbol encoding
Applied in changeset commit:git|01fd262e62076277a41af72ea13f20deb1b462a2.
----------
Fix crash when checking symbol encoding
[Bug #20245]
We sometimes pass in a fake string to sym_check_asciionly. This can crash
if sym_check_asciionly...
peterzhu2118 (Peter Zhu)
03:12 PM Revision 01fd262e (git): Fix crash when checking symbol encoding
[Bug #20245]
We sometimes pass in a fake string to sym_check_asciionly. This can crash
if sym_check_asciionly raises because it creates a CFP with the fake
string as the receiver which will crash if GC tries to mark the CFP.
For exampl...
peterzhu2118 (Peter Zhu)
02:17 PM Revision 6756dbf3 (git): Update bundled gems list at 443c5c06ac2be84059a7c4435c37de [ci skip]
git[bot]
02:17 PM Revision 443c5c06 (git): Bundle rbs-3.4.4 (#9883)
soutaro (Soutaro Matsumoto)
09:19 AM Bug #20246 (Closed): Unexpected behavior for Regexp in Subexpression Calls on Ruby 3.3.0
Hello! A few days ago, after migration on 3.3.0 I have faced with issue inside subexpression calls.
An expected result on Ruby up to 3.3.0:
```ruby
'1.2.3'[/(\d+)(\.\g<1>){2}/] # => "1.2.3"
```
An actual result on Ruby 3.3.0:
...
bestwebua (Vladislav Trotsenko)
09:08 AM Revision 34581410 (git): Extract `RBIMPL_VA_OPT_ARGS`
Similar to splat argument in Ruby, which be expanded to `__VA_ARGS__`
with a leading comma if any arguments given, otherwise empty.
nobu (Nobuyoshi Nakada)
09:08 AM Revision f3cc1f9a (git): Show actual imemo type when unexpected type
nobu (Nobuyoshi Nakada)
09:08 AM Revision d31a12a2 (git): Optional detail info at assertion failure
nobu (Nobuyoshi Nakada)
08:28 AM Revision 0292d1b7 (git): Update bundled gems list as of 2024-02-07
git[bot]
08:19 AM Bug #20184: Ruby segfaults on Fly.io with 256 MB RAM
Backport PR for 3.3: https://github.com/ruby/ruby/pull/9805 anton-stepanof (Anton Stepanov)
08:15 AM Revision 482b82ae (git): Bump typeprof to 0.21.10
mame (Yusuke Endoh)
06:29 AM Revision 908cedf7 (git): Removed accidentally commit for lockfile
hsbt (Hiroshi SHIBATA)
06:27 AM Revision 70bb9cf0 (git): [rubygems/rubygems] rake vendor:install
https://github.com/rubygems/rubygems/commit/c38a96ceae hsbt (Hiroshi SHIBATA)
06:27 AM Revision 75c5e1a1 (git): [rubygems/rubygems] Removed unnecessary disabling of Style/RedundantParentheses
https://github.com/rubygems/rubygems/commit/2361527c45 hsbt (Hiroshi SHIBATA)
06:07 AM Revision 43af2060 (git): Update default gems list at a35cade79125d2ae99cea01914939d [ci skip]
git[bot]
05:43 AM Revision a35cade7 (git): [rubygems/rubygems] Improve assertion
https://github.com/rubygems/rubygems/commit/7f2f2b898c
Co-authored-by: Martin Emde <martin.emde@gmail.com>
deivid (David Rodríguez)
05:43 AM Revision c2362126 (git): [rubygems/rubygems] Use deprecation helper for deprecation warning
https://github.com/rubygems/rubygems/commit/d1963bf1a6 deivid (David Rodríguez)
05:43 AM Revision 0c71fb4b (git): [rubygems/rubygems] Run definition specs in an isolated location
And consistently pass Pathname's to `Definition.new` like production
code does.
https://github.com/rubygems/rubygems/commit/660def5b68
deivid (David Rodríguez)
05:43 AM Revision 5500f880 (git): [rubygems/rubygems] Fix incorrect 4th parameter to Definition.new
https://github.com/rubygems/rubygems/commit/54948e428d deivid (David Rodríguez)
05:43 AM Revision e0412077 (git): [rubygems/rubygems] Move `subject` to top level context
https://github.com/rubygems/rubygems/commit/331c415af0 deivid (David Rodríguez)
05:43 AM Revision 24d5e717 (git): [rubygems/rubygems] Refactor lockfile generation
https://github.com/rubygems/rubygems/commit/6a0c03c77f deivid (David Rodríguez)
05:43 AM Revision debc5aae (git): [rubygems/rubygems] Remove unused parameter
https://github.com/rubygems/rubygems/commit/085eda7147 deivid (David Rodríguez)
05:43 AM Revision ce2618c6 (git): [ruby/strscan] Bump version
https://github.com/ruby/strscan/commit/ba338b882c Sutou Kouhei
05:43 AM Revision 39f2e37f (git): [ruby/strscan] Don't add begin to length for new string slice
(https://github.com/ruby/strscan/pull/87)
Fixes https://github.com/ruby/strscan/pull/86
https://github.com/ruby/strscan/commit/c17b015c00
headius (Charles Nutter)
05:43 AM Revision 5afae77c (git): [ruby/strscan] Bump version
https://github.com/ruby/strscan/commit/842845af1f Sutou Kouhei
05:43 AM Revision e1834cdf (git): [ruby/fiddle] Set changelog_uri gem metadata
(https://github.com/ruby/fiddle/pull/138)
See https://guides.rubygems.org/specification-reference/#metadata for changelog_uri metadata.
https://github.com/ruby/fiddle/commit/0bd8e96adc
Masato Nakamura
03:06 AM Revision ce6054a6 (git): Move an embedded directive outside macro arguments
Suppress warnings/errors by -Wembedded-directive with `-std=c99` on
macOS.
nobu (Nobuyoshi Nakada)
02:28 AM Revision 9f1afefa (git): Now we can use ruby analysis with large runner
hsbt (Hiroshi SHIBATA)
01:17 AM Misc #20222: Dedup-ing clarification
Seems like a valid optimization to me and is similar to identity of small integers versus heap allocated bignums. alanwu (Alan Wu)
12:36 AM Revision 04d42650 (git): Remove obsoleted rb_vm_opt_cfunc_p
That was added for MJIT's inlining decisions, but we no longer have MJIT. k0kubun (Takashi Kokubun)

02/07/2024

09:26 PM Revision 0e1f22ac (git): [ruby/prism] Dev-only CLI
We keep adding more scripts to /bin that are doing the same kinds
of processing. Instead, this commit consolidates them all into a
single CLI that shares the same logic so that we can consistently
read files in the same way.
It keeps ar...
kddnewton (Kevin Newton)
07:42 PM Revision 1b68b459 (git): [ruby/prism] Commit Kevin's suggestion to simplify grabbing the operator.
https://github.com/ruby/prism/commit/874ba7a1f4
Co-Authored-By: Kevin Newton <kddnewton@gmail.com>
noahgibbs (Noah Gibbs)
07:42 PM Revision 5b7baa04 (git): [ruby/prism] More different block-call syntaxes, support more types of method calls
https://github.com/ruby/prism/commit/40cf114a24 noahgibbs (Noah Gibbs)
07:42 PM Revision 73d222e1 (git): [ruby/prism] Support &. calls and calling with blocks, test with fixtures
https://github.com/ruby/prism/commit/e346fa583a noahgibbs (Noah Gibbs)
07:42 PM Revision b1310940 (git): [ruby/prism] RipperCompat: support more kinds of method calls and operators.
Add tests. Start parsing some simpler fixture code.
https://github.com/ruby/prism/commit/997f4191d8
noahgibbs (Noah Gibbs)
06:37 PM Revision a5c871e2 (git): Update default gems list at fcc8df622a47a99c3df9889ec7efaf [ci skip]
git[bot]
06:36 PM Revision fcc8df62 (git): Bump prism version
kddnewton (Kevin Newton)
05:48 PM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
Getting closer...backport merged to 3.3.0. Anyone familiar with the release process know when the new binaries will land? navels (Lee Nave)
05:15 PM Revision b2392c6b (git): Fix memory leak when parsing invalid pattern matching
If the pattern matching is invalid, then the pvtbl would get leaked. For
example:
10.times do
100_000.times do
eval(<<~RUBY)
case {a: 1}
in {"a" => 1}
end
RUBY
rescue SyntaxE...
peterzhu2118 (Peter Zhu)
04:59 PM Revision f741b05d (git): Update default gems list at 0b7f51683446c81d7352d7d2eab9f4 [ci skip]
git[bot]
04:57 PM Revision 0b7f5168 (git): [ruby/irb] Bump version to v1.11.2
(https://github.com/ruby/irb/pull/865)
https://github.com/ruby/irb/commit/afe1f459cc
st0012 (Stan Lo)
04:55 PM Misc #20238: Use prism for mk_builtin_loader.rb
hsbt (Hiroshi SHIBATA) wrote in #note-1:
> It seems not working if BASERUBY is system ruby on Linux distribution because these environment is separated ruby, rubygems and bundler packages. It should be using repository version of prism.
...
Eregon (Benoit Daloze)
03:15 PM Misc #20238: Use prism for mk_builtin_loader.rb
I tried to get that working, but it seems like the extensions are built too late. We need prism earlier in the process to build the core files first. Maybe there's a way, but @k0kubun and I couldn't find it. kddnewton (Kevin Newton)
04:54 PM Revision aad3c36b (git): [ruby/prism] Support for Ruby 2.7
https://github.com/ruby/prism/commit/1a15b70a8e kddnewton (Kevin Newton)
04:38 PM Bug #20245 (Closed): Crash when checking symbol encoding
GitHub PR: https://github.com/ruby/ruby/pull/9871
We sometimes pass in a fake string to sym_check_asciionly. This can crash if sym_check_asciionly raises because it creates a CFP with the fake string as the receiver which will crash i...
peterzhu2118 (Peter Zhu)
04:35 PM Feature #20244 (Closed): Show the conflicting another chdir block
`Dir.chdir` is warning when in another `chdir` block.
```sh-session
$ ruby -e 'Dir.chdir {' -e 'Dir.chdir("/")' -e '}'
-e:2: warning: conflicting chdir during another chdir block
```
If two `chdir`s are far apart, it can be diff...
nobu (Nobuyoshi Nakada)
03:42 PM Revision aed052ce (git): [PRISM] Revert incorrect frozen string literal handling
kddnewton (Kevin Newton)
02:59 PM Revision 5f4245e7 (git): [ruby/irb] Polish tracer integration and tests
(https://github.com/ruby/irb/pull/864)
* Remove useless ivar
* Simplify tracer test setup
* Treat tracer like a normal development dependency
* Only require ext/tracer when value is truthy
* Make tracer integration skip IRB traces
...
st0012 (Stan Lo)
02:44 PM Revision 164c18af (git): [ruby/prism] Correct handle recover parameters on tokenize for parser translation
https://github.com/ruby/prism/commit/63979de21d kddnewton (Kevin Newton)
01:46 PM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-6:
> Is this enough to meet your needs? If so, I can close this out.
Maybe, yes. It's unfortunate for me to rewrite a few lines of Ruby into 100~200 lines of C++, though.
I wonder whet...
hanazuki (Kasumi Hanazuki)
09:44 AM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
> It looks something like this works:
Won't win any awards for beauty perhaps, but gets the job done!
Is this enough to meet your needs? If so, I can close this out. Otherwise, perhaps a good next step would be to open a new featur...
kjtsanaktsidis (KJ Tsanaktsidis)
12:13 PM Misc #20242: `--parser=prism_without_warning`
Do you have an example? That could help to clarify the need for this.
Is it problematic to modify these tests/specs to accept Prism warnings too? I think that would be best (since it would be needed longer-term anyway).
For compatibili...
Eregon (Benoit Daloze)
11:34 AM Revision 9ebaf7a8 (git): Run CodeQL using macos-arm-oss only on ruby/ruby
nobu (Nobuyoshi Nakada)
11:03 AM Revision e965c5a1 (git): Keep cpp build with ubuntu-latest
hsbt (Hiroshi SHIBATA)
09:33 AM Revision 78898c53 (git): Refer gmp to macOS build
hsbt (Hiroshi SHIBATA)
09:33 AM Revision 5d5d27a6 (git): readline-ext is extracted bundled gems at Ruby 3.3
hsbt (Hiroshi SHIBATA)
09:28 AM Bug #20243: M:N threading VM_ASSERT failure in rb_current_execution_context with clang 17 (on Linux)
yeah you definitely can't tell the compiler you're clobbering `%fs`
```
../thread_pthread.c:1166:20: error: unknown register name 'fs' in asm
1166 | __asm__("" ::: "fs", "memory");
| ^
1 error generat...
kjtsanaktsidis (KJ Tsanaktsidis)
09:18 AM Bug #20243 (Open): M:N threading VM_ASSERT failure in rb_current_execution_context with clang 17 (on Linux)
When building with Clang 17 and `-DVM_CHECK_MODE=1` (with the following configure)
```
optflags="-ggdb3 -fno-omit-frame-pointer -fno-optimize-sibling-calls -O3" cflags="-DVM_CHECK_MODE=1" CC=clang ../configure --prefix=/home/kj/ruby...
kjtsanaktsidis (KJ Tsanaktsidis)
09:04 AM Feature #9113: Ship Ruby for Linux with jemalloc out-of-the-box
We've been using jemalloc since 2018 and it cut our memory use to 1/5, it also stopped us needing to restart our app every 3-4 days as the memory slowly leaked. It is staggering to me why this isn't the default, until we discovered jemal... hackeron (Roman Gaufman)
08:42 AM Bug #20221 (Closed): ASAN: make test-basic: un-prefixed symbol leakage
Applied in changeset commit:git|565ef06e917c6f326f8d528dc8fa6c6de88a8753.
----------
Ignore _odr_asan symbols in leaked-globals
ASAN includes these to detect violations of the ODR rule.
[Bug #20221]
Anonymous
08:42 AM Revision 565ef06e (git): Ignore _odr_asan symbols in leaked-globals
ASAN includes these to detect violations of the ODR rule.
[Bug #20221]
KJ Tsanaktsidis
08:27 AM Revision 42c36269 (git): The default ram size is 13GB at macos runner
hsbt (Hiroshi SHIBATA)
08:27 AM Revision 66d6695f (git): Try to run with large runner
hsbt (Hiroshi SHIBATA)
08:27 AM Revision 84070443 (git): Update latest version of CodeQL
hsbt (Hiroshi SHIBATA)
07:06 AM Revision d95d3484 (git): omit tests related legacy provider
It failed with recent update of FreeBSD
https://rubyci.s3.amazonaws.com/freebsd13/ruby-master/log/20240207T023002Z.fail.html.gz
hsbt (Hiroshi SHIBATA)
06:44 AM Bug #20239 (Closed): Segmentation fault when using Regex on a large String
Applied in changeset commit:git|75aaeb35b82da26359b9418d2963384d0c55839c.
----------
[Bug #20239] Fix overflow at down-casting
nobu (Nobuyoshi Nakada)
06:14 AM Revision 75aaeb35 (git): [Bug #20239] Fix overflow at down-casting
nobu (Nobuyoshi Nakada)
05:46 AM Revision 8bd83bb1 (git): [rubygems/rubygems] fix flaky tests
https://github.com/rubygems/rubygems/commit/0e87ae032d Kim Emmanuel
05:46 AM Revision 0edf5a71 (git): [rubygems/rubygems] #to_spec must fallback for prereleases always
https://github.com/rubygems/rubygems/commit/6302798a32 Kim Emmanuel
05:46 AM Revision aaef443a (git): [rubygems/rubygems] release requirement may load prerelease when sole option
https://github.com/rubygems/rubygems/commit/7990771939 Kim Emmanuel
05:46 AM Revision 5ddf4f5c (git): [rubygems/rubygems] fix Gem::Dependency#to_spec returning nil when prerelease is the only available version
https://github.com/rubygems/rubygems/commit/a7dcc7214b Kim Emmanuel
03:21 AM Revision 2dba4413 (git): [ruby/prism] Even more ripper compat
https://github.com/ruby/prism/commit/47a602dc1c kddnewton (Kevin Newton)
01:59 AM Revision 64b6a018 (git): Fix test session reuse but expire (#9824)
* OpenSSL 3.2.1 30 Jan 2024 is also broken
Import 45064610725ddd81a5ea3775da35aa46985bc789 from ruby_3_3 branch
tentatively.
NARUSE, Yui
01:49 AM Revision e34505c6 (git): [ruby/prism] More visitors and tests for RipperCompat
Part of issue #2354
https://github.com/ruby/prism/commit/cb28edae34
noahgibbs (Noah Gibbs)
01:38 AM Revision ae13f853 (git): Add test-all to prism
kddnewton (Kevin Newton)

02/06/2024

11:48 PM Misc #20240: Unable to build ruby 3.1.0 on macOS when shared due to dylibs (libgmp) not found when running miniruby
Thank you for your reponse!
Ideally I'd like to support it.
I've tried it, I get similar issues for some of the other dylibs, during make install. Psych is built correctly, just can't be installed. Zlib looks to be the same issue....
jmarrec (Julien Marrec)
03:12 PM Misc #20240: Unable to build ruby 3.1.0 on macOS when shared due to dylibs (libgmp) not found when running miniruby
You could try building using `--without-gmp` to sidestep this problem. alanwu (Alan Wu)
10:53 AM Misc #20240 (Open): Unable to build ruby 3.1.0 on macOS when shared due to dylibs (libgmp) not found when running miniruby
I am trying to develop a conan (the C/C++ package manager) recipe for Ruby. The recipe would allow downstream users to 1) get a runnable ruby executable, and 2) be able to link to ruby, or embbed it in a C/C++ program if built statically... jmarrec (Julien Marrec)
11:31 PM Bug #20241 (Closed): Makefile rule for BUILTIN_ENCOBJS does not create the directory for its output files
> Also note that having an in-place build and an out-of-src build at the same time doesn't work. Maybe that's what you're seeing.
Exactly this - now I feel stupid. I thought i'd `make clean`'d my previous in tree build, but `.ext/.tim...
kjtsanaktsidis (KJ Tsanaktsidis)
03:00 PM Bug #20241: Makefile rule for BUILTIN_ENCOBJS does not create the directory for its output files
Also note that having an in-place build and an out-of-src build at the same time doesn't work. Maybe that's what you're seeing. alanwu (Alan Wu)
02:24 PM Bug #20241 (Feedback): Makefile rule for BUILTIN_ENCOBJS does not create the directory for its output files
Try removing `.ext/.timestamp` directory. nobu (Nobuyoshi Nakada)
11:57 AM Bug #20241: Makefile rule for BUILTIN_ENCOBJS does not create the directory for its output files
https://github.com/ruby/ruby/pull/9846 is my best suggestion to fix this but I'm very open to better ideas from people better versed in Make and autotools than me. kjtsanaktsidis (KJ Tsanaktsidis)
11:52 AM Bug #20241 (Closed): Makefile rule for BUILTIN_ENCOBJS does not create the directory for its output files
When I build Ruby out-of-source (e.g. in a `build/` subdirectory) by running `mkdir build && cd build && ../configure <args> && make`, the build fails because GCC tries to write `build/enc/ascii.o` but the `build/enc` subdirectory does n... kjtsanaktsidis (KJ Tsanaktsidis)
09:17 PM Revision 44f0dc62 (git): YJIT: Allow popping before falling back
Popping but not generating any code before returning `None` was allowed
before fallbacks were introduced so this is restoring that support in
the same way. The included test used to trip an assert due to popping
too much.
alanwu (Alan Wu)
08:49 PM Misc #20193: DevMeeting-2024-02-14
* [Misc #20242] `--parser=prism_without_warning` (kddnewton)
* Could we add `--parser=prism_without_warning`? It hard to run the tests/specs that test against the output of stderr.
* This would do the exact same thing as --parser=p...
kddnewton (Kevin Newton)
06:56 PM Misc #20193: DevMeeting-2024-02-14
* [Bug #20218] aset/masgn/op_asgn with keyword arguments (jeremyevans0)
* Do we want to make it a syntax error to pass keyword arguments in these cases?
* There was already a desire to make passing blocks in these cases a syntax ...
jeremyevans0 (Jeremy Evans)
08:10 AM Misc #20193: DevMeeting-2024-02-14
* [Feature #20205] Enable `frozen_string_literal` by default (byroot)
* A proposed migration plan for allowing to enable `frozen_string_literal` by default in the future.
* Introduce "chilled strings", they behave like frozen strin...
byroot (Jean Boussier)
08:49 PM Revision 936c0ab5 (git): [ruby/prism] Implement file parsing error handling
This PR implements proper file parsing error handling. Previously
`file_options` would call `pm_string_mapped_init` which would print an
error from `perror`. However this wouldn't raise a proper Ruby error so
it was just a string output....
eileencodes (Eileen Uchitelle)
08:42 PM Misc #20242 (Closed): `--parser=prism_without_warning`
I was hoping to add another option to `--parser` which would be `--parser=prism_without_warning`. The issue is that it's making it hard to run the tests/specs that test against the output of stderr. This would do the exact same thing as ... kddnewton (Kevin Newton)
08:33 PM Bug #18009: Regexps \w and \W with /i option and /u option produce inconsistent results under nested negation and intersection
One more case:
```
[26] pry(main)> ("a".."z").to_a.join.scan(/[\W]/iu)
=> ["st"]
```
mjrzasa (Maciek Rząsa)
07:56 PM Revision c3403322 (git): [PRISM] Use block node location when building block iseq
Co-Authored-By: Kevin Newton <kddnewton@gmail.com> Nikita Vasilevsky
07:32 PM Feature #20202: Memoized endless method definitions
@palkan made it possible to play with [what this feature would look like](https://ruby-next.github.io/#gist:bf3a796268a9730a095fb26cf7f51410) via Ruby Next. matheusrich (Matheus Richard)
07:31 PM Revision c1bc7147 (git): [PRISM] Do not show source snippets if non-UTF-8
kddnewton (Kevin Newton)
06:46 PM Feature #20235: Deprecate CHAR syntax
I agree, it would be good to fix the parsing. At least that's a bugfix that can be done now.
In the long term I think warning about char literals would also be a good thing. Because I stumbled on a problem with `p $stdin.closed?=>true` ...
Dan0042 (Daniel DeLorme)
06:37 AM Feature #20235: Deprecate CHAR syntax
Currently, `!` and `?` are interpreted as a part of the method name unless they are followed by `=`. This trick is needed to interpret `foo!=bar` as `foo != bar`, not a method name `foo!`. I think this trick is not needed very much for `... mame (Yusuke Endoh)
02:34 AM Feature #20235: Deprecate CHAR syntax
Maybe want to parse `closed?=>true` as `(closed?)=>true`?
If only it is, `?c` syntax doesn't feel to need to be removed.
nobu (Nobuyoshi Nakada)
06:10 PM Revision f5b368df (git): [ruby/prism] Better invalid token messages
https://github.com/ruby/prism/commit/8c9bed2a4d kddnewton (Kevin Newton)
05:36 PM Revision ccec209b (git): [PRISM] Fix fsl coming from file
kddnewton (Kevin Newton)
04:57 PM Revision d77172b7 (git): [PRISM] Fix deconstruct index for posts
kddnewton (Kevin Newton)
04:46 PM Revision 300dee1f (git): [ruby/irb] Fix usage of tracer gem and add tests
(https://github.com/ruby/irb/pull/857)
The new tests are skipped when ruby below 3.1, as it was a default gem on it, and in a version we do not support.
This also move definition of `use_tracer` to module Context instead of monkey patc...
Nuno Silva
04:21 PM Revision 26fac8f6 (git): [PRISM] Set correct call target flags
kddnewton (Kevin Newton)
04:12 PM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-4:
> > or hook into fork to run some code in the child process immediately after it spawns
> ...
Thank you for your advice. It looks something like this works:
```cpp
namespace {
t...
hanazuki (Kasumi Hanazuki)
11:06 AM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
> or hook into fork to run some code in the child process immediately after it spawns
If your objective is "from a C extension, fork, set up the child process whilst it is still single threaded, and then return to Ruby".... you could ...
kjtsanaktsidis (KJ Tsanaktsidis)
07:26 AM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
hanazuki (Kasumi Hanazuki) wrote in #note-2:
> Another option would be to define something like `fork_then_unshare(unshare_flags:, &block)` method in C extension, but because you would usually want to set up and clean up your environmen...
hanazuki (Kasumi Hanazuki)
04:08 PM Revision c6d4071c (git): [PRISM] Handle match write popped
kddnewton (Kevin Newton)
03:54 PM Revision a50e3588 (git): Free all remaining objects in rb_objspace_free_objects
rb_objspace_call_finalizer didn't free fibers and neither did
rb_objspace_free_objects, which caused fibers to be reported as leaked
when using RUBY_FREE_AT_EXIT. This commit changes rb_objspace_free_objects
to free all remaining Ruby ob...
peterzhu2118 (Peter Zhu)
03:46 PM Revision 1c120023 (git): [PRISM] Correctly handle popped attr write
kddnewton (Kevin Newton)
03:13 PM Revision b801a19c (git): [PRISM] Handle empty interpolated statements at start of string
kddnewton (Kevin Newton)
02:51 PM Revision d6b7eae5 (git): [PRISM] Correct spec for defined? parentheses
kddnewton (Kevin Newton)
11:23 AM Bug #20220 (Closed): M:N threading needs to tell ASAN about stack switches
Applied in changeset commit:git|719db18b50a996f3df4f76854f7dc9d69f875582.
----------
notify ASAN about M:N threading stack switches
In a similar way to how we do it with fibers in cont.c, we need to call
__sanitize_start_switch_fiber a...
Anonymous
11:23 AM Revision 4f4f3a6d (git): Don't check __asan_region_is_poisoned in objspace_each_objects
This returns whether or not _any_ piece of memory in the range is
poisoned, not if _all_ of it is. That means that currently, with ASAN
enabled, pages which contain a single poisoned object are skipped
entirely from being iterated with o...
KJ Tsanaktsidis
11:23 AM Revision 719db18b (git): notify ASAN about M:N threading stack switches
In a similar way to how we do it with fibers in cont.c, we need to call
__sanitize_start_switch_fiber and __sanitize_finish_switch_fiber around
the call to coroutine_transfer to let ASAN save & restore the fake stack
pointer.
When a M:N...
KJ Tsanaktsidis
10:23 AM Bug #20239 (Closed): Segmentation fault when using Regex on a large String
Since v3.2.0 ruby crashes with segmentation fault on the following script with a `[BUG] Segmentation fault at ...`
``` ruby
require "rbconfig/sizeof"
("\u{0101}" + "a" * RbConfig::LIMITS["INT_MAX"] + "b").match(/b/)
```
Crash ca...
martinsp (Martins Polakovs)
08:32 AM Misc #20238: Use prism for mk_builtin_loader.rb
Do you have any reason this use `bundler` and gem version of `prism`? It seems not working if BASERUBY is system ruby on Linux distribution because these environment is separated ruby, rubygems and bundler packages. It should be using re... hsbt (Hiroshi SHIBATA)
03:19 AM Revision 4f6b827e (git): Use `__asm` instead of `asm`
With `--std=c99` option coroutine/arm64/Context.h errs:
```
In file included from cont.c:26:
coroutine/arm64/Context.h:59:5: error: call to undeclared function 'asm'; ISO C99 and later do not support
implicit function declarations...
nobu (Nobuyoshi Nakada)
02:56 AM Revision 62190667 (git): Bump actions/upload-artifact from 4.3.0 to 4.3.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/26f96d...
dependabot[bot]

02/05/2024

10:18 PM Bug #20209: YJIT can leak memory by retaining objects with singleton class
Note, there was an additional fix to stabilize CI after this. I opened a GitHub PR with everything bundled together: https://github.com/ruby/ruby/pull/9841 alanwu (Alan Wu)
09:13 PM Revision bae3e5b2 (git): YJIT: No need to reject splat+zsuper
There is nothing special about argument handling when it comes to zsuper
if you look around in the VM. Everything passes removing these fallback
reasons. It was ~16% on `railsbench`.
alanwu (Alan Wu)
08:53 PM Misc #20193: DevMeeting-2024-02-14
* [Misc #20238] Use prism for mk_builtin_loader.rb (kddnewton)
* I would like to propose that we use prism for mk_builtin_loader.rb.
* This would allow us to use the latest Ruby syntax in builtin classes, as opposed to the base Rub...
kddnewton (Kevin Newton)
04:09 AM Misc #20193: DevMeeting-2024-02-14
- [Feature #20108] Introduction of Happy Eyeballs Version 2 (RFC8305) in Socket.tcp
- Fixed the points raised at the last DevMeeting and in the comments.
- When an IP address is specified as an argument, or when the host is singl...
shioimm (Misaki Shioi)
08:52 PM Misc #20238 (Assigned): Use prism for mk_builtin_loader.rb
I would like to propose that we use prism for mk_builtin_loader.rb.
Right now the Ruby syntax that you can use in builtin classes is restricted to the base Ruby version (2.7). This means you can't use a lot of the nicer syntax that Ru...
kddnewton (Kevin Newton)
08:40 PM Revision c42b1029 (git): [ruby/prism] Change the location of an implicit begin to method
https://github.com/ruby/prism/commit/d08e140859 kddnewton (Kevin Newton)
08:18 PM Revision c5694c64 (git): [PRISM] Raise ArgumentError for invalid encoding
kddnewton (Kevin Newton)
07:42 PM Revision 10a182f5 (git): [PRISM] Fix method return line
kddnewton (Kevin Newton)
07:24 PM Revision 07611acb (git): [ruby/prism] Add another error type for raising argument errors
https://github.com/ruby/prism/commit/f3030cb2b2 kddnewton (Kevin Newton)
06:17 PM Revision ca7a4811 (git): [rubygems/rubygems] Revert "Simplify how extensions are built"
This reverts commit https://github.com/rubygems/rubygems/commit/0b8faf1e3926.
https://github.com/rubygems/rubygems/commit/7528e0f1ce
deivid (David Rodríguez)
05:54 PM Revision 7eea066c (git): [PRISM] Fix pattern matching array with implicit rest
kddnewton (Kevin Newton)
04:57 PM Revision ae7816bc (git): [PRISM] Fix up idUMinus optimization
kddnewton (Kevin Newton)
04:55 PM Revision 948c618b (git): [PRISM] Fix encoding of interpolated strings
Fixes ruby/prism#2313. peterzhu2118 (Peter Zhu)
04:11 PM Bug #20169 (Closed): `GC.compact` can raises `EFAULT` on IO
Applied in changeset commit:git|5e0c17145131e073814c7e5b15227d0b4e73cabe.
----------
Make io_fwrite safe for compaction
[Bug #20169]
Embedded strings are not safe for system calls without the GVL because
compaction can cause pages to ...
peterzhu2118 (Peter Zhu)
04:11 PM Revision 5e0c1714 (git): Make io_fwrite safe for compaction
[Bug #20169]
Embedded strings are not safe for system calls without the GVL because
compaction can cause pages to be locked causing the operation to fail
with EFAULT. This commit changes io_fwrite to use rb_str_tmp_frozen_no_embed_acqui...
peterzhu2118 (Peter Zhu)
04:08 PM Revision 02c88477 (git): [wasm] tool/m4/ruby_wasm_tools.m4: Add default value for OBJCOPY
The tool is used to build shared libraries but system installed
tools usually don't support WebAssembly, so use WASI SDK's tools by default.
katei (Yuta Saito)
04:08 PM Revision 0a88437d (git): Update default gems list at 0b5be2f9e97e0618f76b9a861eaf9c [ci skip]
git[bot]
04:07 PM Revision 0b5be2f9 (git): Sync to latest prism
kddnewton (Kevin Newton)
03:29 PM Revision 40642cd3 (git): Update to ruby/spec@3fc4444
Eregon (Benoit Daloze)
03:29 PM Revision abe07d4b (git): Update to ruby/mspec@31f51e0
Eregon (Benoit Daloze)
03:29 PM Revision d9bd64f9 (git): Fix typo
Eregon (Benoit Daloze)
03:27 PM Revision b35cdb47 (git): [PRISM] Implement opt_aset_with
Part of ruby/prism#2231
Co-authored-by: Adrianna Chang <adrianna.chang@shopify.com>
Co-authored-by: Peter Zhu <peter@peterzhu.ca>
Jenny Shen
03:27 PM Revision 8ed26a3f (git): [PRISM] Refactor PM_CALL_NODE conditional
Co-authored-by: Peter Zhu <peter@peterzhu.ca> Jenny Shen
02:51 PM Revision 3f0e3ede (git): YJIT: Fix exits on splatkw instruction (#9715)
[[Bug #20214]](https://bugs.ruby-lang.org/issues/20214) k0kubun (Takashi Kokubun)
02:51 PM Revision ac526abc (git): Merge RubyGems 3.5.5 and Bundler 2.5.5 (#9676)
* Merge RubyGems-3.5.4 and Bundler-2.5.4
* Merge RubyGems-3.5.5 and Bundler-2.5.5
* Make tests play with upstream Ruby tests
CI broke in https://github.com/ruby/ruby/pull/9604 because if any Ruby
tests run `require 'net/http'`, they w...
hsbt (Hiroshi SHIBATA)
02:50 PM Revision 7f97e354 (git): [Backport 3.3] [Bug #20085] Use consistent default options for `-mbranch-protection` (#9385)
[Bug #20085] Use consistent default options for `-mbranch-protection`
We need to use the same options for both C compiler and assembler
when `-mbranch-protection` is guessed by configure. Otherwise,
`coroutine/arm64/Context.{h,S}` will ...
katei (Yuta Saito)
02:47 PM Bug #19542: Operations on zero-sized IO::Buffer are raising
ruby_3_3 d7dc57a545d75c01313a9020b162ebb648a3ea18 merged revision(s) c5cf4d4e129f64cb69aaf0a829aed068ef1943c4. naruse (Yui NARUSE)
02:43 PM Bug #20231: Don't wait in io_binwrite_string if not necessary.
ruby_3_3 2c365e6dfb95e0df24725c6f377b9cdf5e354557 merged revision(s) 2554c5d3b8738a248cedb2fea96dfab9fbe19417. naruse (Yui NARUSE)
08:06 AM Bug #20231: Don't wait in io_binwrite_string if not necessary.
ioquatix (Samuel Williams) wrote in #note-4:
> @naruse That PR seems unrelated, is the link correct?
Thanks, the correct PR is https://github.com/ruby/ruby/pull/9831
naruse (Yui NARUSE)
01:10 PM Bug #20236 (Closed): OpenSSL::Cipher#update - probable buffer overflow: 16 for 15
A fix for this in ruby/openssl's upstream: https://github.com/ruby/openssl/pull/717 rhenium (Kazuki Yamaguchi)
11:58 AM Bug #20085: Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
Noticed this is closed but the issue still persists and the backport isn't merged in yet. Do we know when it will be available? londonappdev (Mark Winterbottom)
08:41 AM Revision 288d84d8 (git): merge revision(s) 2554c5d3b8738a248cedb2fea96dfab9fbe19417: [Backport #20231] (#9831)
Don't wait in `io_binwrite_string` if not necessary. (#9792)
---
io.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
NARUSE, Yui
08:15 AM Bug #20237: Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
Another option would be to define something like `fork_then_unshare(unshare_flags:, &block)` method in C extension, but because you would usually want to set up and clean up your environment between fork and unshare, this C function coul... hanazuki (Kasumi Hanazuki)
05:55 AM Bug #20237 (Assigned): Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
mame (Yusuke Endoh)
04:59 AM Bug #20237 (Closed): Unable to unshare(CLONE_NEWUSER) in Linux because of timer thread
## Backgrounds
[unshare(2)](https://man7.org/linux/man-pages/man2/unshare.2.html) is a syscall in Linux to move the calling process into a fresh execution context. With `unshare(CLONE_NEWUSER)` you can move a process into a new [user_...
hanazuki (Kasumi Hanazuki)
03:32 AM Revision 3af47f14 (git): Bump necojackarc/auto-request-review from 0.12.0 to 0.13.0
Bumps [necojackarc/auto-request-review](https://github.com/necojackarc/auto-request-review) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/necojackarc/auto-request-review/releases)
- [Commits](https://github.com/necojackarc/...
dependabot[bot]

02/04/2024

11:41 PM Bug #20169: `GC.compact` can raises `EFAULT` on IO
> IMO it's undefined behaviour to use a Ruby object in a non-GVL scenario, this just fixes the issue inside of Ruby using a hack.
In this case, shouldn’t we fix the original issuing by copying the write through a C-allocated buffer? ...
kjtsanaktsidis (KJ Tsanaktsidis)
10:14 PM Bug #20169: `GC.compact` can raises `EFAULT` on IO
> I want to try and spell out what it means for "the rules" for extensions if we accept it.
I don't think this implies any new rules. IMO it's undefined behaviour to use a Ruby object in a non-GVL scenario, this just fixes the issue i...
peterzhu2118 (Peter Zhu)
06:11 PM Feature #20235: Deprecate CHAR syntax
Dan0042 (Daniel DeLorme) wrote in #note-3:
> @shan it's not "an uncommented `=>` designating a return value", it's (supposed to be) a hash literal like `p 1=>2`. With spaces maybe it's more obvious: `p $stdin.closed? => true`
Ah, I m...
shan (Shannon Skipper)
01:52 PM Feature #20235: Deprecate CHAR syntax
@shan it's not "an uncommented `=>` designating a return value", it's (supposed to be) a hash literal like `p 1=>2`. With spaces maybe it's more obvious: `p $stdin.closed? => true`
In ruby 1.8 character literals were useful for things...
Dan0042 (Daniel DeLorme)
04:05 PM Revision 8bc6fff3 (git): [PRISM] Do not optimize safe navigation aref
Co-authored-by: Peter Zhu <peter@peterzhu.ca> Jenny Shen
04:05 PM Revision c5d44447 (git): [PRISM] Do not optimize safe navigation -@/freeze
Co-authored-by: Peter Zhu <peter@peterzhu.ca> Jenny Shen
03:58 PM Bug #20236 (Closed): OpenSSL::Cipher#update - probable buffer overflow: 16 for 15
input program crash.rb
``` ruby
require 'openssl'
cipher = OpenSSL::Cipher.new('aes128-wrap-pad').encrypt
cipher.random_key
cipher.update('42')
```
crashes systematically with the attached diagnostic report and the followi...
nakhli (Chaker Nakhli)
01:54 PM Revision d7dc57a5 (git): merge revision(s) c5cf4d4e129f64cb69aaf0a829aed068ef1943c4: [Backport#19542] (#9829)
merge revision(s) c5cf4d4e129f64cb69aaf0a829aed068ef1943c4: [Backport #19542]
Improve behavioural consistency of unallocated (zero length)
`IO::Buffer`. (#9532)
This makes the behaviour of IO::Buffer.new(0) and...
NARUSE, Yui
01:11 PM Bug #20178: Out of bounds stack read on Array#first when built with -O0
ruby_3_3 ce6863a0cf971e0c0328e3fc85b10b6de36ecbad merged revision(s) 18573b8d054f655e3e8b24902985bf4028f88810. naruse (Yui NARUSE)
11:33 AM Revision 7b3e05c3 (git): Do not define ABI version in statically linked objects
It is for dynamically loading, useless for statically linked objects. nobu (Nobuyoshi Nakada)
09:39 AM Revision 8b897e60 (git): [DOC] Update NEWS refs
znz (Kazuhiro NISHIYAMA)
08:09 AM Revision 3f37b4fe (git): Extend tests for ext/Setup
nobu (Nobuyoshi Nakada)
07:43 AM Revision ae8990ae (git): Alias init functions
The extension library has each initialization function named "Init_" +
basename. If multiple extensions have the same base name (such as
cgi/escape and erb/escape), the same function will be registered for
both names.
To fix this confli...
nobu (Nobuyoshi Nakada)
07:40 AM Revision 143a1be1 (git): Allow glob patterns in ext/Setup
nobu (Nobuyoshi Nakada)
07:35 AM Revision c40b0d52 (git): Glob with base option
When ripping the base directory off the result names. nobu (Nobuyoshi Nakada)
05:37 AM Revision a065b68b (git): Backport #9415 to ruby_3_3 (#9424)
YJIT: Let RubyVM::YJIT.enable respect --yjit-stats k0kubun (Takashi Kokubun)
05:36 AM Revision ba16b340 (git): YJIT: reduce default exec mem size to 48MiB (#9692)
* YJIT: reduce default exec mem size to 48MiB based
Based on user feedback from @jhawthorn and others.
Better for small and memory-constrained deployments.
NOTE: This commit should be included in the next Ruby 3.3.x point
release. @xrx...
maximecb (Maxime Chevalier-Boisvert)
05:36 AM Bug #20172: Socket.addrinfo failing randomly
ruby_3_3 53d4e9c4bbba077a569549a01a8263e5e8f59ee8 merged revision(s) 1bd98c820da46a05328d2d53b8f748f28e7ee8f7. naruse (Yui NARUSE)
04:13 AM Revision ce6863a0 (git): merge revision(s) 18573b8d054f655e3e8b24902985bf4028f88810: [Backport #20178] (#9822)
Avoid reading unused lvars in Primitive.cexpr
Previously on builds with optimizations disabled, this could result in
an out of bounds read. When we had all of:
* built with -O0
* Leaf builtin
* Pr...
NARUSE, Yui

02/03/2024

11:04 PM Bug #20225: Inconsistent behavior of regex matching for a regex has a null loop
In TruffleRuby, we implement null checks which take into account both matching position and captures, in the spirit of Ruby's regular expressions. Both of the examples from your original issue description evaluate to `0`, and `/((?=(a)))... jirkamarsik (Jirka Marsik)
10:55 PM Bug #20225: Inconsistent behavior of regex matching for a regex has a null loop
As I understand it, the idea behind the null check is for the regex matcher to be able to identify unproductive branches in the regex execution, branches which are guaranteed to never terminate. When executing the expression `X*`, where ... jirkamarsik (Jirka Marsik)
02:29 PM Bug #20225: Inconsistent behavior of regex matching for a regex has a null loop
FWIW current TruffleRuby behavior for the two examples in the description is to return 0 for both.
Is that what you propose to change the behavior to?
Eregon (Benoit Daloze)
02:25 PM Bug #20225: Inconsistent behavior of regex matching for a regex has a null loop
Could you show how the behavior would change for these specs, e.g. with a diff of the specs or by moving the existing ones under `ruby_version_is ""..."3.4" do` and adding the new behavior under `ruby_version_is "3.4" do` ? Eregon (Benoit Daloze)
10:42 PM Feature #20235: Deprecate CHAR syntax
A `$stdin.closed?#=>true` would work as expected. You can't generally follow Ruby code immediately with an uncommented `=>` designating a return value and have it not break.
It made sense to maintain character literals for compatibili...
shan (Shannon Skipper)
08:02 PM Feature #20235: Deprecate CHAR syntax
I think the first time - and probably the only time - I heard
about the ?a syntax:
?a # => "a"
?b # => "b"
?c # => "c"
was in the pickaxe book. I believe there was a chapter in the
bookaxe that mentioned the ? syntax along ...
rubyFeedback (robert heiler)
04:53 PM Feature #20235 (Open): Deprecate CHAR syntax
I propose deprecating the `?c` syntax. It served a purpose in ruby <= 1.8, but no longer.
The reason I'm proposing this is because today I ran into this error:
```ruby
p $stdin.closed?=>true # comparison of String with true failed (...
Dan0042 (Daniel DeLorme)
08:02 PM Revision 19f61552 (git): Remove TestProcess#test_low_memory_startup
It is too flaky on many platforms. Nobody is willing to fix it. Let's
just stop it.
mame (Yusuke Endoh)
07:52 PM Feature #20215: Introduce `IO#readable?`
Actually if I think about it a little, I can work around that like this:
```ruby
loop do
if $stdin.wait_readable(0)
str = $stdin.gets or abort("<eof>")
p str
else
puts "no input, let's wait a bit..."
sleep 1...
Dan0042 (Daniel DeLorme)
05:13 PM Feature #20215: Introduce `IO#readable?`
Interesting, I didn't know about #wait_readable. Looks like previously it needed `require "io/wait"` but it was integrated in Ruby 3.2 core.
Unfortunately it doesn't work for my use case:
```
(echo 1;sleep 1;echo 2)|3.2 ruby -e '8.t...
Dan0042 (Daniel DeLorme)
03:47 PM Revision 53d4e9c4 (git): merge revision(s) 1bd98c820da46a05328d2d53b8f748f28e7ee8f7: [Backport #20172] (#9798)
Remove setaffinity of pthread for getaddrinfo
It looks like `sched_getcpu(3)` returns a strange number on some
(virtual?) environments.
I decided to remove the setaffinity mechanism because the performance
...
NARUSE, Yui
01:35 PM Revision 45064610 (git): Fix test session reuse but expire (#9824)
* Show OpenSSL version in the error message of assert_equal
* OpenSSL 3.2.1 30 Jan 2024 is also broken
NARUSE, Yui
10:39 AM Revision bc79229b (git): Show OpenSSL version in the error message of assert_equal
naruse (Yui NARUSE)
06:59 AM Revision 055615a4 (git): Statically linking does not use shared libraries of encodings
nobu (Nobuyoshi Nakada)
06:54 AM Revision 124be0aa (git): [ruby/irb] Consume the warning for non-existent history path
Fix https://github.com/ruby/irb/pull/852#issuecomment-1925170358
https://github.com/ruby/irb/commit/9a7e060e57
nobu (Nobuyoshi Nakada)
03:25 AM Revision 0854d648 (git): [PRISM] Selectively dup array in `foo(*splat, &block_arg)` calls
This is essentially an adaptation of aae8223c707 ("Dup splat array in
certain cases where there is a block argument") to pass
`TestCall#test_call_block_order`.
This also makes PRISM emit `getblockparamproxy` in cases like
`def foo(&blk)...
alanwu (Alan Wu)
01:37 AM Bug #20169: `GC.compact` can raises `EFAULT` on IO
So I think we can go with that fix, but I want to try and spell out what it means for "the rules" for extensions if we accept it.
AFAICT, by merging https://github.com/ruby/ruby/pull/9817, we are saying the following:
1. It is ille...
kjtsanaktsidis (KJ Tsanaktsidis)
12:15 AM Revision 68b57ceb (git): Use bool to check ascii only in parse_ident
No need to use ENC_CODERANGE to record ascii only or not. yui-knk (Kaneko Yuichiro)

02/02/2024

11:50 PM Revision 90ae8eae (git): [PRISM] Fix numbered parameters stealing local names
Previously, the local index of numbered parameters were assigned to
names of regular locals, making it hard to read both of them. Use proper
`_[1-9]` numbered parameters. This fixes `test_shapes.rb`.
Also, properly mark the iseq as havi...
alanwu (Alan Wu)
10:25 PM Revision 5d646fa1 (git): [ruby/irb] Require pathname (https://github.com/ruby/irb/pull/860)
https://github.com/ruby/irb/commit/0ab96ed426 st0012 (Stan Lo)
10:09 PM Revision 5a87e9e2 (git): YJIT: add missing jge comparison instruction (#9819)
I ran into this while trying to implement setbyte, was surprised
to find out we hadn't implemented it yet.
maximecb (Maxime Chevalier-Boisvert)
09:58 PM Revision aa780a67 (git): [ruby/irb] Add a warning for when the history path doesn't exist
(https://github.com/ruby/irb/pull/852)
* Add a warning for when the history path doesn't exist
* warn when the directory does not exist
* added test for when the history_file does not exist
* Update lib/irb/history.rb
---------
htt...
Ignacio Chiazzo Cardarello
09:45 PM Revision 6afccdf4 (git): [ruby/prism] Provide APIs for finding value in constant pool
https://github.com/ruby/prism/commit/be9e2abfa3 kddnewton (Kevin Newton)
09:38 PM Revision 31e4300e (git): [rubygems/rubygems] feat: Gem::Specification#initialize_copy deep-copies requirements
to avoid accidentally mutating the original's state when doing:
```ruby
spec2 = spec.dup
spec2.required_rubygems_version.concat([">= 3.3.22"])
```
see https://github.com/rake-compiler/rake-compiler/pull/236 for a
real-world use case th...
mdalessio (Mike Dalessio)
09:38 PM Revision 66a6f2b1 (git): [rubygems/rubygems] feat: Gem::Requirement#initialize_copy deep-copies @requirements
to avoid accidentally mutating the original's state when doing:
```ruby
req2 = req.dup
req2.concat([">= 3.3.22"])
```
see https://github.com/rake-compiler/rake-compiler/pull/236 for a
real-world use case that would be made simpler with...
mdalessio (Mike Dalessio)
09:16 PM Revision d2f004cf (git): [ruby/prism] Fix hash pairs in patterns
https://github.com/ruby/prism/commit/b7ab29daa0 kddnewton (Kevin Newton)
09:06 PM Feature #20215: Introduce `IO#readable?`
Would `io.wait_readable(0)` work instead? If not, why not? Eregon (Benoit Daloze)
08:43 PM Revision eaea53b8 (git): [ruby/prism] Handle missing begin body
https://github.com/ruby/prism/commit/7e54818b17 kddnewton (Kevin Newton)
08:09 PM Revision 7695ab3b (git): [ruby/prism] Fix up multibyte escapes
https://github.com/ruby/prism/commit/836a35f4af kddnewton (Kevin Newton)
07:43 PM Revision 520987c6 (git): [ruby/prism] Turn off LibrarySymbolsTest on powerpc64le
https://github.com/ruby/prism/commit/6e432f3de5 kddnewton (Kevin Newton)
07:36 PM Revision 24cdafb2 (git): [PRISM] Fix indentation of pm_scope_node_init [ci skip]
peterzhu2118 (Peter Zhu)
07:26 PM Revision 93fdf66b (git): [rubygems/rubygems] Adapt failing tests to new output
https://github.com/rubygems/rubygems/commit/cf549e71aa Vitaliy Serov
07:26 PM Revision 0bcad50c (git): [rubygems/rubygems] Fix var name and also update other places
https://github.com/rubygems/rubygems/commit/f72a7989cd Vitaliy Serov
07:26 PM Revision 064f2515 (git): [rubygems/rubygems] Change gem login message to clear up that username can be also used
https://github.com/rubygems/rubygems/commit/2bf6163eaf Vitaliy Serov
06:36 PM Revision 420a6349 (git): [ruby/prism] Small fixes for the parser translator
https://github.com/ruby/prism/commit/4327051c86 kddnewton (Kevin Newton)
05:03 PM Bug #20169: `GC.compact` can raises `EFAULT` on IO
I implemented a fix here: https://github.com/ruby/ruby/pull/9817 peterzhu2118 (Peter Zhu)
04:35 PM Bug #20228 (Closed): Memory leak in Regexp timeout
Applied in changeset commit:git|1c120efe02d079b0a1dea573cf0fd7978d9cc857.
----------
Fix memory leak in stk_base when Regexp timeout
[Bug #20228]
If rb_reg_check_timeout raises a Regexp::TimeoutError, then the stk_base
will leak.
peterzhu2118 (Peter Zhu)
04:35 PM Revision 8f9d999d (git): [ruby/prism] Fix overlapping memcpy
It's UB to use memcpy with overlapping source and destination. This
might be causing crashes on 32 bit platforms and on OpenBSD. Use memmove
instead. Add a bounds check while we're at it since it's unclear whether
one-past-end pointer wi...
alanwu (Alan Wu)
03:39 PM Revision 31378dc0 (git): Add memory leak test for Regexp timeout
[Bug #20228] peterzhu2118 (Peter Zhu)
03:39 PM Revision 01bfd1a2 (git): Fix memory leak in OnigRegion when match raises
[Bug #20228]
rb_reg_onig_match can raise a Regexp::TimeoutError, which would cause
the OnigRegion to leak.
peterzhu2118 (Peter Zhu)
03:39 PM Revision 1c120efe (git): Fix memory leak in stk_base when Regexp timeout
[Bug #20228]
If rb_reg_check_timeout raises a Regexp::TimeoutError, then the stk_base
will leak.
peterzhu2118 (Peter Zhu)
11:43 AM Revision a4e4e3b1 (git): [rubygems/rubygems] Add missing Windows job
Specs that use extension gems were failing in the new job but I noticed
that they were using very non standard `extconf.rb` files.
The hack being removed here was added just to make specs pass when run
in ruby-core but it seems the unde...
deivid (David Rodríguez)
11:15 AM Bug #20234 (Closed): Segfault parsing begin statement inside method definition receiver
Segmentation fault parsing these code in Ruby 3.3.0 and 3.4.0dev
~~~ruby
# Segmentation fault
ruby -ce "def (begin;end).foo; end"
ruby -ce "def (begin;else;end).foo; end"
ruby -ce "def (begin;ensure;else;end).foo; end"
ruby -e "Rub...
tompng (tomoya ishida)
10:36 AM Bug #19461: Time.local performance tanks in forked process (on macOS only?)
Hi, we are running into the same issue when developing so I was wondering if you got any response on the Apple bug report? Or found a workaround? lars.vonk@gmail.com (Lars Vonk)
10:25 AM Bug #20172: Socket.addrinfo failing randomly
For reference, I had a user report a similar issue due to `Addrinfo#ip_address`: https://github.com/socketry/falcon/issues/217 ioquatix (Samuel Williams)
01:50 AM Bug #20172: Socket.addrinfo failing randomly
Merging into 3.3 is pending
https://github.com/ruby/ruby/pull/9798
naruse (Yui NARUSE)
08:56 AM Feature #20233: pkg-config not working on MSVC
Potential implemented at https://github.com/ruby/ruby/pull/9815#pullrequestreview-1858695400 jmarrec (Julien Marrec)
08:48 AM Feature #20233 (Closed): pkg-config not working on MSVC
The PKG_CONFIG variable is not respected in win32/Makefile.sub
Also, need to ideally use the `--msvc-syntax` flag (pkgconf 1.4.0, released 7 years ago, adds it).
But mostly, I realized that the `try_ldflags` in `lib/mkmf.rb` actual...
jmarrec (Julien Marrec)
05:26 AM Revision ccffc6ee (git): Add an assertion that `%x` literals call `` ` `` method
nobu (Nobuyoshi Nakada)
03:22 AM Bug #20094: Inline while loop behavior changed unexpectedly in 3.3.0
ruby_3_3 119d447d42d4645ac919ee53f3ec294deaa7c59b merged revision(s) bc002971b6ad483dbf69b8a275c44412bb6ab954. naruse (Yui NARUSE)
01:59 AM Bug #20231: Don't wait in io_binwrite_string if not necessary.
@naruse That PR seems unrelated, is the link correct? ioquatix (Samuel Williams)
01:52 AM Bug #20231: Don't wait in io_binwrite_string if not necessary.
Merging into 3.3 but failed
https://github.com/ruby/ruby/pull/9813
naruse (Yui NARUSE)
01:42 AM Revision c0629a05 (git): Prefer `IO.popen` over `IO.foreach` with `|`
nobu (Nobuyoshi Nakada)
01:42 AM Revision f22bec79 (git): leaked-globals: More accurately extract checked function names
nobu (Nobuyoshi Nakada)
12:36 AM Bug #20162: Memory leak when duplicating too complex object
ruby_3_3 3fb51b93d25b0566b71249b1c7ccddf0dab91429 merged revision(s) 82b57d7bfeefd717c10f7a5a3484aca6b3e708a3. naruse (Yui NARUSE)
12:36 AM Bug #20173: Backport 597955a, 8b65d15
ruby_3_3 7231fc5baa0a44ef6264c795071c5fbec8d1102d merged revision(s) 597955a,8b65d15. naruse (Yui NARUSE)
 

Also available in: Atom