Activity
From 07/20/2022 to 07/26/2022
07/26/2022
-
10:14 PM Bug #18810: Make `Kernel#p` interruptable.
- > My concern is that inserting p(...) changes a program behavior unintentionally (except that the p writes something to stdout, of course).
There are so many ways it can do this. If the fiber scheduler is active it is a totally differ... -
08:34 AM Bug #18810: Make `Kernel#p` interruptable.
- My concern is that inserting `p(...)` changes a program behavior unintentionally (except that the p writes something to stdout, of course).
When debugging, we often insert `p(...)` and run the program to reproduce the bug being debugg... - 08:39 PM Revision c3d9849d (git): [rubygems/rubygems] Add ignore_funding_requests config flag
- https://github.com/rubygems/rubygems/commit/ab302f72c9
-
08:06 PM Revision 64f9f7d8 (git): [ruby/rdoc] [DOC] Clarifications for directives (https://github.com/ruby/rdoc/pull/903)
- - Former section "Directives in Trailing Comments" is reworked. The important thing about a directive is what it does, not whether it's trailing or stand-alone. Therefore I've worked the directives in the former section into the appropr...
-
07:56 PM Revision b4ae144e (git): [rubygems/rubygems] Don't use Pathname for creating extension dir
- Not sure why, but I run into the following flaky test failure
````
(...)
Invoking `/Users/deivid/.asdf/installs/ruby/3.1.2/bin/ruby -I/Users/deivid/Code/rubygems/rubygems/bundler/spec -r/Users/deivid/Code/rubygems/rubygems/bundler/spec... -
06:33 PM Bug #18940 (Closed): Ruby Ractor fails with IOError when handling higher concurrency
- Reproduction server:
```
require 'socket'
# Set based on CPU count
CONCURRENCY = 8
server = TCPServer.new(8080)
workers = CONCURRENCY.times.map do
Ractor.new do
loop do
# receive TCPSocket
session = Ract... -
06:21 PM Bug #18816: Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor)
- I don't get a ruby segfault anymore. It works fine when using no concurrency:
```
hey -n 20000 http://localhost:8080/
Summar... -
04:49 PM Bug #18816: Ractor segfaulting MacOS 12.4 (aarch64 / M1 processor)
- Can we backport this to 3.0 and 3.1?
-
06:08 PM Revision 6a698075 (git): [rubygems/rubygems] Completely drop base parameter from index
- This parameter was coupling the concept of lockfile with the index. I
don't think it's necessary.
Also I believe it's causing some flaky test failures, which might leak
into realworld issues. They are like this:
````
Invoking `/opt/hos... -
04:40 PM Feature #18926: Ractor should support mutexes and treat the block as critical section across ractors
- > In the example, allowing to mutate @map in a Ractor is fundamentally unsafe...
The proposal is for mutex blocks to synchronize across ractors, thereby making it safe. This would IMO make for a better default than the current one, wh... - 04:40 PM Revision 3b1ed03d (git): * expand tabs. [ci skip]
- Tabs were expanded because the file did not have any tab indentation in unedited lines.
Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook. -
04:39 PM Revision 36d0c71a (git): Refactored poisoning and unpoisoning freelist to simpler API
-
04:31 PM Revision 33f9e8f4 (git): Add doc/rdoc directory to .document
- Adding the doc/rdoc directory to .document will allow files in that
directory to be included in the documentation. - 04:04 PM Revision 457170e5 (git): * 2022-07-27 [ci skip]
-
04:04 PM Revision 163e3f07 (git): [rubygems/rubygems] Use main as default branch for Bundler specs
- https://github.com/rubygems/rubygems/commit/482077d185
-
02:27 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
- Thanks @mame!
-
12:46 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
- > In my opinion, the current behavior is hardly useful for anyone
Personally, I agree. I want `FileUtils.rm_rf` to report an error if it fails to delete a file/directory passed as an argument. In the dev meeting, @knu and @naruse had ... -
01:39 PM Bug #18937: Inconsistent definitions of Complex#<=> and Numeric#<=> with others
- @mame
I have a motivation to create a "quaternion" class which is highly interoperable with other built-in numeric classes. (gem: [quaternion_c2](https://rubygems.org/gems/quaternion_c2))
I recently noticed that there was `Complex#... -
08:05 AM Bug #18937: Inconsistent definitions of Complex#<=> and Numeric#<=> with others
- > However, neither Complex#<=> nor Numeric#<=> satisfies that definition.
`Complex#<=>` is a different method from `Object#<=>`, so I don't see that as a problem in itself. Some Ruby core methods don't necessarily follow the Liskov Su... -
01:12 PM Revision 4325e902 (git): Use rb_ary_hidden_new for rb_ary_hidden_new_fill
-
01:12 PM Revision efb91ff1 (git): Rename rb_ary_tmp_new to rb_ary_hidden_new
- rb_ary_tmp_new suggests that the array is temporary in some way, but
that's not true, it just creates an array that's hidden and not on the
transient heap. This commit renames it to rb_ary_hidden_new. -
01:12 PM Revision 3f70aa65 (git): Remove ary_discard
- ary_discard should not be used as it should be handled by the GC. The
only user of ary_discard is rb_ary_product, which doesn't neeed to use
ary_discard. -
12:12 PM Revision 456e1d1e (git): Try the tag without "v" prefix to checkout upstream repositories
-
09:33 AM Revision 2d1cf658 (git): Adjust indent [ci skip]
-
09:07 AM Bug #18939: pod install error
- It's third party's issue. You may want to try this solution: https://github.com/ffi/ffi/issues/800#issuecomment-1008308614
-
09:02 AM Bug #18939 (Third Party's Issue): pod install error
- Ruby version:
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]
Ruby script:
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: ... -
08:37 AM Bug #18907: rb_profile_frames output includes dummy main Thread frame
- Awesome, thank you! :)
-
01:47 AM Bug #18907: rb_profile_frames output includes dummy main Thread frame
- I talked with @ko1 about this issue. It seems to be fine, so I have merged it, thanks!
-
01:44 AM Bug #18907 (Closed): rb_profile_frames output includes dummy main Thread frame
- Applied in changeset commit:git|649bfbe00d8032fa2c0536e596a284f69926e87f.
----------
Fix `rb_profile_frames` output includes dummy main thread frame
The `rb_profile_frames` API did not skip the two dummy frames that
each thread has at ... -
08:30 AM Feature #18919: Ractor: can't share #Method objects
- Indeed, I didn't mean "to-proc", Method objects, as per the usage example, is the one I meant.
- 07:03 AM Revision 9a8f6e39 (git): Cheaply derive code range for String#b return value
- The result of String#b is a string with an ASCII_8BIT/BINARY encoding. That encoding is ASCII-compatible and has no byte sequences that are invalid for the encoding. If we know the receiver's code range, we can derive the resulting strin...
-
05:38 AM Revision 9e6d07f3 (git): Merge rubygems/bundler HEAD
- Merge from https://github.com/rubygems/rubygems/commit/2af2520b4a7ab1c6eb1fdc3d2ef4d8c062d96ad7
-
04:42 AM Revision b404a5f1 (git): 8fa66467de is broken with rubygems/rubygems and flori/json.
- Revert "Fix sync_default_gems.rb to use absolute path"
This reverts commit 8fa66467de82f787ead9dd901ad06694c79d88dc. -
01:43 AM Revision 649bfbe0 (git): Fix `rb_profile_frames` output includes dummy main thread frame
- The `rb_profile_frames` API did not skip the two dummy frames that
each thread has at its beginning. This was unlike `backtrace_each` and
`rb_ec_parcial_backtrace_object`, which do skip them.
This does not seem to be a problem for non-m...
07/25/2022
-
09:31 PM Revision cc29b43c (git): [ruby/rdoc] Move section Directives into section Blocks (https://github.com/ruby/rdoc/pull/901)
- https://github.com/ruby/rdoc/commit/e48e07ef53
- 08:29 PM Revision d7868c79 (git): * append newline at EOF. [ci skip]
-
08:29 PM Revision ba098fa1 (git): Sync RDoc
-
08:29 PM Revision 8fa66467 (git): Fix sync_default_gems.rb to use absolute path
-
07:58 PM Revision 43c11f6c (git): For rdoc, copy doc/rdoc to doc/ (#6181)
- 07:56 PM Revision 382cde96 (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.20 to 0.9.26.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.20...v0.9.26)
---
updated-depende... -
07:08 PM Revision 63330ae4 (git): Change ROBJECT_TRANSIENT_FLAG to use FL_USER2
- 04:53 PM Revision 17534f3e (git): * 2022-07-26 [ci skip]
- 04:53 PM Revision fab5a0e6 (git): [rubygems/rubygems] Bump rb-sys in /test/rubygems/test_gem_ext_cargo_builder/custom_name
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.20 to 0.9.26.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.20...v0.9.26)
---
updated-depende... -
02:22 PM Feature #12607: Ruby needs an atomic integer
- Yes, I think a few low-level concurrency primitives should move from Concurrent Ruby to core. As we add more concurrency to Ruby, and add JIT compilers, ideally the VM should understand these primitives, rather than being opaque extensio...
-
01:14 PM Feature #12607: Ruby needs an atomic integer
- It'd be good to revisit this (e.g. see https://twitter.com/_byroot/status/1550580128723476480).
Ractor has little need for this. But with Thread there is a clear need for this.
Also the STM work was not merged, so that's not a replac... - 12:37 PM Revision 979368b4 (git): [rubygems/rubygems] Bundler: add deprecation notice of viz to man
- Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
https://github.com/rubygems/rubygems/commit/0e1cbfa598 -
12:18 PM Revision 31a5586d (git): rb_str_buf_append: add a fast path for ENC_CODERANGE_VALID
- If the RHS has valid encoding, and both strings have the same
encoding, we can use the fast path.
However we need to update the LHS coderange.
```
compare-ruby: ruby 3.2.0dev (2022-07-21T14:46:32Z master cdbb9b8555) [arm64-darwin21]
bu... - 11:39 AM Revision 9733f4d0 (git): merge revision(s) edf01d4e82d8e44ee30ec41fbcb7f802bc8b8c5d: [Backport #18772]
- Treat NULL fake string as an empty string
And the NULL string must be of size 0.
---
string.c | 5 +++++
1 file changed, 5 insertions(+) -
09:50 AM Revision f61dd38e (git): Wait the test thread to sleep
- Revert "Synchronize the test thread sleep"
This reverts commit 307835fe314fea6e946a8c9b25bb3912680ed7d1. -
07:58 AM Bug #18938 (Closed): Backport cf7d07570f50ef9c16007019afcff11ba6500d70
- Please backport https://github.com/ruby/ruby/commit/cf7d07570f50ef9c16007019afcff11ba6500d70 which fixes a bug in `ObjectSpace.dump` for Ruby 3.0 and Ruby 3.1
Ref: https://github.com/ruby/ruby/pull/6166
cc @nobu -
03:01 AM Revision 307835fe (git): Synchronize the test thread sleep
-
12:53 AM Feature #18668: Merge `io-nonblock` gems into core
- ianks (Ian Ker-Seymer) wrote in #note-21:
> IMO, we really do need to support this use case. Even if it were just fir testing purposes, it would *still* be worthwhile if it makes developing non-blocking gems easier.
What precisely is... -
12:18 AM Revision b30b727c (git): Fix format specifier
- `uintptr_t` is not always `unsigned long`, but can be casted to void
pointer safely.
07/24/2022
- 11:50 PM Revision 1c4aaa3e (git): * 2022-07-25 [ci skip]
-
11:50 PM Revision 91c05b34 (git): Bundled gems test needs `prepare-gems`
- `prepare-gems` downloads and extracts the bundled gems, and these gems
are built by `build-exts` now. -
11:50 PM Revision b291c972 (git): Use built bundled gems in test-bundled-gems
-
01:32 PM Revision 6af72120 (git): Make extensions under `Gem.extension_api_version` directory
-
07:36 AM Revision e0a7e5e1 (git): Kill bundled gem tests when interrupted
-
03:49 AM Bug #18937: Inconsistent definitions of Complex#<=> and Numeric#<=> with others
- I fix the last code as follows:
```ruby
class Complex
def <=>(other)
return (self == other ? 0 : nil) if self.imag != 0
if other.kind_of?(Complex)
if other.imag == 0
return self.real <=> other.real
... -
03:06 AM Bug #18937 (Closed): Inconsistent definitions of Complex#<=> and Numeric#<=> with others
- Object#<=> says "Returns 0 if `obj` and `other` are the same object or `obj == other`" .
https://ruby-doc.org/core-3.1.2/Object.html#method-i-3C-3D-3E
However, neither Complex#<=> nor Numeric#<=> satisfies that definition.
```ruby...
07/23/2022
- 11:57 PM Revision 114f85ec (git): * 2022-07-24 [ci skip]
-
11:57 PM Revision 1cd487d7 (git): [DOC] IO#eof
- Use IO#eof? instead of I#eof?
-
06:07 PM Bug #18936 (Closed): Backport 261753249996d46e00c2549fff2527816bf387db
- Please backport commit [261753249996d46e00c2549fff2527816bf387db](https://github.com/ruby/ruby/commit/261753249996d46e00c2549fff2527816bf387db), which fixes a leak of mark stack chunks during shutdown.
It's causing [false positives to... -
12:42 PM Revision 721d154e (git): Remove duplicate code for internal arrays
- Internal arrays are now created hidden from the start.
-
11:40 AM Feature #18926: Ractor should support mutexes and treat the block as critical section across ractors
- In the example, allowing to mutate `@map` in a Ractor is fundamentally unsafe, because there could be another reference to `@map` which is accessed concurrently without the Mutex.
In fact there are two in that example, `@map.key?` and `... -
02:34 AM Feature #18926: Ractor should support mutexes and treat the block as critical section across ractors
- With all due respect for Ractor’s incredible technical achievements so far, I unfortunately think that the “honeymoon phase” for Ractor may be complete. The community was incredibly bullish about its potential and the problems it could s...
-
02:19 AM Feature #18668: Merge `io-nonblock` gems into core
- IMO, we really do need to support this use case. Even if it were just fir testing purposes, it would *still* be worthwhile if it makes developing non-blocking gems easier.
Ruby should move towards better async support, not away from i... -
02:08 AM Feature #18910: Improve maintainability of LLDB helpers
- On a related note, I’ve often found myself wanting access to these helpers when developing native extensions. I’ve copy-pasta’d them in the past, but I wonder if Ruby could support including them for debug builds?
07/22/2022
-
07:44 PM Revision 98a8a496 (git): Use rb_ary_tmp_new only for internal arrays
- rb_ary_tmp_new sets the klass to 0, so it should only be used for
internal arrays. - 06:42 PM Revision 244bda7e (git): [rubygems/rubygems] Display mfa warnings on gem signin
- https://github.com/rubygems/rubygems/commit/4dc77b7099
Co-authored-by: Jenny Shen <jenny.shen@shopify.com> -
05:48 PM Feature #18773: deconstruct to receive a range
- @nevans I think that's a _really_ good idea. It has the advantage of being backward-compatible as well. @mame, @ktsj what do you think about allowing Enumerable to be returned from deconstruct and using that to match instead?
-
05:29 PM Revision e199ae3e (git): Remove reference counting for all frozen arrays
- The RARRAY_LITERAL_FLAG was added in commit
5871ecf956711fcacad7c03f2aef95115ed25bc4 to improve CoW performance for
array literals by not keeping track of reference counts.
This commit reverts that commit and has an alternate implementa... -
05:19 PM Bug #18935 (Feedback): Binary search reference not found
- ruby-doc.org is not official documentation. Please use docs.ruby-lang.org instead. It works fine there: https://docs.ruby-lang.org/en/3.1/Array.html#method-i-bsearch
-
04:56 PM Bug #18935 (Feedback): Binary search reference not found
- This method says "See binary searching" but I can't find anything relevant on the page. I would like to see an example or two of how to use bsearch.
https://ruby-doc.org/core-3.1.2/Array.html#method-i-bsearch - 03:24 PM Revision 203de45b (git): * 2022-07-23 [ci skip]
- 03:24 PM Revision d77633a6 (git): [rubygems/rubygems] Bundler: update command example in bundle-exec(1)
- Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
https://github.com/rubygems/rubygems/commit/28bf5c8b33 -
02:34 PM Revision b3be0307 (git): [ruby/reline] Rename dialog_pointer_* to dialog_highlight_*
- "Pointer" is not what we usually use to describe a selected item.
"Highlight" is a more common word for the scenario so we should use it instead.
https://github.com/ruby/reline/commit/b4279d1557 -
02:10 PM Revision 8f7e1888 (git): Add "rb_" prefixes to toplevel enum definitions
- ... as per ko1's request.
-
02:10 PM Revision e763b111 (git): Move enum definitions out of struct definition
-
12:59 PM Revision c7fd015d (git): Update .indent.pro [ci skip]
-
12:59 PM Revision 92c7417d (git): Adjust indents [ci skip]
-
12:10 PM Bug #18780: Incorrect binding receiver for C API rb_eval_string()
- Yes, it is a typo. Thank you.
-
10:00 AM Bug #18780: Incorrect binding receiver for C API rb_eval_string()
- Nice story :)
Probably a typo: `s/old table/old tale/` -
12:24 AM Bug #18780: Incorrect binding receiver for C API rb_eval_string()
- Updating the header document.
```patch
From b968f277386649b7531a8999be54eacf3c599cdb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3?=
<shyouhei@ruby-lang.org>
Date: Thu, 21 Jul 2022 18:00:04 +0900
Subject... - 12:01 PM Revision c6734edc (git): [rubygems/rubygems] Remove bundle show from obsolete commands
- Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
https://github.com/rubygems/rubygems/commit/6c07c9427b -
12:01 PM Revision a4e890b9 (git): [rubygems/rubygems] Use `SystemExit#status` as `exit_code`
- No reasons to manage separately.
https://github.com/rubygems/rubygems/commit/8ede5c886e -
09:56 AM Bug #18810: Make `Kernel#p` interruptable.
- mame (Yusuke Endoh) wrote in #note-2:
> Since `Kernel#p` is a method for debugging, I think this spec would be useful. If it is made interruptable, it will be difficult to use `Kernel#p` in a block of `Thread.handle_interrupt(TimeoutErr... -
05:51 AM Bug #18810: Make `Kernel#p` interruptable.
- @mame I understand the discussion and I'm okay with the outcome, but I still don't understand why being uninterruptible matters in practice. I'm still a little concerned this can hang the interpreter, but I don't know for sure - because ...
-
09:12 AM Bug #18907: rb_profile_frames output includes dummy main Thread frame
- Update: I've rebased the PR to fix a conflict caused by the tabs-vs-spaces fix :)
-
09:10 AM Bug #18911: Process._fork hook point is not called when Process.daemon is used
- I've just opened https://github.com/ruby/ruby/pull/6170 to add the comment.
Thanks @mame for going above and beyond in helping me with this :) -
07:24 AM Revision 55c771c3 (git): [rubygems/rubygems] rubygems.rb is required by gem_runner.rb
- https://github.com/rubygems/rubygems/commit/503f763865
-
07:24 AM Revision fe770716 (git): [rubygems/rubygems] Removed needless value assignment
- https://github.com/rubygems/rubygems/commit/5825c4c2e8
-
03:23 AM Revision f081e1fe (git): Revive .indent.pro with adding `-nut`(`--no-tabs`) [ci skip]
- 03:09 AM Revision 5904895c (git): Add .git-blame-ignore-revs
- Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
- 03:07 AM Revision d7ffd3fe (git): RubyGems: Enable Style/StringLiterals cop
- Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
- 03:06 AM Revision 388c4e10 (git): Make Gem::SystemExitException properly exit with a given code
- The cause was in how Gem::SystemExitException initializes itself. It
didn't pass an exit code to the super method. See the document of
SystemExit.new() for details. -
03:06 AM Revision 6b749968 (git): bin/gem: remove initial empty line
-
03:06 AM Revision b4876c8e (git): Removed needless condition for old versions of Ruby.
- 03:06 AM Revision 1ed7ab29 (git): Enable Style/MultilineIfThen in Rubocop
-
03:06 AM Revision 3b67c161 (git): Remove trailing blank lines
- 03:06 AM Revision 030c41bf (git): Improve user-facing messages by consistent casing of Ruby/RubyGems
- (when it referred to the general concept and not a path), single-spacing
between sentences, and a few other small issues. -
01:41 AM Revision c6aa6543 (git): Get rid of magic numbers
-
01:41 AM Misc #18888: Migrate ruby-lang.org mail services to Google Domains and Google Workspace
- To all the old-time commuters,
Though we have to reduce the mail aliases for a technical reason, this does NOT mean that we will reject your contributions. Just send us a PR to add your email address to https://github.com/ruby/ruby-co... -
01:20 AM Misc #18888: Migrate ruby-lang.org mail services to Google Domains and Google Workspace
- I've sent the following E-mail to adresses to be removed:
```
Subject: youraddress@ruby-lang.org will be removed on 2022-09-30
Hello,
We are going to migrate the mail server of ruby-lang.org to Google Domains and Google Workspa... -
12:56 AM Revision cf7d0757 (git): Dump non-ASCII char as unsigned
- Non-ASCII code may be negative on platforms plain char is signed.
07/21/2022
-
10:52 PM Feature #18809: Add Numeric#ceildiv
- Thank you for accepting.
I updated the PR. The PR contains only `Integer#ceildiv`. -
11:58 AM Feature #18809: Add Numeric#ceildiv
- Additional information.
* We do introduce only `Integer#ceildiv`.
* We do not introduce `Numeric#ceildiv` until we see the need. There is already `Numeric#div`, but a consistency with it is not a sufficient reason to introduce it.
*... -
05:03 AM Feature #18809: Add Numeric#ceildiv
- Let's add `Integer#ceildiv`.
Matz. -
07:55 PM Bug #18770 (Closed): Inconsistent behavior of IO/StringIO's each methods when called with nil as a separator, limit and chomp: true
- Applied in changeset commit:git|7223c0da152114c84e1c4261a282faaea21646fb.
----------
Do not chomp trailing line separator IO#each with nil separator and chomp
nil separator means no sepator, so chomp should not remove a line
separator.... -
03:34 PM Bug #18770 (Open): Inconsistent behavior of IO/StringIO's each methods when called with nil as a separator, limit and chomp: true
-
03:13 PM Bug #18770 (Closed): Inconsistent behavior of IO/StringIO's each methods when called with nil as a separator, limit and chomp: true
- Applied in changeset commit:git|04f86ad0b5d2fe4711ff300d855228a6aed55f33.
----------
Do not chomp trailing line separator IO#each with nil separator and chomp
nil separator means no sepator, so chomp should not remove a line
separator.... -
12:26 PM Bug #18770: Inconsistent behavior of IO/StringIO's each methods when called with nil as a separator, limit and chomp: true
- We discussed this at the dev meeting, and @matz agreed with @jeremyevans0.
-
07:55 PM Revision 7223c0da (git): Do not chomp trailing line separator IO#each with nil separator and chomp
- nil separator means no sepator, so chomp should not remove a line
separator.
Partially Fixes [Bug #18770] -
07:49 PM Revision 3a5ea7c6 (git): Remove unused variable in array.c
- array.c:460:14: warning: unused variable 'len' [-Wunused-variable]
long len = ARY_HEAP_LEN(ary); -
07:17 PM Revision 9d862011 (git): Remove check for shared root arrays
- All shared root arrays should not be on the transient heap.
ary_make_shared evacuates arrays from the transient heap when creating
shared roots. - 05:56 PM Revision f0ae583a (git): Revert "objspace_dump.c: skip dumping method name if not pure ASCII"
- This reverts commit 79406e3600862bbb6dcdd7c5ef8de1978e6f916c.
-
05:07 PM Revision 4af0dd36 (git): Remove the file that was probably added by accident [ci skip]
-
05:01 PM Feature #18934 (Rejected): Proposal: Introduce method results memoization API in the core
- **Abstract:** I propose to introduce a simple core API for memoizing argument-less method return values.
```ruby
class Test
def foo
puts "call!"
5
end
memoized :foo
end
o = Test.new
o.foo # prints "call!", r... -
05:00 PM Revision 26619804 (git): Add .git-blame-ignore-revs [ci skip]
- for [Misc #18891]
It is a file that could be used with `git config blame.ignoreRevsFile`.
The file name `.git-blame-ignore-revs` is natively supported by GitHub,
so you don't need anything else to make it work on GitHub.
https://docs.gi... -
04:44 PM Misc #18891: Expand tabs in C code
- I forgot to mention that I appreciate everybody who supported this decision. Thank you so much.
-
04:42 PM Misc #18891 (Closed): Expand tabs in C code
- Applied in changeset commit:git|5b21e94bebed90180d8ff63dad03b8b948361089.
----------
Expand tabs [ci skip]
[Misc #18891] -
04:41 PM Misc #18891: Expand tabs in C code
- > Unfortunately you can't set it at the global level because git blame fails if the file does not exist, and that would cause issues when working on other repos
Right, I noticed that behavior after writing the comment but forgot to upda... -
03:36 PM Misc #18891: Expand tabs in C code
- > If you have `git config --global blame.ignoreRevsFile .git-blame-ignore-revs`, git blame ignores it properly too.
Unfortunately you can't set it at the global level because `git blame` fails if the file does not exist, and that woul... -
12:23 PM Misc #18891 (Assigned): Expand tabs in C code
- We discussed this issue at the dev meeting.
Finally, we were able to reach an agreement to expand hard tabs. Congratulations! -
03:53 AM Misc #18891: Expand tabs in C code
- @nagachika Thank you for your comment. I vote for 2 too.
> If CRuby does not do this, it is explicitly rejecting new contributors for no good reasons.
I want to use VSCode, but this expression is not correct in my perspective. VSCo... -
03:05 AM Misc #18891: Expand tabs in C code
- I also support the 2nd solution from the perspective of stable branch maintenance.
-
04:43 PM Revision 79406e36 (git): objspace_dump.c: skip dumping method name if not pure ASCII
- Sidekiq has a method named `❨╯°□°❩╯︵┻━┻`which corrupts
heap dumps.
Normally we could just dump is as is since it's valid UTF-8 and need
no escaping. But our code to escape control characters isn't UTF-8
aware so it's more complicated th... -
04:42 PM Revision 5b21e94b (git): Expand tabs [ci skip]
- [Misc #18891]
-
03:49 PM Revision 3ff53c8e (git): Remove macOS 10.15 from CI
- macOS 10.15 is deprecated on GitHub Actions and will have periodic
brownouts. See actions/virtual-environments#5583. -
03:29 PM Revision 203f179c (git): Revert "Do not chomp trailing line separator IO#each with nil separator and chomp"
- This reverts commit 04f86ad0b5d2fe4711ff300d855228a6aed55f33.
This is causing CI issues, reverting for now. -
03:28 PM Feature #18832 (Closed): Do not have class/module keywords consider ancestors of Object
- Applied in changeset commit:git|12ac8971a394118a57640299f654e46e763093fa.
----------
Do not have class/module keywords look up ancestors of Object
Fixes case where Object includes a module that defines a constant,
then using class/modu... -
11:49 AM Feature #18832: Do not have class/module keywords consider ancestors of Object
- We discussed this ticket at the dev meeting.
@matz said he wanted to try the change, i.e., `include M; class C; end` at the toplevel should define `::C` instead of reopening `M::C`. He may revisit the change if a compatibility issue i... -
03:28 PM Revision 12ac8971 (git): Do not have class/module keywords look up ancestors of Object
- Fixes case where Object includes a module that defines a constant,
then using class/module keyword to define the same constant on
Object itself.
Implements [Feature #18832] -
03:13 PM Revision 04f86ad0 (git): Do not chomp trailing line separator IO#each with nil separator and chomp
- nil separator means no sepator, so chomp should not remove a line
separator.
Partially Fixes [Bug #18770] -
03:02 PM Bug #18768 (Closed): Inconsistent behavior of IO, StringIO and String each_line methods when return paragraph and chomp: true passed
- Applied in changeset commit:git|423b41cba77719b4f62aa530593ad36a990f7c74.
----------
Make String#each_line work correctly with paragraph separator and chomp
Previously, it was including one newline when chomp was used,
which is inconsi... -
12:25 PM Bug #18768: Inconsistent behavior of IO, StringIO and String each_line methods when return paragraph and chomp: true passed
- We discussed this at the dev meeting, and @matz agreed with @jeremyevans0: `chomp: true` should remove the separator. Could you please merge the change?
- 03:02 PM Revision 672925bf (git): * 2022-07-22 [ci skip]
-
03:02 PM Revision 423b41cb (git): Make String#each_line work correctly with paragraph separator and chomp
- Previously, it was including one newline when chomp was used,
which is inconsistent with IO#each_line behavior. This makes
behavior consistent with IO#each_line, chomping all paragraph
separators (multiple consecutive newlines), but not ... -
02:53 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
- I just saw the "deletion in parallel` explanation. In that case, I guess it makes sense to ignore all "file does not exist" errors, but not anything else. That still satisfies the assertion that the method would succeed if and only if th...
-
02:12 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
- Thanks for discussing it!
In my opinion, the current behavior is hardly useful for anyone, so I think it should be removed. We got bug reports in Bundler for a long time that were very hard to investigate and replicate because the err... -
01:11 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
- At the dev meeting, we had a long discussion about this issue.
@aamine, who is the original author of fileutils, said that this behavior is by design. `rm_r(path, force: true)` means "ignore all errors (by catching StandardError)". He... -
02:46 PM Bug #18929 (Closed): ruby master looks slower than 3.1 on a micro benchmark of short-lived objects
- Applied in changeset commit:git|cdbb9b8555b4ddcc4c557f25ad785cae6209478d.
----------
[Bug #18929] Fix heap creation thrashing in GC
Before this commit, if we don't have enough slots after sweeping but
had pages on the tomb heap, then t... -
02:07 AM Bug #18929: ruby master looks slower than 3.1 on a micro benchmark of short-lived objects
- Thank you for the quick fix! Your patch seems to make sense to me.
-
02:46 PM Revision cdbb9b85 (git): [Bug #18929] Fix heap creation thrashing in GC
- Before this commit, if we don't have enough slots after sweeping but
had pages on the tomb heap, then the GC would frequently allocate and
deallocate pages. This is because after sweeping it would set
allocatable pages (since there were ... -
01:36 PM Bug #18911: Process._fork hook point is not called when Process.daemon is used
- > ...would it be reasonable to add a "Note: Process#daemon is similar to fork, but does not go through this method." or something similar?
Let's go with this! Could you please send a PR?
---
At the dev meeting, I briefly talked ... -
01:32 PM Revision 804b0735 (git): Update common sources including id.h after update
-
01:06 PM Revision f954c5da (git): string.c: use str_enc_fastpath in TERM_LEN
- Not having to fetch the rb_encoding save a significant
amount of time.
Additionally, even when we have to fetch it, we can do
it faster using `ENCODING_GET` rather than `rb_enc_get`.
```
compare-ruby: ruby 3.2.0dev (2022-07-19T08:41:40... -
01:02 PM Revision 80672b2d (git): Add comment in array.c about flags
-
01:02 PM Revision d67fcdcc (git): Add RARRAY_SHARED_FLAG
-
01:02 PM Revision 1c9acb6b (git): Refactor macros of array.c
- Move some macros in array.c to internal/array.h so that other files
can also access these macros. -
01:02 PM Revision 4798a4fe (git): Remove unused internal macros in rarray.h
-
12:45 PM Bug #18933 (Closed): Dir.tmpdir implemented in non-Ractor-safe manner
- # Background
Inside a Ractor, it is expected that generating a temporary directory using `Dir.tmpdir` will work. The current implementation uses a number of things which are not considered Rector-safe and will require refactoring.
... -
12:28 PM Bug #18837 (Rejected): Not possible to evaluate expression with numbered parameters in it
- We discussed this issue at the dev meeting. @matz agreed that it is difficult to support this for the reasons I said in #note-2.
-
12:20 PM Bug #18882: File.read cuts off a text file with special characters when reading it on MS Windows
- We discussed this ticket at the dev meeting.
@usa and @nobu said that `File.read` reads a file in text mode. And the VC runtime (msvcrt) does EOF character handling, CRLF conversion, etc under text mode. There is no fine-grained contr... -
12:09 PM Bug #18780: Incorrect binding receiver for C API rb_eval_string()
- We discussed this issue at the dev meeting.
@matz said `self` should be changed. `rb_eval_string` should evaluate the argument under the current context. The `self` should be picked from the context instead of `main`. If there is no c... -
12:00 PM Bug #18810: Make `Kernel#p` interruptable.
- We discussed this issue at the dev meeting. We will add a document to `Kernel#p` so that it is uninterruptible and for debugging purpose.
-
11:43 AM Misc #18836: DevMeeting-2022-07-21
- We did not make it in time to discuss all the topics; we will continue on 2nd Aug.
-
05:23 AM Feature #18655: Copy `IO#wait_readable`, `IO#wait_writable`, `IO#wait_priority` and `IO#wait` into core.
- After the discussion, we will drop `wait_priority`, but others are accepted.
Matz.
-
02:45 AM Revision 86b29ef8 (git): [ruby/digest] Ignore test_ractor.rb on non-Ractor ruby
- https://github.com/ruby/digest/commit/352b8c1636
-
12:58 AM Revision 4a7ecc1b (git): [ruby/digest] Find an available digest algorithm to test
- https://github.com/ruby/digest/commit/8844716793
07/20/2022
-
10:51 PM Bug #18932 (Closed): Ruby 3.1 - Allow building with VS 2022
- I know MSFT stated that one of the issues with VS 2022 would be fixed. That was noticed with RUby master (3.2). I.think.
Anyway, would it be possible to allow Ruby 3.1 to compile with VS 2022?
I built it, but there were test fail... -
10:50 PM Misc #18916 (Closed): Windows mswin builds - should gmp be used?
-
10:47 PM Misc #18916: Windows mswin builds - should gmp be used?
- I added the gmp package, and mswin build didn't compile with it. Please close.
-
08:45 PM Revision 1341dea7 (git): Prevent the stack from being marked twice
- This commit prevents the stack from being marked twice: once via the
Fiber, and once via the Thread. It introduces an assertion to assert
that the ec on the thread is the same as the ec on the Fiber being
marked via the thread. -
05:44 PM Bug #18929: ruby master looks slower than 3.1 on a micro benchmark of short-lived objects
- Thanks for bug report and benchmarking the performance over time! I found a bug that causes thrashing in heap page allocation: https://github.com/ruby/ruby/pull/6156.
Before this patch:
```
ruby 3.2.0dev (2022-07-20T16:32:04Z pz-b... -
08:21 AM Bug #18929 (Closed): ruby master looks slower than 3.1 on a micro benchmark of short-lived objects
- ```
$ time ruby -ve '10000000.times { Object.new }'
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
real 0m2.503s
user 0m2.484s
sys 0m0.016s
$ time ./local/bin/ruby -ve '10000000.times { Object.new }'
r... -
05:38 PM Revision 32e406d6 (git): Ensure _id2ref finds symbols with the correct type
- Prior to this commit it was possible to call `ObjectSpace._id2ref` with
an offset static symbol object_id and get back a new, incorrectly tagged
symbol:
```
> sensible_sym = ObjectSpace._id2ref(:a.object_id)
=> :a
> ...
=> :a
> sensible... -
05:13 PM Revision 5871ecf9 (git): Add RARRAY_LITERAL_FLAG for array literals
- Array created as literals during iseq compilation don't need a
reference count since they can never be modified. The previous
implementation would mutate the hidden array's reference count,
causing copy-on-write invalidation.
This commi... -
04:38 PM Bug #18931: Inconsistent handling of invalid codepoints in String#lstrip and String#rstrip
- My own take on three options, with no significance to the order, are:
**Ignore the code point**
The documentation for `lstrip` is "Returns a copy of the receiver with leading whitespace removed." It seems fairly straightforward and... -
04:25 PM Bug #18931 (Closed): Inconsistent handling of invalid codepoints in String#lstrip and String#rstrip
- When attempting to strip a string, there are three basic options when an invalid code point is encountered:
1) Ignore the code point
2) Strip the code point
3) Raise an exception
For background, Ruby does not consider the string'... - 04:32 PM Revision b25ee69e (git): * 2022-07-21 [ci skip]
-
04:31 PM Revision 660b1e97 (git): YJIT: Skip setlocal WB check for immediate values (#6122)
- Write barriers may be required when VM_ENV_FLAG_WB_REQUIRED is set,
however write barriers only affect heap objects being written. If we
know an immediate value is being written we can skip this check. -
04:20 PM Bug #17767: `Cloned ENV` inconsistently returns `ENV` or `self`
- Now can/should we make `ENV.clone` an error too?
- 02:48 PM Revision 6140edb5 (git): Match +YJIT in Ruby desc when testing segv (#6141)
- In test_bug_reporter and test_rubyoptions we intentionally
test child processes that cause SEGV. We run them with YJIT
if the parent uses YJIT so that the text description
matches the parent RUBY_DESCRIPTION. -
01:11 PM Bug #18727 (Closed): Make failed on x86_64-cygwin (LoadError)
-
12:41 PM Bug #18928 (Closed): Crash in WeakMap when inspecting T_FREE objects
- Applied in changeset commit:git|86d061294d3cc1656e18d0e1fd4b4f290da16944.
----------
[Bug #18928] Fix crash in WeakMap
In wmap_live_p, if is_pointer_to_heap returns false, then the page is
either in the tomb or has already been freed, ... -
01:39 AM Bug #18928 (Closed): Crash in WeakMap when inspecting T_FREE objects
- Pull request: https://github.com/ruby/ruby/pull/6152
WeakMap tests occasionally crash on CI due to trying to inspect T_FREE objects. There's a bug in `wmap_live_p` that returns true for dead objects that are in the tomb heap or on pag... -
12:40 PM Revision 86d06129 (git): [Bug #18928] Fix crash in WeakMap
- In wmap_live_p, if is_pointer_to_heap returns false, then the page is
either in the tomb or has already been freed, so the object is dead. In
this case, wmap_live_p should return false. -
11:48 AM Feature #18630: Introduce general `IO#timeout` and `IO#timeout=` for blocking operations.
- Okay, I was able to make it work:
```ruby
STDIN.timeout = 1
pp STDIN.read
```
Output:
```
/Users/samuel/Projects/ioquatix/ruby/build/../test.rb:3:in `read': Operation timed out @ io_fread - <STDIN> (Errno::ETIMEDOUT)
fro... -
10:13 AM Feature #18630: Introduce general `IO#timeout` and `IO#timeout=` for blocking operations.
- I think we can make this for blocking operations too, but the code path will be a little different if a timeout is set.
-
10:57 AM Bug #18927: Can't access class variable directly with class inheritance
- I filed an issue for that: #18930
-
10:54 AM Bug #18927: Can't access class variable directly with class inheritance
- mame (Yusuke Endoh) wrote in #note-2:
> > It's best to avoid using class variables completely in Ruby.
> ...
Since we seem on the same page here, could we officially deprecate class variables?
Concretely I think it should be mentioned... -
01:43 AM Bug #18927 (Rejected): Can't access class variable directly with class inheritance
- Once a class variable is declared (initialized) in the lexical context of Child, it can only be accessed from the lexical context of Child and its subclasses. Otherwise, any class variable would be accessible from the context of Object, ...
-
10:57 AM Feature #18930 (Rejected): Officially deprecate class variables
- Ruby's class variables are very confusing, and it seem many people agree they should be avoided (#18927).
How about we deprecate them officially?
Concretely:
* Mention in the documentation that class variables are deprecated and s... -
10:55 AM Revision fa5724cc (git): [rubygems/rubygems] Fix `ruby setup.rb --destdir /foo` modifying global specs
- Running a command like that is actually removing any previous default
bundler specs in the default RubyGems installation (outside of destdir).
It should instead only modify destdir.
https://github.com/rubygems/rubygems/commit/5ed275383c -
10:55 AM Revision fae0d601 (git): [rubygems/rubygems] Refactor destdir checks
- https://github.com/rubygems/rubygems/commit/ca956c0de2
-
10:55 AM Revision fcfb3ce3 (git): [rubygems/rubygems] More cleanup
- https://github.com/rubygems/rubygems/commit/6012800a20
-
10:55 AM Revision bdef3c73 (git): [rubygems/rubygems] Unify common logic
- https://github.com/rubygems/rubygems/commit/e5434be14c
-
10:51 AM Feature #18919: Ractor: can't share #Method objects
- I don't see a `.to_proc` call in the description.
Either way, both Method and Proc objects can't be shared, they have mutable state.
For Method/UnboundMethod they could potentially be made immutable and therefore shareable (sounds go... -
03:18 AM Feature #18919: Ractor: can't share #Method objects
- This is just an aside, but for what it's worth you can pass the class and method name and reconstitute a Method instance inside a Ractor.
``` ruby
require 'bigdecimal'
meth = Kernel.method(:BigDecimal)
ractor = Ractor.new(meth.owner, ... - 10:45 AM Revision cbaf58d4 (git): [rubygems/rubygems] Bundler: update primary source in man 5 gemfile
- Specifying multiple primary sources in top-level was deprecated in
Bundler 1.13.
As Bundler CLI uses primary source instead of global, "global source"
is replaced with "primary source".
Co-authored-by: David Rodríguez <deivid.rodriguez@... -
08:39 AM Revision 472740de (git): Fix free objects count condition
- Free objects have `T_NONE` as the builtin type. A pointer to a valid
array element will never be `NULL`. -
02:48 AM Feature #18913 (Rejected): Add object name to the NoMethodError error message: undefined method `_method_' for `_class_' in `_object_name_'
- I close this ticket. If you have any opinion, please let me know.
-
01:58 AM Bug #18837: Not possible to evaluate expression with numbered parameters in it
- I talked a bit with some of the committers.
@ko1 said that it is difficult to retrieve `_1` afterwards due to the current implementation limitation, since the actual arguments may be dropped by optimization when a block that does not ... -
12:40 AM Revision e330dceb (git): Mark ruby scripts in YAML [ci skip]
- ```elisp
(mmm-ify-by-regexp 'ruby-mode
"^ *#!.*ruby" 0 "^ *shell: *ruby.*{0}" 0 0)
```