Activity
From 12/19/2023 to 12/25/2023
12/25/2023
-
06:56 PM Revision ca886cd2 (git): [DOC] Link to Array#eql? from Array#hash
-
05:01 PM Revision 301a7b1e (git): ci: Post Playground link to PR
- This commit adds a new workflow `pr-playground.yml` that posts a
Wasm-based PR playground link to the PR when it's labeled with
`playground`. -
03:42 PM Bug #20085 (Closed): Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux
- ```
ruby -e "Fiber.new{}.resume"
0.170 -e:1: [BUG] Segmentation fault at 0x0036ffffb4f110f0
0.170 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux]
0.170
0.170 -- Control frame information ------------------------------... -
03:41 PM Revision 824ff48a (git): Move internal ST functions to internal/st.h
- st_replace and st_init_existing_table_with_size are functions used
internally in Ruby and should not be publicly visible. -
01:47 PM Revision f4d2fe5e (git): Skip AppVeyor and GitHub if only other CI files are changed
-
01:47 PM Revision 539bef61 (git): Run spec_guards only when spec files changed [ci skip]
-
01:21 PM Bug #20084: Breaking change with Regexp.new on 3.3.0
- I think we needed to add it to Compatibility issues in NEWS.md.
-
12:24 PM Bug #20084 (Closed): Breaking change with Regexp.new on 3.3.0
- It's intentional changes. see https://bugs.ruby-lang.org/issues/18797
-
12:19 PM Bug #20084 (Closed): Breaking change with Regexp.new on 3.3.0
- Regexp.new used to take up to 3 arguments, but now only 1..2 are allowed:
```
[1] pry(main)> Regexp.new 'abc', 'i', 'n'
ArgumentError: wrong number of arguments (given 3, expected 1..2)
from (pry):1:in `initialize'
```
On 3.2... -
01:15 PM Revision ab4264a2 (git): suppress a warning
-
01:10 PM Revision 7e96d9f9 (git): suppress a warning
-
12:50 PM Revision f730a5a3 (git): Check for C99 features which may not be supported
- Continue on error because it is known that this fails right now.
Once fixed, we'll turn it off. - 12:13 PM Revision 8cd9bdd7 (git): Update default gems list at 1966a61a1e93560b9bf217662541c5 [ci skip]
-
12:12 PM Revision 1966a61a (git): Merge RubyGems-3.6.0.dev and Bundler-2.6.0.dev from master branch
-
12:12 PM Revision af4e839c (git): [ruby/optparse] [DOC] Add missing secition
- Fixes https://github.com/ruby/optparse/pull/51
https://github.com/ruby/optparse/commit/667ab35f59 -
12:12 PM Revision df941aa9 (git): [ruby/resolv] Fix typo
- https://github.com/ruby/resolv/commit/5dfdcfb7c7
-
12:12 PM Revision 5384e5df (git): [ruby/irb] Remove dead doc (https://github.com/ruby/irb/pull/819)
- https://github.com/ruby/irb/commit/2d5a1afdf5
-
12:12 PM Revision 86fa418d (git): [ruby/ipaddr] Consider IPv4-mapped IPv6 addresses link local/loopback if IPV4 address is private
- Same as #57
https://github.com/ruby/ipaddr/commit/d56acecb80 - 12:12 PM Revision da77c79d (git): [ruby/ipaddr] Fix regressions in exception messages
- Changes introduced by 09edfd4 have broken some exception
messages, and added the address as an unnecessary
suffix in others.
https://github.com/ruby/ipaddr/commit/74a043109c -
12:12 PM Revision eb531313 (git): [ruby/ipaddr] ntop: Measure address size in bytes
- `IPAddr.ntop` takes the binary representation of an IP address, whose
length should be 4 or 16 *bytes* (not characters/codepoints).
The current implementation accepts strings in any encoding, but for
some values in non-BINARY encoding, ... -
12:12 PM Revision ea5776e7 (git): [flori/json] Use rb_sym2str instead of SYM2ID
- This avoids pinning an id to the symbol used if a dynamic symbol is
passed in as a hash key.
rb_sym2str is available in Ruby 2.2+ and json depends on >= 2.3.
https://github.com/flori/json/commit/5cbafb8dbe - 12:12 PM Revision 65ec74a8 (git): [ruby/io-console] Provide a 'Changelog' link on rubygems.org/gems/io-console
- By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/io-console
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Deta... -
12:12 PM Revision a01c1e82 (git): [ruby/io-console] bump up to 0.7.2.dev.1
- https://github.com/ruby/io-console/commit/08e41a3e4d
-
12:12 PM Revision e7f91fd7 (git): [ruby/io-console] [DOC] Add missing documents
- https://github.com/ruby/io-console/commit/44dce34569
-
12:12 PM Revision 4173c4bc (git): [ruby/io-console] Extract CSI sequence
- https://github.com/ruby/io-console/commit/63dbeeecf4
-
12:12 PM Revision 69312228 (git): [ruby/securerandom] Typofix by misspell
- https://github.com/ruby/securerandom/commit/e8be08901a
-
12:12 PM Revision 3d40f115 (git): [ruby/tempfile] [DOC] Missing documents
- https://github.com/ruby/tempfile/commit/6932d6bc6f
-
12:12 PM Revision edadd5b7 (git): [ruby/psych] Typofix by misspell
- https://github.com/ruby/psych/commit/fc9ca15999
- 12:12 PM Revision bb162585 (git): [ruby/psych] Remove now-unreachable rescue block
- https://github.com/ruby/psych/commit/6905a2123c
- 12:12 PM Revision 95e7af0c (git): [ruby/psych] Remove unused array
- https://github.com/ruby/psych/commit/b9e7b4a4a4
- 12:12 PM Revision b4cb7ead (git): [ruby/fiddle] Bump version
- https://github.com/ruby/fiddle/commit/fd4bb4ea8a
- 12:12 PM Revision 60e46926 (git): [ruby/csv] Bump version
- https://github.com/ruby/csv/commit/0cba3e766d
- 12:12 PM Revision cb6a5569 (git): [ruby/date] Provide a 'Changelog' link on rubygems.org/gems/date
- By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/date
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details of... -
12:12 PM Revision 4d344dc1 (git): [ruby/etc] [DOC] Move rdoc files to .documnet
- https://github.com/ruby/etc/commit/44425427ab
-
12:12 PM Revision bf2532f0 (git): [ruby/etc] [DOC] Add empty io.rb for `IO#pathconf` to satisfy the coverage
- https://github.com/ruby/etc/commit/0353d7c8ee
-
12:12 PM Revision 12e78fbf (git): [ruby/etc] [DOC] Missing constant
- https://github.com/ruby/etc/commit/a39e982129
- 12:12 PM Revision 1e1da750 (git): [ruby/timeout] Provide a 'Changelog' link on rubygems.org/gems/timeout
- By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/timeout
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details... -
12:12 PM Revision bb6cf763 (git): [ruby/timeout] [DOC] Missing documents
- https://github.com/ruby/timeout/commit/301ad4cfdc
- 12:12 PM Revision 24e0f6fc (git): [ruby/net-protocol] Provide a 'Changelog' link on rubygems.org/gems/net-protocol
- By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/net-protocol
which makes it quick and easy for someone to check on the changes
introduced with a new version.
De... - 12:12 PM Revision da06c097 (git): [ruby/base64] Provide a 'Changelog' link on rubygems.org/gems/base64
- By providing a 'changelog_uri' in the metadata of the gemspec
a 'Changelog' link will be shown on https://rubygems.org/gems/base64
which makes it quick and easy for someone to check on the changes
introduced with a new version.
Details ... - 12:12 PM Revision 12ff13c6 (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.83 to 0.9.84.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.83...v0.9.84)
---
updated-depende... -
12:12 PM Revision df11b3da (git): [rubygems/rubygems] Let the guards have some space to breathe
- https://github.com/rubygems/rubygems/commit/73f1609715
-
12:12 PM Revision 56804ddd (git): [rubygems/rubygems] Use a mutex around Checksum::Store @store access
- Not wrapping to_lock since access to it is single threaded and
read-only at the time of writing the lockfile.
https://github.com/rubygems/rubygems/commit/3b53aa1b12 -
12:12 PM Revision 5b8e6858 (git): [ruby/rdoc] Typofix by misspell
- https://github.com/ruby/rdoc/commit/6231b03476
-
12:12 PM Revision e3249530 (git): [ruby/rdoc] Fix support for `rb_file_const` and `rb_curses_define_const`
- Constant definitions using these functions have been supported, but
since RDoc::Parser::C#gen_const_table did not consider other than
`rb_define_const` the documents for them have not been found, without
`Document-const` direvtive.
Fixe... -
12:12 PM Revision e55a57af (git): [ruby/optparse] [DOC] Add missing documents
- https://github.com/ruby/optparse/commit/324ff21f04
-
12:12 PM Revision 7dd59346 (git): [ruby/optparse] [DOC] Fix tutorial link
- Fixes https://github.com/ruby/optparse/pull/51
https://github.com/ruby/optparse/commit/1c895efc39 -
12:12 PM Revision f5436983 (git): Revert "Rollback to released version numbers of stringio and strscan"
- This reverts commit 6a79e53823e328281b9e9eee53cd141af28f8548.
-
12:12 PM Revision fa251d60 (git): Revert "Revert all of commits after Prism 0.19.0 release"
- This reverts commit d242e8416e99eaee4465e2681210ae8b7ecd6d34.
-
12:12 PM Bug #20083 (Closed): String#match? behaving inconsistently with Ruby 3.3.0
- From irb, when calling String#match?
```
pattern = /([\s]*ABC)$/i # or /(\s*ABC)/i
p "1ABC".match?(pattern) # => true
p "12ABC".match?(pattern) # => true
p "123ABC".match?(pattern) # => true
p "1231ABC".match?(pattern) # => t... -
11:33 AM Revision 12b69bf5 (git): Lrama v0.6.0
-
11:10 AM Revision 9cf1c2bb (git): Refresh NEWS.md at starting new development [ci skip]
- 10:30 AM Revision cd844592 (git): Update default gems list at e7d0ec361941a9d67616c3df1dd82d [ci skip]
-
10:28 AM Revision e7d0ec36 (git): [DOC] Fix format of NEWS.md
-
09:47 AM Revision 0d175ec4 (git): Copy 3.3.0 NEWS.md to doc/NEWS [ci skip]
- Basically 7d264e8e7bc21800c79b81e73a38082ff88c220b but for 3.3.0.
- 09:46 AM Revision c224179b (git): Update default gems list at e1c0e8cac4af53b64e7827fabaa5ae [ci skip]
-
09:45 AM Revision e1c0e8ca (git): [DOC] Add a NEWS entry about `it`
-
09:42 AM Revision 04bf2736 (git): Update NEWS.md for 3.4.0 [ci skip]
- Basically bb2c3601381d8ecb033e48825f3d0c2a387dddf2 but for 3.4.0.
-
09:36 AM Revision a164a341 (git): Resurrect a deprecated code for fixing tests for now
- Revert "Remove deprecated code to fix RUBY_DEBUG build failures"
This reverts commit 9614bea2cd59902a051a7387e354e23a52fe5396.
And changed 3.4 to 3.5. To be fixed properly later. -
09:28 AM Revision 596db9c1 (git): [Feature #19370] Blocks without anonymous parameters should not affect
-
09:25 AM Revision 6e13cde4 (git): Re-skip a failing spec
-
09:21 AM Revision 9614bea2 (git): Remove deprecated code to fix RUBY_DEBUG build failures
-
09:15 AM Feature #18980 (Closed): `it` as a default block parameter
- Applied in changeset commit:git|44592c4e20a17946b27c50081aee96802db981e6.
----------
Implement `it` (#9199)
[[Feature #18980]](https://bugs.ruby-lang.org/issues/18980)
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org> -
09:15 AM Revision 44592c4e (git): Implement `it` (#9199)
- [[Feature #18980]](https://bugs.ruby-lang.org/issues/18980)
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org> -
09:13 AM Revision 98eeadc9 (git): Development of 3.4.0 started.
-
05:59 AM Revision 5124f9ac (git): v3.3.0
-
05:52 AM Feature #19370 (Closed): Anonymous parameters for blocks?
- Applied in changeset commit:git|a9f096183170810ac6ce32b20d7810d11a51b5f5.
----------
[Feature #19370] Prohibit nesting anonymous parameter forwarding -
05:52 AM Revision a44a59db (git): [DOC] Add NEWS for [Feature #19370]
-
05:44 AM Revision a9f09618 (git): [Feature #19370] Prohibit nesting anonymous parameter forwarding
-
05:11 AM Revision b641b7e6 (git): Move non-portable pragmas to rubyspec.h
- In the extension libraries in spec/ruby/optional/capi, do not care
about deprecated declarations. -
04:50 AM Revision 863ded45 (git): Typofix under bootstraptest, spec and yjit directories
-
04:01 AM Revision 2cdbeb29 (git): Do not leave test file
- Run this test separately because something seems remained unreleased
on Windows. -
03:13 AM Revision b4efa4b7 (git): Don't copy RUBY_FL_PROMOTED flag in rb_obj_setup
- RUBY_FL_PROMOTED is used by the garbage collector to track when an
object becomes promoted to the old generation. rb_obj_setup must not
copy that flag over because then it may become out-of-sync with the age
of the object.
This fixes a ... -
03:04 AM Revision 1b5f3dd6 (git): Removed empty sections
-
02:32 AM Revision 27ead990 (git): Typofix under lib and test, tool directories
-
02:29 AM Revision 7002e776 (git): Fix Symbol#inspect for GC compaction
- The test fails when RGENGC_CHECK_MODE is turned on:
1) Failure:
TestSymbol#test_inspect_under_gc_compact_stress [test/ruby/test_symbol.rb:123]:
<":testing"> expected but was
<":\x00\x00\x00\x00\x00\x00\x00">. -
02:22 AM Revision e2337308 (git): Partly reverted c903cddf55af1505a0779e1a131f2fe47b838260
- These are intentional words
-
02:17 AM Revision c903cddf (git): Typofix under doc directory
-
01:37 AM Revision 70618a48 (git): Fix off-by-one error for declarative marking
- The for loops for marking and reference updating declaratively marked
TypedData objects did not mark/reference update the very last element.
When RGENGC_CHECK_MODE is turned on, this caused the test in Enumerator
to fail with:
tool... - 01:20 AM Revision 260bf60e (git): Correctly release the underlying file mapping. (#9340)
- * Avoiding using `Tempfile` which was retaining the file preventing it from unlinking.
12/24/2023
-
09:22 PM Revision 5af64ff7 (git): Fix Enumerator#with_index for GC compaction
- enumerator_block_call was not safe for compaction because the Array
backing the argv was not pinned, so it could get moved during compaction
which would make argv point to somewhere else.
The test crashes when RGENGC_CHECK_MODE is turne... -
07:56 PM Revision 86ef3819 (git): RDoc for complex.c
-
05:47 PM Bug #20076: M:N scheduler is stuck on macOS with RUBY_MN_THREADS=1
- A one-line change fixes it for me, and fixes almost every failure I was seeing when running `test-all` using `RUBY_MN_THREADS=1`. Here is the change: https://github.com/ruby/ruby/pull/9344/files
```c
static ssize_t
rb_io_read_memory(rb_... -
04:04 PM Revision f0efeddd (git): Fix Regexp#inspect for GC compaction
- rb_reg_desc was not safe for GC compaction because it took in the C
string and length but not the backing String object so it get moved
during compaction. This commit changes rb_reg_desc to use the string
from the Regexp object.
The tes... -
04:00 PM Revision 8ad8803b (git): RDoc for Complex
-
02:03 PM Revision 42442ed7 (git): Fix Regexp#match for GC compaction
- The test fails when RGENGC_CHECK_MODE is turned on:
TestRegexp#test_match_under_gc_compact_stress:
NoMethodError: undefined method `match' for nil
test_regexp.rb:878:in `block in test_match_under_gc_compact_stress' - 01:03 PM Revision 37753f16 (git): IO::Buffer improvements and documentation. (#9329)
- * Restore experimental warnings.
* Documentation and code structure improvements.
* Improved validation of flags, clarified documentation of argument handling.
* Remove inconsistent use of `Example:` and add example to `null?`.
* Exp... -
10:34 AM Revision 61289d94 (git): Initialize loop variable of `ccan_list_for_each`
- On platforms where `typeof` is unsupported, `ccan_container_off_var`
calculates the offset of member by pointer subtraction. Although this
will result in the compile-time invariant value regardless the pointer
value, the loop variable w... - 06:58 AM Revision 86893b28 (git): Update bundled gems list as of 2023-12-24
-
06:13 AM Revision a87ae242 (git): Use noinline version of accessing current ec
- On universal.arm64e-darwin22 with clang 15.0.0 (I didn't check
details yet) accessing `ruby_current_ec` directly causes
assertion violation `VM_ASSERT(ec == rb_current_ec_noinline())`
on `rb_current_execution_context()`, maybe because TL... -
05:53 AM Revision 541371e2 (git): accept `RB_WAITFD_IN | RB_WAITFD_OUT` for waiting events
- Assrsion was `events == RB_WAITFD_IN || events == RB_WAITFD_OUT`
but it should accept `RB_WAITFD_IN | RB_WAITFD_OUT`. -
04:59 AM Revision 0fef890b (git): [DOC] Fix markup in HTML
- Inside HTML is not markdown.
-
01:57 AM Revision 82015496 (git): MN: access `timer_th.waiting` with lock
- `timer_th.waiting` should be protected by `timer_th.waiting_lock`
-
12:36 AM Bug #20082: Killing fibers across threads: unexpected exception
- The error message is indeed somewhat peculiar:
"attempt to resume **a resumed fiber** ( **double resume** )"
I am not sure what "double resume" means here. But, even aside
from this, I could not even try to want to explain what "t...
12/23/2023
-
11:06 PM Revision daefbf8f (git): Use native_thread_init_stack on cygwin
-
11:00 PM Revision 50bf4373 (git): Fix String#sub for GC compaction
- The test fails when RGENGC_CHECK_MODE is turned on:
TestString#test_sub_gc_compact_stress = 9.42 s
1) Failure:
TestString#test_sub_gc_compact_stress [test/ruby/test_string.rb:2089]:
<"aaa [amp] yyy"> expected but was
... -
10:07 PM Revision a2ebf9cc (git): Replicate EEXIST epoll_ctl behavior in kqueue
- * In the epoll implementation, you get an EEXIST if you try to register the same event for the same fd more than once for a particular epoll instance
* Otherwise kevent will just override the previous event registration, and if multiple... -
09:52 PM Revision fadda889 (git): Fix Regexp#to_s for GC compaction
- The test fails when RGENGC_CHECK_MODE is turned on:
TestRegexp#test_to_s_under_gc_compact_stress = 13.46 s
1) Failure:
TestRegexp#test_to_s_under_gc_compact_stress [test/ruby/test_regexp.rb:81]:
<"(?-mix:abcd\u3042)"> ex... -
09:40 PM Bug #20082: Killing fibers across threads: unexpected exception
- UPD: OTOH, without resuming, the code doesn't see any problem at all (despite the claim about killing other thread's fibers):
```ruby
fibers = []
Thread.new {
f = Fiber.new { (1..).each { sleep(0.1) } }
fibers << f
}
sleep(0... -
09:15 PM Bug #20082 (Assigned): Killing fibers across threads: unexpected exception
- For providing the example in a changelog, I tried to imitate killing fibers belonging to other threads.
Documentation [claims](https://docs.ruby-lang.org/en/master/Fiber.html#method-i-kill)
> Raises FiberError if called on a fiber be... -
09:08 PM Revision 688a1314 (git): [DOC] Clean up doc for File#flock (#9332)
-
05:57 PM Bug #20081: Transfered Fiber doesn't return to Fiber that started it
- I see that Ruby 3.3 has `Fiber#kill` coming (https://github.com/ruby/ruby/pull/7823), which I _think_ will solve my problem: I can manually `.kill` Fibers instead of running them until they return. But still, I'm interested to learn whet...
-
05:44 PM Bug #20081 (Open): Transfered Fiber doesn't return to Fiber that started it
- Hi! I'm trying to figure out how to make sure that Fibers started with `.transfer` end up _terminated_, not just suspended. (If they're suspended, Rails thinks they're still alive, and they continue to hold onto database connections, see...
-
02:51 PM Revision 47f33c38 (git): Remove useless `#if 1` in array.c
-
02:21 PM Feature #19324: Enumerator.product => Enumerable#product
- > I couldn't take the time to work on this, sorry.
Yeah, same :(
It seems this has to wait till 3.4 (especially considering the need to think about optimizations), I'll work on this in January, hopefully.
Sorry, I had a peculiar... -
02:13 PM Feature #19324: Enumerator.product => Enumerable#product
- I couldn't take the time to work on this, sorry.
One thing I noticed while I was thinking of this was that Array#product only takes arrays and is optimized for iterating over arrays using index access instead of calling `each`.
When ... -
11:25 AM Feature #19370: Anonymous parameters for blocks?
- https://github.com/ruby/ruby/pull/9330
-
10:36 AM Revision fe9e57ba (git): Adjust indent [ci skip]
-
09:57 AM Revision fd3dede7 (git): Fix for older set versions
- `Set::VERSION` was not defined in old set.rb bundled with ruby 3.2 or
earlier.
Also add comment for spec/mspec/tool/remove_old_guards.rb. -
09:15 AM Revision dc7785e1 (git): Set 1.1 now checks subclass-ness stricter
-
09:03 AM Revision f6e9899e (git): Make rbconfig.rb loadable from exe/ruby
- So that it can run without `--disable=gems` option.
-
09:03 AM Revision 8c03bdac (git): Control the precheck for test-all by `PRECHECK_TEST_ALL`
- 07:51 AM Revision 40bc7ede (git): Set 1.1.0 has been imported
- 07:50 AM Revision c66ff6fa (git): [ruby/set] Bump version to 1.1.0
- https://github.com/ruby/set/commit/d6cab5bcc8
- 07:50 AM Revision 67882d76 (git): [ruby/set] Use the pattern argument instead of a block
- https://github.com/ruby/set/commit/c63047c2ce
- 07:50 AM Revision 6fc3171e (git): [ruby/set] The arity of initialize_clone is -1 in Ruby >= 3
- https://github.com/ruby/set/commit/32a9689696
- 07:50 AM Revision 271c74a4 (git): [ruby/set] Drop support for Ruby 2
- https://github.com/ruby/set/commit/64dad673d8
-
06:18 AM Revision da02d08f (git): RJIT: Rewind $! after compilation
-
05:48 AM Revision ef065102 (git): RJIT: Prefer STDERR over $stderr
- When $stderr is redirected, you'll have no way to see why RJIT got
broken. This reference must always be the actual stderr. -
04:20 AM Revision c25705c2 (git): Get rid of obsoleted RJITFirst
- It was renamed from test_mjit, but we did not maintain it as test_rjit.
We test RJIT very differently. -
03:31 AM Revision 9b289d58 (git): [DOC] RDoc for Complex (#9307)
-
02:39 AM Feature #20080: Introduce #bounds method on Range
- I have no particular opinion on the suggested feature itself,
but I agree that .bounds() is a better API / name than
.begin_and_end(), even though I understand the rationale
between the latter name making it more explicit. Ruby often... -
02:07 AM Revision f1b7424c (git): FREE_AT_EXIT: Don't free main stack post-fork
- When a forked process was started in a thread, this would result in a
double-free during the child process exit.
RUBY_FREE_AT_EXIT=1 ./miniruby -e 'Thread.new { fork { } }.join; Process.waitpid'
This is because the main thread in t... -
02:07 AM Revision 339978ef (git): Free default_rand_key after freeing Ractors
- Ractor's free iterates through its TLS keys so we need to keep this
memory available until after Ractors are freed.
Minimal reproduction:
RUBY_FREE_AT_EXIT=1 ./miniruby -e rand -
02:07 AM Revision 697a096c (git): Remove EC argument from clean_hooks_check
- This argument doesn't seem used anymore. Since we want to free these
objects during VM destruction when RUBY_FREE_AT_EXIT is set they must
work without an EC.
This avoids a use-after-free running `RUBY_FREE_AT_EXIT=1 ./miniruby -e ''` -
01:35 AM Bug #20078: StringIO cannot be moved between Ractors
- luke-gru (Luke Gruber) wrote in #note-3:
> I think this is due to not currently being able to move any T_DATA objects between ractors. StringIO is defined in a C extension and is a T_DATA object internally. See https://github.com/ruby/r... - 12:35 AM Revision 24ff13d8 (git): Update default gems list at 7d7a84e99fca816ec352c95965687d [ci skip]
-
12:34 AM Revision 7d7a84e9 (git): Merge RubyGems-3.5.3 and Bundler-2.5.3
12/22/2023
-
11:10 PM Revision fa5de8f6 (git): MN: skip waiting on fiber schedulers
- If the Fiber is nonblocking mode, fiber scheduler needs to handle
IO events. -
11:10 PM Revision beec3d07 (git): MN: skip waiting on `read_nonblock'
- if the IO for `IO#read_nonblock` is not ready, it needs
to return (or raise) immediately. -
11:10 PM Revision 2fe9e085 (git): MN: skip RUBY_DESCRIPTION spec on MN enabled
-
08:56 PM Revision a4b73721 (git): MN: ceil timeout milli seconds
- `hrrel / RB_HRTIME_PER_MSEC` floor the timeout value and it can
return wrong value by `Mutex#sleep` (return Integer even if
it should return nil (timeout'ed)).
This patch ceil the value and the issue was solved. -
08:56 PM Revision c974ee1a (git): ensure to restart antoher thread
-
08:56 PM Revision bbfc262c (git): MN: fix "raise on close"
- Introduce `thread_io_wait_events()` to make 1 function to call
`thread_sched_wait_events()`.
In ``thread_io_wait_events()`, manipulate `waiting_fd` to raise
an exception when closing the IO correctly. -
07:37 PM Bug #20078: StringIO cannot be moved between Ractors
- I think this is due to not currently being able to move any T_DATA objects between ractors. StringIO is defined in a C extension and is a T_DATA object internally. See https://github.com/ruby/ruby/blob/master/ractor.c#L3417C1-L3417C13. T...
-
02:26 PM Bug #20078: StringIO cannot be moved between Ractors
- Thank you for the quick response!
If my understanding is correct, then there are 4 categories of Ruby objects:
1. Shareable objects (Ractors, immutable objects, etc)
2. Unshareable but sendable with copy and move
3. Unshareable but s... -
03:18 AM Bug #20078: StringIO cannot be moved between Ractors
- StringIO is a mutable object, so it is fundamentally not movable. I agree that some cosmetic errors you have pointed should be fixed.
Matz.
-
02:40 AM Bug #20078 (Closed): StringIO cannot be moved between Ractors
- The following code will raise an unusual Ractor error.
``` ruby
require 'stringio'
r = Ractor.new { loop { Ractor.receive } }
Ractor.shareable?(StringIO.new) #=> false
r.send(StringIO.new) # passing it via copy works
r.send(StringI... -
07:33 PM Misc #20013: Travis CI status
Now I am asking Travis CI support by emailing them about the following error messages which are printed in only Arm64 pipelines, and it seems not affected to the result of the CI tests.
https://app.travis-ci.com/github/ruby/ruby/jobs/6...-
07:24 PM Revision 19d082dc (git): RJIT: Distinguish Pointer with Array
- This is more convenient for accessing those fields.
-
06:57 PM Feature #20080: Introduce #bounds method on Range
- @Dan0042 great idea! At first I was against this because I thought it would make deconstruction harder but it actually wouldn't because deconstruction would work the same. I was thinking the second value if deconstructed would be an arra...
-
06:49 PM Feature #20080: Introduce #bounds method on Range
- An aside, but with Enumerator::ArithmeticSequence, `last` give you the value excluding end but not so with Range.
``` ruby
(1...2).last
#=> 2
((1...2) % 1).last
#=> 1
```
-
06:35 PM Feature #20080: Introduce #bounds method on Range
- If it's for serialization wouldn't you also want to know `exclude_end?`
```ruby
b = (1..2).bounds #=> [1,2]
Range.new(*b) #=> 1..2
b = (1...2).bounds #=> [1,2,true]
Range.new(*b) #=> 1...2
```
-
05:55 PM Feature #20080: Introduce #bounds method on Range
- @ufuk I like `#bounds` as a name also, great suggestion, let's try that. And thank you for showing beginless and endless examples, I agree with that usage.
@Dan0042 Sorry for the bad example, I didn't show a good use case I just showed ... -
05:30 PM Feature #20080: Introduce #bounds method on Range
- I agree that this would be a good method to add for cases where one is handed a `Range` instance and accessing the bounds of that range is needed.
However, I think the name should be `#bounds` and it should work as:
```ruby
(1..300)... -
05:03 PM Feature #20080: Introduce #bounds method on Range
- Can you show an example use case that demonstrates the value of the feature?
Because
`first, last = (300..1).begin_and_end` is simpler as `first, last = 300, 1`
`first, last = r.begin_and_end` might as well be `first, last = r.first... -
04:26 PM Feature #20080 (Feedback): Introduce #bounds method on Range
- Followup Reference: #20027
**Update 1/11/24:** (based on many wonderful suggestions!)
1. Call the method `#bounds`.
```ruby
first, last = (1..300).bounds # => [1, 300]
first, last = (300..1).bounds # => [300, 1]
first, last = ... -
04:31 PM Feature #20027: Add Range Deconstruction
- Conversation moved to new issue for implementation of `#begin_and_end` method on Range: #20080
-
03:39 PM Feature #20027: Add Range Deconstruction
- Yeah great point @Dan0042, `#minmax` _almost_ works, but as you point out it does not work because if the range is a reverse range you get `nil` for both values. Interesting!
```ruby
(1..42).minmax #=> [1, 42]
(42..1).minmax #=> [nil, ni... -
01:12 AM Feature #20027: Add Range Deconstruction
- ```ruby
(1..42).minmax #=> [1, 42]
(42..1).minmax #=> [nil, nil]
``` -
03:28 PM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
- > How about raise NoMethodError
Agreed. If people want an exception that inherits from `StandardError`, then `NoMethodError` perfectly fits the bill.
I still think that "you forgot to implement this abstract method" shouldn't inher... -
03:02 PM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
- How about `raise NoMethodError, "method '#{__method__}' is not implemented in #{self.class}"`
-
02:38 PM Misc #20038: Strings with mixed escapes not detected around interpolation
- Thank you for your response. I understand that interpolation is sugar for concatenation. However these strings will always cause an error, but they won't cause an error until runtime. This information is statically known, so I am proposi...
-
02:08 PM Revision 40e3f782 (git): Extract `forwarding_arg_check` function
-
02:08 PM Revision 11c2aa03 (git): Extract `arg_splat` nonterminal symbol
- 02:06 PM Revision 426f2334 (git): .travis.yml: Try another way to be notified.
- I <jaruga@ruby-lang.org> haven't received the notifications since August 2022.
So, try another way to be notified written on the document below.
https://docs.travis-ci.com/user/notifications/#configuring-email-notifications -
12:26 PM Bug #20079: alexandria testsuite began to segfault recently
- > from the crash report you show the crash happened in spec/alexandria/ui/acquire_dialog_spec.rb:12, do you get a crash if you run this single test?
Unfortunately executing this spec file only does not trigger the above segfault.
>... -
10:59 AM Bug #20079: alexandria testsuite began to segfault recently
- @mtasaka Hmmm, does the segfault stop reproducing by reverting the commit?
Can you check if it will stop reproducing if you apply the following patch?
```
diff --git a/hash.c b/hash.c
index 78e9d9a2d6..434b40c445 100644
--- a/ha... -
10:43 AM Bug #20079: alexandria testsuite began to segfault recently
- Any chance you could reduce this more? e.g. from the crash report you show the crash happened in `spec/alexandria/ui/acquire_dialog_spec.rb:12`, do you get a crash if you run this single test?
-
10:36 AM Bug #20079: alexandria testsuite began to segfault recently
- Once I've uploaded alexandria source (alexandria with Fedora patches):
https://mtasaka.fedorapeople.org/Bugfix/alexandria-bug.tar.gz
The reproducer is once after unpacking the above, do `$ cd alexandria-book-collection-manager-0.7.... -
08:54 AM Bug #20079: alexandria testsuite began to segfault recently
- ```
rb_id_table_lookup
vm_search_cc
vm_search_method_slowpath0
vm_exec_core
```
That part of the backtrace suggest Ruby is trying to call a method on a corrupted object.
Since the last frame of the ruby backtrace is `gems/gtk3... -
08:41 AM Bug #20079: alexandria testsuite began to segfault recently
- Well, indeed the culprit seems commit:11fa76b1b521072c200c78ea023960221ff426d6
-
07:52 AM Bug #20079: alexandria testsuite began to segfault recently
- Reproducing this without using Fedora srpm may be difficult... Currently I am unable to reproduce this with "vanilla" alexandria, but can reproduce using Fedora's (i.e. some patched) alexandria. Maybe uploading uploading the contents of ...
-
04:46 AM Bug #20079: alexandria testsuite began to segfault recently
- @mtasaka Could you please elaborate on how to reproduce the issue?
Also, can you please try to identify the suspect commit by git bisect if you are sure that it is in ba1d1522d3...ce436ff3e3? -
03:59 AM Bug #20079 (Open): alexandria testsuite began to segfault recently
- Looks like Fedora alexandria-0.7.9-4 testsuite began to segfault with recent ruby3.3.0dev.
It does not always segfault, but with about 20-30%? probability the testsuite segfaults, so it may be GC related?
And looks like:
OKAY: comm... -
08:12 AM Bug #20077: modern http client
- I know,but this is the bad part,they are http verb,but some return response,some return body string.
all verb method should return response object, modify net/http will break compatibility.
so I suggest opt out net/http and webrick... -
07:15 AM Bug #19977 (Closed): (nil..nil) === x can raise an exception, differing from Range#cover?
- Applied in changeset commit:git|e8639098ed78f8f8f7c263d8b6f2d68822945a78.
----------
[Bug #19977] Fix (nil..nil) === x not to raise TypeError -
05:41 AM Bug #19977: (nil..nil) === x can raise an exception, differing from Range#cover?
- I've approved the PR and I'll see if @nobu agrees. I definitely would love to see this merged to 3.3.
-
07:15 AM Revision e8639098 (git): [Bug #19977] Fix (nil..nil) === x not to raise TypeError
-
07:12 AM Feature #19725 (Closed): Improve the match cache optimization to support look-ahead and atomic groups
-
07:00 AM Revision f263e447 (git): RJIT: Avoid retaining unrelated local variables in memory
-
06:55 AM Bug #20029 (Closed): coroutine/arm64/Context.S does not support PAC/BTI
-
06:55 AM Bug #20029: coroutine/arm64/Context.S does not support PAC/BTI
- https://github.com/ruby/ruby/pull/9306 has been merged.
-
06:53 AM Revision ef4797bb (git): [DOC] Fix NEWS markup
-
06:28 AM Revision 17e35105 (git): Add Regexp updates to NEWS.md
-
06:15 AM Revision e364436c (git): [DOC] NEWS entries for Parser
-
05:59 AM Revision f3c82df9 (git): RJIT: Minimize string allocations in InsnCompiler
-
05:46 AM Revision 2e0277b1 (git): RJIT: Make --rjit-trace actually work
-
05:10 AM Revision 4c6f07ee (git): RJIT: Update bindgen
-
05:05 AM Revision 64c52cd1 (git): RJIT: Add --rjit-trace to allow TracePoint during JIT
-
04:43 AM Revision c18edc5b (git): Avoid underflow of rb_yjit_live_iseq_count
- This value is only incremented when rb_iseq_translate_threaded_code is
called, which doesn't happen for iseqs which result in a syntax error.
This is easy to hit by running a debug build with RUBY_FREE_AT_EXIT=1,
but any build and optio... -
03:45 AM Revision cae11dd8 (git): debug.gem v1.9.1
-
02:30 AM Revision fa0f7522 (git): coroutine/arm64: Skip saving/restoring x30 twice and use `autiasp`
- We don't need to save/restore x30 twice, and we can just use `ret`,
which uses x30 as return address register instead of explicit `ret <reg>`
instruction. This also allows us to use `autiasp` instead of `autia1716`
and we can skip settin... -
02:30 AM Revision 2d004dec (git): coroutine/arm64/Context.S: Append PAC/BTI note section if needed
- Fixes https://bugs.ruby-lang.org/issues/20029
-
02:30 AM Revision 35587150 (git): coroutine/arm64/Context.S: Insert `bti c` as BTI landing pad
-
02:30 AM Revision d9e5564c (git): coroutine/arm64: Sign return address if PAC enabled
-
01:47 AM Revision 9a3c49ee (git): RJIT: Convert opt_case_dispatch keys with #to_value
- comptime_key is a Ruby object and the value is not valid in machine code.
This PR also implements `CMP r/m64, imm32 (Mod 01: [reg]+disp8)` that is
now needed for running mail.gem benchmark. -
01:34 AM Revision 0c05551f (git): Typo fixes for public headers [ci skip]
-
01:12 AM Revision 009968a7 (git): RJIT: Avoid incrementing vm_insns_count
- during compilation
-
12:47 AM Revision 3c182776 (git): RJIT: Clean up unnecessary documentation
-
12:45 AM Revision 18a97aff (git): RJIT: Fix a wrong comparison in set_local_type
12/21/2023
-
11:48 PM Revision 68bcca4c (git): RJIT: Fix unwanted shadowing in set_local_type
- local_idx should not be overwritten.
-
11:23 PM Bug #20017 (Closed): 3.3.0dev `rb_thread_profile_frames` crashes when `RUBY_MN_THREADS=1`
- Applied in changeset commit:git|ffa5f16273f46c97bfca56e4549b0b38b9322d63.
----------
Make rb_profile_frames return 0 for NULL ec
When using M:N threads, EC is set to NULL in the shared native thread
when nothing is scheduled. This prev... -
11:23 PM Revision ffa5f162 (git): Make rb_profile_frames return 0 for NULL ec
- When using M:N threads, EC is set to NULL in the shared native thread
when nothing is scheduled. This previously caused a segfault when we try
to examine the EC.
Returning 0 instead means we may miss profiling information, but a
profile... -
10:32 PM Revision 78b27ce6 (git): RJIT: Streamline RJIT enablement check
- in bootstrap tests so that `make btest-bruby` skips the right tests.
-
10:25 PM Revision c73959cf (git): RJIT: Rename pause/resume to disable/enable
- like YJIT. They don't work in the same way yet, but it's nice to make
the naming consistent first so that we will not need to rename them
later. - 10:24 PM Revision 69bed94c (git): Update default gems list at 82496f2b389278a569fa7680ee6faa [ci skip]
-
10:24 PM Revision 82496f2b (git): Merge RubyGems-3.5.2 and Bundler-2.5.2
-
09:12 PM Revision fc549b2b (git): [DOC] Improve NEWS.md rendering and add missing features (#9308)
- * Fix rendering of the file on docs.ruby-lang.org:
* More indentation for code;
* Properly qualified methods to link to docs;
* Add two minor yet notable changes:
* Time.new stricter parsing of strings;
* NoMethodError rendering ... -
08:47 PM Feature #20027: Add Range Deconstruction
- Thanks for the thoughtful responses @shan and @mame!
Shan, you make great points. With the next `it` syntax coming in ruby 3.3 you could also do:
```ruby
low, high = (42..420).then { [it.begin, it.end] }
```
Mame, thank you for discuss... -
02:28 AM Feature #20027 (Rejected): Add Range Deconstruction
- We discussed this at the dev meeting and decided to reject it.
Currently, assignment deconstruction is available only for Arrays (note that assignment deconstruction is not pattern matching). Such special handling for Ranges is not ju... -
08:27 PM Revision e04197ab (git): [DOC] Fix NoMethodError example of rendering (#9309)
- Fix NoMethodError example of rendering
-
06:22 PM Bug #20077: modern http client
- > HTTP.get return body as string,
> ...
If you look at what `HTTP.get` does, it's just `HTTP.get_response(...).body`. You may use `HTTP.get_response` for that purpose. -
06:10 PM Bug #20077: modern http client
- HTTP.get return body as string,
other http method return response
there is get_print, maybe for scripting.
HTTP:Client api is also hard to use.
can we deprecate net/*
and get an modern http client (or server) in std.
h... -
05:18 PM Bug #20077: modern http client
- For GET and POST, modern Ruby does have APIs that aren't hard to use. I wonder if you have used them.
* `Net::HTTP.get(uri, headers = {})`: Ruby 3.0+ https://bugs.ruby-lang.org/issues/16686
* `Net::HTTP.post(uri, body, headers = {})`... -
05:43 AM Bug #20077 (Feedback): modern http client
- It would be good if you could outline in more detail:
* What, exactly, about net/http you find hard to use?
* Some use-cases where net/http causes problems which could be improved with a different client interface
* Why this use-cas... -
05:35 AM Bug #20077 (Feedback): modern http client
- net/http is very very old and hard to use.
we need a well designed http client in stdlib.
-
05:17 PM Bug #20016 (Closed): 3.3.0dev `rb_postponed_job_register_one` crashes when `RUBY_MN_THREADS=1`
- Applied in changeset commit:git|1f0304218cf00e05a4a126196676ba221ebf91f6.
----------
Use main_thread->ec from rb_vm_main_ractor_ec
rb_vm_main_ractor_ec was introduced to allow rb_postponed_job_* to work
when fired on non-Ruby threads, ... -
05:17 PM Revision 1f030421 (git): Use main_thread->ec from rb_vm_main_ractor_ec
- rb_vm_main_ractor_ec was introduced to allow rb_postponed_job_* to work
when fired on non-Ruby threads, which have no EC set, and that is its
only use.
When RUBY_MN_THREADS=1 is set ractor->threads.running_ec is NULL when
the shared thr... -
05:17 PM Revision 1710eb93 (git): [DOC] Fix rb_postponed_job_register_once typo
- Co-authored-by: Dustin Brown <dbrown9@gmail.com>
-
03:39 PM Revision e191bf42 (git): Fix ary_make_partial_step for compaction
- ary could change embeddedness due to compaction, so we should only get
the pointer after allocations.
The included test was crashing with:
TestArray#test_slice_gc_compact_stress
ruby/lib/pp.rb:192: [BUG] Segmentation fault at 0... -
12:02 PM Revision fd473513 (git): Fix a typo in NEWS.md
-
09:55 AM Bug #20052 (Third Party's Issue): reline behaves oddly with redirect (non tty)
-
09:47 AM Bug #20074: IRB/Pry search up arrow in 3.3 changed behaviour "\e[A": history-search-backward
- hsbt (Hiroshi SHIBATA) wrote in #note-1:
> Thanks for your report. Ruby 3.3 will use reline that is readline replacement of pure ruby by default.
> ...
Thank you! Indeed, readline-ext gem helps.
Reported to reline: https://github.com/... -
08:38 AM Bug #20074 (Third Party's Issue): IRB/Pry search up arrow in 3.3 changed behaviour "\e[A": history-search-backward
- Thanks for your report. Ruby 3.3 will use reline that is readline replacement of pure ruby by default.
Can you reproduce it with `gem install readline-ext`?
Finally, could you file this issue to [the upstream of reline repository](... -
05:16 AM Revision bcb4706d (git): Added limitation of bundled gems warning feature with bootsnap
-
04:42 AM Bug #20076: M:N scheduler is stuck on macOS with RUBY_MN_THREADS=1
- >is it crashing, or hanging?
Thanks, It's hanging (Stuck?). -
04:28 AM Bug #20076: M:N scheduler is stuck on macOS with RUBY_MN_THREADS=1
- Confirmed that if I change all of the `rb_thread_io_blocking_call` calls to hard-code 0 as the last argument (instead of `RB_WAITFD_IN` or `RB_WAITFD_OUT`) then `make test-tool` works again with macOS for me, using Sonoma 14.1.
Using d... -
04:15 AM Bug #20076: M:N scheduler is stuck on macOS with RUBY_MN_THREADS=1
- Originally I thought it was the kqueue MN PR, but it may have been the changes applied before it that are causing this. If I go back to the commit before kqueue was merged this issue is still occurring (using the original epoll code). If...
-
03:57 AM Bug #20076: M:N scheduler is stuck on macOS with RUBY_MN_THREADS=1
- @hsbt is it crashing, or hanging? For me, I am seeing the following tests hang:
tool/test/webrick/test_server.rb#test_restart_after_stop
tool/test/webrick/test_server.rb#test_port_numbers
If I comment those out, `make exam` and `m... -
03:17 AM Bug #20076 (Closed): M:N scheduler is stuck on macOS with RUBY_MN_THREADS=1
- This is known issue. I already shared this to ko1.
The version of https://github.com/ruby/ruby/commit/28e3886689c71b22487dd5d0cb62f3b5ed0a77cc is crashed with `make exam`.
This is happend with webrick test on `make test-tool`.
M... -
02:31 AM Misc #20075 (Closed): DevMeeting-2024-01-17
- # The next dev meeting
**Date: 2024/01/17 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2024/DevMeeting-2024-01-17.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... -
02:30 AM Misc #20046 (Closed): DevMeeting-2023-12-20
-
02:20 AM Feature #20031 (Feedback): Regexp using greedy quantifier and unions on a big string uses a lot of memory
- This is not a bug. If anyone creates a patch to improve this, we may consider it. We could reduce the stack size consumed, or add a `/.*(foo|bar)/` pattern-specific optimization, if this pattern is frequent.
- 01:26 AM Revision 28e38866 (git): Update bundled gems list at d587852cf7f660308d1287e85767ad [ci skip]
-
01:26 AM Revision d587852c (git): Bundle RBS 3.4.0 (#9293)
- Bundle RBS 3.4.0 and TypeProf 0.21.9.
-
12:17 AM Bug #20029: coroutine/arm64/Context.S does not support PAC/BTI
- IIUC, just marking the assembly as supporting the feature won't help without actually implementing said features. What we need to do is check what the requirements are for PAC and BTI.
See also: https://bugs.ruby-lang.org/issues/18061 f...
12/20/2023
-
11:55 PM Bug #20017: 3.3.0dev `rb_thread_profile_frames` crashes when `RUBY_MN_THREADS=1`
- I opened a PR with a proposal to fix this https://github.com/ruby/ruby/pull/9310
The issue is that under M:N threads the current thread's EC can become NULL (when running on a shared native thread if there are no more threads to sched... -
11:52 PM Bug #20016: 3.3.0dev `rb_postponed_job_register_one` crashes when `RUBY_MN_THREADS=1`
- I opened a PR with a proposal to fix this. https://github.com/ruby/ruby/pull/9311
The issue is that under M:N threads `rb_vm_main_ractor_ec` now returns NULL when all threads in the main Ractor's shared thread are sleeping. rb_postpon... -
09:50 PM Bug #20074 (Third Party's Issue): IRB/Pry search up arrow in 3.3 changed behaviour "\e[A": history-search-backward
- In 3.3 since preview 1 this handy readline feature is kind of broken
``` shell
$ cat ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
```
It supposed to search history by starting typing substring, yo... -
06:39 PM Feature #20049: Destructive drop_while for Array and Hash
- for comparison, the original implementation can be found here: https://github.com/igrigorik/http-2/blob/master/lib/http/2/connection.rb#L705-L714 (http-2-next is a fork of http-2 gem).
FWIW zverok's use case is also reasonably common. -
06:07 PM Feature #20049: Destructive drop_while for Array and Hash
- thx for the response matz!
The specific use case can be found here: https://gitlab.com/os85/http-2-next/-/blob/master/lib/http/2/next/connection.rb#L737-739
The HTTP/2 allows frames to be ackowledged for streams that have been closed "... -
09:03 AM Feature #20049: Destructive drop_while for Array and Hash
- > Could you explain the use-case for the new method, please?
Not the original author, but I think one of the frequent use cases is some parser- or scanner-alike code. E.g., after reading some "dirty" data,
```ruby
lines.drop_whil... -
08:16 AM Feature #20049 (Feedback): Destructive drop_while for Array and Hash
- I reject `Hash#drop_while!` because the order is not (and should not be) important for Hash and the order of hash is fragile anyway.
Whereas `Array#drop_while!` has chance. Could you explain the use-case for the new method, please?
M... -
05:17 PM Revision c28177cd (git): RJIT: Print an error message first
- Creating a backtrace can crash if RJIT is triggered by branch_stub_hit.
In that case, it's useful to at least print the error message. -
01:22 PM Bug #20064: Inconsistent behavior between array splat *nil and hash splat **nil
- matz (Yukihiro Matsumoto) wrote in #note-2:
> But I am against adding `nil.to_h`.
`nil.to_h` already exists.
Do you mean you are against using #to_h for double splats? If that's the case I would really appreciate if you could explain y... -
08:10 AM Bug #20064: Inconsistent behavior between array splat *nil and hash splat **nil
- The example in the proposal persuaded me. I accept allowing `**nil`. But I am against adding `nil.to_h`.
Matz.
-
11:38 AM Bug #20029: coroutine/arm64/Context.S does not support PAC/BTI
- I think https://github.com/ruby/ruby/pull/9306 fixes the issue but I'm not sure how you pass `-mbranch-protection=standard` so I'm not confident that this change fixes the issue.
Could you share your configure options, ruby source revisi... - 10:36 AM Revision fac7d2c1 (git): Update default gems list at 31959f1f13c0dcbb517469b4cbf29a [ci skip]
-
10:11 AM Revision 31959f1f (git): [ruby/irb] Bump version to v1.11.0
- (https://github.com/ruby/irb/pull/818)
https://github.com/ruby/irb/commit/7421359b92 -
10:11 AM Revision 4ad1007f (git): [ruby/irb] [DOC] Change indexes.rdoc to indexes.md
- (https://github.com/ruby/irb/pull/812)
* Change indexes.rdoc to indexes.md
* Change indexes.rdoc to indexes.md
* Change indexes.rdoc to indexes.md
https://github.com/ruby/irb/commit/b1cd53cbf7 -
10:11 AM Revision 2793a30b (git): [ruby/irb] Warn users about errors in loading RC files
- (https://github.com/ruby/irb/pull/817)
1. Because `IRB.rc_file` always generates an rc file name, even if the
file doesn't exist, we should check the file exists before trying to
load it.
2. If any type of errors occur while loadi... -
09:37 AM Feature #19422: Make `--enabled-shared` mandatory on macOS
- This feature has been reverted due to #20004 and we are planning to land it again after 3.3 release by https://github.com/ruby/ruby/pull/9090
-
09:26 AM Feature #19422: Make `--enabled-shared` mandatory on macOS
- Should this be tried again? Maybe the failures were caused by the bug #20072 ?
-
09:34 AM Bug #20052: reline behaves oddly with redirect (non tty)
- Since there was no upstream response, I'll ask here if somebody can look into the issue. Workarounds such as "install readline-ext" are suboptimal and against changes done in Ruby 3.3 on purpose.
-
09:08 AM Feature #20053 (Closed): M:N Threads, now w/ macOS support (kqueue)
- https://github.com/ruby/ruby/pull/9178 has been merged.
-
08:47 AM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
- matz (Yukihiro Matsumoto) wrote in #note-14:
> #note-13 explains my opinion well. What name candidate do you have?
> ...
How about `AbstractMethodError` - the same as Java? -
07:17 AM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
- #note-13 explains my opinion well. What name candidate do you have?
Matz.
-
08:44 AM Feature #18576: Rename `ASCII-8BIT` encoding to `BINARY`
- I strongly object that we change Encoding#name of ASCII-8BIT encoding into "BINARY" because of compatibility.
I don't want people to fix the code which are correctly running now.
However supporting people who newly writing a code is ... -
08:28 AM Revision 7c2d8198 (git): Fix a grammar issue in the shape performance warning message
-
08:23 AM Feature #19998: Emit deprecation warnings when the old (non-Typed) Data_XXX API is used
- Alright. A big part of the API is composed of macros, so I'm not too sure how we can effectively make them emit a build time warning, but I'll see what I can do.
-
04:56 AM Feature #19998: Emit deprecation warnings when the old (non-Typed) Data_XXX API is used
- I agree to show build-time warning but I don't think we can remove `T_DATA` feature.
-
08:22 AM Feature #20069 (Closed): Buffer class in stdlib
- Use either string with `BINARY` encoding or `IO::Buffer`. If these two lack what you want, open a new issue please.
Matz.
-
08:02 AM Feature #20069: Buffer class in stdlib
- > ruby use String to deal with bytes, this cause error on irb "invalid byte sequence in utf-8"
This is desirable behaviour. The String with UTF-8 encoding cannot contain invalid byte sequences. If you want to store binary data, use `E... -
08:20 AM Misc #20038 (Closed): Strings with mixed escapes not detected around interpolation
- String interpolation is a syntax sugar of string concatenation. The behavior is intended.
-
08:05 AM Feature #20054 (Rejected): Replace the use of `def` in endless method definitions with a new sigil
- I reject this proposal, because method definitions are tightly coupled with `def` keyword under the current syntax. Besides that, `:` sigil is for symbols which not always coupled with methods, but identifiers in general. As a result, th...
-
08:00 AM Revision 4927f251 (git): skip `MAP_STACK` on FreeBSD
-
07:59 AM Bug #20063 (Rejected): Inconsistent behavior with required vs optional parameters
- This situation arises due to the absence of a duplicate check, since the variable name is prefixed with `_`. I believe such cases should be treated as undefined behavior.
Matz. -
07:23 AM Revision 256f34ab (git): Hand thread into `thread_sched_wait_events_timeval`
- * When we have the thread already, it saves a lookup
* `event_wait`, not `kq`
Clean up the `thread_sched_wait_events_timeval` calls
* By handling the PTHREAD check inside the function, all the other code can become much simpler and ju... -
07:23 AM Revision 8782e021 (git): KQueue support for M:N threads
- * Allows macOS users to use M:N threads (and technically FreeBSD, though it has not been verified on FreeBSD)
* Include sys/event.h header check for macros, and include sys/event.h when present
* Rename epoll_fd to more generic kq_fd (... -
05:36 AM Bug #19683 (Closed): ruby-3.3.0-preview1 does not build with BSD make without --with-baseruby
- Applied in changeset commit:git|7dca6b53a995a9782026f726c291344b5b8e0ab2.
----------
Add tool/missing-baseruby.bat, used when BASERUBY not available
Previously, the embedded semicolon in BASERUBY if BASERUBY is
not available breaks tar... -
05:36 AM Revision 7ef90b39 (git): Correct free_on_exit env var to free_at_exit
-
05:30 AM Revision 7dca6b53 (git): Add tool/missing-baseruby.bat, used when BASERUBY not available
- Previously, the embedded semicolon in BASERUBY if BASERUBY is
not available breaks tarball builds without BASERUBY when using
OpenBSD make, due to the inability to escape MFLAGS correctly.
This moves the same BASERUBY code into a separat... -
05:10 AM Bug #20072: free(): invalid pointer when compiled with --enable-shared --with-jemalloc
- This issue reminds me of https://github.com/ruby/ruby/pull/4627
-
04:52 AM Bug #20072 (Closed): free(): invalid pointer when compiled with --enable-shared --with-jemalloc
- https://github.com/ruby/ruby/pull/9284 has been merged.
#19831 is already solved. There are no warnings with the latest Xcode. -
04:13 AM Bug #20072: free(): invalid pointer when compiled with --enable-shared --with-jemalloc
- I wasn't able to reproduce your crash, but there is definitely a problem - when using `--enable-shared` and `--with-jemalloc` together, the Ruby that gets built still uses libc's malloc and ignores jemalloc. This is because we pass `-lje...
- 04:46 AM Revision ae2c4d07 (git): Revert "[Bug #19831] Remove duplicate library options"
- This reverts commit 5bb946228550c7f171c27725860b153a675404f3.
Fixes https://bugs.ruby-lang.org/issues/20072 -
04:19 AM Feature #13383 (Rejected): [PATCH] Module#source_location
- I don't think “natural” is not a good reason for adding a new method, especially regarding open class/module definitions.
I am not against if the feature is proposed for the debugger.
Matz.
-
12:16 AM Bug #20043: `defined?` checks for method existence but only sometimes
- ko1 (Koichi Sasada) wrote in #note-3:
> It seems a bug from Ruby 2.2.
> ...
I think `itself` was added in Ruby 2.2. Seems this bug is perhaps from Ruby 1.9?
: Support `GC.auto_compact = :empty` on debug builds
- This commit adds `GC.auto_compact = :empty` which will run
auto-compaction sorting pages by empty slots so the most amount of
objects will be moved. This will make it easier to write tests for
auto-compaction. -
10:50 PM Revision 3d984366 (git): [PRISM] Correct the jump target for redo in FOR_NODE
-
10:50 PM Revision 371ff808 (git): [PRISM] Fix parameter numbering in For Node
-
10:29 PM Bug #19917 (Closed): Segmentation fault or lost objects when using Ractor.select with moved exceptions
- Applied in changeset commit:git|054f56fd3e5bf84e5443896fd1f4e439c2773c60.
----------
moved object should not have a shape ID
fix [Bug #19917] -
10:29 PM Revision f0b86f8c (git): RDoc for Complex
-
10:04 PM Revision 054f56fd (git): moved object should not have a shape ID
- fix [Bug #19917]
-
10:00 PM Revision 7a0dfdea (git): use `rb_thread_io_blocking_call()` more
- use `rb_thread_io_blocking_call()` instead of
`rb_thread_io_blocking_region()` more.
See https://github.com/ruby/ruby/pull/9178#issuecomment-1858711533 -
10:00 PM Revision ec51a3c8 (git): declare `rb_thread_io_blocking_call`
-
10:00 PM Revision 2fe5fc17 (git): setup `waiting_fd` for `thread_sched_wait_events()`
- `thread_sched_wait_events()` suspend the thread until the target
fd is ready. Howver, other threads can close the target fd and
suspended thread should be awake. To support it, setup `waiting_fd`
before `thread_sched_wait_events()`.
`rb... -
09:09 PM Revision 28a6e4ea (git): Set m_tbl right after allocation
- We should set the m_tbl right after allocation before anything that can
trigger GC to avoid clone_p from becoming old and needing to fire write
barriers.
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org> -
08:21 PM Revision 50d39219 (git): Use RICLASS_OWNS_M_TBL_P
- It's more consistent with gc_mark_children.
-
08:02 PM Bug #19683: ruby-3.3.0-preview1 does not build with BSD make without --with-baseruby
- I tried the following patch and I was able to build master (which requires BASERUBY) and 3.3.0-rc1 (which does not) with it using OpenBSD make:
```diff
diff --git a/common.mk b/common.mk
index 0125645e37..6c637e0936 100644
--- a/co... -
02:33 AM Bug #19683: ruby-3.3.0-preview1 does not build with BSD make without --with-baseruby
- I traced this issue to commit:a1b01e7701f9fc370f8dff777aad6d39a2c5a3e3 (lrama), because that introduced the use of BASERUBY, which is what currently breaks this:
```diff
--- a/common.mk
+++ b/common.mk
@@ -298,7 +298,8 @@ configure... -
07:47 PM Revision bd91c512 (git): YJIT: Add stats option to RubyVM::YJIT.enable (#9297)
-
07:30 PM Bug #20073 (Closed): Method lookup incorrect with `--parser=prism`
- Applied in changeset commit:git|df0bfde2b29b7e8dac333b2a775ab8bff1283a5c.
----------
We need to load builtins so that they work
Before this commit no methods defined in Ruby were being loaded. For
example `class` or `tap` methods would... -
01:52 PM Bug #20073 (Closed): Method lookup incorrect with `--parser=prism`
- The following code works with both CRuby's compiler and Prism when evaluated using `RubyVM::InstructionSequence`
```
~/git/ruby master ≡
❯ ./miniruby -d -e'p RubyVM::InstructionSequence.compile_prism("tap { }").eval'
main
~/git/... -
07:30 PM Revision 084b44e7 (git): RDoc for Complex
-
05:09 PM Bug #20008 (Closed): f(**kw, &block) calls block.to_proc before kw.to_hash
- Fixed by commit:a950f230788d51e13d16596e37cb77e4cc6e2311 and commit:f64357540eabad0f1bfaa6be60710d153325b064
-
05:07 PM Bug #20072: free(): invalid pointer when compiled with --enable-shared --with-jemalloc
- Hi Nobu, you will find the config.log attached.
Debugged it a bit deeper, it boils down to:
- install ruby with --enable-shared --with-jemalloc
- `gem install sassc`
- running `irb` and `require 'sassc'`
that is immediately crashing:
``... -
03:21 AM Bug #20072: free(): invalid pointer when compiled with --enable-shared --with-jemalloc
- Could you share your config.log and crash report?
-
04:53 PM Revision df0bfde2 (git): We need to load builtins so that they work
- Before this commit no methods defined in Ruby were being loaded. For
example `class` or `tap` methods would not exist.
[ruby-core:115793] [Bug #20073] -
02:24 PM Bug #20043: `defined?` checks for method existence but only sometimes
- I didn't know about this way of using `defined?` and it's interesting to me that we can check if multiple things are defined at once. Although the 3rd case below is another example that seems odd. But both that and `defined?([*a])` retur...
-
05:05 AM Bug #20043: `defined?` checks for method existence but only sometimes
- It seems a bug from Ruby 2.2.

-
02:13 PM Revision 8e6f63df (git): Implement IO::Buffer on VWA
- 01:11 PM Revision 1822acdf (git): [DOC] remove reference to pre-3.0 splat operator behavior
-
12:23 PM Bug #20067: IO.pipe `int_enc` and `ext_enc` not working as documented?
- If the same encoding is specified for the internal and external encodings, it means that no encoding conversion will occur.
That's what the internal encoding `nil` means.
```
$ ruby -e 'File.open(IO::NULL, "r:ASCII-8BIT:ASCII-8BIT")... -
08:59 AM Bug #20042 (Closed): ObjectSpace finalizer can cause segfault
- Applied in changeset commit:git|f9a48548cf3ef54fc0a385ccd78c708737055ecc.
----------
restore the stack pointer on finalizer
When error on finalizer, the exception will be ignored.
To restart the code, we need to restore the stack point... -
08:59 AM Revision f9a48548 (git): restore the stack pointer on finalizer
- When error on finalizer, the exception will be ignored.
To restart the code, we need to restore the stack pointer.
fix [Bug #20042] -
08:06 AM Revision 96e4f42b (git): RJIT: Correct the macro that defines rb_vm_insns_count
-
08:05 AM Revision 8d5af353 (git): RJIT: Avoid retaining comments unless --rjit-dump-disasm
- This significantly reduces retained objects on RJIT.
-
08:02 AM Revision 8671cd59 (git): RJIT: Correct the type of rb_vm_insns_count
-
08:00 AM Revision edd6581e (git): RJIT: Declare rb_vm_insns_count
-
07:55 AM Revision eb872d17 (git): RJIT: Share rb_vm_insns_count for vm_insns_count
-
07:21 AM Feature #19326: Please add a better API for passing a Proc to a Ractor
- Are there any updates on this issue?
-
06:45 AM Feature #20053 (Assigned): M:N Threads, now w/ macOS support (kqueue)
-
04:14 AM Feature #20053: M:N Threads, now w/ macOS support (kqueue)
- @ko1 My updates are in based on your feedback. At this point is it too close to the Ruby 3.3 release to potentially get Mac support in?
I also responded about the scenario in `#readpartial` where native threads end up getting created ... -
06:40 AM Bug #19996 (Assigned): `RUBY_MN_THREADS=1` triggers Action Cable unit test failures
-
06:32 AM Feature #20011 (Closed): Reduce implicit array allocations on caller side of method calling
-
06:17 AM Bug #20029 (Assigned): coroutine/arm64/Context.S does not support PAC/BTI
-
05:02 AM Bug #20045 (Assigned): `TestDir#test_home` fails on i686
- @jemmai Could you take a look at this?
-
04:49 AM Bug #20065 (Closed): cannot require "net/smtp" with Ruby3.3.0-rc1 and bundler 2.5.0.dev
- https://github.com/ruby/ruby/pull/9234 and https://github.com/ruby/ruby/pull/9264 resolved this.
-
04:48 AM Revision dee45ac2 (git): [DOC] State MatchData#[] when multiple captures with the same name
-
04:48 AM Bug #20059 (Closed): TracePoint#enable can be called multiple times, increasing the number of invokations
-
03:40 AM Revision b5f33ba7 (git): signal.c: Fix undefined `reset_sigmask` use on Emscripten
- 3c471149910d79745b50389c436f0ed2973e0d91 added a call to `reset_sigmask`
but the guard condition didn't match with the condition used to define
`reset_sigmask`. -
02:40 AM Revision f907a711 (git): [DOC] RDoc for Complex (#9260)
-
02:39 AM Bug #20044: Add runtime flag and environment variable for prism
- I noticed that the patch outputs a warning.
```
$ ./local/bin/ruby --parser=prism -e ''
./local/bin/ruby: warning: The compiler based on the Prism parser is currently experimental and compatibility with the compiler based on parse.y... -
02:13 AM Revision 36b389c2 (git): [wasm] dln.c: Guard `dladdr` use in symbol incompatibility check
- wasi-libc recently added a family of `dl*` functions[^1], but it still
doesn't have `dladdr` unlike other platforms. Guard the use of `dladdr`
with `HAVE_DLADDR` to avoid build failure with the head version of
wasi-libc.
The library name... - 02:13 AM Revision acfd2e9d (git): Update default gems list at 5ea862f26e86be6fabcc938e22bc2d [ci skip]
-
02:07 AM Revision 5ea862f2 (git): [ruby/psych] Bump up 5.1.2
- https://github.com/ruby/psych/commit/a9ab74d132
-
02:07 AM Revision b3598f95 (git): [ruby/psych] Use `assert_same` in tests where applicable
- https://github.com/ruby/psych/commit/0dc25a9d6a
-
02:07 AM Revision e6fa1d62 (git): [ruby/psych] Use `compare_by_identity` instead of `object_id`
- Object IDs became more expensive in Ruby 2.7. Using `Hash#compare_by_identity` let's us get the same effect, without needing to force all these objects to have object_ids assigned to them.
https://github.com/ruby/psych/commit/df69e4a12e -
01:20 AM Revision 46085ef9 (git): [DOC] No ducuments for internal library
-
12:25 AM Revision ce436ff3 (git): Fix flaky test test_stat_heap
- The test sometimes fails with:
1) Failure:
TestGc#test_stat_heap [/tmp/ruby/src/trunk-repeat50/test/ruby/test_gc.rb:169]:
Expected 33434403 to be <= 33434354.