Activity
From 11/15/2025 to 11/21/2025
Today
- 04:34 AM Revision 451c1209 (git): [ruby/rubygems] Check for file existence before deletion from cache
- (https://github.com/ruby/rubygems/pull/9095)
* Rescue when deleting a non-existent cached gem file
When a gem was in the cache, but another process deletes it first, this
delete command fails.
To work around this, I'm rescuing from Er... -
04:20 AM Revision ee002a5e (git): [ruby/rubygems] Respect `BUNDLE_VERSION` config at Gem::BundlerVersionFinder
- If we use "system" variable in BUNDLE_VERSION on Bundler configuration,
we can use bundler version provided by system installation.
But the current logic returns the first activated version of bundler
like 2.7.2. It makes to confuse use... -
04:03 AM Revision 917e77be (git): [ruby/rubygems] Deprecate comparing Gem::Version objects with strings
- Comparing version objects is a huge bottleneck in dependency solvers
(like inside Bundler). I would like to make comparing version objects
cheaper. Right now we support comparing version objects with strings by
trying to coerce the str... -
04:03 AM Revision 8b116ee8 (git): [ruby/rubygems] create a gem version instead of comparing with a string
- https://github.com/ruby/rubygems/commit/c1e3d4d63b
-
03:13 AM Revision 9aa09b46 (git): [ruby/rubygems] Fixed RuboCop offense in Rakefile generated by `bundle gem`
- ```
Offenses:
Rakefile:18:1: C: [Correctable] Layout/EmptyLines: Extra blank line detected.
Diff:
@@ -11,4 +11,5 @@
ext.lib_dir = "lib/test_gem"
end
+
task default: :compile
https://github.com/ruby/rubygems/commit/8c414729df -
03:13 AM Revision a26f8235 (git): [ruby/rubygems] Add go_gem/rake_task for Go native extention gem skeleton
- https://github.com/ruby/rubygems/commit/64f92d2da0
-
01:51 AM Revision 9d04fb52 (git): CI: cmake in scoop seems unused
- 01:19 AM Revision 9764306c (git): Accurate GC.stat under multi-Ractor mode
-
12:52 AM Revision 07ddb0ed (git): ZJIT: Read `iseq->body->param` directly instead of through FFI
- Going through a call to a C function just to read a bitfield was a
little extreme. We did it to be super conservative since bitfields
have historically been the trigger of many bugs and surprises. Let's
try directly accessing them with c... -
12:52 AM Revision 7a09df45 (git): Name the `iseq->body->param` struct and update bindings for JITs
- This will make reading the parameters nicer for the JITs. Should be
no-op for the C side. - 12:30 AM Revision aa9e15cb (git): Fix multiple bugs in `IO::Buffer.map` and update its documentation. (#15264)
- - Buffer's size did not account for offset when mapping the file, leading to possible crashes.
- Size and offset were not checked properly, leading to many situations raising EINVAL errors with generic messages.
- Documentation was wrong.
11/20/2025
-
11:38 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
- Thanks for taking a look at this and coming up with an implementation, this is great.
I haven't really played around with it much but I did read the code and I have a few thoughts:
* There's 1 deferred wait thread per ractor, which isn... -
01:24 AM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
- @jpl-coconut Please do! This seems like a really good demonstration of the issue and a good start on addressing it. The change is a lot smaller than I expected it to be ❤️. We would only make performance improvements like this to the `ma...
-
11:11 PM Revision 29d8a50d (git): [ruby/rubygems] Keep legacy windows platform, not removed them
- https://github.com/ruby/rubygems/commit/f360af8e3b
-
11:10 PM Revision e15b4e1c (git): Bump default compiler to clang-20 in CI
- clang-18 has a bug that causes the latest Ractor btest to crash.
-
11:10 PM Revision 3ec44a99 (git): Add a Ractor test case that causes MMTk to deadlock
- This was a test case for Ractors discovered that causes MMTk to deadlock.
There is a fix for it in https://github.com/ruby/mmtk/pull/49. -
11:01 PM Revision 010b23a7 (git): [ruby/rubygems] Add support for BUNDLE_LOCKFILE environment variable
- This specifies the lockfile location. This allows for easy support
of different lockfiles per Ruby version or platform.
https://github.com/ruby/rubygems/commit/b54d65bc0a
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Co-authored-by: ... -
11:01 PM Revision 1562803e (git): [ruby/rubygems] Add support for bundle install --no-lock
- This allows for the same behavior as including `lockfile false`
in the Gemfile. This allows you to get the behavior without
modifying the Gemfile, which is useful if you do not control the
Gemfile.
This is similar to the --no-lock optio... -
11:01 PM Revision 82d8d24e (git): [ruby/rubygems] Add support for lockfile in Gemfile
- This allows you to specify the lockfile to use. This is useful if
you want to use different lockfiles for different ruby versions or
platforms. You can also skip writing the lockfile by using a false
value.
https://github.com/ruby/rubyg... -
10:48 PM Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
- This makes sense to me. However it might mean we need to return a slice (which IMHO is probably okay). The alternative is to expose the internal implementation and force the user to deal with all that shit. We should also document clearl...
-
08:25 PM Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
- > Currently, offset doesn't change the buffer's size if unspecified, leading to crashes. I will be making a PR addressing this but still.
The pull request in question: https://github.com/ruby/ruby/pull/15264 -
07:43 PM Feature #21700 (Open): `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
- *This was supposed to be a bug report, but it turned into a feature request halfway through.*
`IO::Buffer.map` supports `size` and `offset` arguments to localize buffer to a specific part of mapped file. While `size` works fine, speci... - 10:35 PM Revision fb28d474 (git): ZJIT: Change the output on redefined method tests to verify the new definition is used
- 10:35 PM Revision 447989e5 (git): ZJIT: Update test names to use the same convention as the HIR tests
- 10:35 PM Revision 36f1ab96 (git): ZJIT: Add tests for `opt_newarray_send` with target methods redefined
- 10:35 PM Revision 7d2f9ab9 (git): ZJIT: Handle display formatting for all defined bops
- 10:35 PM Revision b06dd644 (git): ZJIT: Compile the VM_OPT_NEWARRAY_SEND_HASH variant of opt_newarray_send
- 10:35 PM Revision 604fc059 (git): ZJIT: Rename array length reference to make the code easier to follow
-
10:30 PM Revision 24473808 (git): Run rb_gc_before_fork after before_exec
- before_exec stops the timer thread, which requires locking the Ractor
scheduler lock. This may deadlock if rb_gc_before_fork locks the VM. -
10:08 PM Revision 55938a45 (git): [DOC] Sort some methods in What's Here
-
10:07 PM Revision d5368fc5 (git): [DOC] Tweaks for String#valid_encoding?
-
10:06 PM Revision 826e91a7 (git): [DOC] Harmonize mod methods
-
10:06 PM Revision ff1d23ec (git): Use a serial to keep track of Mutex-owning Fiber
- Previously this held a pointer to the Fiber itself, which requires
marking it (which was only implemented recently, prior to that it was
buggy). Using a monotonically increasing integer instead allows us to
avoid having a free function a... -
10:06 PM Revision d1b11592 (git): [DOC] Tweaks for String#upto
- 10:05 PM Revision 8b71234a (git): [ruby/rubygems] Change the logger instance for this spec:
- - With the logger change that is now threadsafe, such code no longer
behaves the same:
```ruby
Bundler.ui.silence do
Bundler.ui.level = 'info'
Bundler.ui.info("foo")
# This used to output something. Now it doesn't.
... - 10:05 PM Revision 409c004a (git): [ruby/rubygems] Make the Bundler logger thread safe:
- - The Logger is not thread safe when calling `with_level`.
This now becomes problematic because we are using multiple
threads during the resolution phase in order to fetch git gems.
https://github.com/ruby/rubygems/commit/380653ae74 - 10:05 PM Revision bd60600d (git): [ruby/rubygems] Run git operations in parallel to speed things up:
- - ### Problem
When you have a Gemfile that contains git gems, each repository will
be fetched one by one. This is extremelly slow.
A simple Gemfile with 5 git gems (small repositories) can take up
to 10 seconds just to fetch the... -
10:05 PM Revision 9b87a0b9 (git): Fix missing write barrier on namespace classext
- Found by wbcheck
It seems like here the classext was associated with the class, but it
already had Ruby objects attached.
rb_gc_writebarrier_remember works around that issue, but I suspect if we
enabled autocompaction the values copied... -
10:04 PM Revision a4a99a24 (git): [DOC] TWeaks for String#upcase!
-
10:03 PM Revision 59e04892 (git): [DOC] Tweaks for String#upcase (#15244)
-
10:02 PM Revision cb9c7a6a (git): [ruby/rubygems] Improve error messages and handling in tests
- This is a first pass to improve the way errors are handled and raised in
bundler's tests. The goal is to clean up tests and modernize them -
these were some obvious areas that could be cleaned up.
- Instead of raising "ZOMG" in the load... -
08:09 PM Revision ba47c2f0 (git): [ruby/prism] Add tests to `regexp_encoding_option_mismatch`
- related to #2667
https://github.com/ruby/prism/commit/44f075bae4 - 08:06 PM Revision 0b4420bf (git): [ruby/prism] Use memmove for overlapping memory ranges
- Fixes https://github.com/ruby/prism/pull/3736.
https://github.com/ruby/prism/commit/1f5f192ab7 -
07:47 PM Revision a8f269a2 (git): ZJIT: Deduplicate successor and predecessor sets (#15263)
- Fixes https://github.com/Shopify/ruby/issues/877
I didn't consider the ability to have the successor or predecessor sets having duplicates when originally crafting the Iongraph support PR, but have added this to prevent that happening i... -
05:23 PM Revision 48027256 (git): [ruby/json] Remove unused symbols
- https://github.com/ruby/json/commit/9364d0c761
- 04:32 PM Revision f8cb9f32 (git): ZJIT: Put optional interpreter cache on both GetIvar and SetIvar
- 04:32 PM Revision 0b6daad6 (git): ZJIT: Fix pointer types for SetInstanceVariable
-
02:54 PM Bug #21396 (Closed): Set#initialize should call Set#add on items passed in
- Applied in changeset commit:git|41b8e440e7f2c5d3d1c1a9644de4bdc06a343724.
----------
Support backwards compatibility for Set subclasses
For subclasses from Set, require `set/subclass_compatible`, and
extend the subclass and include a m... -
02:54 PM Bug #21375 (Closed): Set[] does not call #initialize
- Applied in changeset commit:git|41b8e440e7f2c5d3d1c1a9644de4bdc06a343724.
----------
Support backwards compatibility for Set subclasses
For subclasses from Set, require `set/subclass_compatible`, and
extend the subclass and include a m... -
02:54 PM Revision 41b8e440 (git): Support backwards compatibility for Set subclasses
- For subclasses from Set, require `set/subclass_compatible`, and
extend the subclass and include a module in it that makes it more
backwards compatible with the pure Ruby Set implementation used
before Ruby 4.
The module included in the ... -
08:56 AM Revision a24922a6 (git): Remove stale declaration
- `rb_zjit_option_enabled_p` seems no longer used/defined since
ruby/ruby#f84bbb423836d9d0d018b8ab71ecceb5868fd5be. -
08:42 AM Revision d755052a (git): Remove wrong test
- `realloc` is not guaranteed to return the same address when shrinking.
-
07:59 AM Revision 2c42f7c6 (git): [ruby/resolv] Move minimal registry access to the extension
- Now win32/registry depends on fiddle, and its conversion is complex
and too generic for the purpose of resolv.
https://github.com/ruby/resolv/commit/bd24870d2d -
04:54 AM Feature #21675: Advent of Pattern Matching
- We briefly discussed this at the monthly dev meeting. While we haven't reached a consensus on whether the scope of pattern matching should be expanded in general, I would like to share one specific concern that came up during the discuss...
- 02:42 AM Revision 4c752508 (git): Update default gems list at 0653a01ada3c3c286de128074b58b3 [ci skip]
-
02:41 AM Revision 0653a01a (git): [ruby/rubygems] Bump up to 4.0.0.beta1
- https://github.com/ruby/rubygems/commit/9be811c01a
-
02:07 AM Feature #19979: Allow methods to declare that they don't accept a block via `&nil`
- Given that the next release will be Ruby 4.0, and that the Syntax moratorium should be over.
Do you think it's possible you could reconsider adding this feature? -
01:07 AM Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
- Currently, my goal is to rewrite the C++ code I have into C. To achieve this, I am creating a set of macros in Ruby on top of C that run at compile time, and the output of these macros is C code. Here is an example of what I am doing, ...
-
12:03 AM Revision 167c3dba (git): Omit a test on s390x linux tripping over a git bug
- This test has been reliably failing on recent trunk versions.
See: <https://github.com/ruby/ruby/actions/runs/19519712433/job/55880266450#step:14:120>
11/19/2025
-
11:28 PM Bug #21685: Unnecessary context-switching, especially bad on multi-core machines.
- How can I help move the discussion forward? Is it better if I create a PR and we discuss there?
-
11:25 PM Feature #20408 (Closed): Add heap_live_slots to GC.stat_heap
- Applied in changeset commit:git|fa02d7a01f5e7516de8eb3c7f92ec75c50c06e3f.
----------
Implement heap_live_slots in GC.stat_heap
[Feature #20408] -
11:25 PM Revision f5f69d41 (git): Implement heap_final_slots in GC.stat_heap
- [Feature #20408]
-
11:25 PM Revision 83bf0542 (git): Implement heap_free_slots in GC.stat_heap
- [Feature #20408]
-
11:25 PM Revision fa02d7a0 (git): Implement heap_live_slots in GC.stat_heap
- [Feature #20408]
-
11:14 PM Revision 2cd792a1 (git): ZJIT: Fix assertion failure when profiling VM_BLOCK_HANDLER_NONE
- As can be seen in vm_block_handler_verify(), VM_BLOCK_HANDLER_NONE is
not a valid argument for vm_block_handler(). Store nil in the profiler
when seen instead of crashing. -
11:14 PM Revision 4107a410 (git): ZJIT: Re-link the test binary when only miniruby changes
-
11:00 PM Revision 2ed287da (git): ZJIT: Add Iongraph compatibility (#14999)
- ## Components
This PR adds functionality to visualize HIR using the [Iongraph](https://spidermonkey.dev/blog/2025/10/28/iongraph-web.html) tool first created for use with Spidermonkey.
## Justification
Iongraph's viewer is (as mention... - 10:54 PM Revision 63a6290c (git): [DOC] Update yjit.md to use a different email
-
10:38 PM Revision d487e396 (git): ZJIT: [DOC] Comment copy-editing
-
10:37 PM Revision ba2b97a9 (git): Update to ruby/spec@6e62695
-
10:34 PM Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2
- I ran the benchmarks, but unfortunately some of the gems are out of date for anyone looking into this. The Gemfile needs:
```ruby
gem "sqlite3" # instead of "1.4.2"
gem "nio4r", "2.7.5" # instead of "2.5.8"
```
I also had to create a c... -
10:27 PM Revision 4e1f20fe (git): [ruby/error_highlight] Fix prism_spot_def_for_name for singletons
- Previously calling a singleton method with invalid arguments would give:
RuntimeError: Incompatible locations
This is because `join` wants the operator to come before the location
https://github.com/ruby/error_highlight/commit/449... -
10:12 PM Feature #20750: Allow rb_thread_call_with_gvl to work when thread already has GVL
- kbrock (Keenan Brock) wrote:
> I'm hoping we can make `ruby_thread_has_gvl_p` a public method and no longer experimental.
This has been done as part of #20877 in https://github.com/ruby/ruby/pull/11975/commits/979c05185270d088b4531a6... -
08:58 PM Revision 4a1af72a (git): ZJIT: Count all calls to C functions from generated code (#15240)
- lobsters:
```
Top-20 calls to C functions from JIT code (79.9% of total 97,004,883):
rb_vm_opt_send_without_block: 19,874,212 (20.5%)
rb_vm_setinstancevariable: 9,774,841 (10... -
08:47 PM Revision 28908a95 (git): Fix provided features spec with --repeat 2
-
08:03 PM Misc #21699 (Open): Updating CAPI docs
- Hello.
How often are the CAPI docs hosted at https://docs.ruby-lang.org/capi/en/master/ refreshed?
It looks like it's been more than 2 weeks since they were last refreshed.
Last revision 4a3d8346a6d0e068508631541f6bc43e8b154ea1 is... -
05:31 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Hi YO4 - thank you for your last comment - I appreciate it. I too need to strive for better communication, because clearly I am not communicating very well. I hope we can all assume the best intentions in others, and realize communicatio...
-
02:52 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Looking back now, I realize my recent comments were not good communication.
My comments were overly aggressive.
Particularly noteworthy the final statement was made in a manner that seemed to represent the community, cutting off @cif... -
03:40 PM Bug #21698: Should simple ArgumentError refer to Object?
- Thanks for clarification 👍
-
02:01 PM Bug #21698: Should simple ArgumentError refer to Object?
- Displaying the method owner class was decided in #19117. The fact that it was not displayed for `"wrong number of arguments"` errors was simply a bug due to an oversight.
We were aware at the time of #19117 that this change would be i... -
01:16 PM Bug #21698: Should simple ArgumentError refer to Object?
- #19117 was closed more then a year ago, therefore I'd assume it was part of Ruby 3.4. But I am pointing out change between Ruby 3.4 and 4.0discussing. But there are also exceptions such as #20275, so maybe this is the case for another on...
-
12:17 PM Bug #21698 (Closed): Should simple ArgumentError refer to Object?
- It's just #19117 and it's intentional.
That feature is missing a NEWS entry though, @mame could you add one? -
11:38 AM Bug #21698 (Closed): Should simple ArgumentError refer to Object?
- Having this simple test file:
~~~
$ cat test.rb
def foo(x, y)
end
foo(1)
~~~
This is the Ruby 3.4 behavior:
~~~
$ ruby --disable-gems test.rb
test.rb:1:in 'foo': wrong number of arguments (given 1, expected 2) (Argumen... -
01:51 PM Revision 7840ef2f (git): Win32: Allow some mingw implemeations to use old msvcrt
-
11:36 AM Revision f3f3a40c (git): The C-API specs cache should be invalidated when C-API specs .c & .h files are changed
-
11:36 AM Revision 85cd08e4 (git): Update to ruby/spec@2e11d2a
-
11:36 AM Revision bbb4c7b8 (git): Update to ruby/mspec@bd8efcf
-
07:49 AM Bug #21697 (Open): `nmake up` will update broken `revision.h`
-
07:20 AM Bug #21697 (Closed): `nmake up` will update broken `revision.h`
- Applied in changeset commit:git|8986115e0a2a989f2b2ea5945f02c7a13989d640.
----------
[Bug #21697] Keep revision.h outside VCS -
03:02 AM Bug #21697 (Open): `nmake up` will update broken `revision.h`
- In 4.0.0-preview2 package, `nmake up` generate the broken `revision.h`.
I could reproduce this:
```
PS C:\Users\hsbt\Downloads> Invoke-WebRequest https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.0-preview2.zip -OutFile ruby-4.0.0... -
07:48 AM Feature #21311: Namespace on read (revised)
- Is there any reason this feature couldn't be released as a gem? It seem like it has evolved far beyond it's original intention (including name change to "Box"), and I worry that it's inclusion in core will lead to inconsistent usage and ...
-
07:43 AM Revision 169d6c7c (git): [ruby/rubygems] Use method_defined?(:method, false)
- https://github.com/ruby/rubygems/commit/6cc7d71dac
-
07:41 AM Revision 339c1731 (git): Revert "[Bug #21697] Keep revision.h outside VCS"
- This reverts commit 8986115e0a2a989f2b2ea5945f02c7a13989d640.
`RELEASE_DATE` including `YEAR`, `MONTH`, `DAY` are mandatory, while
`REVISION` is not. -
07:19 AM Revision 8986115e (git): [Bug #21697] Keep revision.h outside VCS
-
07:05 AM Revision e31dc5f1 (git): Fix a typo
-
02:57 AM Revision 1443f89d (git): [DOC] Tweaks for String#unicode_normalize
-
02:56 AM Revision 31900119 (git): [DOC] Tweaks for String#dump and String#undump
- 02:52 AM Revision 3ee08c8d (git): Bump actions/checkout in /.github/actions/setup/directories
- Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http... -
02:31 AM Revision a6cecda1 (git): [ruby/etc] Win32: Drop support for older MSVC
- Ruby 2.7 supports MSVC 12.0/_MSC_VER 1800 or later.
https://github.com/ruby/etc/commit/6f4404ec88 -
02:31 AM Revision 685903e5 (git): [ruby/etc] Bump up the required ruby version to 2.7
- https://github.com/ruby/etc/commit/d047bb6856
-
02:08 AM Revision f040b94c (git): [ruby/mmtk] Ensure not blocking for GC in rb_gc_impl_before_fork
- In rb_gc_impl_before_fork, it locks the VM and barriers all the Ractors
before calling mmtk_before_fork. However, since rb_mmtk_block_for_gc is
a barrier point, one or more Ractors could be paused there. However,
mmtk_before_fork is not ... -
02:08 AM Revision 69b1c567 (git): [ruby/mmtk] Add VM barrier in rb_gc_impl_before_fork
- We need the VM barrier in rb_gc_impl_before_fork to stop the other Ractors
because otherwise they could be allocating objects in the fast path which
could be calling mmtk_add_obj_free_candidate. Since mmtk_add_obj_free_candidate
acquires... -
02:03 AM Revision 1f2913e7 (git): Win32: Drop support for older than MSVC 14.0/_MSC_VER 1900
- Visual C++ 2015 (14.0):
- _MSC_VER: 1900
- MSVCRT_VERSION: 140 -
02:03 AM Revision 77431235 (git): Win32: Drop support for older than MSVC 12.0/_MSC_VER 1800
- Visual C++ 2013 (12.0):
- _MSC_VER: 1800
- MSVCRT_VERSION: 120 -
02:03 AM Revision 25f9e678 (git): Win32: Drop support for older than MSVC 10.0/_MSC_VER 1600
- Visual C++ 2010 (10.0):
- _MSC_VER: 1600
- MSVCRT_VERSION: 100 -
02:03 AM Revision 3dd39134 (git): Win32: Drop support for older than MSVC 9.0/_MSC_VER 1500
- Visual C++ 2008 (9.0):
- _MSC_VER: 1500
- MSVCRT_VERSION: 90 -
02:03 AM Revision cdb9893c (git): Win32: Drop support for older than MSVC 8.0/_MSC_VER 1400
- Visual C++ 2005 (8.0):
- _MSC_VER: 1400
- MSVCRT_VERSION: 80 - 02:01 AM Revision 1979f8c0 (git): [ruby/prism] Add docs for super nodes
- https://github.com/ruby/prism/commit/69abcdbb18
- 01:37 AM Revision 3b953917 (git): [ruby/rubygems] Warn users that `bundle` now display the help:
- - In https://github.com/ruby/rubygems/commit/31d67ecc056fb5a9193bc66a6e69e21576a87702
we enforced the new behaviour where running `bundle` no longer
installs gems but displays the help.
Users now have a way to configure their prefe... - 01:27 AM Revision 83b0cfe1 (git): [ruby/rubygems] Handle BUNDLER_VERSION being set to an empty string
- This is useful, in case you're using Docker, and an upstream
Dockerfile sets BUNDLER_VERSION to something you don't want.
It's impossible to unset it... only override to be the empty
string.
https://github.com/ruby/rubygems/commit/ffa3e... -
01:02 AM Revision 1f299dd3 (git): Fix crash in optimal size for large T_OBJECT
- Previously any T_OBJECT with >= 94 IVARs would crash during compaction
attempting to make an object too large to embed. - 12:47 AM Revision 4423facb (git): [ruby/rubygems] Add `--ext=go` to `bundle gem`
- (https://github.com/ruby/rubygems/pull/8183)
* Add new gem templates
* Add `--ext=go` in `bundle gem`
* Add setup-go to .github/workflows/main.yml
* Embed go version in go.mod
* Use go in bundler CI
* Add example method to template... -
12:36 AM Revision 0f89fa97 (git): ZJIT: Inline BasicObject#! (#15201)
11/18/2025
-
11:50 PM Revision 32b8f97b (git): ZJIT: Delete outdated optional param test [ci skip]
- Name contradictory now, and we have other tests testing the same thing.
-
10:47 PM Revision 6f6a9ead (git): [ruby/rubygems] Replace instance method look up in plugin installer
- `Gem::Installer.instance_methods(false).include?(:generate_plugins)` is
63x slower than `Gem::Installer.method_defined?(:generate_plugins)` in a
microbenchmark. The latter is a direct lookup, whereas the former will
create an array, whic... -
10:45 PM Revision d5d12efd (git): [ruby/json] parser.c: Remove unued JSON_ParserStruct.parsing_name
- https://github.com/ruby/json/commit/ab5efca015
-
10:32 PM Revision f3f3e768 (git): Extract `KW_SPECIFIED_BITS_MAX` for JITs (GH-15039)
- Rename to `VM_KW_SPECIFIED_BITS_MAX` now that it's in `vm_core.h`.
-
09:57 PM Revision cbe65ebb (git): ZJIT: Skip empty counter sections in stats
-
09:57 PM Revision 65660037 (git): ZJIT: Avoid `NaN%` ratio appearing in stats
-
07:50 PM Bug #21375: Set[] does not call #initialize
- jeremyevans0 (Jeremy Evans) wrote in #note-10:
> I've submitted a PR that implements backwards compatibility for Set subclasses, without affecting Set itself: https://github.com/ruby/ruby/pull/15228
Thank you, I think it's a good sol... -
03:24 AM Bug #21375: Set[] does not call #initialize
- I've submitted a PR that implements backwards compatibility for Set subclasses, without affecting Set itself: https://github.com/ruby/ruby/pull/15228
@Eregon can you try it with concurrent-ruby and see if it resolves your issue? - 07:24 PM Revision ff2d2fc1 (git): YJIT: omit single ractor mode assumption for `proc#call` (#15092)
- The comptime receiver, which is a proc, is either shareable or from this
ractor so we don't need to assume single-ractor mode. We should never get
the "defined with an un-shareable Proc in a different ractor" error. -
06:58 PM Feature #21693: Allow calling any callable object as a method
- You're very close to valid Ruby with
```
class Greeter
def call(name)
puts "Hello, #{name}!"
end
end
hello = Greeter.new
hello.("World")
```
(Note the 1-character difference here.) Doing `hello.("World")` will a... -
05:36 PM Feature #21693: Allow calling any callable object as a method
- It would be a gigantic incompatibility so there is no chance for that specific syntax, as your example would call method `hello` before and no longer with your proposal.
Just
```ruby
p = 42
p(43)
```
would break for example with th... -
05:54 PM Revision ce73b6c0 (git): ZJIT: Pass the result of GuardNotFrozen to StoreField and WriteBarrier
-
05:54 PM Revision 79633437 (git): ZJIT: Rename the operand of Insn::GuardNotFrozen from val to recv
- * When writing to an object, the receiver should be checked if it's frozen,
not the value, so this avoids an error-prone autocomplete. -
05:54 PM Revision 0e10dfde (git): ZJIT: Inline setting Struct fields
- * Add Insn::StoreField and Insn::WriteBarrier
-
05:31 PM Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
- What are you proposing exactly? A "tool" is very vague.
Do you mean a JIT compiler for Ruby written in Ruby? Something else?
Are you interested in speeding up ERB specifically, or Ruby in general?
Why do you think it would achieve bet... -
02:09 AM Feature #21695: Optimizing Ruby performance with Ruby itself instead of Rust
- I am interested. What kind of API do you need? Since bare memory allocation could break the whole app (leads to DoS), it's not that easy to disclose general purpose memory allocation (that's the reason YJIT, RJIT etc. has their own alloc...
-
04:35 PM Revision f84bbb42 (git): ZJIT: add support for lazy `RubyVM::ZJIT.enable`
- This implements Shopify#854:
- Splits boot-time and enable-time initialization,
tracks progress with `InitializationState` enum
- Introduces `RubyVM::ZJIT.enable` Ruby method for
enabling the JIT lazily, if not already enabled
- I... -
03:34 PM Revision c38486ff (git): ZJIT: Validate types for all instructions
- * This can catch subtle errors early, so avoid a fallback case and
handle every instruction explicitly. -
12:51 PM Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2
- ufuk (Ufuk Kayserilioglu) wrote in #note-1:
> Did 3.5-preview1 have the same behaviour? If not, could you bisect between the two releases to find the commit that changed the behaviour?
Just ran the test, only for the Roda app. Result... -
12:06 PM Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2
- Did 3.5-preview1 have the same behaviour? If not, could you bisect between the two releases to find the commit that changed the behaviour?
-
12:01 PM Bug #21696 (Open): Performance degradation for long running processes in Ruby 4.0.0-preview2
- When running my RubyMeasureResponsetime tool (https://github.com/easydatawarehousing/ruby_measure_responsetime) on Ruby 4.0.0-preview2, a slow but steady performance degradation is measurable.
Both the Rails and the Roda based test appl... -
12:49 PM Revision 522b7d82 (git): [ruby/openssl] ssl: fix test_pqc_sigalg on RHEL 9.7
- RHEL 9.7 ships OpenSSL 3.5.1 with ML-DSA support, but it is disabled
for TLS by default, according to the system configuration file:
/etc/crypto-policies/back-ends/opensslcnf.config
Specify SSLContext#sigalgs to override the default lis... -
12:46 PM Bug #21669: Thoroughly implement void value expression check
- I have an implementation in https://github.com/ruby/prism/pull/3728 (maybe needs more tests)
How about waiting on Ruby 4.1 for this? We can then introduce it early in the development cycle to find potential compatibility concerns. pre... -
12:35 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- The discussion you cited seemed to me to be ignoring the actual problem by pinning the cause solely on ruby's behavior.
You used it to solidify your argument within the ruby community, and even tried to borrow Microsoft's authority to d... -
05:51 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Hi @YO4 - thank you for your reply. I absolutely agree a cooperative approach is best. I am saddened / quite surprised to hear that you think I have criticized someone. I certainly had no intention to do that. If I did then I apologize.
... -
03:33 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Ruby has made significant efforts to achieve cross-platform support at the C level.
This includes compensating for the lack of C runtime libraries.
The statement you quoted is taken out of context and that seems unfair.
The override... -
10:38 AM Revision f168a6d0 (git): [ruby/rubygems] Handle to reverse order result in Ruby 3.2
- https://github.com/ruby/rubygems/actions/runs/19458155903/job/55676075439?pr=3857
```
-Did you mean 'methods' or 'method'?
+Could not find gem 'methosd'.
+Did you mean 'method' or 'methods'?
```
https://github.com/... -
10:38 AM Revision e78a96b7 (git): [ruby/rubygems] Spelling with the latest version of did_you_mean
- https://github.com/ruby/rubygems/commit/d604c1d1cb
-
10:38 AM Revision c87b36ab (git): [ruby/rubygems] bin/rubocop -a
- https://github.com/ruby/rubygems/commit/fee8dd2f08
-
10:38 AM Revision e3c483b5 (git): [ruby/rubygems] Removed unused SimilarityDetector
- https://github.com/ruby/rubygems/commit/40ace48651
- 10:38 AM Revision 2c169e15 (git): [ruby/rubygems] More tests
- https://github.com/ruby/rubygems/commit/210fa87f65
- 10:38 AM Revision 55afec32 (git): [ruby/rubygems] fix tests
- https://github.com/ruby/rubygems/commit/1dc669a0ab
- 10:38 AM Revision dd6ccb44 (git): [ruby/rubygems] Progressively enhance if DidYouMean is available
- https://github.com/ruby/rubygems/commit/a02353fb96
- 10:38 AM Revision 6aa16246 (git): [ruby/rubygems] Rubocop
- https://github.com/ruby/rubygems/commit/a6bc30a827
- 10:38 AM Revision f3e8bc87 (git): [ruby/rubygems] use DidYouMean::SpellChecker for gem suggestions
- replaces Bundler::SimilarityDetector with DidYouMean::SpellChecker
https://github.com/ruby/rubygems/commit/959bea1506 -
09:47 AM Revision a1c76c7e (git): Fixed conflict of vendor_gems.rb
-
09:27 AM Bug #21692: Basic gems like `date` require a compiler
- This might be related to the `--prefer-local` issue:
https://github.com/ruby/rubygems/issues/8750
I suspect there is some problem with the arches of the gems. But I might be wrong. -
02:09 AM Bug #21692: Basic gems like `date` require a compiler
- Ah, it seems this happens on Ubuntu 24.04, without a `Gemfile.lock`, and when the `Gemfile` does not list the indirect dependencies.
I found three workarounds.
### 1\. Add a `Gemfile.lock`
If a proper `Gemfile.lock` is present, ... - 08:43 AM Revision 85abc59c (git): [DOC] Add documentation about Ruby's VM stack
- 08:20 AM Revision f272aabb (git): [ruby/json] Use #if instead of #ifdef when checking for JSON_DEBUG so debugging code is not generated when JSON_DEBUG=0.
- https://github.com/ruby/json/commit/4f1adb10d3
-
07:17 AM Revision 54c07383 (git): [ruby/resolv] Fix syntax error on older versions
- https://github.com/ruby/resolv/commit/599f78c451
- 06:52 AM Revision ccdf83f1 (git): Update bundled gems list as of 2025-11-18
-
05:55 AM Revision 27770210 (git): Downgrade net-http 0.7.0 because JRuby is not working
-
05:55 AM Revision 59461d12 (git): Use released version of net-http-0.8.0
-
05:54 AM Revision 0af941db (git): [ruby/rubygems] Update resolv-0.6.3
- https://github.com/ruby/rubygems/commit/778426fb73
-
05:54 AM Revision 32716e76 (git): [ruby/rubygems] Update optparse-0.8.0
- https://github.com/ruby/rubygems/commit/4e02243f66
-
05:54 AM Revision 8cfed304 (git): [ruby/rubygems] Update fileutils-1.8.0
- https://github.com/ruby/rubygems/commit/f8fe7a5208
-
05:53 AM Revision 6ccc4199 (git): [ruby/rubygems] Update timeout-0.4.4
- https://github.com/ruby/rubygems/commit/b6deff99c9
-
05:53 AM Revision e1303756 (git): [ruby/rubygems] Update URI-1.1.1
- https://github.com/ruby/rubygems/commit/07f2daf51e
-
05:53 AM Revision bfefb205 (git): [ruby/rubygems] Use released version of net-http-persistent-4.0.6
- https://github.com/ruby/rubygems/commit/b237f759b0
-
04:53 AM Revision 5ccaeee2 (git): [ruby/rubygems] Undeprecate `Gem::Version.new(nil)`
- It seems like we were trying to deprecate passing `nil` to
Gem::Version.new. This breaks existing code, and I don't think there is
a good reason to deprecate this usage.
I believe what we want to prevent is the following code:
```ruby... -
03:20 AM Bug #21396: Set#initialize should call Set#add on items passed in
- Eregon (Benoit Daloze) wrote in #note-13:
> jeremyevans0 (Jeremy Evans) wrote in #note-11:
> ...
I submitted a pull request that implements what @knu suggested: https://github.com/ruby/ruby/pull/15228
It allows subclasses to use the... - 02:34 AM Revision b5d0aac9 (git): Bump actions/checkout from 5.0.0 to 5.0.1
- Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v5...v5.0.1)
---
updated-dependen... -
02:32 AM Revision 0ce6eed7 (git): Unskip test_alternative_pattern_nested for MMTk
-
02:32 AM Revision fa8799ca (git): Fix EnvUtil.current_parser for modular GC
- The regexp used in EnvUtil.current_parser did not allow square brackets
for feature names. Modular GC uses square brackets for the GC name (such
as +GC[mmtk]). -
12:19 AM Revision 02279f01 (git): [ruby/rubygems] Removed deprecated -C option from gem build
- https://github.com/ruby/rubygems/commit/3471646d43
11/17/2025
-
10:57 PM Revision 093dbbbd (git): [ruby/rubygems] Removed unused deprecate loading
- https://github.com/ruby/rubygems/commit/a49d315ecd
-
10:52 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Hi @mame - Thank you for your response and I am sorry that you feel that way, that was not my intention. I very much appreciate your help and our discussion. Maybe we can try again?
I see the problem is that Ruby exports overridden C ru... -
09:21 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I feel your communication on this ticket suffers from what is known as the [XY problem](https://en.wikipedia.org/wiki/XY_problem). You are focusing on your proposed solution ("remove the override"), without first detailing the original p...
-
07:14 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I agree having one UCRT is best. But the very first sentence in the paragraph I linked to says:
> Every executable image (EXE or DLL) can have its own statically linked CRT, or can dynamically link to a CRT. The version of the CRT stati... -
07:00 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I commend YO4-san for their insight into the debug/release build discrepancy.
I'm now convinced the root cause is loading multiple runtimes. Therefore, I agree with @nobu's fix: we should prohibit loading multiple runtime versions, no... -
04:37 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- @nobu - When developing an extension it can be very helpful to use a debug build. A runtime check would prohibit that, unless you also make a debug version of ruby. But that seems like a lot of unnecessary overhead.
In addition, it wo... -
04:09 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- cfis (Charlie Savage) wrote in #note-21:
> Summary - don't pass memory/crt objects across boundaries. By overriding `fclose` and other UCRT functions Ruby causes this to happen.
Yes for the former half.
It is the reason we embed the CRT... -
02:19 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Ah yes, you are correct @YO4.
I used MSVC 2026 to build both Ruby and the extension (a dll). By default Ruby builds with /Md. This is the generated `Makefile.sub` in the win32 directory:
```
!if !defined(RUNTIMEFLAG)
RUNTIMEFLAG = -M... -
09:28 PM Revision 7482835d (git): Avoid spawning thread for trivial getnameinfo calls
- When calling getnameinfo we spawn a thread because it may do a slow,
blocking reverse-DNS lookup. Spawning a thread is relatively fast (~20µs
on my Linux machine) but still an order of magnitude slower than when
getnameinfo is simply tra... -
08:01 PM Feature #21695 (Open): Optimizing Ruby performance with Ruby itself instead of Rust
- I am using ERB on top of C for a game I am making now. We can use the tool to improve the productivity, memory safety, and runtime speed for Ruby. It can also replace a Rust JIT compiler for better results. The only problem is that it...
-
07:01 PM Bug #21694 (Open): Crash when looking up super method from BasicObject
- Initially reported on Reddit by easydwh https://old.reddit.com/r/ruby/comments/1ozhupr/is_a_ruby_segmentation_fault_a_bug_if_you_are/
Repro:
```ruby
class BasicObject
def basic_call_no_super
super
end
end
"test".bas... -
06:53 PM Bug #21692: Basic gems like `date` require a compiler
- mame (Yusuke Endoh) wrote in #note-1:
> I think what you want is `bundle install --prefer-local`. (I wonder why this option is not the default.)
Unfortunately this does not seem to work for me.
```
$ gem list | grep date
date (default:... -
06:11 PM Bug #21692: Basic gems like `date` require a compiler
- I think what you want is `bundle install --prefer-local`. (I wonder why this option is not the default.)
-
05:12 PM Bug #21692 (Open): Basic gems like `date` require a compiler
- I'm trying to use Ruby in a high security environment which does not allow a compiler to be installed. This was easy years ago when all of standard library was included with Ruby itself and I could use `apt install ruby`. But as the stan...
-
06:46 PM Revision c0256d1d (git): [DOC] Update GC.stat and GC.stat_heap documentation
- I noticed some of the keys have been gone or renamed for a while.
-
06:29 PM Feature #21693 (Open): Allow calling any callable object as a method
- Callable objects are popular in Ruby. A very common pattern of Service objects with a single public `call` method can be found in many Rails apps, too.
I propose to extend syntax so that adding `()` to any object that has a `call` met... - 06:01 PM Revision f9e31f43 (git): [ruby/time] Defer default year for zone_offset until needed
- While parsing ISO 8601 timestamps like `2025-11-13T19:34:23.681726000Z`
I noticed that a lot of time was spent to compute a default `year`
argument to `zone_offset`. For ISO 8601, that year is never used, as
all valid time zone designato... - 03:53 PM Revision 371a295e (git): Fix improper termlen fill in `str_duplicate_setup_embed`.
- When term len != 1 (for example: Encoding::UTF32BE), term fill is wrong size.
-
03:14 PM Revision 9de66a8c (git): [ruby/prism] Remove now obsolete todos
- https://github.com/ruby/prism/commit/b00d098f9a
-
03:11 PM Revision d66b37e3 (git): Remove alternation pattern matching handling from the prism compiler
- Since https://github.com/ruby/ruby/pull/15212 these are proper syntax
errors, so no need to handle this explicitly anymore.
Also updated the example in the docs for this -
01:30 PM Revision a0ef2366 (git): remove old code
-
01:27 PM Bug #21168: Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does
- PR: https://github.com/ruby/ruby/pull/15217
-
01:20 PM Bug #21691 (Open): On Windows some of binary read functions of IO are not functional
- When using the binary read method of IO on a file containing “\r\n”, it should read “\r”, but some methods do not function correctly on Windows.
```ruby
File.binwrite("crlf.txt", "\r\n")
methods = {
readn: proc { |f| f.read(1) },... -
12:47 PM Bug #21687: IO#pos goes wrong after EOF character(ctrl-z) met.
- I made PR [#15216](https://github.com/ruby/ruby/pull/15216) for main issue.
After some investigation, it appears the case with #note-1 is mainly related to the behavior of eof(), so it seems appropriate to address it in #21634. -
12:39 PM Revision 4fa6e993 (git): strnlen is not used now
-
12:34 PM Revision 3bbd45dd (git): Fix `RUBY_API_VERSION_NAME` fallback definition
-
11:15 AM Misc #21690 (Open): Inconsistent `rb_popcount64()` definition
- The `rb_popcount64()` function is defined both in `internal/bits.h` and `parser_bits.h`, but the definition of these functions is different on the `#else` branch.
```c
// internal/bits.h
static inline unsigned int
rb_popcount64(uin... -
09:22 AM Bug #21375: Set[] does not call #initialize
- I should also mention for the concurrent-ruby case that using `::Set` on Ruby 4+ is not an option because it's not thread-safe enough:
https://github.com/ruby-concurrency/concurrent-ruby/issues/1093#issuecomment-3540742547 -
08:46 AM Bug #21375: Set[] does not call #initialize
- This change also breaks concurrent-ruby: https://github.com/ruby-concurrency/concurrent-ruby/actions/runs/19414490796/job/55540724035
https://github.com/ruby-concurrency/concurrent-ruby/issues/1093
The code relying on it seems pretty re... -
09:03 AM Bug #21396: Set#initialize should call Set#add on items passed in
- jeremyevans0 (Jeremy Evans) wrote in #note-11:
> knu (Akinori MUSHA) wrote in #note-10:
> ...
Yes, this sounds like a good way, it avoids breaking code and keeps performance optimal for Set.
The only downside is some extra complexity ... -
08:54 AM Misc #21689: DevMeeting-2025-12-11
- * [Bug #21375] Set[] does not call #initialize (eregon)
* This broke concurrent-ruby and there is no good fix.
* I believe Set[] should call #initialize, it's simple and avoids a major breaking change. The performance impact seems in... -
02:05 AM Misc #21689 (Open): DevMeeting-2025-12-11
- # The next dev meeting
**Date: 2025/12/11 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and o... -
08:06 AM Revision c32eb727 (git): The prev_ver of 4.0.0 is 3.4.0
-
07:08 AM Revision 3d8dfbf5 (git): Skip TestCommitEmail if git is not available.
- https://github.com/ruby/actions/actions/runs/19420968008/job/55558315338
```
1) Error:
TestCommitEmail#test_sendmail_encoding:
Test::Unit::ProxyError: No such file or directory - git
/home/runner/work/actions/actions/ruby-... -
02:30 AM Revision 8d010582 (git): Handle deeply nested capture variables syntax err
- When there are nested capture variables inside of a pattern match
that has an alternation pattern, it is a syntax error. Currently it
only adds a syntax error when it is at the top level of the pattern. -
02:28 AM Bug #20907: Fiber scheduler does not correctly re-lock mutex if `Mutex#sleep` is interrupted.
- Cross referencing: https://github.com/socketry/async/issues/424
-
02:04 AM Misc #21647 (Closed): DevMeeting-2025-11-13
11/16/2025
- 11:49 PM Revision 4870fbd0 (git): vm_dump.c: unbreak unwind on powerpc (#14650)
-
11:23 PM Revision bdeee701 (git): Avoid allocating intermediate string in zone_str
-
09:27 PM Revision 3cd30814 (git): [DOC] Tweaks for String#unicode_normalize!
-
09:26 PM Revision 17f3588a (git): [DOC] Tweaks for String#unicode_normalized?
-
09:26 PM Revision 43e26d02 (git): [DOC] Tweaks for String#unpack
-
09:24 PM Revision 00521434 (git): [DOC] Tweaks for String#unpack1
-
02:52 PM Bug #21634: Combining read(1) with eof? causes dropout of results unexpectedly on Windows.
- @nobu, I had not correctly understood the 'rt' case in #note-2.
In the case where 'universal_newline: true' attribute, Ctrl-Z is not interpreted as an EOF, so I believe the behavior you pointed out is correct.
```
> ruby -ve "open('eo... -
02:31 PM Misc #21688 (Open): Ruby::Box maturing path
- A quick couple of questions in the light of upcoming Ruby 4.0 release and `Ruby::Box` being available there (even if as an experimental feature):
1. Should the documentation of the class be available as RDoc? I mean, as standard class... -
02:07 PM Bug #21687: IO#pos goes wrong after EOF character(ctrl-z) met.
- Here is additional issue.
When an intermediate EOF character met, reading operation reports EOF but sometimes IO#eof? does not.
```ruby
require 'tempfile'
Tempfile.open do |f|
str = "0123456789\x1A"
f.write(str + "x"*(1024_0 ... -
08:23 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- If `rb_win32_fclose` calls ucrt's `fflush`/`fclose`, it's questionable why it doesn't work. Is it truly calling the same ucrts?
The screenshot suggests the C++ code is built in Debug build. From the C++ code, the the ucrt debug DLL migh... -
05:40 AM Bug #21686: In combination with IO#ungetbyte, the write position may become unpredictable.
- As proposed in this issue, resolving this problem required determining a solution strategy across multiple methods with considering compatibility.
While I'm only an external contributor and not a core team member, I'll boldly say that...
11/15/2025
-
09:24 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- Thank you @mame an @nobu for looking into this.
@mame I don't know why the override doesn't work. The calling C++ code is from `Microsoft Visual Studio\18\Insiders\VC\Tools\MSVC\14.50.35717\include\__msvc_filebuf.hpp`:
``` cpp
_EXPO... -
07:59 PM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- cfis (Charlie Savage) wrote in #note-15:
> When I step through with a debugger, this line forces an early return from the function. So fclose is never called.
> ...
Thank you for debugging. The early return (not calling `fclose` when `... -
05:58 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I gave a try to @nobu's code above (https://bugs.ruby-lang.org/issues/21498#note-9).
That results in a linker error:
``` bash
linking shared-object -test-/gvl/call_without_gvl.so
Creating library call_without_gvl-x64-mswin64_140.l... -
05:21 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- I have attached the "good" file and the "bad" file. The good file is generated by rewriting the extension to not use fclose, and thus not have the call go through `rb_w32_fclose`. The bad file is generated by using flcose which does end ...
-
04:50 AM Bug #21498: Windows - Ruby Overrides C Library APIs thus breaking them
- When I step through with a debugger, this line forces an early return from the function. So fclose is never called.
https://github.com/ruby/ruby/blob/master/win32/win32.c#L6627
``` cpp
if (fflush(fp)) return -1;
```
-
09:02 PM Revision bacd3562 (git): Remove dead IBF_OBJECT_INTERNAL
-
06:39 PM Bug #21686: In combination with IO#ungetbyte, the write position may become unpredictable.
- #20919 may be related. If the PR for this issue is accepted, it likely determines how that issue should be addressed. There's already a PR that is several months old associated with it.
-
04:30 PM Bug #21686: In combination with IO#ungetbyte, the write position may become unpredictable.
- I made [PR #15204](https://github.com/ruby/ruby/pull/15204)
## Changed and Unchanged
The behavior of this PR is listed below.
Since IO#ungetc has a different file position behavior when combined with encoding conversion, IO#getbyt... -
03:58 PM Bug #21686 (Open): In combination with IO#ungetbyte, the write position may become unpredictable.
- In the current implementation, using `IO#ungetbyte` can cause `IO#pos` to become negative.
Writing to the same file descriptor in this state will result in unexpected write positions.
```ruby
require 'tempfile'
Tempfile.open do |... -
04:59 PM Bug #21687 (Open): IO#pos goes wrong after EOF character(ctrl-z) met.
- In Windows environment, when opening a file with the "r", encountering an EOF character (Ctrl-Z, "\x1A") during reading causes the IO to report END-OF-FILE.
```ruby
require 'tempfile'
Tempfile.open do |f|
str = "0123456789\x1A"... -
01:50 PM Revision 9e8a661f (git): [ruby/stringio] [DOC] Fix #seek link
- (https://github.com/ruby/stringio/pull/174)
Method #seek deserves (and will get) documentation independent of that
in class IO.
Meanwhile, the link should go someplace sensible and useful.
https://github.com/ruby/stringio/commit/d0265... -
01:49 PM Revision abf30563 (git): [ruby/stringio] [DOC] Doc for StringIO.size
- (https://github.com/ruby/stringio/pull/171)
https://github.com/ruby/stringio/commit/95a111017a -
01:48 PM Revision b5c92696 (git): [ruby/stringio] [DOC] Tweaks for StringIO#each_line
- (https://github.com/ruby/stringio/pull/165)
Adds to "Position": pos inside a character.
Makes a couple of minor corrections.
---------
https://github.com/ruby/stringio/commit/ff332abafa
Co-authored-by: Sutou Kouhei <kou@cozmixng.org> -
03:23 AM Revision 577cf5e3 (git): [DOC] Remove an obsolete file
- It has been merged into `doc/ruby/options.md` with
`field_processing.md` at ruby/ruby#10138. -
02:04 AM Revision 70b49b65 (git): refactor io_each_codepoint
-
01:18 AM Revision f1765cd4 (git): [Doc] Remove leftover references to namespace from box.md
- And fix the indentation a little bit, since `box` is one character
longer than `ns`. -
12:34 AM Revision d7369f02 (git): ZJIT: Add individual tests for complex arg pass counters
- Make it easier to see what happens when one is changed.