Project

General

Profile

Activity

From 03/05/2021 to 03/11/2021

03/11/2021

09:46 PM Feature #17718 (Open): a method paramaters object that can be pattern matched against
```ruby
def get_perdiem(city: nil, state: nil, zip:nil)
case parameters_match # (return an object of the parameters we can pattern match on)
in {zip: zip}
find_perdiem_by_zip(zip)
in {state: s, city: c}
find_perd...
dsisnero (Dominic Sisneros)
09:38 PM Feature #17685: Marshal format for out of band buffer objects
On the consumer side, we can Marshal those objects the usual way, which when unserialized will give us a copy of the original object:
b = ZeroCopyByteArray.new("abc".bytes)
data = Marshal.dump(b)
new_b = Marshal.load(data)
puts b =...
dsisnero (Dominic Sisneros)
02:52 AM Feature #17685: Marshal format for out of band buffer objects
Do you want the way to load and dump the memory view metadata of any objects that support exporting their memory view?
Could you please tell me the example use cases you've assumed?
mrkn (Kenta Murata)
03:32 PM Revision 72c64974 (git): merge revision(s) 7b9476fbfab738d1eb01b4b4c4af9a1680513019: [Backport #17642]
Ractor.allocate should not be allowed
Ractor.allocate and Ractor#dup should not be allowed like Thread.
[Bug #17642]
---
bootstraptest/test_ractor.rb | 18 ++++++++++++++++++
ractor.c ...
naruse (Yui NARUSE)
11:36 AM Revision 6305d1c6 (git): remove invalidated cc
if cc is invalidated, cc should be released from iseq. ko1 (Koichi Sasada)
11:34 AM Bug #17636: Race condition in check_rvalue_consistency_force when using ractors
ruby_3_0 d3863cb2e80f27d26b521b2c957b21feacb900de merged revision(s) 07ab172ebef28bb82c2650694548d123802d6c22. naruse (Yui NARUSE)
11:34 AM Revision d3863cb2 (git): merge revision(s) 07ab172ebef28bb82c2650694548d123802d6c22: [Backport #17636]
sync check_rvalue_consistency_force()
check_rvalue_consistency_force() uses is_pointer_to_heap() and
it should be synchronized with other ractors.
[Bug #17636]
---
gc.c | 149 ++++++++++++++++++++...
naruse (Yui NARUSE)
11:32 AM Bug #17634: Ractor code gives me malloc(): unaligned fastbin chunk detected
ruby_3_0 commit:b49264ab7aa92f64a806857d7e81b3f1cbba5585. naruse (Yui NARUSE)
11:25 AM Bug #17497: Ractor performance issue
ruby_3_0 de6072a22edbaab3793cf7f976cc9e0118d0df40 merged revision(s) abdc634f64a440afcdc7f23c9757d27aab4db8a9,083c5f08ec4e95c9b75810d46f933928327a5ab3,1ecda213668644d656eb0d60654737482447dd92,813fe4c256f89babebb8ab53821ae5eb6bb138c6. naruse (Yui NARUSE)
11:24 AM Revision de6072a2 (git): merge revision(s) abdc634f64a440afcdc7f23c9757d27aab4db8a9,083c5f08ec4e95c9b75810d46f933928327a5ab3,1ecda213668644d656eb0d60654737482447dd92,813fe4c256f89babebb8ab53821ae5eb6bb138c6: [Backport #17497]
remove unused decl
---
internal/vm.h | 6 ------
vm_args.c | 2 --
2 files changed, 8 deletions(-)
Check stack overflow in recursive glob_helper [Bug #17162]
---
dir.c ...
naruse (Yui NARUSE)
11:17 AM Bug #17599: [BUG] try to mark T_NONE object when object allocation tracing is enabled
ruby_3_0 b49264ab7aa92f64a806857d7e81b3f1cbba5585 merged revision(s) 969b824a0c7605e0e570631d967ad0de0c37d0bf,100e464bee46ae71ef048ed85a9bdd012935a3f7. naruse (Yui NARUSE)
11:06 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
ruby_3_0 0074ea2d83230e10ab0cd769fff203c13d3c592f merged revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb. naruse (Yui NARUSE)
12:57 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
`vm->waitpid_lock` and `vm->workqueue_lock` seem never deleted.
`rb_native_mutex_destroy` on them are disabled by `if (0)` in `rb_vm_gvl_destroy()`, and that function is not called from anywhere too.
I have no idea why these calls are ...
nobu (Nobuyoshi Nakada)
11:06 AM Revision 0074ea2d (git): merge revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb: [Backport #15852]
Destroy VM-wise locks before freeing [Bug #15852]
---
thread.c | 7 -------
vm.c | 2 ++
2 files changed, 2 insertions(+), 7 deletions(-)
naruse (Yui NARUSE)
08:25 AM Revision 05fa06a4 (git): * 2021-03-11 [ci skip]
git[bot]
08:24 AM Revision 04ef602c (git): [rubygems/rubygems] Remote test to check require
This test was triggering require of `rubygems/core_ext/tcpsocket_init`
which overrides TCPSocket.initialize globally. Requires don't get
reset between test runs and it was making other test unreliable.
Fixes timeout of test on ruby mast...
sonalkr132 (Aditya Prakash)
08:24 AM Revision 0476ce03 (git): Merge RubyGems-3.2.14 and Bundler-2.2.14
hsbt (Hiroshi SHIBATA)
08:24 AM Revision 7efc7afc (git): Merge RubyGems-3.2.13 and Bundler-2.2.13
hsbt (Hiroshi SHIBATA)
08:24 AM Revision 06cd5711 (git): Merge RubyGems-3.2.12 and Bundler-2.2.12
hsbt (Hiroshi SHIBATA)
08:24 AM Revision f375bc77 (git): Merge RubyGems-3.2.11 and Bundler-2.2.11
hsbt (Hiroshi SHIBATA)
08:24 AM Revision 38f8b8d0 (git): Merge RubyGems-3.2.10 and Bundler-2.2.10
hsbt (Hiroshi SHIBATA)
07:57 AM Bug #12666: Fatal error: glibc detected an invalid stdio handle
Thx a lot! vo.x (Vit Ondruch)
07:31 AM Bug #17645: `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
I encountered another compilation error of `shorten-64-to-32` for 32-bit musl targets, where `time_t` is 64-bit. A workaround:
```
--- a/thread_sync.c
+++ b/thread_sync.c
@@ -560,7 +560,7 @@ rb_mutex_sleep(VALUE self, VALUE timeout
...
xtkoba (Tee KOBAYASHI)
01:46 AM Revision a6c93a1d (git): Revert "Update bundled_gems"
This reverts commit b37f60fbd4b18f23e0443ae41b2cd7b991f0e11c.
Because test-bundled-gems failed.
znz (Kazuhiro NISHIYAMA)
01:37 AM Misc #17635: DevelopersMeeting20210317Japan
* [Bug #16608] ConditionVariable#wait should return false when timeout exceeded (jeremyevans0)
* @nobu requested review of this during the developer meeting.
* Is it OK to make ConditionVariable#wait return false if timed out inste...
jeremyevans0 (Jeremy Evans)
12:21 AM Revision a6b5d70b (git): Create the test file under the created temporary directory
Fixes https://github.com/ruby/ruby/pull/4255 nobu (Nobuyoshi Nakada)
12:01 AM Bug #17494: ruby is hanged when using activesupport + rspec + rspec-parameterized
One possible workaround for this is a checking for an immediate loop in `resolve_refined_method`:
```diff
diff --git a/vm_method.c b/vm_method.c
index 2573e708ba..ebfe686a27 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -1245,7 +...
jeremyevans0 (Jeremy Evans)

