Activity
From 12/06/2023 to 12/12/2023
12/12/2023
-
11:47 PM Revision 2350c794 (git): Use xfree for IO::Buffer
- Since IO::Buffer is allocated using TypedData_Make_Struct, it must use
xfree to free the buffer otherwise it will cause more major GC to run.
Example:
```
10.times do
1_000_000.times { IO::Buffer.new(0) }
puts "oldmalloc_increase_... -
10:32 PM Revision 18a5b6b7 (git): [DOC] RDoc for Complex
-
10:24 PM Revision 9f77eb1f (git): Remove unused macros
-
10:10 PM Revision d4bbee74 (git): YJIT: Fix off-by-one in Kernel#send type handling (#9212)
- Previously, if the method ID argument happens to be on one below the top
of the stack, we didn't overwrite the type of the stack slot, which
leaves an incorrect type for the stack slot. The included script tripped
asserts both with and w... -
09:01 PM Revision 6e491cae (git): Move --repeat-count=2 job to macos-arm-oss (#9208)
-
08:15 PM Revision a6526342 (git): [PRISM] Fix segv with regex once flag
- When you have an interpolated regex with a `once` flag and local
variable is outside the block created by the `once` flag, Prism would
see a segv. This is because it was not taking the depth into account.
To fix this, we need to add 1 t... -
07:49 PM Revision 1572322e (git): Sync with upstream rubygems (#9206)
-
07:45 PM Revision 0366c424 (git): Remove a duplicated job
- This was first added in b481b673d75, but 197e91f357 added
-DUNIVERSAL_PARSER to the Compilers workflow as well.
Given the nature of this test and the fact that it also runs make
test-all besides make test, I think it's better to keep on... -
07:19 PM Revision fd7decbf (git): Allow syncing tool/bundler
-
06:46 PM Revision 43ede3f2 (git): [PRISM] Compile NextNode arguments
-
06:46 PM Revision d1cf793a (git): [ruby/irb] Remove documents about deprecated/WIP features and some
- slight adjustments
(https://github.com/ruby/irb/pull/811)
https://github.com/ruby/irb/commit/6a9193e88b -
06:45 PM Revision b9dfe04a (git): [PRISM] Implementing forwarding of args for ForwardingSuperNode
- ForwardingSuperNodes need to actually forward any applicable
arguments. This commit implements that logic, by using the data
stored on the local iseq about the parameters to forward the
appropriate arguments. -
06:45 PM Revision 68753e44 (git): [PRISM] Allow rest parameter to be `*`
- Prior to this commit, if a rest parameters was `*`, we did not add
it to the locals table correctly. This commit fixes that. -
06:44 PM Bug #19114 (Closed): Calling TracePoint#enable multiple times causes TracePoint to be activated multiple times
- Applied in changeset commit:git|06e2fbb8260022de8532d2e940fc69e8ea413679.
----------
[Bug #19114] Fix for multiple calls of TracePoint#enable -
06:43 PM Revision f61df27b (git): [ruby/prism] Use new flag setters for attribute write
- https://github.com/ruby/prism/commit/1e07832778
-
05:36 PM Revision 06e2fbb8 (git): [Bug #19114] Fix for multiple calls of TracePoint#enable
- 05:35 PM Revision 1f22245e (git): [ruby/prism] Start using flag macros/methods exclusively
- https://github.com/ruby/prism/commit/5f05a6fe83
- 05:35 PM Revision bdb38dd9 (git): [ruby/prism] Add methods for setting/unsetting and macros for testing a flags
- https://github.com/ruby/prism/commit/e5f37d1407
-
05:16 PM Revision 67940b13 (git): [rubygems/rubygems] Bump rake version used by tests
- And make it easier to update next time.
https://github.com/rubygems/rubygems/commit/1ea4bfa5d8 -
03:55 PM Revision 278ce27e (git): [ruby/prism] Flag for attribute write on calls
- https://github.com/ruby/prism/commit/465731969c
-
03:50 PM Bug #20061: test_free_on_exit_env_var failed with some cppflags
- Thank you for reporting this bug. I have a fix here: https://github.com/ruby/ruby/pull/9202
-
02:17 AM Bug #20061 (Closed): test_free_on_exit_env_var failed with some cppflags
- I use following `cppflags`, and `TestRubyOptions#test_free_on_exit_env_var` failed.
```
../configure 'cppflags=-DUSE_RVARGC -DRUBY_DEBUG -DVM_CHECK_MODE=1 -DTRANSIENT_HEAP_CHECK_MODE -DRGENGC_CHECK_MODE -DENC_DEBUG -DUSE_RUBY_DEBUG_L... -
03:35 PM Bug #20051 (Closed): Op asgn calls handle keywords and keyword splats as positional arguments
- Applied in changeset commit:git|2f1d6da8c45590bf3461ed4bf051a4e1009eaf85.
----------
Fix op asgn calls with keywords
Examples of such calls:
```ruby
obj[kw: 1] += fo
obj[**kw] &&= bar
```
Before this patch, literal keywords would seg... -
03:34 PM Revision 2f1d6da8 (git): Fix op asgn calls with keywords
- Examples of such calls:
```ruby
obj[kw: 1] += fo
obj[**kw] &&= bar
```
Before this patch, literal keywords would segfault in the compiler,
and keyword splat usage would result in TypeError.
This handles all cases I can think of:
* li... -
03:26 PM Revision f671c5d1 (git): [rubygems/rubygems] Make RubyDsl a little easier to read; avoid a Hash sometimes
- https://github.com/rubygems/rubygems/commit/2dca83722b
-
02:57 PM Revision f466afa1 (git): [PRISM] Do not hide syntactically required parentheses within macros
- It makes code formatters confused when auto indenting.
-
02:07 PM Feature #20057: Change behaviour of rb_register_postponed_job for Ruby 3.3
- > There was, afaict, at least one gem (`gctools`) which did actually want to call the same function with a different callback at various points in the program. A previous version of the patchset I proposed did actually "allow registering...
-
02:01 PM Revision 185b7e92 (git): Make WeakKeyMap safe for compaction during allocation
- During allocation, the table may not have been allocated yet which would
crash in the st_foreach. -
02:01 PM Revision 33cf8f64 (git): Make WeakMap safe for compaction during allocation
- During allocation, the table may not have been allocated yet which would
crash in the st_foreach. -
01:32 PM Misc #20035: Command-line settings move from parser to compiler
- I don't think you would have to pass all of the options, I think the only thing you would need to pass is "this is inside a while loop" in order to set up `allow_block_exit` properly.
-
02:36 AM Misc #20035: Command-line settings move from parser to compiler
- Do you mean passing these to both of the parser and the compiler?
- 01:05 PM Revision d313c82f (git): [ruby/prism] Update tests and snapshots
- https://github.com/ruby/prism/commit/0663e2bcfa
- 01:05 PM Revision 43229d53 (git): [ruby/prism] Start `KeywordHashNode`s with `STATIC_KEYS` set, until hit an element that should clear it
- https://github.com/ruby/prism/commit/7c7c486507
- 01:05 PM Revision 25b9a0cb (git): [ruby/prism] Add `STATIC_KEYS` flag for `KeywordHashNode`
- https://github.com/ruby/prism/commit/aa83de39c1
-
12:40 PM Revision d1c25605 (git): [rubygems/rubygems] Resolve `ruby file: ".ruby-version"` relative to Gemfile
- https://github.com/rubygems/rubygems/commit/0cbbaed8a5
-
11:27 AM Revision 28a9a427 (git): [ruby/irb] Remove trailing space
- This is required to fix ruby/ruby's CI
https://github.com/ruby/irb/commit/3c77213209 -
10:34 AM Revision 35990cb3 (git): [ruby/irb] [DOC] RDoc for module IRB
- (https://github.com/ruby/irb/pull/738)
[DOC] RDoc for module IRB
https://github.com/ruby/irb/commit/f3a0626298 -
09:07 AM Misc #20032 (Closed): Propose @kjtsanaktsidis as a commiter
- Everything looks to be working great, thank you for getting it all set up.
-
06:34 AM Misc #20032: Propose @kjtsanaktsidis as a commiter
- I've finished to setup your account.
If you have any issues, please let me know. -
09:05 AM Bug #20048 (Closed): UDPSocket#remote_address spec errors - Applied in changeset commit:git|25711e7063060920d14e42a530da6f7198926629.
----------
Partially revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls"
This _partially_ reverts commit
d2ba8ea54a4089959afdeecdd963e3c4ff391748, but fo... - 09:05 AM Revision 25711e70 (git): Partially revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls"
- This _partially_ reverts commit
d2ba8ea54a4089959afdeecdd963e3c4ff391748, but for UDP sockets only.
With TCP sockets (and other things which use `rsock_init_inetsock`), the
order of operations is to call `getaddrinfo(3)` with AF_UNSPEC,... -
07:56 AM Bug #20060: bundled_gems.rb is not working with Bootsnap
- https://github.com/ruby/ruby/pull/9198
-
12:00 AM Bug #20060 (Closed): bundled_gems.rb is not working with Bootsnap
- Addressed from https://github.com/ruby/ruby/pull/9163#issuecomment-1850924893
`bundled_gems.rb` of 3.3.0-rc1 couldn't handle full paths by Bootsnap.
```
$ rails new example
(snip)
rails importmap:install
bin/rails abort... - 06:58 AM Revision f64485af (git): Update bundled gems list as of 2023-12-12
-
06:40 AM Revision e411bd5b (git): [ruby/securerandom] [DOC] Satisfy RDoc coverage
- https://github.com/ruby/securerandom/commit/ddf2672e47
-
06:40 AM Revision dbd704ae (git): [ruby/securerandom] [DOC] Add documents of methods and constants
- https://github.com/ruby/securerandom/commit/9a99978135
-
06:36 AM Revision cb93d10a (git): [ruby/securerandom] [DOC] Improve the document about reproducibility of uuid_v7
- https://github.com/ruby/securerandom/pull/19/files#r1329476195
https://github.com/ruby/securerandom/commit/156cbb8448 -
06:32 AM Bug #20056 (Closed): Dir#chdir inconsistency with Dir.chdir
- Fixed by commit:f49af3c969eb7ba9937514a229b49e5b7d91f0f1
-
06:31 AM Revision f49af3c9 (git): Make Dir#chdir never yield args, and return block return value
- If no block is given, return 0 instead of nil for consistency
with Dir.chdir and Dir.fchdir. -
06:29 AM Feature #20049: Destructive drop_while for Array and Hash
- Started a PR in github: https://github.com/ruby/ruby/pull/9193
-
05:12 AM Revision 9f0065a0 (git): Initialize interrupt queue before signal handlers (#9196)
-
02:55 AM Bug #20058: `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- Thanks for the info. Opened https://github.com/rails/rails/pull/50331 to pin the bigdecimal version.
-
02:23 AM Bug #20058: `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- Alternative fix is to specify `"bigdecimal", "3.1.4"` into rails dependencies.
-
02:39 AM Revision 1e5c8afb (git): [rubygems/rubygems] Ensure that the lockfile mtime is not altered on frozen install
- https://github.com/rubygems/rubygems/commit/6847709ee0
-
02:22 AM Revision 6b3abcf4 (git): fix regexp pattern of diff
-
02:10 AM Revision e223dde3 (git): [rubygems/rubygems] Allow bundle pristine to run in parallel
- Also fix running when BUNDLE_NO_INSTALL happens to be set, same as with install/update commands
https://github.com/rubygems/rubygems/commit/a555fd6ccd -
02:06 AM Revision 305f66b8 (git): Save $VERBOSE properly
-
01:37 AM Bug #20050: Segfault on Ruby 3.2.2 (and 3.1) on x86_64 Darwin 20 (rb_id_table_lookup for #hash)
- We updated the code, guessing that overriding .new on NameTuple was causing something weird. This new segfault happened again but with no patch applied to NameTuple new/initialize because of a guard. I don't know where to go from here.
... -
01:31 AM Revision 73b43fff (git): Prevent a warning: assigned but unused variable - status
-
01:31 AM Revision 207dcf07 (git): Prevent a warning: method redefined
-
01:31 AM Revision cfb8494d (git): Prevent warning: possibly useless use of a literal in void context
-
01:31 AM Revision 0c287df3 (git): Prevent a warning: setting Encoding.default_external
-
01:31 AM Revision 535eb4de (git): Remove unused statement
- ... to disable a warning: assigned but unused variable - expected
- 01:08 AM Revision 6414f260 (git): [rubygems/rubygems] Refactor: Wrap filesystem access
- https://github.com/rubygems/rubygems/commit/119d4bdc09
- 01:08 AM Revision 0653fb02 (git): [rubygems/rubygems] Refactor: Move filesystem access into Definition class
- https://github.com/rubygems/rubygems/commit/2720da2659
- 01:08 AM Revision 0ec88b54 (git): [rubygems/rubygems] bundle lock: Always touch the lockfile
- https://github.com/rubygems/rubygems/commit/fd2e71dfdb
-
01:04 AM Revision 8c2480c9 (git): Unlock tilt since we no longer support Ruby 2.6
-
01:04 AM Revision a848c070 (git): [rubygems/rubygems] Remove doc not adding much value
- https://github.com/rubygems/rubygems/commit/c241a88962
-
01:04 AM Revision 0e05392d (git): [rubygems/rubygems] Make tests compatible with paths that contain a + char
- https://github.com/rubygems/rubygems/commit/3355c80c90
-
01:04 AM Revision 3b9ea664 (git): [rubygems/rubygems] Use StringIO 3.1.0 in tests to work with ruby 3.3.0
- https://github.com/rubygems/rubygems/commit/8a936d733d
-
01:04 AM Revision 0b24c71a (git): [rubygems/rubygems] Improve enabling bundled gems warnings
- https://github.com/rubygems/rubygems/commit/7be5b40ca9
-
01:04 AM Revision a06bf001 (git): [rubygems/rubygems] Remove non-transparent requirement added to prerelease gems
- I think we can safely assume these days that all RubyGems and Bundler
versions that will ever bundle a new gem created in 2023 support
prereleases.
So this non transparent requirement is not necessary.
In my opinion, it should be the g... - 01:04 AM Revision b37288c0 (git): [rubygems/rubygems] Make the "auto-user-install" logic easier to follow
- https://github.com/rubygems/rubygems/commit/4b4d9c0106
-
01:04 AM Revision c032dfb5 (git): [rubygems/rubygems] Fix installing from source when same bundler version already a default gem
- https://github.com/rubygems/rubygems/commit/620119308e
-
01:04 AM Revision 23289ad4 (git): [rubygems/rubygems] Extract some common strings to variables
- https://github.com/rubygems/rubygems/commit/48bc573310
-
01:04 AM Revision a811ebf3 (git): [rubygems/rubygems] Revert missing extensions patch
- https://github.com/rubygems/rubygems/commit/4016c6c024
-
12:39 AM Revision 38348502 (git): [DOC] Update description about shared library suffix
- Loading an extension library with ".dll" suffix on Windows was very
old behavior, and the suffix must be ".so" since 2004. See commits
removing DLEXT2 181a3a2af5df88d145b73a060d51fe437c8c4ad4 and
b76ad15ed0da636161de0243c547ee1e6fc95681... -
12:21 AM Revision 4eca329d (git): Skip a YJIT test on RJIT
-
12:21 AM Revision 9cb0ad86 (git): YJIT: Fix missing arity check for splat calls to methods with optionals
- Previously, for splat callsites that land in methods with optional
parameters, we didn't reject the case where the caller supplies too many
arguments. Accepting those calls previously caused YJIT to construct
corrupted control frames, wh... -
12:21 AM Revision 47553094 (git): YJIT: Rename helper function and correct counter name
- Counter::guard_send_iseq_has_rest_and_splat_not_equal was using
jump-if-lesser-than, so wasn't checking for equality. Rename function
because moving is destructive in Rust, which is confusing for this function
which doesn't modify the ar... -
12:14 AM Revision 9765ada6 (git): Fix NoMethodError on fail
- ```
.../tool/lib/colorize.rb:56:in `resolve_color': undefined method `gsub' for an instance of Symbol (NoMethodError)
color.gsub(/\b[a-z][\w ]+/) do |n|
^^^^^
from .../tool/lib/colorize.rb:47:in `decorate'
f... -
12:05 AM Bug #20059: TracePoint#enable can be called multiple times, increasing the number of invokations
- Is this issue the same as #19114?
I have created a pull request for the fix at https://github.com/ruby/ruby/pull/8993.
Does this resolve the problem?
12/11/2023
-
11:40 PM Feature #20057: Change behaviour of rb_register_postponed_job for Ruby 3.3
- > Is it necessary to change the data for an existing callback?
There was, afaict, at least one gem (`gctools`) which did actually want to call the same function with a different callback at various points in the program. A previous ve... -
10:40 AM Feature #20057: Change behaviour of rb_register_postponed_job for Ruby 3.3
- Is it necessary to change the data for an existing callback?
Alternatives I can think of:
* Return error code if the callback is already registered.
* Allow registering multiple times the same callback.
From reading the description... -
03:33 AM Feature #20057: Change behaviour of rb_register_postponed_job for Ruby 3.3
- Sorry, I linked the wrong PR - the correct one is https://github.com/ruby/ruby/pull/8949. Updated the description.
-
03:15 AM Feature #20057 (Closed): Change behaviour of rb_register_postponed_job for Ruby 3.3
- This ticket is to discuss some changes to `rb_register_postponed_job` that @ko1 and myself propose to make for Ruby 3.3. The motivation for this work is to fix a bug in the current implementation, which can cause the registered functions...
-
11:14 PM Revision 505715dd (git): [rubygems/rubygems] Fewer allocations in gem installation
- For now, on a small rails app I have hanging around:
```
==> memprof.after.txt <==
Total allocated: 872.51 MB (465330 objects)
Total retained: 40.48 kB (326 objects)
==> memprof.before.txt <==
Total allocated: 890.79 MB (1494026 objec... -
10:30 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- zverok (Victor Shepelev) wrote in #note-9:
> Or do you plan the deeper refactoring soon?
Yes. I'll work on a pull request tonight. The refactoring necessary is not extensive. -
10:21 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- > It does fix the block return value, but doesn't fix the Dir#chdir block yielding the path if fchdir is not supported.
I understand that. But for now, just fixing the return value (while ignoring args inconsistency) before 3.3 seems... -
10:18 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- zverok (Victor Shepelev) wrote in #note-7:
> This is simply fixed by `return`ing what the called method have returned, right? Whatever the implementation is chosen.
It's not that simple. It does fix the block return value, but doesn'... -
10:14 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- > That's more or less the same diff I came up with before I determined we need more refactoring so that `Dir#chdir` never yields an argument to the block.
I provided the diff to solve return value problem for the **block form**. Which... -
10:09 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- zverok (Victor Shepelev) wrote in #note-5:
> On the other hand, the return value of the block in `#chdir` case should be fixed, don't you think? I think this should do, probably...
That's more or less the same diff I came up with bef... -
09:02 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- > Not passing an argument to the block in the Dir.fchdir or Dir#chdir case makes sense to me.
Yup, I can see the reasoning, that's why I don't think it is a big problem. (I thought that may be passing `self`, i.e. an instance of `Dir`... -
08:53 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- Not passing an argument to the block in the Dir.fchdir or Dir#chdir case makes sense to me. A directory may not even know the path (e.g. `Dir.for_fd(dir_fd).chdir`), and yielding the file descriptor doesn't seem helpful (plus it isn't po...
-
08:31 PM Bug #20056 (Open): Dir#chdir inconsistency with Dir.chdir
- Actually, I found _another_ inconsistency while writing docs. Not sure it is worth fixing, but still somewhat confusing:
```ruby
Dir.chdir('doc') do |*args|
p args #=> ["doc"]
"res"
end.tap { p _1 } #=> "res"
Dir.new('doc')... -
08:19 AM Bug #20056 (Closed): Dir#chdir inconsistency with Dir.chdir
- > Dir#chdir implicitly calls Dir.chdir or Dir.fchdir with the passed block, so the block form does work, but it apparently is not documented:
Ugh, indeed. My bad. Instead of checking manually, just looked in the code and didn't saw an... -
10:27 PM Misc #20032: Propose @kjtsanaktsidis as a commiter
- @hsbt done, thank you.
-
10:13 PM Revision 4a94ce85 (git): [DOC] Fix RDoc to match actual Kenrel.require behavior (#9180)
-
10:04 PM Revision 69d60cc6 (git): [PRISM] Properly compile MultiTargetNodes within parameters
- If there are MultiTargetNodes within parameters, we need to
iterate over them and compile them individually correctly, once
the locals are all in the correct spaces. We need to add one
getlocal for the hidden variable, and then can recur... -
10:04 PM Revision 5c8e1911 (git): [PRISM] Fixed rest in MultiTargetNodes
-
10:04 PM Revision aaeccc29 (git): [PRISM] Correctly implemented forwarding parameters in methods
-
10:04 PM Revision 85ad5be9 (git): [PRISM] Restructure parameters on ScopeNodes
- This commit completely restructures how we handle parameters. The
motivation for this commit was the fix compilation of MultiTargetNodes
within parameters, including nested MultiTargetNodes. A subsequent
commit will actually do the compi... -
09:42 PM Bug #20059: TracePoint#enable can be called multiple times, increasing the number of invokations
- IIRC the tracepoints are just added to a linked list. There's probably no validation as to whether or not that tracepoint has already been added to the linked list (and we just need to do that book keeping)
-
09:18 PM Bug #20059 (Closed): TracePoint#enable can be called multiple times, increasing the number of invokations
- I just stumbled upon this accidentally (created a tracepoint with `TracePoint.trace`, and then `enable`d it).
My initial example
```ruby
trace = TracePoint.trace(:raise) do |tp|
puts "Exception raised: #{tp.raised_exception.inspe... -
08:51 PM Bug #20058: `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- I'm also trying to improve this in upstream Bundler at https://github.com/rubygems/rubygems/pull/7242.
-
10:46 AM Bug #20058 (Assigned): `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- Thank you for confirming that. I keep to open this issue until bigdecimal release.
-
10:01 AM Bug #20058: `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- Confirmed by using the master branch of bigdecimal addresses the warning.
```
$ ruby -v ; ruby foo.rb
ruby 3.3.0dev (2023-12-08T11:25:04Z master cc9826503d) [x86_64-linux]
Fetching https://github.com/ruby/bigdecimal.git
Fetching h... -
09:56 AM Bug #20058: `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- Thanks for the update. I wanted `bigdecimal` 3.1.5 is released because Rails CI fails https://buildkite.com/rails/rails/builds/102621 if any of these warnings appears.
-
09:52 AM Bug #20058: `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- see https://github.com/ruby/ruby/pull/9163#issuecomment-1846994447
It will be resolved with bigdecimal-3.1.5 release. -
09:21 AM Bug #20058 (Closed): `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry
- `warning: bigdecimal/util is found in bigdecimal` warning since https://github.com/ruby/ruby/commit/cc9826503d989df877adbcd94d39a6ff78d0b785
### Steps to reproduce
- `foo.rb`
```
# frozen_string_literal: true
require "bundler/in... -
08:38 PM Revision e1d995a9 (git): [DOC] Complex doc (#9185)
-
08:01 PM Bug #19683: ruby-3.3.0-preview1 does not build with BSD make without --with-baseruby
- This was still a problem in 3.3.0-preview3, and is still a problem in 3.3.0-rc1. It should definitely be fixed before the final release of 3.3.0.
-
05:59 PM Revision 687d29f9 (git): try modified tests.
- debug.gem 1.9.0 has a test issue so try modified one.
ref: https://github.com/ruby/debug/commit/d4feeae32b69b4f88c94fecfc7a283b475eec4de -
05:53 PM Revision fb935350 (git): [PRISM] Define and use a pm_add_ensure_iseq
- Prior to this commit, we were using `add_ensure_iseq` which compiled
a node as if it was a CRuby node. This commit defines
`pm_add_ensure_iseq` which compiles the Prism node appropriately. -
05:52 PM Revision 3f25c08f (git): YJIT: implement call fuzzer script (#9129)
- * YJIT: implement call fuzzer script
Attempt to detect bugs in YJIT call implementation.
* Add basic checks for rest, kwrest. Impprove formatting.
* Refactor call fuzzer to make it more powerful and maintainable
Compute checksum of a... -
04:34 PM Revision 4095e7d2 (git): [ruby/prism] Regexp terminator escapes
- https://github.com/ruby/prism/commit/42a48a2ba9
-
04:34 PM Revision c65de639 (git): [ruby/prism] Handle a non-interpolated dsym spanning a heredoc
- https://github.com/ruby/prism/commit/b23136ebfd
-
04:34 PM Revision 261e8f28 (git): [ruby/prism] Correct escapes when ctrl+meta+escape
- https://github.com/ruby/prism/commit/ee68b17c01
-
03:40 PM Revision e186cebe (git): [rubygems/rubygems] Override initialize in bundle rubygems_ext for NameTuple
- https://github.com/rubygems/rubygems/commit/f63ce682d2
-
03:32 PM Revision b673b5b4 (git): [ruby/prism] Split up CallNode in target position
- In this commit we're splitting up the call nodes that were in target
positions (that is, for loop indices, rescue error captures, and
multi assign targets).
Previously, we would simply leave the call nodes in place. This had
the benefit... -
03:30 PM Misc #19980 (Closed): Is the Ruby 3.3 ABI frozen?
-
02:12 PM Misc #19980: Is the Ruby 3.3 ABI frozen?
- @naruse Thank you for the ABI note in [RC1's release announcement](https://ml.ruby-lang.org/mailman3/hyperkitty/list/ruby-core@ml.ruby-lang.org/thread/VRYKMYM4EABFZW25EG5OWYSP7WHFYD6Y/). I think this ticket can be closed.
-
02:47 PM Revision c69d1367 (git): [PRISM] Fix ElseNode within CaseNode
- The logic within the consequent for the CaseNodes in popped cases
was incorrect as it wouldn't emit consequent instructions for a
popped CaseNode. This commit fixes that. - 02:47 PM Revision 0562c246 (git): Add handling of implicit hash arguments
- Arguments that are passed as a hash need special consideration since in certain case they are not treated as keyword arguments. For example, if a call is passing `"a" => 1` as an argument, this will be turned into an implicit hash argume...
-
01:56 PM Bug #20048: UDPSocket#remote_address spec errors
- I cannot judge the change. But the PR makes the tests pass. The scratch build is [here](https://koji.fedoraproject.org/koji/taskinfo?taskID=110183632) and drilling through it, one could get to e.g. [x86_64 build log](https://kojipkgs.fed...
-
01:36 PM Revision 48cb70fe (git): [ruby/prism] Fix parsing unterminated empty string `"`
- Fix https://github.com/ruby/prism/pull/2034
https://github.com/ruby/prism/commit/8280e577fa -
01:34 PM Revision a860e360 (git): [ruby/prism] Fix to parse a (endless-)range with binary operators
- Fix https://github.com/ruby/prism/pull/2022
Fix https://github.com/ruby/prism/pull/2030
https://github.com/ruby/prism/commit/b78d8b6525 - 11:07 AM Revision 1ab91b12 (git): [rubygems/rubygems] Stream output from ext builds when --verbose
- Uses Open3.popen2e in place of Open3.capture2e in Gem::Ext::Builder.
This change aims to stream stdout/stderr of ext builds when in verbose
mode, instead of printing everything at once when the build completes.
Nice for debugging gem bu... -
07:51 AM Revision 655aacc4 (git): Use dedicated functions to check terminators
- 06:58 AM Revision 980255cb (git): Update bundled gems list as of 2023-12-10
12/10/2023
- 11:56 PM Revision e5e53ee1 (git): docs(compar.c): change class name in example
-
11:56 PM Bug #20056: Dir#chdir inconsistency with Dir.chdir
- zverok (Victor Shepelev) wrote:
> 1. There is no block form for `Dir#chdir`, unlike `Dir.chdir` (the form that will return to the previous directory when the block is finished)
`Dir#chdir` implicitly calls `Dir.chdir` or `Dir.fchdir`... -
06:16 PM Bug #20056 (Closed): Dir#chdir inconsistency with Dir.chdir
- I am not sure it is important; I just wanted to understand if this is intentional or accidental.
1. There is no block form for `Dir#chdir`, unlike `Dir.chdir` (the form that will return to the previous directory when the block is fini... -
03:22 PM Revision 91b0d5fa (git): [DOC] RDoc for Complex (#9181)
-
02:59 PM Feature #20054: Replace the use of `def` in endless method definitions with a new sigil
- sawa (Tsuyoshi Sawada) wrote:
> Within Ruby syntax, symbol is naturally used to represent a method name.
Yes, because a symbol is a **name**.
Not a method. -
11:43 AM Revision d9dbcd84 (git): Add bright colors and multiple attributes [ci skip]
- Not only:
```
$ ruby colorize.rb fail foo
```
Also:
```
$ ruby colorize.rb 'bright_blue;bold' foo
``` -
11:43 AM Revision 0096d6a8 (git): Extract configuration and lookup methods [ci skip]
-
06:39 AM Revision c4c39082 (git): add `flags` to `rb_postponed_job_preregister`
- for future extensions.
- 06:00 AM Revision f8effa20 (git): Change the semantics of rb_postponed_job_register
- Our current implementation of rb_postponed_job_register suffers from
some safety issues that can lead to interpreter crashes (see bug #1991).
Essentially, the issue is that jobs can be called with the wrong
arguments.
We made two attemp... - 06:00 AM Revision aecbd667 (git): Add RUBY_ATOMIC_{PTR_,}FETCH macros for atomic loads
- This can already be emulated by doing an atomic fetch_add of zero, but
this is more explicit.
[Bug #19994] -
04:55 AM Revision 6e8ad749 (git): Move `DOT_WAIT` before including Makefile that is using it [ci skip]
-
04:21 AM Revision 130268e2 (git): [ruby/irb] Simplify show_source's super calculation
- (https://github.com/ruby/irb/pull/807)
https://github.com/ruby/irb/commit/2cccc448de -
03:06 AM Revision 04eb1b6f (git): [ruby/prism] fix: escape newline
- https://github.com/ruby/prism/commit/a28b427dcc
-
12:08 AM Bug #20052: reline behaves oddly with redirect (non tty)
- Forwarded: https://github.com/ruby/reline/issues/616
12/09/2023
-
11:23 PM Bug #20052: reline behaves oddly with redirect (non tty)
- It may be better to report this at https://github.com/ruby/reline
-
12:27 PM Bug #20052: reline behaves oddly with redirect (non tty)
- (Aruba maintainer here) Note that the reline behavior is the same on Ruby 3.2.2, so it doesn't seem to be caused by any change in Ruby itself. It just manifested for Aruba because readline is gone in 3.3.0dev.
-
12:01 PM Bug #20052: reline behaves oddly with redirect (non tty)
- Interesting. It seems to do some additional buffering? If it behaves differently to readline then this may be a bug in behaviour; at the least if it is not a bug then the user may want to be able to get the readline-behaviour and perhaps...
-
09:15 PM Revision f6435754 (git): Ensure super(**kw, &block) calls kw.to_hash before block.to_proc
- Similar as previous commit, but handles the super case with
explicit arguments. -
09:15 PM Revision a950f230 (git): Ensure f(**kw, &block) calls kw.to_hash before block.to_proc
- Previously, block.to_proc was called first, by vm_caller_setup_arg_block.
kw.to_hash was called later inside CALLER_SETUP_ARG or setup_parameters_complex.
This adds a splatkw instruction that is inserted before sends with
ARGS_BLOCKARG ... - 08:49 PM Revision c0b6ea7c (git): Add a fudge factor to the GC compaction move up/down tests
- There seems to be another manifestation of bug #20021, where some of the
compaction tests are failing on i686 for unrelated PR's because of fake
"live" references to moved objects on the machine stack.
We _could_ solve this by counting ... -
08:01 PM Revision 9e09e5aa (git): Fix test of GVL instrumentation on Ractor sleeping
- It seems that the Ractor sleep GVL event arrives very slightly after the
value becomes available and other threads wake (which makes sense) so we
need a little additional time to ensure we end up in a consisteny state. -
05:49 PM Bug #20055 (Closed): Ripper seems to skip some checks like `void value expression` and `duplicated variable name`
- These are syntax error
~~~ruby
return + return # void value expression
1 in [a, a] # duplicated variable name
1 + (1 => [a, a]) # both
~~~
But Ripper.sexp returns S-expression, not nil
~~~ruby
Ripper.sexp 'return + return'
# =... -
05:31 PM Revision b2ad4fec (git): Add missing GVL hooks for M:N threads and ractors
-
12:15 PM Feature #20054: Replace the use of `def` in endless method definitions with a new sigil
- I should also say that I understand sawa's argument too; the
def foo = method_body
really does look a bit weird without "end". My eyes (or rather my
brain) have adapted to assuming a nice "end" being part of a method.
It does... -
12:13 PM Feature #20054: Replace the use of `def` in endless method definitions with a new sigil
- > Thence, we should get rid of def
I am not sure this is possible. People kind of adjusted to
def.
> ...
While I agree, symbols are also used elsewhere, such as for
arguments to methods.
For instance, in a few projects I use a... -
10:05 AM Feature #20054: Replace the use of `def` in endless method definitions with a new sigil
- How would you like to find such method in a code, e.g. using `grep`?
I might be getting old, but I still prefer:
~~~
{:foo => bar}
foo.each {|bar| ... }
def foo
...
end
~~~
Instead all the new shorter syntaxes. -
06:21 AM Feature #20054 (Rejected): Replace the use of `def` in endless method definitions with a new sigil
- I propose to remove the use of keyword `def` from the syntax of endless method definition, and introduce a new sigil instead of it. There are several possibilities for what character to use as the sigil, but the most seemingly promising ...
- 08:35 AM Revision 88d9a4d5 (git): Update default gems list at edb8fc24d4a51e58f283a6e7fd1b18 [ci skip]
-
08:34 AM Revision edb8fc24 (git): [ruby/error_highlight] Bump version
- https://github.com/ruby/error_highlight/commit/942a723d32
-
07:50 AM Revision f1097813 (git): merge revision(s) d8b8294c28a09278de357c26b291abf1b9f3cc5d,eedcd696a57521a18963d58487db8057a374a67a,bc0a7a641b6d0d3ff979cfa11e25683f8fa59ebd:
- [ruby/net-http] Limit header length
https://github.com/ruby/net-http/commit/c245f7f9c8
---
lib/net/http/header.rb | 8 ++++++++
1 file changed, 8 insertions(+)
[ruby/net-http] Fix previous commi... -
04:54 AM Revision 07734b51 (git): [DOC] Small fixes for documentation rendering
- Mostly just fixing RDoc's incorrect treatment of `+`
-
01:46 AM Bug #20048: UDPSocket#remote_address spec errors
- OK, I think the solution is to _partially_ revert that commit. The problem is that for `TCPsocket` connects we do `getaddrinfo(3)` with `AF_UNSPEC` and then `socket(2)` with the family of one of the returned addresses. BUT, the `UDPSocke...
-
01:44 AM Feature #20053 (Closed): M:N Threads, now w/ macOS support (kqueue)
- I have a PR here that adds support for macOS to M:N threads using `kqueue`: https://github.com/ruby/ruby/pull/9178
It adds in `kqueue`/`kevent` calls when present in the OS. Technically this would open up support for FreeBSD as well, ... -
01:03 AM Bug #19392: Endless method and parsing priorities
- > Because `a = b and c` is interpreted as `(a = b) and c`, it is natural that `def a = b and c` is interpreted as `(def a = b) and c`
I agree with others that there's not much (if anything) natural about this. In `def a = b and c`, th...
12/08/2023
-
11:28 PM Bug #20052 (Third Party's Issue): reline behaves oddly with redirect (non tty)
- Forwarded from cucumber/aruba testsute issue https://github.com/cucumber/aruba/issues/910
Looks line reline behaves oddly with redirect (non tty)
With `ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]` and `Readline`:
``... -
09:00 PM Bug #20051: Op asgn calls handle keywords and keyword splats as positional arguments
- I submitted a pull request to fix this issue: https://github.com/ruby/ruby/pull/9172
-
01:35 AM Bug #20051: Op asgn calls handle keywords and keyword splats as positional arguments
- Looks like I was testing on Ruby 3.2, not on master. The current master branch has even worse behavior for keywords. The following code segfaults in the compiler (`--dump=parse` works, `--dump=i` segfaults):
```ruby
Object[kw: 1] +... -
01:14 AM Bug #20051 (Closed): Op asgn calls handle keywords and keyword splats as positional arguments
- Ruby passes a keywords given to op asgn method calls as a positional hash argument, both to `[]` and `[]=`:
```ruby
foo[kw: 1] += bar
```
This seems wrong, because `foo[kw: 1]` passes `kw: 1` as keywords.
Worse, Ruby passes a ... -
08:45 PM Revision 1cbe114d (git): [PRISM] Fix `PM_CALL_NODE` assignment
- This PR fixes ruby/prism#1963. Array and variable assignment was broken
for call nodes. The change checks if the `method_id` is related to
assignment and if is adds a `putnil`, `setn` and a `pop`.
The incorrect instructions meant that i... -
08:28 PM Feature #20049: Destructive drop_while for Array and Hash
- I'd say it returns self, or nil if no changes were made, just like other ! Methods of the kind.
-
02:58 PM Feature #20049: Destructive drop_while for Array and Hash
- What would be the return value? The same as `drop_while`?
-
08:13 PM Revision 9e7ca2c3 (git): RDoc for Complex
-
07:23 PM Bug #19392: Endless method and parsing priorities
- > indirectly affecting the reputation of the language.
I can share the feeling.
The current parsing of endless methods feels like the old PHP parser, i.e., very buggy and counterintuitive (e.g. wouldn't accept an arbitrary exception ... -
07:13 PM Bug #19392: Endless method and parsing priorities
- `def =` is clearly more about `def` than `=`.
It is not an assignment, as clearly said by other just before this message.
> Because `a = b and c` is interpreted as `(a = b) and c`, it is natural that `def a = b and c` is interpreted ... -
12:07 AM Bug #19392: Endless method and parsing priorities
- > Because `a = b and c` is interpreted as `(a = b) and c`, it is natural that `def a = b and c` is interpreted as `(def a = b) and c`
I guess I'll just add my voice to the others who think the current behavior is totally unnatural and... -
06:59 PM Revision 98e3552c (git): [ruby/prism] Add necessary encoding flags for symbols and regex
- This doesn't actually fix the encodings for symbols and regex,
unfortunately. But I wanted to get this change in because it is
the last AST change we're going to make before 3.3 is released.
So, if consumers want, they can start to chec... -
05:42 PM Bug #20050: Segfault on Ruby 3.2.2 (and 3.1) on x86_64 Darwin 20 (rb_id_table_lookup for #hash)
- Another failure with a slightly different C backtrace. https://github.com/rubygems/rubygems/actions/runs/7133159688/job/19425249816
```
-- C level backtrace information -------------------------------------------
/User... -
05:01 PM Revision a94a2eea (git): [rubygems/rubygems] Upstream RubyGems changes from TruffleRuby
- https://github.com/rubygems/rubygems/commit/749a508968
- 04:50 PM Revision 365c6cc2 (git): Update default gems list at f2c13ff9e8646ea1f05498707c8e97 [ci skip]
-
04:49 PM Revision f2c13ff9 (git): [ruby/syntax_suggest] v2.0.0
- https://github.com/ruby/syntax_suggest/commit/53b2a1b03c
-
02:40 PM Revision a54eb9c6 (git): [ruby/prism] A couple of small dot enhancements
- https://github.com/ruby/prism/commit/5642a57f39
-
02:35 PM Revision 01660409 (git): [ruby/prism] Hashes need to deoptimize based on their contents
- If a hash has children that are not "basic" types of objects, then we
can't consider the hash to be a static literal.
Fixes: #2015
https://github.com/ruby/prism/commit/ca2523137d -
02:34 PM Revision 892b5f10 (git): [ruby/prism] More closely match CRuby error messages
- https://github.com/ruby/prism/commit/1ed07a0c6d
-
12:59 PM Revision 0204523f (git): Improve Fiber#kill docs and simplify the NEWS entry to let the documentation explain
-
12:45 PM Bug #20048: UDPSocket#remote_address spec errors
- Not sure if that might be relevant, therefore just FYI, the `--enable-network` controls:
1) if host resolv.conf will be used [1]
2) systemd-nspaw network capabilities [2]. Because systemd-nspawn is used on the background to run the b... -
09:50 AM Bug #20048: UDPSocket#remote_address spec errors
- OK, thank you for that, I was able to get a mock up and running and I managed to reproduce the issue.
I wrote a standalone C program to debug what happens when we call getaddrinfo with various combinations of flags. Its source is here... -
08:38 AM Bug #20048: UDPSocket#remote_address spec errors
- On Fedora, we are using [Mock](https://rpm-software-management.github.io/mock/) for that purpose. E.g. you need to do something like:
~~~
$ sudo dnf install mock
$ usermod -a -G mock [User name]
$ # To prepare the buildroot and... -
08:17 AM Bug #20048: UDPSocket#remote_address spec errors
- Apologies for this - I'm having a look at it now. Do you know how I can spin up an equivalent environment like the one the Fedora package tests run in? I'm running fedora 39 on my workstation so that _should_ be fairly simple, in theory...
-
05:35 AM Bug #20048: UDPSocket#remote_address spec errors
- Not sure if this is the right resolution, but at least the following change makes the above tests pass:
```
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c
index 683f9fa4b4..ad4f7267fb 100644
--- a/ext/socket/raddrinfo... -
02:06 AM Bug #20048: UDPSocket#remote_address spec errors
- Actually reverting commit:d2ba8ea54a4 makes the above 4 test errors disappear, especally reverting this line:
https://github.com/ruby/ruby/commit/d2ba8ea54a4089959afdeecdd963e3c4ff391748#diff-f84073f6c886ca13d2a0bcbee487d5c405d50c52c59f... - 12:38 PM Revision 7d052774 (git): Update default gems list at 49cdf063d6275151075ffd94c3d013 [ci skip]
- 12:37 PM Revision 49cdf063 (git): [ruby/set] Bump version to 1.0.4
- https://github.com/ruby/set/commit/efc8c8c9f5
-
11:25 AM Revision cc982650 (git): Revert "Skip to warn like 'bigdecimal/util' feature."
- This reverts commit 8f6cf72e661e36410848c1451335fd28a32cecdf.
-
07:01 AM Revision f2c84c48 (git): Pick commit from https://github.com/rubygems/rubygems/pull/7085
- Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
-
07:01 AM Revision dab30b4d (git): Pick commit from https://github.com/rubygems/rubygems/pull/7227
- Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
-
07:01 AM Revision 01a2a0ab (git): [rubygems/rubygems] Migrate documentation to be generated with nronn
- https://github.com/rubygems/rubygems/commit/55281f0eaa
-
07:01 AM Revision 1c3aa4b9 (git): [rubygems/rubygems] Add extra blank line to `bundle outdated` docs
- If it's not there, when migrating to `nronn`, generated man page is
messed up.
https://github.com/rubygems/rubygems/commit/7161347648 -
07:01 AM Revision dc64a04a (git): [rubygems/rubygems] Revert "Merge pull request #7148 from Paul-Bob/improvement/include_response_body_on_fetch_http_error"
- This reverts commit https://github.com/rubygems/rubygems/commit/e5a4fd9eb617, reversing
changes made to https://github.com/rubygems/rubygems/commit/c5a5363b0c98.
https://github.com/rubygems/rubygems/commit/e21c45c4c3 -
06:57 AM Revision 8f6cf72e (git): Skip to warn like 'bigdecimal/util' feature.
-
06:55 AM Revision 64e98533 (git): Improve bundled gems warnings for subfeatures
- Before, when requiring "bigdecimal/math" in a Bundler context:
> /Users/deivid/.asdf/installs/ruby/3.3.0-dev/lib/ruby/3.3.0+0/bigdecimal/math.rb:2: warning: bigdecimal was loaded from the standard library, but will no longer be part of ... -
06:55 AM Revision a530dfef (git): Improve bundled gem warnings
- Before, when requiring "bigdecimal" in a Bundler context:
> foo.rb:1: warning: bigdecimal which will no longer be part of the default gems since Ruby 3.4.0. Add bigdecimal to your Gemfile or gemspec.
After:
> foo.rb:1: warning: bigdec... -
06:55 AM Revision d61af5c4 (git): The SINCE and WARNED hashes take gem names, not features
-
06:09 AM Revision 4817166e (git): [rubygems/rubygems] Extract generate_index command to rubygems-generate_index gem
- So generate_index can be implemented with dependencies, such as the compact index
Took this approach from feedback in https://github.com/rubygems/rubygems/pull/6853
Running `gem generate_index` by default will use an installed rubygems... -
05:51 AM Revision 0166d56f (git): [rubygems/rubygems] Don't memoize in NameTuple lock_name
- The result of this is already memoized and no other NameTuple
methods memoize.
https://github.com/rubygems/rubygems/commit/b7cce0c64a -
04:17 AM Revision 51ab9ebc (git): [ci skip] comment for commit be1bbd5b7d40ad863ab35097765d3754726bbd54
-
04:16 AM Revision 352a885a (git): Thread specific storage APIs
- This patch introduces thread specific storage APIs
for tools which use `rb_internal_thread_event_hook` APIs.
* `rb_internal_thread_specific_key_create()` to create a tool specific
thread local storage key and allocate the storage if n... -
03:53 AM Revision 9b7a9643 (git): [Bug #19877] Flip-flop needs to be direct condition
-
03:25 AM Revision 8bb90f4d (git): [rubygems/rubygems] Use `Minitest::TestTask` in a template file for `minitest`
- `minitest` has introduced a rake task for running test on 5.16.0.
https://github.com/minitest/minitest/blob/master/History.rdoc#5160--2022-06-14-
This has some tasks related to running tests and it's useful for
`minitest` user I think.
... -
01:05 AM Bug #20008: f(**kw, &block) calls block.to_proc before kw.to_hash
- This was reviewed during yesterday's dev meeting and was found to be mostly OK, except for the use of the peephole optimizer to fix the issue. I moved the fix from the peephole optimizer to the compiler, which should make this acceptable...
-
12:34 AM Bug #20012 (Closed): Fix keyword splat passing as regular argument
- Fixed by commit:ca204a20231f1ecabf5a7343aec49c3ea1bac90a
12/07/2023
-
10:53 PM Revision ac5fd587 (git): YJIT: Fix on-stack ISEQ comparison for auto_compact (#9164)
-
10:29 PM Revision 2755cb1b (git): [rubygems/rubygems] Use modern hashes consistently
- https://github.com/rubygems/rubygems/commit/bb66253f2c
-
10:07 PM Revision 9d696aa2 (git): Support method calls inside `defined?`
- This commit supports all kinds of method calls (including methods with
parameters) inside `defined?` calls. -
09:34 PM Revision f76881c9 (git): RDoc for Complex
-
08:52 PM Revision 6816e8ef (git): Free everything at shutdown
- when the RUBY_FREE_ON_SHUTDOWN environment variable is set, manually free memory at shutdown.
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Peter Zhu <peter@peterzhu.ca> -
08:29 PM Revision b361a800 (git): Added comment
-
08:29 PM Revision a0c7bb43 (git): [PRISM] Account for multiple arguments when compiling ArgumentsNode
- BreakNode, ReturnNode and NextNode all compile the ArgumentsNode
directly, but we weren't accounting for multiple arguments. If there
is more than one argument, we need to also emit a newarray
instruction to put the arguments onto the stack -
07:57 PM Bug #20050 (Closed): Segfault on Ruby 3.2.2 (and 3.1) on x86_64 Darwin 20 (rb_id_table_lookup for #hash)
- Hi,
In the rubygems & bundler repositories we've now had two segfaults in the same exact code within days of merging a change to that code, both on ruby 3.2.2 on darwin20.
1. https://github.com/rubygems/rubygems/actions/runs/711048... -
07:27 PM Revision 7738b31d (git): Eliminate array allocation for f(1, *a, &arg), f(*a, **kw, &arg), and f(*a, kw: 1, &arg)
- These are similar to the f(1, *a, &lvar), f(*a, **kw, &lvar) and
f(*a, kw: 1, &lvar) optimizations, but they use getblockparamproxy
instruction instead of getlocal.
This also fixes the else style to be more similar to the surrounding
code. -
07:27 PM Revision f5a01b09 (git): Add benchmark for recent optimization to avoid implicit allocations
-
07:27 PM Revision 13cd9635 (git): Prevent modification of splat array inside setup_parameters_complex
- For the following:
```
def f(*a); a end
p f(*a, kw: 3)
```
`setup_parameters_complex` pushes `{kw: 3}` onto `a`. This worked fine
back when `concatarray true` was used and `a` was already a copy. It
does not work correctly with the op... -
07:27 PM Revision aa808204 (git): Eliminate array allocation for f(*a, kw: 1, &lvar) and f(*a, kw: 1, &@iv)
- Similar to the previous commit, but this handles the block pass
case. -
07:27 PM Revision 5e33f2b0 (git): Eliminate array allocation for f(*a, kw: 1)
- In cases where the compiler can detect the hash is static, it would
use duphash for the hash part. As the hash is static, there is no need
to allocate an array. -
07:27 PM Revision 95615872 (git): Eliminate array allocation for f(*a, **lvar, &lvar) and f(*a, **@iv, &@iv)
- The compiler already eliminates the array allocation for
f(*a, &lvar) and f(*a, &@iv). If that is safe, then eliminating
it for f(*a, **lvar) and f(*a, **@iv) as the last commit did is
as safe, and eliminating it for f(*a, **lvar, &lvar... -
07:27 PM Revision 1731dd05 (git): Eliminate array allocation for f(*a, **lvar) and f(*a, **@iv)
- The compiler already eliminates the array allocation for
f(*a, &lvar) and f(*a, &@iv), and eliminating the array allocation
for keyword splat is as safe as eliminating it for block passes. -
07:27 PM Revision c70c1d2a (git): Eliminate array allocation for f(1, *a, &lvar) and f(1, *a, &@iv)
- Due to how the compiler works, while f(*a, &lvar) and f(*a, &@iv)
do not allocate an array, but f(1, *a, &lvar) and f(1, *a, &@iv)
do. It's probably possible to fix this in the compiler, but
seems easiest to fix this in the peephole opt... -
07:27 PM Revision 40a2afd0 (git): Eliminate array allocation for f(1, *a)
- Due to how the compiler works, while f(*a) does not allocate an
array f(1, *a) does. This is possible to fix in the compiler, but
the change is much more complex. This attempts to fix the issue
in a simpler way using the peephole optim... -
07:12 PM Revision 41b299d6 (git): [PRISM] Stop catch table entries being deleted by the optimiser
-
06:29 PM Bug #18886 (Closed): Struct aref and aset don't trigger any tracepoints.
- Applied in changeset commit:git|3081c83169c55ef7eead6222e49248e09232c22c.
----------
Support tracing of struct member accessor methods
This follows the same approach used for attr_reader/attr_writer in
2d98593bf54a37397c6e4886ccc7e3654... -
05:18 AM Bug #18886: Struct aref and aset don't trigger any tracepoints.
- Please merge it.
> I don't think this will affect performance unless TracePoint is used, because the same method caching is done in both cases.
Showing benchmarking result will help IMO to confirm there is no penalty. -
06:29 PM Revision 3081c831 (git): Support tracing of struct member accessor methods
- This follows the same approach used for attr_reader/attr_writer in
2d98593bf54a37397c6e4886ccc7e3654c2eaf85, skipping the checking for
tracing after the first call using the call cache, and clearing the
call cache when tracing is turned ... -
05:42 PM Revision 1721bb9d (git): Skip a flaky objspace test on Visual Studio
- This seems to happen only on VisualStudio:
https://github.com/ruby/ruby/actions/runs/7130917319/job/19418375386
It fails relatively frequently. Nobody seems actively working on it, so
let's skip it until somebody starts working on it. -
05:30 PM Bug #19779 (Closed): `eval "return"` at top level raises `LocalJumpError`
- Applied in changeset commit:git|3a88de3ca73052809f5c0bfb4ef8cd435b29ae5f.
----------
Support eval "return" at toplevel
Since Ruby 2.4, `return` is supported at toplevel. This makes `eval "return"`
also supported at toplevel.
This mos... -
10:00 AM Bug #19779: `eval "return"` at top level raises `LocalJumpError`
- @jeremyevans0 Matz said go ahead in today's dev meeting.
-
05:30 PM Revision 3a88de3c (git): Support eval "return" at toplevel
- Since Ruby 2.4, `return` is supported at toplevel. This makes `eval "return"`
also supported at toplevel.
This mostly uses the same tests as direct `return` at toplevel, with a couple
differences:
`END {return if false}` is a SyntaxEr... -
05:25 PM Feature #20049 (Feedback): Destructive drop_while for Array and Hash
- I propose a "drop_while!" variant for arrays and hashes, which changes the current instance.
```ruby
h = {foo: 0, bar: 1, baz: 2}
h.drop_while!{|element| key, value = *element; value < 2 }
h #=> # => { baz: 2 }
``` -
05:23 PM Revision 0c3593b6 (git): Use free with ruby_dtoa
- In ae0ceafb0c0d05cc80623b525070255e3abb34ef ruby_dtoa was switched to
use malloc instead of xmalloc, which means that consumers should be
using free instead of xfree. Otherwise we will artificially shrink
oldmalloc_increase_bytes. -
05:22 PM Revision 5f81f58b (git): Use xfree in hash_st_free
- st.c redefines malloc and free to be ruby_xmalloc and ruby_xfree, so
when this was copied into hash.c it ended up mismatching an xmalloc with
a regular free, which ended up inflating oldmalloc_increase_bytes when
hashes were freed by min... -
04:35 PM Revision ca204a20 (git): Fix keyword splat passing as regular argument
- Since Ruby 3.0, Ruby has passed a keyword splat as a regular
argument in the case of a call to a Ruby method where the
method does not accept keyword arguments, if the method
call does not contain an argument splat:
```ruby
def self.f(o... -
04:20 PM Revision e6a6ea9d (git): Fix typo in a comment [ci skip]
-
04:16 PM Revision 195dbf24 (git): Fix potential compaction issue in env_copy()
- `src_ep[VM_ENV_DATA_INDEX_ME_CREF]` was read out and held without
marking across the allocation in vm_env_new(). In case vm_env_new() ran
compaction, an invalid reference could have been written into
`copied_env`.
It might've been hard ... -
04:16 PM Revision 050806f4 (git): Add missing write barrier to env_copy()
- Previously, the following crashed with
`vm_assert_env:imemo_type_p(obj, imemo_env)` due to missing a missing
WB:
o = Object.new
def o.foo(n)
freeze
GC.stress = 1
# inflate block nesting get an imemo_env for e... -
04:09 PM Revision 5809b750 (git): [ruby/irb] Debugging command warning should not be specific to the
- `debug` command
(https://github.com/ruby/irb/pull/806)
https://github.com/ruby/irb/commit/b7b57311cc -
04:00 PM Revision c05278e4 (git): [ruby/prism] Update ordering of integer base flags
- https://github.com/ruby/prism/commit/d711950d5f
-
03:49 PM Revision 0dc40bd2 (git): Check need_major_gc during GC stress
- need_major_gc is set when a major GC is required. However, if
gc_stress_no_major is also set, then it will not actually run a major
GC.
For example, the following script will sometimes crash:
```
GC.stress = 1
50000.times.map { [] }
``... -
03:48 PM Bug #20048 (Closed): UDPSocket#remote_address spec errors
- Testing of Fedora Rawhide, we have recently started to observe following errors:
~~~
$ make -C redhat-linux-build test-spec MSPECOPT="-fs ../spec/ruby/library/socket/udpsocket"
... snip ...
1)
An exception occurred during: bef... -
03:34 PM Revision b8df6b9e (git): [PRISM] Don't pop arguments on a return node
- Since ReturnNodes don't get popped, their arguments shouldn't either
-
03:29 PM Misc #19980: Is the Ruby 3.3 ABI frozen?
- Thank you, @naruse!
-
08:34 AM Misc #19980: Is the Ruby 3.3 ABI frozen?
- I think your request sounds reasonable, but I also want to leverage committer's productivity as much as possible.
Therefore I freeze ABI in 3.3 RC1 which will be released soon. But it may be changed in the actual release if an unfortuna... -
03:19 PM Bug #20022 (Closed): GC.verify_compaction_references does not actually move all objects - Applied in changeset commit:git|5d832d16d9878766dfe527934ef1ad64698b9bf8.
----------
Add objspace_each_pages to gc.c
This works like objspace_each_obj, except instead of being called with
the start & end address of each page, it's call... - 03:19 PM Revision cbc0e0be (git): Fix GC.verify_compaction_references not moving every object
- The intention of GC.verify_compaction_references is, I believe, to force
every single movable object to be moved, so that it's possible to debug
native extensions which not correctly updating their references to
objects they mark as mova... - 03:19 PM Revision 5d832d16 (git): Add objspace_each_pages to gc.c
- This works like objspace_each_obj, except instead of being called with
the start & end address of each page, it's called with the page
structure itself.
[Bug #20022] -
02:39 PM Revision 10bc0bd4 (git): [ruby/prism] Remove warnings check from parse_success? method
- https://github.com/ruby/prism/commit/e30a241fb3
-
02:38 PM Revision 8e86a434 (git): [PRISM] Ensure should set correct end_label
-
02:38 PM Revision c4b96953 (git): [PRISM] Rescue should set correct end_label
- In order for a break inside the rescue to have the correct jump target
-
01:07 PM Bug #20047 (Open): ConditionVariable#wait has spurious wakeups from signal traps
- ```ruby
Signal.trap("INT") { p :SIGINT }
Thread.new do
sleep 0.6
`kill -INT #{$$}`
end
m, cv = Mutex.new, ConditionVariable.new
m.synchronize do
r = ARGV[0] ? cv.wait(m, 2) : cv.wait(m)
p ["ConditionVariable#wait ret... -
12:07 PM Revision 071df404 (git): Lrama v0.5.12
-
10:50 AM Revision 30a1ccbc (git): NEWS: Move "interruptible name resolution" to "Stdlib updates" section
-
10:50 AM Revision d69af478 (git): [ruby/io-console] [DOC] Add documentation for IO#cursor
- ruby/io-console#50
https://github.com/ruby/io-console/commit/ee752ce771 -
10:48 AM Misc #20046 (Closed): DevMeeting-2023-12-20
- # The next dev meeting
**Date: 2023/12/20 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-12-20.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... -
10:47 AM Misc #19997 (Closed): DevMeeting-2023-11-30
-
10:45 AM Bug #19392: Endless method and parsing priorities
- @mame I understand I might sound annoying, but I believe there is **absolutely nothing natural** about this behavior for the users (as is shown by the confusion of _everybody_ who is met with this behavior in real codebases: it is freque...
-
10:25 AM Bug #19392 (Closed): Endless method and parsing priorities
- Discussed at today's dev meeting. Because `a = b and c` is interpreted as `(a = b) and c`, it is natural that `def a = b and c` is interpreted as `(def a = b) and c`, as Matz said in his comment #note-9. This decision didn't change even ...
-
10:33 AM Bug #20044: Add runtime flag and environment variable for prism
- Discussed at today's dev meeting. @matz said:
* Introduce a command-line option `--parser=prism` and `--parser=parse.y`
* If parse.y is removed in the future, `--parser=parse.y` should report an error
* Do NOT introduce environmen... -
10:04 AM Bug #19877: Non intuitive behavior of syntax only applied to literal value
- In today's dev meeting, @matz said:
```
expr if (cond1..cond2) # This should be a flip-flop
expr if (((cond1..cond2))) # This should be a flip-flop
expr if begin cond1..cond2; end # This should be a ... -
09:59 AM Bug #20012: Fix keyword splat passing as regular argument
- @jeremyevans0 In today's dev meeting, @matz said it should be fixed soon, so let's merge it. If someone complains it, we may reconsider.
-
09:57 AM Feature #20018 (Closed): Get the error codes as Socket::EAI_XXX when getaddrinfo and getnameinfo fail
- https://github.com/ruby/ruby/pull/9018 was merged. Closing.
- 09:57 AM Revision 2e9329e7 (git): Update bundled gems list at bc6a0ede4a05d19dc999d05c84b46a [ci skip]
-
09:56 AM Revision bc6a0ede (git): Bump up bundled net-ftp gem version to 0.3.0
-
09:44 AM Revision eaead94d (git): Sort links [ci skip]
-
09:28 AM Bug #20045: `TestDir#test_home` fails on i686
- BTW `TestFileExhaustive#test_expand_path_for_existent_username` still fails as well, but that is likely the same issue:
~~~
$ LANG=C make test-all 'TESTS=-v -n /TestFileExhaustive#test_expand_path_for_existent_username/'
Run options... -
09:28 AM Bug #20045 (Assigned): `TestDir#test_home` fails on i686
- This is followup to #19147. Testing on Fedora 38 and Fedora Rawhide, we are facing this test failure:
~~~
$ tar xf build/SOURCES/ruby-3.2.2.tar.xz
$ cd ruby-3.2.2/
$ ./configure && make
... snip ...
---
Configuration summary... -
09:28 AM Revision abf192eb (git): always omit test_ai_addrconfig.
-
09:14 AM Feature #18368: Range#step semantics for non-Numeric ranges
- @naruse Is there a chance for this change to be included in 3.3?
-
08:55 AM Bug #19144 (Closed): Ruby should set AI_V4MAPPED | AI_ADDRCONFIG getaddrinfo flags by default - Applied in changeset commit:git|d2ba8ea54a4089959afdeecdd963e3c4ff391748.
----------
Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns (#7295)
When making an outgoing TCP or UDP connection, set AI_ADDRCONFIG in the
... - 08:55 AM Revision d2ba8ea5 (git): Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns (#7295)
- When making an outgoing TCP or UDP connection, set AI_ADDRCONFIG in the
hints we send to getaddrinfo(3) (if supported). This will prompt the
resolver to _NOT_ issue A or AAAA queries if the system does not
actually have an IPv4 or IPv6 a... -
08:03 AM Revision c6eb355e (git): Revert "Warn `it` only with -W:deprecated"
- This reverts commit 5458252bb0edcd498e6bd4bea57fd7500bacd54c.
Revert "Fallback rb_warn_deprecated for UNIVERSAL_PARSER"
This reverts commit 680be886f4d807073f24beed36648ef76219e4f7.
matz actually preferred always warning `it`. -
08:00 AM Revision 680be886 (git): Fallback rb_warn_deprecated for UNIVERSAL_PARSER
-
07:44 AM Revision 5458252b (git): Warn `it` only with -W:deprecated
- 07:23 AM Revision 3bf1c487 (git): Update default gems list at a41d6c825c4b1ed5699fd7880edeb8 [ci skip]
-
07:22 AM Revision a41d6c82 (git): [ruby/open-uri] Bump up 0.4.1
- https://github.com/ruby/open-uri/commit/d72508a7f4
-
07:15 AM Feature #11322: OpenUri: RuntimeError: HTTP redirection loop
- Thanks for following up.
-
07:02 AM Feature #11322 (Closed): OpenUri: RuntimeError: HTTP redirection loop
- I merged https://github.com/ruby/open-uri/pull/18. Thanks all.
-
06:59 AM Feature #11322: OpenUri: RuntimeError: HTTP redirection loop
- I agree with `max_redirects` option.
-
07:14 AM Revision ae76c8a1 (git): Warn `it` (#9152)
- https://bugs.ruby-lang.org/issues/18980
-
07:14 AM Feature #19998: Emit deprecation warnings when the old (non-Typed) Data_XXX API is used
- But a build time warning at least would be a good way to prevent new gems from being written using that API.
-
07:13 AM Feature #19998: Emit deprecation warnings when the old (non-Typed) Data_XXX API is used
- > Therefore such proposal needs to clearly shows the merit of the removal.
I mentioned why I'd want it removed. It would allow to reclaim 8B per objects, allowing `T_DATA` to be 32B rather than 40B, and we have plans to make slot size... -
04:48 AM Feature #19998: Emit deprecation warnings when the old (non-Typed) Data_XXX API is used
- Generally deprecation and migration takes development cost for gem developer.
Therefore such proposal needs to clearly shows the merit of the removal.
("marked as deprecated" is not such reason)
About the strategy of C API deprecati... -
07:08 AM Feature #18980 (Assigned): `it` as a default block parameter
- In today's Developers Meeting, @matz accepted to warn `it` in Ruby 3.3 and add `it` in Ruby 3.4. Quote from the meeting notes:
> * matz: accept `it` on Ruby 3.4.
> ...
I also copied the discussed specification to the ticket description.... - 07:00 AM Revision 41c00bc9 (git): [ruby/open-uri] Set default for max_redirects and add exception class
- https://github.com/ruby/open-uri/commit/dcdcb885cc
- 07:00 AM Revision d97479f9 (git): [ruby/open-uri] Add :max_redirects option
- https://github.com/ruby/open-uri/commit/7fd5ea09a7
-
05:18 AM Feature #20011: Reduce implicit array allocations on caller side of method calling
- Thank you. Please try it.
-
05:08 AM Feature #20005: Add C API to return symbols of native extensions resolved from features
- Accepted (with a new name).
Matz.
- 04:56 AM Revision 7d32830b (git): [rubygems/rubygems] Make --build-root disable auto-user-install.
- https://github.com/rubygems/rubygems/commit/6a06b0763f
-
04:56 AM Revision 33bd9562 (git): [rubygems/rubygems] Better approach to falling back to user installation when GEM_HOME not writable
- https://github.com/rubygems/rubygems/commit/f67bced16b
-
04:56 AM Revision 0f3f907e (git): [rubygems/rubygems] Add some early assertions to make sure the test is progressing fine
- If an error happens during the install command, it will fail in an
strange way right now.
https://github.com/rubygems/rubygems/commit/2b6e0c703a - 04:55 AM Revision aabf2ce1 (git): [rubygems/rubygems] Use globals variables for standard input/output
- Replace use of `STDIN`, `STDOUT` and `STDERR` constants by their
`$stdin`, `$stdout` and `$stderr` global variable equivalents.
This enables easier testing via standard means, such as `assert_output`
for minitest or `expect { print 'foo... -
04:33 AM Feature #19324: Enumerator.product => Enumerable#product
- We agreed that it's okay to add Enumerable#product that returns an array (of arrays) and the lazy counterpart Enumerable::Lazy#product.
Do you already have an implementation? Do you want me to do it? -
04:23 AM Misc #20028: I'd like my commit bit back
- @zenspider Can you look k0kubun's suggestion? After that, I will handle to recover your account of ruby.
-
04:20 AM Feature #16431 (Closed): Optionally load did_you_mean (and RubyGems)
- https://github.com/ruby/ruby/pull/2764 has been merged.
-
04:20 AM Feature #19993: Optionally Free all memory at exit
- Agreed to optionally free all memory at exit. But we haven't used the term “shutdown” for process termination. How about using `RUBY_FREE_AT_EXIT` environment variable?
Matz.
-
04:16 AM Misc #20032: Propose @kjtsanaktsidis as a commiter
- @kjtsanaktsidis Can you look https://github.com/ruby/ruby/wiki/Committer-How-To#how-to-register-you-as-a-committer and send required information to me?
-
04:07 AM Misc #20032: Propose @kjtsanaktsidis as a commiter
- Agreed.
Matz.
-
03:25 AM Bug #20039 (Closed): Matching US-ASCII string to copied UTF-8 Regexp causes invalid multibyte character error
- Applied in changeset commit:git|d89280e8bf6496aa83326b5f9c293724bd1cc1e9.
----------
Copy encoding flags when copying a regex [Bug #20039]
* :bug: Fixes [Bug #20039](https://bugs.ruby-lang.org/issues/20039)
When a Regexp is initialize... -
03:25 AM Revision d89280e8 (git): Copy encoding flags when copying a regex [Bug #20039]
- * :bug: Fixes [Bug #20039](https://bugs.ruby-lang.org/issues/20039)
When a Regexp is initialized with another Regexp, we simply copy the
properties from the original. However, the flags on the original were
not being copied correctly. T... -
03:11 AM Revision 1ace2186 (git): Remove a note for `bundle exec ruby` not printing a warning
- The implementation limitation is fixed by https://github.com/rubygems/rubygems/pull/7224
-
02:58 AM Feature #20024: SyntaxError subclasses
- For the [irb use cases](https://github.com/ruby/irb/blob/f86d9dbe2fc05ed62332069a27f4aacc59ba9634/lib/irb/ruby-lex.rb#L220-L267), irb wants to know additional input may be able to recover the current invalid input.
For example `end; def... -
02:37 AM Revision 214f6d65 (git): Move replace_require into bundled_gems.rb
-
02:34 AM Bug #19977: (nil..nil) === x can raise an exception, differing from Range#cover?
- Can this fix be included in 3.3.0?
-
01:37 AM Revision 4f213ea1 (git): Fix SEGV caused by `GC::Profiler.raw_data` (#9122)
-
12:45 AM Revision 5078aa82 (git): Add NEWS for Range#overlap?
12/06/2023
-
10:20 PM Misc #19997: DevMeeting-2023-11-30
- * [Bug #20044] Add runtime flag and environment variable for prism
* We would like to add a runtime flag and environment variable to activate prism
* We would like to mark it as experimental, so that it could be removed easily in t... - 10:15 PM Revision ce094e85 (git): [ruby/prism] Emit error for constant assignments in defs
- https://github.com/ruby/prism/commit/864b06f90e
-
09:42 PM Revision 9d9865d9 (git): YJIT: Add some object validity assertions
- We've seen quite a few compaction bugs lately, and these assertions
should give clearer symptoms. We only call class_of() on
objects that the Ruby code can see. -
09:34 PM Revision c5a4409f (git): [ruby/prism] Simplify unterminated string
- https://github.com/ruby/prism/commit/ef512ca914
-
09:12 PM Revision c8b60c8a (git): [PRISM] Correct depth offset for block local vars
- Blocks should always look at their own local table first, even when
defined inside an ensure/rescue or something else that uses depth
offset. We can ignore the depth offset if we're doing local lookups
inside a block -
08:57 PM Bug #20044: Add runtime flag and environment variable for prism
- I agree with marking it as experimental. This would only be for testing purposes (or maybe for an IDE for getting more enhanced error messages). That way (hopefully) there would not be an issue with removing it.
-
01:40 PM Bug #20044: Add runtime flag and environment variable for prism
- > What are the appropriate names.
Given the precedent set by `mjit` and `yjit` of having short names that mirror the actual project names my preferred approach is having `--prism` but labelling it as `(experimental)`
cf.
```
--jit ... -
12:59 PM Bug #20044: Add runtime flag and environment variable for prism
- I think a warning would cause some incompatibility and is not necessary, instead the flag & env var can be documented as experimental.
-
01:59 AM Bug #20044: Add runtime flag and environment variable for prism
- I am happy to adopt any direction the core team likes for this proposal, but to attempt answers to @mame's questions, I would suggest,
> What to do with the command-line option when prism becomes the default parser in the future.
I... -
01:30 AM Bug #20044 (Closed): Add runtime flag and environment variable for prism
- To enable prism to be used as the parser when running Ruby code, I would like to add a runtime flag and environment variable that allow it to be enabled.
The flags could be,
```
ruby --prism test.rb
```
and the environment va... -
08:50 PM Revision fe6ee5e9 (git): [ruby/prism] Move flag position consistently to front
- https://github.com/ruby/prism/commit/6e69a81737
-
08:48 PM Revision cbb941f5 (git): [ruby/prism] Fix closing loc for string literals
- Fix https://github.com/ruby/prism/pull/1974
https://github.com/ruby/prism/commit/453d403593 - 08:38 PM Revision a57186b9 (git): [ruby/prism] Fix one potential memory leak and silence one false positive report.
- https://github.com/ruby/prism/commit/9608aa386e
-
08:19 PM Revision a439fc2f (git): YJIT: Avoid register allocation conflict with a higher stack_idx (#9143)
- YJIT: Avoid register allocation conflict
with a higher stack_idx -
08:05 PM Revision 9336bbb0 (git): [rubygems/rubygems] Bundler::Fetcher uses Bundler::CIDetector
- Additionally, the result is memoized, as it's used twice in a row.
This change does result in a net behavioral diff, as the list of ENVs
being checked has been updated (now includes buildkite, taskcluster,
cirrus, dsari, and drops build... -
08:05 PM Revision 6fd3b358 (git): [rubygems/rubygems] Duplicate Gem::CIDetector into bundler
- Because bundler needs to support older versions of rubygems, we can't
actually rely on Gem::CIDetector (yet - in a year or so they might be
able to consolidate, if they don't change futher). So we're copying it
into the Bundler:: namespa... -
08:05 PM Revision a6c912a8 (git): [rubygems/rubygems] Gem::UpdateSuggestion uses Gem::CIDetector
- https://github.com/rubygems/rubygems/commit/e5b0458342
-
08:05 PM Revision b1b78c4f (git): [rubygems/rubygems] Introduce the Gem::CIDetector
- This is based on the list in Gem::UpdateSuggestion and Bundler::Fetcher;
these have similar purposes (determining whether/what CI we're executing
in), and can benefit from being combined and updated (they're both
slightly out of date).
... -
07:26 PM Revision 82072254 (git): [ruby/prism] Update documentation for encodings
- https://github.com/ruby/prism/commit/18e6df0d4f
-
07:23 PM Revision 153c09f2 (git): [prism] Handle string and xstring encodings
-
07:23 PM Revision 82f18baa (git): [ruby/prism] Provide flags for changing encodings
- https://github.com/ruby/prism/commit/e838eaff6f
-
06:26 PM Bug #20041: Array destructuring and default values in parameters
- matz (Yukihiro Matsumoto) wrote in #note-1:
> It is **not** intended behavior, but under the current implementation, fixing this issue would make the VM far more complex, so we left this behavior untouched, when we found this for the fi... -
01:27 PM Bug #20041: Array destructuring and default values in parameters
- It is **not** intended behavior, but under the current implementation, fixing this issue would make the VM far more complex, so we left this behavior untouched, when we found this for the first time. If someone come up with the nice idea...
-
06:05 PM Revision 9620ca67 (git): [PRISM] Extract a PM_NOP helper
-
05:25 PM Revision 0316e666 (git): [PRISM] Fix ReturnNodes
- This code is almost exactly the same (fixed variable names) as
what exists already in compile.c -
04:34 PM Revision 12e3b074 (git): Re-embed when removing Object instance variables
- Objects with the same shape must always have the same "embeddedness"
(either embedded or heap allocated) because YJIT assumes so. However,
using remove_instance_variable, it's possible that some objects are
embedded and some are heap all... -
04:31 PM Revision f80262b1 (git): [PRISM] Account for nil parent in Call{Operator,And,Or}PathWriteNodes
- Prior to this commit, we were not accounting for the case of a nil
parent in a CallXPathWriteNode, for example ::A ||= 1. This commit
checks if the parent exists, and if not, uses Object as the inferred
parent -
04:14 PM Revision 64ab04da (git): [ruby/bigdecimal] Clarify that JSON methods come from the JSON gem
- https://github.com/ruby/bigdecimal/commit/581725d4e5
-
03:33 PM Bug #20043: `defined?` checks for method existence but only sometimes
- > Is there any use case for defined? besides those?
Instance variables for sure: `defined?(@ivar)`.
Also checking for super: `defined?(super)`.
Some people use it for a sequence of calls: `defined?(foo.bar.baz)`.
-
12:55 PM Bug #20043: `defined?` checks for method existence but only sometimes
- I wonder if `defined?` should only be defined for constant paths and method call without arguments, e.g. `defined?(RubyVM.keep_script_lines)`.
Is there any use case for `defined?` besides those?
IOW, I think the simpler `defined?` is... -
03:16 PM Revision 4a7151a8 (git): Deduplicate assertions in redblack_balance
- The bug in i686 was fixed in commit
71babe5536bdb2238509752d8706194ee57ff485. -
02:59 PM Revision dab5a4b6 (git): [ruby/bigdecimal] [DOC] Add section Methods for Working with JSON
- https://github.com/ruby/bigdecimal/commit/2edd8d0a23
-
02:55 PM Revision 018dbf18 (git): [ruby/prism] Add locals_body_index to DefNode, BlockNode, LambdaNode
- The locals_body_index gives the index in the locals array where
the locals from the body start. This allows compilers to easily
index past the parameters in the locals array.
https://github.com/ruby/prism/commit/5d4627b890 -
02:46 PM Revision da1519b2 (git): [PRISM] Implement `PM_MATCH_PREDICATE_NODE` for `defined?`
- Ruby code:
```ruby
defined? 1 in 1
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,16)>
0000 putobject "expression"
0002 leave
"********* PRISM ****... -
02:46 PM Revision 45471084 (git): [PRISM] Implement `PM_KEYWORD_HASH_NODE` for `defined?`
- Ruby code:
```ruby
defined? [a: [:b, :c]]
```
Instructions (without optimizations):
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,23)>
== catch table
| catch type: rescue st: 0001 ed: 0007 sp: 0... -
02:46 PM Revision 86497645 (git): [PRISM] Implement `PM_SPLAT_NODE` for `defined?`
- In an array for `defined?` we need to check if there is a
`contains_splat` flag, if so bail early.
Ruby code:
```ruby
defined?([[*1..2], 3, *4..5])
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<co... -
02:46 PM Revision 02961fdb (git): [PRISM] Implement `PM_SOURCE_LINE_NODE` for `defined?`
- Ruby code:
```ruby
defined?(__LINE__)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,18)>
0000 putobject "expression"
0002 leave
"********* PRISM *... -
02:46 PM Revision d4742395 (git): [PRISM] Implement `PM_SOURCE_FILE_NODE` for `defined?`
- Ruby code:
```ruby
defined?(__FILE__)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,18)>
0000 putobject "expression"
0002 leave
"********* PRISM *... -
02:46 PM Revision 41b117e5 (git): [PRISM] Implement `PM_SOURCE_ENCODING_NODE` for `defined?
- Ruby code:
```ruby
defined?(__ENCODING__)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,22)>
0000 putobject "expression"
0002 leave
"********* PRI... -
02:46 PM Revision b04255de (git): [PRISM] Implement `PM_IMAGINARY_NODE` for `defined?`
- Ruby Code:
```
defined?(1i)
```
Instructions:
```
"********* Ruby *************"
== disasm: #<ISeq:<compiled>@<compiled>:0 (0,0)-(0,12)>
0000 putobject "expression"
0002 leave
"********* PRISM ***********... -
12:36 PM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- @matz Could we try this again for 3.4, soon after the 3.3 release?
Then there is plenty of time to discover any issue related to it (probably very few as gems have been patched, and applications using encoding names instead of encodin... -
12:02 PM Revision d6ec1aa0 (git): [PRISM] Compile Rescue Modifier nodes
- 11:41 AM Revision 34543f7c (git): [ruby/prism] Update snapshot
- https://github.com/ruby/prism/commit/5f0ea09785
-
11:35 AM Revision c23c5f1e (git): Add NEWS entry about Encoding#replicate
-
10:56 AM Revision ca8733da (git): [DOC] Fixed document position
- Method documentation must be placed immediately before each
implementation, without any other functions or preprocessor
directives. -
10:13 AM Bug #19886 (Closed): "default->bundled gem" warning is not shown under "bundle exec"
- I investigate this again.
`bundle exec ruby` called `Bundler.setup`. But `Gem::BUNDLED_GEMS` is not loaded because `bundle exec ruby` ignore to load `gem_prelude.rb`. I'm not sure why `bundle exec t.rb` is load `gem_prelude.rb` yet.
... -
10:10 AM Revision d411d8f5 (git): [rubygems/rubygems] Try to load Gem::BUNDLED_GEMS on Bundler
- `bundle exec ruby foo.rb` ignore to load gem_prelude.rb. Because warnings feature
is not working with `bundle exec ruby`.
https://github.com/rubygems/rubygems/commit/a0d4ed92a7 -
09:35 AM Revision e03e872e (git): [ruby/rdoc] Only word-ending colon separates new definition
- When followed by non-space characters, rather it looks like a URL or a
path name on Windows.
https://github.com/ruby/rdoc/commit/72c6560773 -
09:35 AM Revision 379f0679 (git): [ruby/rdoc] Needs more backslash to match escaping backslashs
- https://github.com/ruby/rdoc/commit/1904e9076d
-
09:35 AM Revision 8105ff9a (git): [ruby/rdoc] Use single quotes to keep backslash literally
- https://github.com/ruby/rdoc/commit/4ac9be7f48
-
09:22 AM Bug #19147: `TestFileExhaustive#test_expand_path_for_existent_username` and `TestDir#test_home` fails on i686
- Testing further, there might be issue in some other places. While I can't reproduce the issue on Fedora Rawhide, it still fails on Fedora 38. I was not expecting this. Might the culprit be e.g. glibc? Or is it FS type related?
-
08:13 AM Revision 1fd976db (git): Refine the NEWS entry for bundler warning
-
08:02 AM Bug #20042: ObjectSpace finalizer can cause segfault
- Actually nevermind, my simplification was wrong. Using exactly your script, it crash all the way to 3.0.
```
:x: 3.0
```<internal:gc>:35: [BUG] Stack consistency error (sp: 17, bp: 15)
ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5... -
07:59 AM Bug #20042: ObjectSpace finalizer can cause segfault
- It started on 3.1:
```
:ok: 1.8 -- 3.0
(no stdout :speak_no_evil:)
:ok: 3.1,3.2
<internal:gc>:34: warning: Exception in finalizer #<Method: Object#fin() -:2>
-:2:in `fin': wrong number of arguments (given 1, expected 0) (Argument... - 06:48 AM Revision 7e05e9ff (git): Fix incorrect "nested_fake_name" documentation. (#9135)
- 06:47 AM Revision 88805180 (git): Add news for `Fiber#kill`. (#9134)
-
06:16 AM Revision 5f50593b (git): Fix RCLASS_EXT dump [ci skip]
-
06:14 AM Revision 582c202c (git): Adjust styles [ci skip]
- 02:49 AM Revision 538ff351 (git): [rubygems/rubygems] test_bundled_ca.rb: Add Net::OpenTimeout as a offline case.
- It seems that when DNS connection is enabled, but the TCP connection is
disabled in a way, the `Net::HTTP.connect` raises `Net::OpenTimeout`.
And I want to skip the tests in this case.
https://github.com/ruby/net-http/blob/042faf74e77d7... -
02:45 AM Revision d9a1bb4b (git): [rubygems/rubygems] Use String#unpack1 available since ruby 3.0
- https://github.com/rubygems/rubygems/commit/46258d6cb4
-
01:21 AM Revision b8b319dd (git): Revert "allow enabling Prism via flag or env var"
- This reverts commit 9b76c7fc89460ed8e9be40e4037c1d68395c0f6d.
-
12:43 AM Revision c146da50 (git): Adjust styles [ci skip]
- 12:42 AM Revision 00467699 (git): Don't warn generally for `IO::Buffer`, only on specific code paths e.g. `map`. (#9131)
-
12:18 AM Feature #20027: Add Range Deconstruction
- Pattern matching would be another option though Range doesn't implement #deconstruct or #deconstruct_keys by default.
``` ruby
class Range def deconstruct = [self.begin, self.end] end
42..420 => low, high
```
Just an aside, bu... -
12:14 AM Feature #20040: Make Hash respond do deconstruct to allow matchting key/value pairs
- Theoretically possible, but could you show us a specific use case, please?
Matz.