03/10/2021

10:55 PM Bug #17142 (Closed): Ruby fails to build in AIX
jeremyevans0 (Jeremy Evans)
10:52 PM Bug #17189 (Feedback): test_thread.rb in testsuite deadlocks with musl libc 1.2.1
Can you narrow down which particular test method is causing this issue? That would help narrow down the problem? Even if the problem is not fixable, we could skip that test on musl libc so the test suite doesn't deadlock.
It is expe...
jeremyevans0 (Jeremy Evans)
10:41 PM Bug #6120: Float and BigDecimal bug in remainder in corner cases
I've submitted a pull request to fix this issue for Integer/Float: https://github.com/ruby/ruby/pull/4257
I've submitted an issue to the bigdecimal repository to fix the issue in BigDecimal: https://github.com/ruby/bigdecimal/issues/187
jeremyevans0 (Jeremy Evans)
09:54 PM Bug #12666 (Closed): Fatal error: glibc detected an invalid stdio handle
jeremyevans0 (Jeremy Evans)
08:06 PM Bug #12666 (Assigned): Fatal error: glibc detected an invalid stdio handle
I've added a pull request for this: https://github.com/ruby/fiddle/pull/70 jeremyevans0 (Jeremy Evans)
09:44 PM Revision ef882258 (git): Simplify ibf_dump_object_symbol by delegating to ibf_dump_object_string
byroot (Jean Boussier)
09:44 PM Revision 1041bff3 (git): Add a benchmark for RubyVM::InstructionSequence.load_from_binary
byroot (Jean Boussier)
09:44 PM Revision 2de7fbcd (git): Pre-freeze ISeq names to avoid useless duplication
byroot (Jean Boussier)
09:44 PM Revision d00e7deb (git): Use rb_enc_interned_str in ibf_load_object_string
byroot (Jean Boussier)
09:44 PM Revision 8463c8a4 (git): Specialize ibf_load_object_symbol and ibf_dump_object_symbol
byroot (Jean Boussier)
09:43 PM Revision a03653d3 (git): proc.c: make bind_call use existing callable method entry when possible
The most common use case for `bind_call` is to protect from core
methods being redefined, for instance a typical use:
```ruby
UNBOUND_METHOD_MODULE_NAME = Module.instance_method(:name)
def real_mod_name(mod)
UNBOUND_METHOD_MODULE_NAME...
byroot (Jean Boussier)
08:09 PM Revision d9fea496 (git): Remove cvar overtaken classes at end of test methods
Fixes issues when the same tests are executed more than once,
which some CI machines do.
jeremyevans (Jeremy Evans)
08:07 PM Bug #15718 (Closed): YAML raises error when dumping strings with UTF32 encoding
jeremyevans0 (Jeremy Evans)
08:04 PM Bug #15718: YAML raises error when dumping strings with UTF32 encoding
Thanks for the investigation @jeremyevans0 👍
I'm definitely ok to close this. I don't even recall how I stumbled upon this 😅
marcandre (Marc-Andre Lafortune)
07:11 PM Bug #15718 (Feedback): YAML raises error when dumping strings with UTF32 encoding
I looked into this and ruby YAML uses libyaml, which is a YAML 1.1 implementation. YAML 1.1 does not support UTF-32 encoding; that isn't supported by the YAML spec until YAML 1.2. So I think it is reasonable for `YAML.dump` to raise `E... jeremyevans0 (Jeremy Evans)
07:37 PM Bug #16608: ConditionVariable#wait should return false when timeout exceeded
I've added a pull request that builds on @nobu's pull request, but uses a new method (`Mutex#sleep_for`) instead of making backwards-incompatible changes to `Mutex#sleep`: https://github.com/ruby/ruby/pull/4256 jeremyevans0 (Jeremy Evans)
07:25 PM Bug #14096 (Closed): Psych allows invalid single quote escape character
This has been fixed in libyaml 0.2.1 (released June 2018), and the YAML given by @headius will raise `Psych::SyntaxError` on Ruby versions 1.9-3.0 when used with libyaml 0.2.1+. jeremyevans0 (Jeremy Evans)
05:43 PM Feature #17685 (Feedback): Marshal format for out of band buffer objects
Allow the use of the marshal protocol to transmit large data (objects) from one process or ractor to another, on same machine or multiple machines without extra memory copies of the data.
See Python PEP 574 - https://www.python.org/de...
dsisnero (Dominic Sisneros)
05:40 PM Revision cbc7c1c0 (git): Add cvar overtaken tests
While working on another project we noticed that there were no tests for
the cvar overtaken exception when using classes. This change adds a test
for cvar overtaken with classes and moves the cvar overtaken test for
modules into the new ...
eileencodes (Eileen Uchitelle)
05:39 PM Revision 23a48d8f (git): Refactor `rb_class_ivar_set`
In every caller of `rb_class_ivar_set` it checks for the `RCLASS_IV_TBL`
and then creates it if it doesn't exist. Instead of repeating this in
every caller, this can be done once in `rb_class_ivar_set`.
eileencodes (Eileen Uchitelle)
05:38 PM Revision 9cdb5a51 (git): * 2021-03-11 [ci skip]
git[bot]
05:38 PM Revision 9d0ae387 (git): Remove DEFINED_IVAR2 from enum
This version of defined? doesn't seem to be possible to emit anymore. jhawthorn (John Hawthorn)
05:27 PM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
xtkoba (Tee KOBAYASHI) wrote in #note-19:
> To my understanding, the problem is that when `Random.urandom` failed to use `/dev/urandom` it does not fall back to using an OpenSSL function even if it is available.
Ah, thank you, that i...
jeremyevans0 (Jeremy Evans)
04:38 PM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
To my understanding, the problem is that when `Random.urandom` failed to use `/dev/urandom` it does not fall back to using an OpenSSL function even if it is available.
However, this issue seems no longer to happen on recent Linux syst...
xtkoba (Tee KOBAYASHI)
04:01 PM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
If SecureRandom requires a file descriptor to work, I think it should be expected to raise an exception if a file descriptor is not available. After all, it's not a bug when File.open raises an exception because a file descriptor is not... jeremyevans0 (Jeremy Evans)
10:53 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
I can reproduce this issue with Ruby 3.0.0p0 on my old Android phone by artificially opening a lot of files.
The reproducer code (named `bug14716.rb`):
```ruby
require 'securerandom'
a = []
1017.times { a.push File.open '/' }
...
xtkoba (Tee KOBAYASHI)
12:23 AM Bug #14716 (Feedback): SecureRandom throwing an error in Ruby 2.5.1
Can anyone prepare a reproducible example of this happening with Ruby 2.7 or 3.0 (Ruby 2.6 goes into security maintenance at the end of the month)? I think many of the reported failures with Ruby 2.5 and 2.6 could be due to the file des... jeremyevans0 (Jeremy Evans)
03:41 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I disagree on removing this option, I don't think the benefits of removing it are strong enough, even if it didn't make any difference in performance. deivid (David Rodríguez)
02:53 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I'd love to see this clarified. IMO, there should be other ways to manage `$LOAD_PATH` then RubyGems. For such use cases, this option is useful IMO. vo.x (Vit Ondruch)
01:35 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
Will we be able to re-enable the `--disable-gems` option when we build `ruby` from source code? I think it is useful for narrowing problems down. For that purpose it might be sufficient that `miniruby` does not depend on Gems, though.
...
xtkoba (Tee KOBAYASHI)
01:21 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I don't have anything invested in this myself, but just for information to help the discussion, here's two examples of apps that use the option
* https://github.com/Shopify/shopify-app-cli/blob/master/bin/shopify
* https://github.com...
chrisseaton (Chris Seaton)
01:02 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
chrisseaton (Chris Seaton) wrote in #note-1:
> How should people who were using it for performance migrate off the option?
`--disable-gems` should be just ignored in the future version, and the performance will be degraded.
naruse (Yui NARUSE)
01:00 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
Agreed. Unfortunately this increases the cost of development to support `--disable-gems`.
In other words, this feature breaks the assumption that every Ruby has RubyGems.
This feature should be removed.
naruse (Yui NARUSE)
12:59 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
How should people who were using it for performance migrate off the option? chrisseaton (Chris Seaton)
12:51 PM Feature #17684 (Assigned): Remove `--disable-gems` from release version of Ruby
In my understand, `--disable-gems` is only debugging feature for ruby-core team.
But some users enabled its option in test environment for performance or etc. So, `--disable-gems` option is wrong usage for some users.
* https://git...
hsbt (Hiroshi SHIBATA)
01:31 PM Feature #17674: Proposal: `Method#source_location` or `Method#owner` for refined methods
hi.
In Ruby 2.7 and later, `#method` supports Refinements.
```ruby
# test.rb
module Cover
refine Range do
def cover?(value)
return super unless value.is_a?(Range)
super(value.first) && super(value.last)
...
osyo (manga osyo)
01:13 PM Revision 4c80b9d0 (git): Fix `coroutine_type` variable name
nobu (Nobuyoshi Nakada)
01:10 PM Misc #17635: DevelopersMeeting20210317Japan
* [Feature #17684] Remove `--disable-gems` from release version of Ruby
* Recently this increases the cost of the ecosystem
naruse (Yui NARUSE)
10:37 AM Revision b37f60fb (git): Update bundled_gems
znz (Kazuhiro NISHIYAMA)
09:40 AM Misc #17683 (Open): Current status of beginless range (experimental or not)
A beginless range was experimentally introduced in Ruby 2.7.0:
https://github.com/ruby/ruby/blob/v2_7_0/NEWS#label-Other+miscellaneous+changes
Is it still experimental feature or not?
jnchito (Junichi Ito)
06:27 AM Feature #14643 (Closed): Remove problematic separator '\0' of Dir.glob and Dir.[]
mame (Yusuke Endoh)

03/09/2021

11:59 PM Revision 67b79997 (git): * 2021-03-10 [ci skip]
git[bot]
11:55 PM Bug #17508 (Closed): io-console versioning
I created a pull request to backport the remaining changes in io-console 0.5.7 from master to the ruby_3_0 branch: https://github.com/ruby/ruby/pull/4252 jeremyevans0 (Jeremy Evans)
10:41 PM Feature #15517 (Assigned): Net::HTTP not recognizing valid UTF-8
I've submitted a pull request (https://github.com/ruby/net-http/pull/17) that takes the patch provided by @naruse in #2567 and modifies it to be opt-in in a backwards compatible manner. It also fixes various issues with the patch and ad... jeremyevans0 (Jeremy Evans)
03:12 PM Feature #17682 (Open): String#casecmp performance improvement
I've submitted a PR with up to 27x speedup for `String#casecmp`: https://github.com/ruby/ruby/pull/4133
According to [HowToContribute][1] it looks like I was supposed to create a ticket for "non-tiny" fixes so I'm now doing this.
One...
Dan0042 (Daniel DeLorme)
02:05 PM Revision f0b3700d (git): Given argument does not need to cache
nobu (Nobuyoshi Nakada)
11:36 AM Revision 5f821ee9 (git): Recheck ucontext functions to make reconfig stable
nobu (Nobuyoshi Nakada)
11:11 AM Bug #15852 (Closed): APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
Applied in changeset commit:git|2a83650b0fd25719fb6c03bfec7bd895734d3ceb.
----------
Destroy VM-wise locks before freeing [Bug #15852]
nobu (Nobuyoshi Nakada)
11:11 AM Revision 2a83650b (git): Destroy VM-wise locks before freeing [Bug #15852]
nobu (Nobuyoshi Nakada)
09:10 AM Bug #17583: Segfault on large stack(RUBY_THREAD_VM_STACK_SIZE)
Does this work?
https://github.com/nobu/ruby/tree/disable-gc-while-VM-bootsrap
nobu (Nobuyoshi Nakada)
04:22 AM Bug #10961 (Closed): Zlib corrupts data when receive signal
Applied in changeset commit:git|0c5f8c62766afe4605172800063e63fe36996658.
----------
[ruby/zlib] Resume zstream if available [Bug #10961]
wanabe (_ wanabe)
04:19 AM Revision 7110795f (git): * 2021-03-09 [ci skip]
git[bot]
04:19 AM Revision 0c5f8c62 (git): [ruby/zlib] Resume zstream if available [Bug #10961]
wanabe (_ wanabe)
02:37 AM Bug #17676: Accessing ENV from Ractor raises IsolationError
I agree `ENV` should be shareable.
It is in my task list, but not high priority.
ko1 (Koichi Sasada)
12:43 AM Bug #17676 (Assigned): Accessing ENV from Ractor raises IsolationError
hsbt (Hiroshi SHIBATA)
01:36 AM Feature #17679: Ractor incoming channel can consume unlimited resources
It's not clear to me that this should be implemented at the Ractor level.
Both suggested approaches can be handled in Ruby, for example using an intermediary Ractor...
```ruby
DONE = Object.new.freeze
MIDDLEMAN = Ractor.new do
...
marcandre (Marc-Andre Lafortune)
12:42 AM Feature #17679 (Assigned): Ractor incoming channel can consume unlimited resources
hsbt (Hiroshi SHIBATA)
12:42 AM Bug #17678 (Assigned): Ractors do not restart after fork
hsbt (Hiroshi SHIBATA)
12:42 AM Bug #17677 (Assigned): Ractor crashes fork when blocking
hsbt (Hiroshi SHIBATA)
12:31 AM Bug #17680: tab completion no longer works on irb3.0
I could not reproduce the old version behaviour. I got back to irb 1.1.0 and the autocomplete behaviour is the same as the version 1.3.4. My steps:
$ touch linking.rb
$ touch list_load.rb
$ touch list_load_OLD.rb
$ irb
2.5.0 :001 ...
crocarneiro (Carlos Carneiro)

03/08/2021

11:35 PM Bug #13513: Resolv::DNS::Message.decode hangs after detecting truncation in UDP messages
I've confirmed this bug is still present in the current resolv library, and have submitted a patch to fix it: https://github.com/ruby/resolv/pull/6 jeremyevans0 (Jeremy Evans)
07:00 PM Bug #17681 (Closed): irb3.0 exits after "source" command
jeremyevans0 (Jeremy Evans)
06:53 PM Bug #17681: irb3.0 exits after "source" command
Now resolved; I needed to update irb by gem3.0 install irb. simondedeo (Simon DeDeo)
06:42 PM Bug #17681 (Closed): irb3.0 exits after "source" command
in contrast to previous versions of irb, irb3.0 exits (with "nil") on executing a "source". Here's an example:
ayerie:simon$ cat > test.rb
print "hello"
ayerie:simon$ irb3.0
irb(main):001:0" source "test.rb"
test.rb(main):002:...
simondedeo (Simon DeDeo)
06:24 PM Bug #17680 (Closed): tab completion no longer works on irb3.0
in irb2.5:
rb(main):001:0> source 'li [then I hit tab...]
linking.rb list_load.rb list_load_OLD.rb
irb(main):001:0> source 'lis [then I hit tab again...]
list_load.rb list_load_OLD.rb
irb(main):001:0> source '...
simondedeo (Simon DeDeo)
04:22 PM Feature #17679 (Assigned): Ractor incoming channel can consume unlimited resources
## Background
In the [ddtrace](https://github.com/DataDog/dd-trace-rb) gem, we want to move telemetry trace sending to a separate background Ractor. We’re concerned that if something goes wrong/gets delayed in this background Ractor, ...
marcotc (Marco Costa)
04:19 PM Bug #17678 (Closed): Ractors do not restart after fork
Hello there! I'm working at Datadog on the `ddtrace` gem -- <https://github.com/DataDog/dd-trace-rb> and we're experimenting with using Ractors in our library but run into a few issues.
### Background
When running a Ractor as a bac...
ivoanjo (Ivo Anjo)
04:19 PM Bug #17677 (Closed): Ractor crashes fork when blocking
## Background
If you create a Ractor which blocks (e.g. `receive`), then fork the process, the fork will segfault upon completion.
## How to reproduce
```ruby
r2 = Ractor.new do
Ractor.receive
end

sleep(1)

puts "Fork...
delner (David Elner)
04:12 PM Bug #17676 (Closed): Accessing ENV from Ractor raises IsolationError
## Background
Accessing ENV variables from a Ractor will raise Ractor::IsolationError, as the Hash is non-shareable.
## How to reproduce
``` ruby
ractor = Ractor.new do
ENV['PATH']
end

ractor.take
```
## Expectation ...
delner (David Elner)
08:46 AM Revision e85bffc3 (git): Increment global variables atomically
nobu (Nobuyoshi Nakada)
08:46 AM Revision b7d4dcf3 (git): Make vm_exit_handler installation MT-safe
nobu (Nobuyoshi Nakada)
08:46 AM Revision 9299703b (git): Make uenvarea thread exclusive
nobu (Nobuyoshi Nakada)
08:46 AM Revision 8c943e3b (git): Make the flag in thread_exclusive unique
nobu (Nobuyoshi Nakada)
08:45 AM Revision 1a004029 (git): Enclose crtitical sections in `thread_exclusive` block
nobu (Nobuyoshi Nakada)
08:41 AM Bug #17673: sysseek(0) and '1A' in header return "EOFError (end of file reached)"
This is not specific to Ruby, but the very (in)famous text mode spec of Windows (and other dosish systems). nobu (Nobuyoshi Nakada)
08:12 AM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
Okay, the style is an intentional hack to trick the editors into syntax-highlinting and auto-indenting the code within the heredoc. I didn't know, but it makes sense to me.
I investigated the syntax highlighting behavior of GitHub. Th...
mame (Yusuke Endoh)
07:37 AM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
Also, does auto indentation work inside `<<~RUBY` as `begin;`...`end;` hack? nobu (Nobuyoshi Nakada)
07:30 AM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
I don't mind to transfer to `<<~RUBY` if ruby-mode.el supporting it gets released.
BTW, what editors support it?
nobu (Nobuyoshi Nakada)
08:04 AM Revision d10b5358 (git): test/ruby/test_string.rb: make GitHub syntax-highlight correctly
It looks like GitHub syntax-highlighting does not support an empty
heredoc. This change adds a newline to make GitHub can handle the syntax
appropriately.
https://bugs.ruby-lang.org/issues/17662
mame (Yusuke Endoh)
05:37 AM Bug #17643 (Rejected): Ruby 3 embedded - no GC methods?
You don't call `ruby_options`.
And the `argv` made in this part is wrong.
> ```c
> ...
nobu (Nobuyoshi Nakada)
04:47 AM Revision 7de349bb (git): [rubygems/rubygems] Remote test to check require
This test was triggering require of `rubygems/core_ext/tcpsocket_init`
which overrides TCPSocket.initialize globally. Requires don't get
reset between test runs and it was making other test unreliable.
Fixes timeout of test on ruby mast...
sonalkr132 (Aditya Prakash)
04:47 AM Revision 53468cc1 (git): Sync latest development version of bundler & rubygems
deivid (David Rodríguez)
04:47 AM Revision 2ab6b7a7 (git): Remove no longer needed globs
deivid (David Rodríguez)
04:39 AM Revision 602d09a1 (git): Suppress useless default branch name hint [ci skip]
nobu (Nobuyoshi Nakada)
03:10 AM Revision b1f375cc (git): Removed HEAD^2 checkout to suppress a CodeQL annotation [ci skip]
nobu (Nobuyoshi Nakada)
02:47 AM Bug #17675 (Closed): StringIO#each_byte doesn't check for readabilty while iterating
Applied in changeset commit:git|32a13591e0bb6e96b05452e214f14eda21ee3aa9.
----------
[ruby/stringio] Check if closed in loop
[Bug #17675] https://bugs.ruby-lang.org/issues/17675
https://github.com/ruby/stringio/commit/1ed61d0cbc
nobu (Nobuyoshi Nakada)
02:08 AM Misc #17641: pocke should have a commit bit
I agree.
Matz.
matz (Yukihiro Matsumoto)
01:13 AM Revision 32a13591 (git): [ruby/stringio] Check if closed in loop
[Bug #17675] https://bugs.ruby-lang.org/issues/17675
https://github.com/ruby/stringio/commit/1ed61d0cbc
nobu (Nobuyoshi Nakada)
01:12 AM Revision 99f54c08 (git): [ruby/stringio] Use Gemfile instead of Gem::Specification#add_development_dependency.
https://github.com/ruby/stringio/commit/157fe9f04d hsbt (Hiroshi SHIBATA)
01:08 AM Revision d0a05fd4 (git): Fixed FD leaks
nobu (Nobuyoshi Nakada)
01:03 AM Revision 8aa70b9b (git): * 2021-03-08 [ci skip]
git[bot]
12:35 AM Revision 0d29c317 (git): [ruby/stringio] Include all modules included into Test::Unit::TestCase
Some methods are separated into modules in test-unit now.
https://github.com/ruby/stringio/commit/d289848994
nobu (Nobuyoshi Nakada)
12:35 AM Revision 21e25591 (git): [ruby/stringio] Pass IOs as separate list for ruby 2.x
https://github.com/ruby/stringio/commit/74e39858eb nobu (Nobuyoshi Nakada)
12:34 AM Revision c3c18007 (git): Prefer to use omit
hsbt (Hiroshi SHIBATA)

03/07/2021

12:48 PM Bug #10961: Zlib corrupts data when receive signal
I sent PR https://github.com/ruby/zlib/pull/22 wanabe (_ wanabe)
02:20 AM Bug #17675: StringIO#each_byte doesn't check for readabilty while iterating
Please submit to https://github.com/ruby/stringio nobu (Nobuyoshi Nakada)
02:00 AM Bug #17675: StringIO#each_byte doesn't check for readabilty while iterating
The PR is:
https://github.com/ruby/ruby/pull/4245
wyhaines (Kirk Haines)
01:48 AM Bug #17675 (Closed): StringIO#each_byte doesn't check for readabilty while iterating
Bug #17661 is a failure to check readability on `each_byte` of an IO, causing a segmentation fault.
StringIO has an independent, but related implementation, and it shares the same flaw in its implementation, where it fails to check fo...
wyhaines (Kirk Haines)
01:36 AM Bug #17659 (Closed): Ractor: can't call io/wait methods
nobu (Nobuyoshi Nakada)
01:21 AM Revision 1d1b9e02 (git): Removed a typo in a comment [ci skip]
nobu (Nobuyoshi Nakada)
12:55 AM Bug #17661: IO#each will segfault when if file is closed inside an `each_byte` block
Aaron filed this bug on my behalf, as I was having issues with my account. Those issues appear to be issues no more, however.
In the interest of having details appear in the issue tracker and not just on GitHub, I'll reiterate the des...
wyhaines (Kirk Haines)
12:54 AM Revision f6d5de8f (git): [ruby/io-wait] Declare as Ractor-safe
Fixes https://bugs.ruby-lang.org/issues/17659
https://github.com/ruby/io-wait/commit/ba338b4764
nobu (Nobuyoshi Nakada)
12:54 AM Revision ea81fff5 (git): [ruby/io-wait] bump up to 0.1.1
https://github.com/ruby/io-wait/commit/88db082d60 nobu (Nobuyoshi Nakada)
12:54 AM Revision ef9bde65 (git): [ruby/io-wait] Refined uncommon device type tests
https://github.com/ruby/io-wait/commit/0c73ebcf5d nobu (Nobuyoshi Nakada)
12:54 AM Revision 05d118fe (git): [ruby/io-wait] Fixed required_ruby_version
Before 3.0.0, io-wait has not been gemified.
https://github.com/ruby/io-wait/commit/6fed3da323
nobu (Nobuyoshi Nakada)
12:54 AM Revision 3ba1580d (git): [ruby/io-wait] Revise IO#wait arguments
https://github.com/ruby/io-wait/commit/0599f6d4d6
https://github.com/ruby/io-wait/commit/4e982aea1b
https://github.com/ruby/io-wait/commit/5b45685eb3
nobu (Nobuyoshi Nakada)

03/06/2021

09:59 PM Bug #17216 (Closed): Enumerator::Chain doesn't support all Enumerator methods
Applied in changeset commit:git|bf40fe9fed19a5e22081b133661c0629988f1618.
----------
Fix calling enumerator methods such as with_index on Enumerator::Chain
This previously raised a TypeError. Wrap the Enumerator::Chain in
an Enumerato...
jeremyevans (Jeremy Evans)
09:59 PM Feature #17347 (Closed): Enumerator::Chain of Enumerator::Lazy should be lazy
Applied in changeset commit:git|bf40fe9fed19a5e22081b133661c0629988f1618.
----------
Fix calling enumerator methods such as with_index on Enumerator::Chain
This previously raised a TypeError. Wrap the Enumerator::Chain in
an Enumerato...
jeremyevans (Jeremy Evans)
09:59 PM Bug #17672 (Closed): Ractor stdio does not belong to the ractor
Applied in changeset commit:git|b3c53a8a885be8f5cc2b712798b0d2741c488ce4.
----------
Make Ractor stdio belonging to the Ractor [Bug #17672]
Defer making ractor stdio until ractor started.
Before ractor started, created objects belong t...
nobu (Nobuyoshi Nakada)
09:56 PM Revision 68d02857 (git): Undef Enumerator::Chain#{feed,next,next_values,peek,peek_values}
Previously these methods were defined but raised TypeError, which
seems worse.
jeremyevans (Jeremy Evans)
09:56 PM Revision e1d16a9e (git): Make Enumerator#{+,chain} create lazy chain if any included enumerator is lazy
Implements [Feature #17347] jeremyevans (Jeremy Evans)
09:56 PM Revision bf40fe9f (git): Fix calling enumerator methods such as with_index on Enumerator::Chain
This previously raised a TypeError. Wrap the Enumerator::Chain in
an Enumerator to work around the problem.
Fixes [Bug #17216]
jeremyevans (Jeremy Evans)
09:24 PM Feature #17674 (Closed): Proposal: `Method#source_location` or `Method#owner` for refined methods
Inspired by https://bugs.ruby-lang.org/issues/15504#note-17
I'm working on a gem with Ruby refinements, and some methods are invented in new Ruby versions like 2.5 or 3.0, and I'd like to define in this gem should I refine a method or...
AlexWayfer (Alexander Popov)
09:16 PM Feature #15504: Freeze all Range objects
zverok (Victor Shepelev) wrote in #note-17:
> > if I want to check was called refined method or core?
> ...
I'm too lazy for such proposals, especially well formatted, but I can try. UPD: Created https://bugs.ruby-lang.org/issues/17674
...
AlexWayfer (Alexander Popov)
03:58 PM Revision 13dc0053 (git): * 2021-03-07 [ci skip]
git[bot]
03:58 PM Revision b3c53a8a (git): Make Ractor stdio belonging to the Ractor [Bug #17672]
Defer making ractor stdio until ractor started.
Before ractor started, created objects belong to the caller ractor
instead of the created ractor.
nobu (Nobuyoshi Nakada)
02:50 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
When I proposed this feature in #10771, the motivation was to create a tool that automatically reads Ruby code and documents its methods and constants together with their source code. To extract the relevant source code, knowing the star... sawa (Tsuyoshi Sawada)
12:52 AM Bug #10203 (Closed): TCPServer.new has strange behaviour when EADDRINUSE without specifying hostname
I think this is not a bug and can be closed. `TCPServer.new` using first `getaddrinfo` address that works is reasonable behavior if no address is specified. If you require a specific address, you should specify it. As @akr mentioned, ... jeremyevans0 (Jeremy Evans)
12:39 AM Bug #14046 (Closed): Ripper loses DATA
Ruby stops parsing the file when `__END__` is reached. Since the parser doesn't see the rest of the file, it is expected that Ripper doesn't either. If you want to get `DATA` content, you can handle that using the result of the lex:
...
jeremyevans0 (Jeremy Evans)
12:04 AM Bug #17673: sysseek(0) and '1A' in header return "EOFError (end of file reached)"
Right, that solved it, the Ruby documentation should specify that. Ok, thanks. stiuna (Juan Gregorio)

03/05/2021

11:46 PM Bug #17673 (Closed): sysseek(0) and '1A' in header return "EOFError (end of file reached)"
I tried on Windows and I was able to reproduce the issue:
```
C:\Users\jeremye>c:\Ruby30-x64\bin\ruby
filePath = 'test.txt'
File.binwrite(filePath, "\x1A\x45")
descriptor = IO.sysopen(filePath)
file2Read = IO.new(descriptor)
f...
jeremyevans0 (Jeremy Evans)
11:39 PM Bug #17673: sysseek(0) and '1A' in header return "EOFError (end of file reached)"
Aaah! I don't know if it matters but I use Windows, did you run it on Linux all of a sudden? stiuna (Juan Gregorio)
11:28 PM Bug #17673: sysseek(0) and '1A' in header return "EOFError (end of file reached)"
Can you try on a different machine to check if this is a local problem?
Unfortunately I don't have another computer to test the bug with, what version of ruby do you use?
stiuna (Juan Gregorio)
11:14 PM Bug #17673 (Feedback): sysseek(0) and '1A' in header return "EOFError (end of file reached)"
I tried your example and was unable to reproduce your problem:
```ruby
filePath = 'test.txt'
File.binwrite(filePath, "\x1A\x45")
descriptor = IO.sysopen(filePath)
file2Read = IO.new(descriptor)
file2Read.sysseek(0)
p file2Read.s...
jeremyevans0 (Jeremy Evans)
11:03 PM Bug #17673 (Closed): sysseek(0) and '1A' in header return "EOFError (end of file reached)"

The first byte of my file starts with the value **'1A'** .
Then:
``` ruby
descriptor = IO.sysopen(filePath)
file2Read = IO.new(descriptor)
file2Read.sysseek(0)
p file2Read.sysread(2).unpack('H*')
#=> "EOFError (end of file r...
stiuna (Juan Gregorio)
10:37 PM Feature #17347: Enumerator::Chain of Enumerator::Lazy should be lazy
This isn't a duplicate of #17216 even though it is related. I agree that this feature would be useful. I've included an implementation in the same pull request: https://github.com/ruby/ruby/pull/3811 jeremyevans0 (Jeremy Evans)
06:34 PM Misc #17635: DevelopersMeeting20210317Japan
* [Bug #11335] `ruby -r debug` catchpoint problem (jeremyevans0)
* This support is broken since Ruby 2.0.
* The debug library has no tests, and I'm guessing minimal usage.
* Can we remove debug from stdlib in Ruby 3.1?
* Alte...
jeremyevans0 (Jeremy Evans)
05:59 PM Bug #17672 (Closed): Ractor stdio does not belong to the ractor
When compiling with `RUBY_DEBUG`, the following code crashes.
```
$ ./miniruby -W0 -e 'p Ractor.new {$stdout.itself}.take'
<OBJ_INFO:rb_ractor_confirm_belonging@../debug/ractor_core.h:336> 0x000000010bec2fa0 [0 U] T_FILE (IO)
-e...
nobu (Nobuyoshi Nakada)
05:34 PM Bug #17671 (Closed): Possible deadlock with condition variables in Net::IMAP
jeremyevans0 (Jeremy Evans)
05:27 PM Bug #17671: Possible deadlock with condition variables in Net::IMAP
Filed under https://github.com/ruby/net-imap/issues/14. Feel free to close this. stanhu (Stan Hu)
04:52 PM Bug #17671 (Assigned): Possible deadlock with condition variables in Net::IMAP
Can you please file this issue in the net/imap repository: https://github.com/ruby/net-imap jeremyevans0 (Jeremy Evans)
04:40 PM Bug #17671 (Closed): Possible deadlock with condition variables in Net::IMAP
We're using Net::IMAP via the [MailRoom gem](https://github.com/tpitale/mail_room), and quite frequently we are seeing issues with the process not terminating even though we attempt to run `#Thread#join` with a 60-second timeout.
A GD...
stanhu (Stan Hu)
03:50 PM Bug #16784 (Closed): Compiling with --enable-load-relative and "musl-gcc -static" yields "negative string size (or size too big) (ArgumentError)"
Applied in changeset commit:git|8ccc12118ea5257f846476088eb9c64944560892.
----------
Keep libpath length non-negative [Bug #16784]
When runtime_libruby_path does not include '/', it attempts to call
rb_str_resize with negative length. ...
mame (Yusuke Endoh)
03:01 PM Bug #16784: Compiling with --enable-load-relative and "musl-gcc -static" yields "negative string size (or size too big) (ArgumentError)"
I don't know powerpc64le-linux-musl at all, but the patch looks reasonable to me. At least, it should be benign on other environments that now ruby works on. I will merge it. mame (Yusuke Endoh)
03:50 PM Revision 8ccc1211 (git): Keep libpath length non-negative [Bug #16784]
When runtime_libruby_path does not include '/', it attempts to call
rb_str_resize with negative length. This change makes sure that the
length non-negative.
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
mame (Yusuke Endoh)
03:40 PM Feature #17638 (Assigned): Support backtracing with the libbacktrace library
mame (Yusuke Endoh)
03:39 PM Bug #13654 (Closed): irb save-history extension is not concurrency-safe
jeremyevans0 (Jeremy Evans)
03:18 PM Revision 261b746d (git): * 2021-03-06 [ci skip]
git[bot]
03:18 PM Revision 14e1739f (git): [ruby/irb] Make save-history extension safe for concurrent use
This makes the save-history extension check for modifications to
the history file before saving it. If the history file was modified
after the history was loaded and before it was saved, append only
the new history lines to the history ...
jeremyevans (Jeremy Evans)
03:08 PM Bug #17585: DWARF5 support?
Thank you @xtkoba and @vo.x !
I've created a PR https://github.com/ruby/ruby/pull/4240 to test the patch on the GitHub Actions CI. If @xtkoba can send a PR yourself, please ignore my PR and create yours (with commit message).
mame (Yusuke Endoh)
02:53 PM Bug #17656: Improper functions shown in C level backtrace information
Thank you @xtkoba .
Could you add a comment to the #ifdef hack?
And if possible, can you send a PR to github.com/ruby/ruby? It would be useful to check if it works on the CI before I merge it.
mame (Yusuke Endoh)
01:03 PM Bug #14824 (Closed): Endless Range Support in irb
Applied in changeset commit:git|2cc5827fdca97dbd1225a49a3114d28aa1cb2ef4.
----------
[ruby/irb] Do not continue line if last expression is an endless range
Fixes [Bug #14824]
https://github.com/ruby/irb/commit/63414f8465
jeremyevans (Jeremy Evans)
01:03 PM Revision 182cde8d (git): [ruby/irb] Add a test for not continuing when endless range at eol
https://github.com/ruby/irb/commit/1020ac9c65 aycabta (aycabta .)
01:03 PM Revision 2cc5827f (git): [ruby/irb] Do not continue line if last expression is an endless range
Fixes [Bug #14824]
https://github.com/ruby/irb/commit/63414f8465
jeremyevans (Jeremy Evans)
08:37 AM Revision 45b3a5f7 (git): rb_sym_interned_p: doesn't exist
Deleted decades ago in commit 6e0fed271c1d2e6f2b13b99d89d43e7d00e81472
Note also that we eventually ended up reinventing this exact same
functionality. It is called rb_check_id() now.
shyouhei (Shyouhei Urabe)
07:49 AM Bug #10961 (Open): Zlib corrupts data when receive signal
It doesn't look like it's fixed yet.
It may be a race condition between processes, or an environmental dependency that prevents it from being reproduced.
```
$ ruby -v bug10961.rb
ruby 3.1.0dev (2021-03-05T07:33:29Z master 7715d42...
wanabe (_ wanabe)
07:33 AM Revision 7715d428 (git): rb_enc_symname_type: indent
shyouhei (Shyouhei Urabe)
07:33 AM Revision 0a43f0de (git): rb_enc_symname_type: refactor reduce goto
A bit readable to me. shyouhei (Shyouhei Urabe)
01:38 AM Bug #16810: ruby segfaults on s390x with musl libc
I cannot reproduce this issue with mruby-2.1.0 + ruby-2.7.1p83 on my QEMU user emulated environment.
Is it still reproducible with the latest toolchain and libucontext? Of course it might be a case that it reproduces only on native en...
xtkoba (Tee KOBAYASHI)
01:33 AM Revision 0ead818d (git): Generating note.GNU-stack section for FreeBSD on x86.
Not enabling for ELF in general as not all platform support it
(e.g. NetBSD, implictly stack never executable).
David Carlier
01:26 AM Revision 99c33978 (git): * 2021-03-05 [ci skip]
git[bot]
01:26 AM Revision c230ccdb (git): coroutine arm64 generating note.GNU-stack section for linux.
David Carlier
 

Also available in: Atom