Activity
From 10/21/2020 to 10/27/2020
10/27/2020
-
10:21 PM Misc #16778: Should we stop vendoring default gems code?
- > We can extract like matrix, prime and tracer as bundled gems from the default gems.
That is not what I am looking for, nor what this issue is about. What I think we want (@deivid, me, and probably @eregon) is for the default gem sourc... -
05:17 PM Misc #16778: Should we stop vendoring default gems code?
- There are many default gems (listed on https://stdgems.org/), so making them bundled gems is a not a good solution, it only works for subset of them.
Anything transitively needed by RubyGems cannot be a bundled gem. -
01:32 PM Misc #16778: Should we stop vendoring default gems code?
- @hsbt In your previous message you said: "We still wait for the PoC of this issue.", and set status to "feedback". Now after the recent positive comments you changed the status to "rejected". Could you clarify?
-
12:58 PM Misc #16778 (Rejected): Should we stop vendoring default gems code?
- @headius
We can extract like matrix, prime and tracer as bundled gems from the default gems.
But that is the different scope of this issue. If you are interested in it, can you submit a new issue? -
09:55 PM Feature #9459: Net::HTTP initializes openssl library after TCP connection is established
- This appears to still be an issue, though I think this is a feature request and not a bug. I've submitted the patch as a pull request to the net-http repository: https://github.com/ruby/net-http/pull/4
-
09:32 PM Bug #9595 (Rejected): Float#to_d inconsistent between 2.0.0 and 2.1.1
- BigDecimal behavior has remained the same since 2.1, and 2.0's excessive precision was actually a bug, fixed in commit:1699396fe502d929ced019dc0dd3463a35fbf6d3.
-
06:35 PM Feature #17288: Optimize __send__ call with a literal method name
- I think `obj.send(:foo)` should be optimized too, to not create a an arbitrary performance difference between `send` and `__send__`.
`send` is also used ~15x used more frequently than `__send__` in gems, so that would be even more valua... -
08:32 AM Feature #17288 (Assigned): Optimize __send__ call with a literal method name
- I made a patch to optimize a `__send__` call with a literal method name. This optimization replaces a `__send__` method call with a `send` instruction. The patch is available in [this pull-request](https://github.com/ruby/ruby/pull/370...
-
06:08 PM Feature #17266: Bundle TypeProf
- Since TypeProf [depends on CRuby bytecodes](https://github.com/ruby/typeprof/blob/master/lib/typeprof/iseq.rb), probably it should be excluded on alternative implementations since it won't work?
Or maybe still ship it but raise a nice e... -
02:10 PM Feature #17266: Bundle TypeProf
- Yes, thanks!
-
11:25 AM Feature #17266 (Closed): Bundle TypeProf
- Applied at commit:c05e41035c01ab38bdb279601a08e17921bcdc8e
- 03:29 PM Revision 915024e3 (git): * 2020-10-28 [ci skip]
-
03:27 PM Revision c1bebbb2 (git): test/ruby/test_rational.rb: Prevent "assigned but unused variable"
-
03:22 PM Bug #17289 (Assigned): Time#strftime occurs Segmentation Fault on ruby-2.7.2p137
- @shyouhei I suspect if this is due to 2.7's new method cache. Could you check it out?
```
/opt/ruby/lib/libruby.so.2.7(timew_out_of_timet_range+0x1c) [0x7fc1188c2ef4] time.c:1664
```
```
1664 if (lt(timexv, mulv(INT2FIX(TIME_SCALE)... -
12:35 PM Bug #17289: Time#strftime occurs Segmentation Fault on ruby-2.7.2p137
- Additional Information:
* I used to use v2.6.2 and Segmentation fault does not occur at that time.
* This stacktrace is reproducible. whenever this error occurs the stacktrace is the same.
-
12:29 PM Bug #17289 (Feedback): Time#strftime occurs Segmentation Fault on ruby-2.7.2p137
- Segmentation Fault occurred when I run Time#strftime via Time#iso8601 on ruby-2.7.2.
It occurs repeatedly about once a day in our system.
Because it was not possible to make a reproduction case in a simple environment, I share the C Le... -
02:26 PM Revision 8e060754 (git): Revert "Fixed typo"
- This reverts commit 379a5ca539af0e954b1cdf63b9365ad208b9c7f3.
This "typo" is intentional to test the transposition detection by
did_you_mean. - 02:25 PM Revision dcc231c8 (git): merge revision(s): 07786ed
- test/net/http/test_https.rb: Stop the error due to openssl 1.1.1h
On some environments that uses OpenSSL 1.1.1h, the two tests now fail.
http://rubyci.s3.amazonaws.com/android29-x86_64/ruby-master/log/20200924T062352Z.f... -
02:20 PM Feature #17187 (Assigned): Add connect_timeout to TCPSocket
-
01:59 PM Revision 379a5ca5 (git): Fixed typo
-
12:48 PM Bug #17213: Rails CI against Ruby 3.0.0dev fails likely since a53e2850c572135ed657144bc14e47b29c64fa94
- It also reproduces with the latest `rubylang/ruby:master-debug-nightly-bionic` which generate large log file like assetions. Attached the gzipped log file to this ticket.
* Reproduced with `rubylang/ruby:master-debug-nightly-bionic`
... -
12:35 PM Feature #17281: Remove support for mathn
- I'm +1 to this. Can we remove it without approval from Matz?
-
07:28 AM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- As `getaddrinfo` and `getaddrinfo_a` are not in the async-signal-safe function list in POSIX.1-2001, it can't work in both way.
So the "POSIXLY-correct" answer is "you must not use that method in forked process".
-
07:12 AM Revision 3198e7ab (git): Separate `send` into `public_send` and `__send__`
-
05:42 AM Revision acdb8933 (git): Removed unused environment variable
-
04:25 AM Feature #17284: Shareable Proc
- marcandre (Marc-Andre Lafortune) wrote in #note-13:
> ko1 (Koichi Sasada) wrote in #note-12:
> ...
Is "reassignments" `a = 1`?
Yes. It is checked at `#freeze` timing (if there is assignments to outer variables, raise an error).
> W... -
02:49 AM Feature #17284: Shareable Proc
- ko1 (Koichi Sasada) wrote in #note-12:
> My understanding:
> ...
Indeed. But `freeze` must do special check for reassignments.
What I dislike about `Proc#freeze` is that it does not make intuitive sense to me. A `Proc` is not mutabl... -
01:17 AM Feature #17284: Shareable Proc
- marcandre (Marc-Andre Lafortune) wrote in #note-11:
> This is already possible, (even if the block does not refer to `a`):
> ...
It is true. But the degree is not same. It is easy to freeze them accidentally.
So Matz and other attende...
10/26/2020
-
11:55 PM Revision 135d3690 (git): [DOC] more precise description of "**" in Dir.glob pattern [ci skip]
-
11:31 PM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- I checked the glibc source, and it intentionally keeps the thread alive:
```c
/* If the runlist is empty, then we sleep for a while, waiting for
something to arrive in it. */
if (runp == NULL && optim.gai_idle_time >=... -
09:03 PM Misc #16778: Should we stop vendoring default gems code?
- Sounds great.
-
08:48 PM Misc #16778: Should we stop vendoring default gems code?
- +1000 for this. JRuby is currently the only Ruby implementation that sources the default and bundled gems exclusively from released gems, and as a result we frequently have to chase down rogue changes and unreleased code when we upgrade ...
-
08:44 PM Revision c56fdaec (git): Revert assert for debugging on CI
- This reverts commit ac69849e49982ea83036c04c5d5f7245e3956a49.
The bug seems to have been fixed. -
06:33 PM Feature #17287 (Closed): Faster Pathname FileUtils methods
- I have a patch that I would like to merge into Pathname for increased performance. I understand that akr maintains pathname and may not be on GitHub. Here is a link to my patch:
https://github.com/ruby/ruby/pull/3693
Here is the di... -
05:44 PM Feature #17284: Shareable Proc
- ko1 (Koichi Sasada) wrote in #note-8:
> Today's meeting, there are comments:
> ...
This is already possible, (even if the block does not refer to `a`):
```ruby
def foo(&b) b.binding.local_variable_get(:a).freeze; end
a = [1]
fo... -
04:15 PM Feature #17284: Shareable Proc
- > (b) If we can read an outer lvar but it is not frozen/made shareable, I guess that can only mean it is deep-copied?
in dev-meeting, there is same comment: they should copy everything and freeze them instead of marked as frozen and s... -
04:12 PM Feature #17284: Shareable Proc
- I have several question about Proc#detach to understand your idea.
```ruby
x = 1
a = ary = []
pr = Proc.new { ary << x ; x += 1 }.detach
x = ary = nil # no effect on `p`, as binding is detached # ko1: what is `p`? `pr`?
pr.call # =>... -
03:55 PM Feature #17284: Shareable Proc
- Today's meeting, there are comments:
* (c) is too danger to freeze reachable objects from reachable local variables.
```ruby
def foo(&b) b.shareable!; end
a = [1]
foo{ p a }
a << 2 #=> frozen error
```
This example is more worse beca... -
01:26 PM Feature #17284: Shareable Proc
- (a) The method name `isolate` sounds like it will convert the proc to make it isolated, but it seems all it does is raise an error if the proc is not already isolated from the outer scope?
(b) If we can read an outer lvar but it is not ... -
08:07 AM Feature #17284: Shareable Proc
- (c) sounds the most useful and general.
While reading the description, I thought `Proc#deep_freeze` is a good name.
That clearly says it will freeze transitively the closure (stopping at shareable objects).
I think it would be goo... -
05:25 AM Feature #17284: Shareable Proc
- ko1 (Koichi Sasada) wrote in #note-4:
> Thank you for your reply.
Here's a longer reply.
I would like a method to make a Proc independent of the binding it was created in. I'm thinking of `Proc#detach` that would make a snapshot o... -
01:34 AM Feature #17284: Shareable Proc
- Thank you for your reply.
> I'm not sure of the use-cases for a) or b).
Do you think `Ractor.new()` can call (c) instead of current (a)?
In other words, can we accept (1) and (2) in the following example?
```
b = a = []
Ractor.new do
... -
04:45 PM Revision 7ad56fd8 (git): freeze dynamic regexp literals
- Regexp literals are frozen, and also dynamically comppiled Regexp
literals (/#{expr}/) are frozen. -
04:42 PM Bug #17146 (Feedback): Queue operations are allowed after it is frozen
- At last dev-meeting we skipped this issue because it is difficult, but no benefit to change the current behavior.
BTW
> AFAIK no other class undefines #freeze, that seems unfriendly.
`ENV.freeze` raises an error (`freeze': canno... -
04:40 PM Feature #17256: Freeze all Regexp objects
- > ko1 (Koichi Sasada) Could you show the errors from the tests?
Sorry I lost the patch.
Anyway, at last dev-meeting, freezing all Regexp *literals* including dynamically created objects are accepted.
I don't have objection to free... - 04:37 PM Revision f8d264fd (git): * 2020-10-27 [ci skip]
-
04:37 PM Revision 1c6ebe14 (git): freeze Process::Status
- It seems immutable information.
-
04:37 PM Feature #17269: Frozen Process::Status
- This proposal is accepted and I'll merge it to try.
-
04:36 PM Feature #17270: ObjectSpace.each_object should be restricted on multi-Ractors
- This proposal was confirmed.
We need to introduce same filter for some other methods... -
04:36 PM Bug #17268: special global variables which can be accessed from ractors
- The proposal is accepted.
> I wonder if "regular" global variables should be Ractor-local, or behave like constants.
This is rejected at first by Matz (my original proposal is making all $gvars are ractor-local), to avoid confusion.
-
04:34 PM Feature #17261: Software transactional memory (STM) for Threads and Ractors
- At last dev-meeting, this proposal is not accepted to introduce it in core because the importance of this feature is not sure.
Maybe I'll introduce as ractor gem to study the API and usefulness of this feature.
-
04:29 PM Feature #17273: shareable_constant_value pragma
- Today's (yesterday's) dev-meeting, there is a comment:
* It is possible to break other library easily:
```ruby
require 'other-lib'
# sharable_constants: true
A = OtherLib::MutableArray # freeze OtherLib::MutableArray accidentally
```... -
04:21 PM Feature #17278: On-demand sharing of constants for Ractor
- I also +1 for Matz because of non-deterministic behavior.
-
03:24 PM Feature #17278: On-demand sharing of constants for Ractor
- The mechanism's _implementation_ may be a little complex but I think _usage_ is quite simple. In the vast majority of cases the developer doesn't need to think about anything; existing constants will just work with ractors. It's like GC ...
-
09:04 AM Feature #17278 (Feedback): On-demand sharing of constants for Ractor
- I understand the benefit of the proposal but the mechanism behind is too complex and can cause unexpected result with concurrency (e.g. race conditions). It's the code (design) smell. We need more time to investigate further.
Matz.
-
03:15 AM Feature #17278: On-demand sharing of constants for Ractor
- Eregon (Benoit Daloze) wrote in #note-5:
> A performance concern is this will make the first `rb_check_frozen()` to any constant need the process-global lock (or a more fine-grained lock, but then it will increase footprint).
> ...
I w... -
03:59 PM Feature #17143: Improve support for warning categories
- matz (Yukihiro Matsumoto) wrote in #note-10:
> I am OK with warning categories. But the proposed categories are too fine-grained, I think. Here's the Python warning categories:
> ...
Here are the Python 3 warning categories, along with... -
07:50 AM Feature #17143: Improve support for warning categories
- I am OK with warning categories. But the proposed categories are too fine-grained, I think. Here's the Python warning categories:
https://docs.python.org/3/library/warnings.html#warning-categories
Matz. -
03:26 PM Feature #17286: `Ractor.new` should accept `move: true`
- I'm also thinking about the same feature, and the problem is, maybe we should choose move or copy on each parameters:
```ruby
Ractor.new io, # want to move
str # want to copy
do |io, str|
io.puts str
end
```
and I have n... -
05:10 AM Feature #17286 (Open): `Ractor.new` should accept `move: true`
- Another surprise when writing my backport is that `Ractor.new` does not accept `move:` keyword argument.
```ruby
Ractor.new(val, move: true) { |data| ... }
# equivalent to
Ractor.new { data = Ractor.receive; ... }.tap { |r| r.send(... -
02:40 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- nobu (Nobuyoshi Nakada) wrote in #note-42:
> `Kernel#send` should be deprecated because of `BasicObject#__send__`.
I think that's not reasonable.
There seem to be ~424649 usages of `.send` in gems, vs only ~28004 of `.__send__` (htt... -
02:18 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Trying to recap the ideas...
0) Use `send`; `Kernel#send` should be deprecated because of `BasicObject#__send__` (amazing nobu!)
1) Use a different name entirely; `accept`, `yield`, `pass`, `call`, `post`, `queue`, `deliver`
2) Use a ... -
01:41 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- duerst (Martin Dürst) wrote in #note-41:
> Send would be the best name, except that that we are not in a vacuum. It is bad practice to have one and the same name for two fundamentally different and colliding functionalities.
Agreed.
... -
09:25 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- ko1 (Koichi Sasada) wrote in #note-37:
> I believe `send` is the best name, so I disagree about it.
Send would be the best name, except that that we are not in a vacuum. It is bad practice to have one and the same name for two fund... -
07:30 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- marcandre (Marc-Andre Lafortune) wrote in #note-38:
> `send` accepts `move: true`, so `ractor.<<(data, move: true)` looks very odd.
Good point.
Maybe a good way to avoid/workaround that issue would be to have `Ractor#move(obj)` (or ... -
05:36 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- ko1 (Koichi Sasada) wrote in #note-37:
> I believe `send` is the best name, so I disagree about it.
I understand that. Please consider that many people find this a really bad name though. What would be the second best name? What does... -
05:33 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Eregon (Benoit Daloze) wrote in #note-36:
> Currently there is the alias `Ractor#<<`, maybe we should use that consistently instead of `send` in the docs, tests, etc?
> ...
`send` accepts `move: true`, so `ractor.<<(data, move: true)` ... -
01:36 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- marcandre (Marc-Andre Lafortune) wrote in #note-31:
> There might very well be a `SharedArray` class, but I don't see how `Array` could ever become shareable.
Sorry, I think my point was not very clear. Replace "Array" with any class... -
09:02 AM Feature #17145: Ractor-aware `Object#deep_freeze`
- I made a mistake in the previous message (the reply was for another issue). Sorry for confusion.
As far as I undestand, the behavior of `freeze` and `make_shareable` are different. So making `deep_freeze` Ractor-aware does not make se... -
07:58 AM Feature #17145 (Rejected): Ractor-aware `Object#deep_freeze`
- This looks very interesting, but it would introduce quite big incompatibility. I don't want to break existing code.
Matz.
-
07:46 AM Feature #17145: Ractor-aware `Object#deep_freeze`
- marcandre (Marc-Andre Lafortune) wrote in #note-31:
> My understanding is that will never be the case. You can't have 1) fast and 2) concurrent access to mutable data.
Digressing a bit, I would say it's possible ([thread-safe Array](htt... -
05:28 AM Feature #17145: Ractor-aware `Object#deep_freeze`
- Dan0042 (Daniel DeLorme) wrote in #note-30:
> Let's say that in the future Array becomes Ractor-safe (i.e. shareable). Would that mean then that `[].deep_freeze` would no longer freeze the array?
My understanding is that will never b... -
12:15 PM Revision bdd1d17a (git): Allow non-argument endless-def with a space instead of parentheses
-
09:44 AM Feature #17265: Add `Bool` module
- I'm planning to make the semantics of `bool` in RBS (in the next release). It will be an alias of `true | false` and we will add another type for conditionals, something like `type boolish = top`.
So, I feel there is no strong reason ... -
07:55 AM Feature #17265 (Feedback): Add `Bool` module
- RBS side is up to @soutaro etc. I am still against Ruby side. @marcandre stated about communication with other typed systems / data interchange as a benefit, but we are not going to make Ruby (type-wise) compatible with statically typed ...
-
09:43 AM Bug #16518 (Closed): Should we rationalize Rational's numerator automatically? - Applied in changeset commit:git|69837229d74813c807e9d079aaee33aec2c7a4d0.
----------
rational.c: convert a numerator to rational before calling fdiv in Kernel.Rational() (#3702)
This makes `Rational(BigDecimal(1), 60) == Rational(1, 60... -
03:44 AM Bug #16518 (Assigned): Should we rationalize Rational's numerator automatically?
- I'm working on it at https://github.com/ruby/ruby/pull/3702
- 09:43 AM Revision 69837229 (git): rational.c: convert a numerator to rational before calling fdiv in Kernel.Rational() (#3702)
- This makes `Rational(BigDecimal(1), 60) == Rational(1, 60)`.
[Bug #16518] -
09:00 AM Feature #17260 (Closed): Promote pattern matching to official feature
- Applied in changeset commit:git|52c630da004d9273e8e5fc91c6304e9eed902566.
----------
Assoc pattern matching (#3703)
[Feature #17260] One-line pattern matching using tASSOC
R-assignment is rejected instead. -
09:00 AM Revision 52c630da (git): Assoc pattern matching (#3703)
- [Feature #17260] One-line pattern matching using tASSOC
R-assignment is rejected instead. -
07:52 AM Feature #17171 (Rejected): Why is the visibility of constants not affected by `private`?
- This looks very interesting, but it would introduce quite big incompatibility. I don't want to break existing code.
Matz.
-
07:47 AM Feature #17259 (Closed): Kernel#warn should ignore <internal: entries
- Applied in changeset commit:git|cffdacb15a363321e1c1879aa7d94924acafd1cf.
----------
Ignore <internal: entries from core library methods for Kernel#warn(message, uplevel: n)
* Fixes [Bug #17259] -
05:27 AM Feature #17259: Kernel#warn should ignore <internal: entries
- Accepted.
Matz.
-
07:47 AM Revision cffdacb1 (git): Ignore <internal: entries from core library methods for Kernel#warn(message, uplevel: n)
- * Fixes [Bug #17259]
-
07:47 AM Revision fbb2d30e (git): Add specs that #caller and #caller_locations include core library methods defined in Ruby
-
07:20 AM Revision 3673c3ea (git): Update to ruby/spec@b164536
-
07:06 AM Revision ba24aee2 (git): Remove spec which is too difficult to get working with various compilers
- * The spec means to use an actual system library function, not a wrapper.
-
06:40 AM Feature #17176: GC.auto_compact / GC.auto_compact=(flag)
- Accepted as long as it's turned off by default.
Matz.
-
05:00 AM Feature #17187: Add connect_timeout to TCPSocket
- Accepted.
Matz.
-
05:00 AM Feature #17187: Add connect_timeout to TCPSocket
- document?
-
04:45 AM Bug #11202 (Rejected): No warning when a link to an original method body was removed
- I don't think the benefit is worth the complexity.
Matz.
-
04:36 AM Bug #11808: Different behavior between Enumerable#grep and Array#grep
- Sorry we need more time to consider.
-
04:34 AM Bug #13768: SIGCHLD and Thread dead-lock problem
- This issue told us there's false positive in our deadlock detector. So I accept adding `Thread.ignore_deadlock = true`.
Matz, -
04:29 AM Bug #14012 (Rejected): NameError is raised when use class variables in Refinements
- I officially reject this proposal. Class variables are no longer encouraged to use.
Matz.
-
03:15 AM Feature #17285: Less strict `Ractor.select`
- For (0), I'm thinking to introduce `Ractor::Selector` (or similar) to manage the ractors.
```
sel = Rcator::Selector.new
sel.receive(r1) do |msg| ... end
sel.receive(r2) do |msg| ... end
sel.wait # Ractor.select(r1, r2)
```
an... -
02:49 AM Feature #17285 (Open): Less strict `Ractor.select`
- Summary: could we have a way for `Ractor.select` to skip ractors with closed queues and raise only if no ractor with an open queue remains?
Detail:
I [backported `Ractor` for earlier Ruby versions](https://github.com/marcandre/back... -
01:12 AM Feature #17282 (Third Party's Issue): Deprecate Digest::SHA1
- Digest is now a separate project. https://github.com/ruby/digest
P.S. I want "2nd party's issue" status. `ruby/digets` is not a 3rd party. -
12:09 AM Revision 507af754 (git): [DOC] Expanded glob patterns for Dir.glob
- No longer need to get rid of C block comments in builtin ruby
script comments. -
12:05 AM Revision 3cb03a00 (git): Include c_escape.rb in COMPILE_PRELUDE
- template/prelude.c.tmpl requires tool/ruby_vm/helpers/c_escape.rb.
-
12:01 AM Revision 396e9210 (git): Escape '/*' within block comment too
10/25/2020
-
11:16 PM Revision b6d0b3df (git): Use gcc-specific pragma only on gcc (and the family)
-
10:56 PM Revision ff2276ef (git): Fix bootstrap-test error in previous commit
-
10:39 PM Bug #10845: Subclassing String
- I've added a pull request for making String methods consistently return String instances when called on String subclasses: https://github.com/ruby/ruby/pull/3701
For the reasons @marcandre mentioned, I think this makes more sense. In... - 10:10 PM Revision 9c8f0a34 (git): Use 'shareable' with an 'e' [ci skip]
-
09:30 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- Let's say that in the future Array becomes Ractor-safe (i.e. shareable). Would that mean then that `[].deep_freeze` would no longer freeze the array?
-
07:33 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- Not only should the default be `skip_shareable: true`, I don't really see the use-case for `skip_shareable: false`. Unless someone comes up with one, the option should probably be removed altogether, or maybe we could start without the o...
-
01:45 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- ko1 (Koichi Sasada) wrote in #note-26:
> So classes/module should be frozen if `[C].deep_freeze`.
I think it's very rare somebody would want that.
Would that freeze the `Array` class too because the class is reachable from the object?
... - 08:45 PM Revision 8376cae2 (git): * 2020-10-26 [ci skip]
- 08:44 PM Revision 5e6f9fd8 (git): Tweak a few Ractor tests that were missing comments [ci skip]
- 08:38 PM Revision ee54075a (git): Remove trailing whitespace [ci skip]
-
08:08 PM Feature #17159: extend `define_method` for Ractor
- How about:
```ruby
define_method(:name, make_shareable: true) { ... }
# equivalent to:
define_method(:name, &Ractor.make_shareable(Proc.new{...}))`
```
With `make_shareable` as making accessed external variables shareable and not reass... -
08:04 PM Feature #17284: Shareable Proc
- I think c) semantics are definitely the most useful.
For API: `Ractor.make_shareable(proc)` (and equivalently `proc.deep_freeze`)
I'm not sure of the use-cases for a) or b). -
07:33 PM Feature #17284: Shareable Proc
- https://github.com/ruby/ruby/pull/3700
for `Ractor.make_shareable(a_proc)` (`a_proc` becomes shareable Proc with (c) shareable! semantics). -
05:04 PM Feature #17284 (Closed): Shareable Proc
- For some reasons, we need to provide a way to make sharable Proc between ractors.
* (1) A block for the `Ractor.new`.
* (2) Send a proc between ractors.
* (3) A block for global callback methods: `define_method` ([Bug #17159]), `Tra... -
01:33 PM Feature #17278: On-demand sharing of constants for Ractor
- Eregon (Benoit Daloze) wrote in #note-5:
> Also, and maybe more clearly, it would require every single Ruby constant read in the main Ractor to check that FL_AUTOSHARE flag, whether or not Ractors are used.
Actually not this one, bas... -
01:21 PM Feature #17278: On-demand sharing of constants for Ractor
- A performance concern is this will make the first access to any constant need the process-global lock (or a more fine-grained lock, but then it will increase footprint).
That's not negligible, especially when considering to reuse JIT'ed... -
01:14 PM Bug #17283: Why does Dir.glob's ** match files in current directory?
- Eregon (Benoit Daloze) wrote in #note-2:
> Interestingly this behavior differs between Bash and Zsh:
Bash **doesn't** support `**`, and it just equals `*`. -
12:25 PM Bug #17283 (Closed): Why does Dir.glob's ** match files in current directory?
- Applied in changeset commit:git|e880d075f847ff17e1bc77301a9ed363fb40525b.
----------
[DOC] refined "**" description in `Dir.glob` [ci skip]
As same as the description for `File.fnmatch`.
[Bug #17283] -
12:23 PM Bug #17283: Why does Dir.glob's ** match files in current directory?
- Interestingly this behavior differs between Bash and Zsh:
```
$ tree
.
├── dir
│ └── subfile
└── foo
$ bash
$ echo **
dir foo
$ echo **/*
dir/subfile
$ zsh -f
$ echo **
dir foo
$ echo **/*
dir dir/subfile foo
```
I think we cannot c... -
01:11 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Eregon (Benoit Daloze) wrote in #note-36:
> Currently there is the alias `Ractor#<<`, maybe we should use that consistently instead of `send` in the docs, tests, etc?
I believe `send` is the best name, so I disagree about it. -
12:42 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- marcandre (Marc-Andre Lafortune) wrote in #note-35:
> What about `send`? Should we use `yield`? `pass`? `call`?
Currently there is the alias `Ractor#<<`, maybe we should use that consistently instead of `send` in the docs, tests, etc?
(... -
01:07 PM Revision 25a332f5 (git): Fix compilation on MSVC
- * cast scalar value instead of function
* use `rb_pid_t` for the portability -
12:57 PM Feature #17273: shareable_constant_value pragma
- Maybe the pragma should be `# frozen_constants: true`?
"Freezing a constant" is intuitively "deeply-freeze the value", isn't it?
And since we already have `# frozen_string_literal: true` it would make nice connection.
Also, `share... -
12:24 PM Revision e880d075 (git): [DOC] refined "**" description in `Dir.glob` [ci skip]
- As same as the description for `File.fnmatch`.
[Bug #17283] - 10:43 AM Revision 8d22dd8c (git): * 2020-10-25 [ci skip]
-
10:42 AM Revision 99e067ea (git): Try to fix compilation on MSVC
10/24/2020
-
07:57 PM Bug #17283 (Closed): Why does Dir.glob's ** match files in current directory?
- If my current directory has 1 file and 1 dir, and I use `Dir.glob("**/*")` or even just `**`, both the dir and the file would be matched.
I would expect that only the dir will be matched, since the glob starts with `**`, which wants t... -
02:51 PM Feature #17206: Introduce new Regexp option to avoid global MatchData allocations
- I took a quick look, the logic to set $~ is here:
https://github.com/ruby/ruby/blob/148961adcd0704d964fce920330a6301b9704c25/re.c#L1608-L1623
It does not seem so expensive, but the region is allocated which xmalloc() which is probabl... -
02:30 PM Feature #17206: Introduce new Regexp option to avoid global MatchData allocations
- scivola20 (sciv ola) wrote in #note-5:
> I believe that people who can use `match?` and `match` methods properly, can use this new Regexp option properly.
I disagree, `match?` is clear, I think `=~` suddenly not setting `$~` would be... -
01:34 AM Feature #17206: Introduce new Regexp option to avoid global MatchData allocations
- I believe that people who can use `match?` and `match` methods properly, can use this new Regexp option properly.
By the way, the total size of ``$` ``, `$&`, `$'` equals to the size of the target string. Therefore a huge amount of St... -
01:53 PM Revision 148961ad (git): Update to ruby/spec@4f59d86
-
01:53 PM Revision 342fbae8 (git): Update to ruby/mspec@b56e7a2
- 01:52 PM Revision 1388257d (git): * 2020-10-24 [ci skip]
-
01:51 PM Revision 71f69954 (git): Tweaks for the ruby/spec workflow
-
05:34 AM Feature #17282: Deprecate Digest::SHA1
- Note that we don't currently even deprecate MD5, and if we were going to deprecate SHA1 due to security issues, we should deprecate MD5 first since it's even worse. I think we should strongly discourage the use of MD5 and SHA1 in the Di...
-
05:06 AM Feature #17282 (Third Party's Issue): Deprecate Digest::SHA1
- In light of the widespread deprecation of SHA1 due to collision risk it poses, should Ruby still expose it without a warning within Digest::SHA1?
[FIPS PUB 180-1](https://csrc.nist.gov/publications/detail/fips/180/1/archive/1995-04-1... -
03:38 AM Misc #17200: DevelopersMeeting20201026Japan
- * [Ticket #17208] Add `Set#compact` and `Set#compact!` methods (koic)
* Is this proposal acceptable? -
12:25 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- We now have `receive`, very good.
What about `send`? Should we use `yield`? `pass`? `call`?
10/23/2020
-
09:23 PM Feature #17273: shareable_constant_value pragma
- I deep-freeze all my constants (expect modules of course). RuboCop will enforce that literal constants are frozen by default.
I like the idea of a pragma for this.
I also prefer:
- `# shareable_constants: true`
- only allowed at the top -
09:08 PM Bug #17197: Some Hash methods still have arity 2 instead of 1
- @nobu would it be possible to address this before preview-2?
-
08:53 PM Feature #17265: Add `Bool` module
- matz (Yukihiro Matsumoto) wrote in #note-6:
> Could you clarify the current proposal?
> ...
My preference is:
- `Boolean`, second choice `Bool`
- Ruby side also, or if deemed not preferable then `RBS` only (but what if there's user m... -
08:00 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- Sorry I misunderstood this proposal.
`Ractor.make_shareable(obj)` proposal (#17274) satisfies the functionality proposed here.
(I thought `deep_freeze(skip_shareable: false)` was the proposal. sorry I skipped to read).
We discussed abou... -
06:27 AM Feature #15573 (Closed): Permit zero step in Numeric#step and Range#step - Applied in changeset commit:git|f754b422855131111092c0c147d744775cc4793f.
----------
numeric.c, range.c: prohibit zero step
* numeric.c: prohibit zero step in Numeric#step
* range.c: prohibit zero step in Range#step
* Fix ruby-spec
... - 06:26 AM Revision f754b422 (git): numeric.c, range.c: prohibit zero step
- * numeric.c: prohibit zero step in Numeric#step
* range.c: prohibit zero step in Range#step
* Fix ruby-spec
[Feature #15573] -
05:42 AM Misc #17200: DevelopersMeeting20201026Japan
- * [Feature #17281] Remove support for mathn
* mathn has been deprecated. -
05:40 AM Feature #17281 (Closed): Remove support for mathn
- As [mathn is deprecated], canonicalization for it also should be removed, I think.
https://github.com/ruby/ruby/pull/3691
[mathn is deprecated]: https://github.com/ruby/mathn#deprecation -
04:59 AM Revision 40bad72f (git): Assert in_gc >= 0 instead of guarding it (#3687)
-
04:10 AM Bug #6087: How should inherited methods deal with return values of their own subclass?
- matz (Yukihiro Matsumoto) wrote in #note-13:
> Should we do an experiment in 3.0?
I've added a pull request that modifies the Array methods to return Array instances instead of subclass instances: https://github.com/ruby/ruby/pull/36... -
01:38 AM Revision 7cf34cfa (git): .github/workflows/spec_guards.yml add
- Translate a part of .travis.yml into GitHub Actions workflow.
10/22/2020
-
10:20 PM Revision 196eada8 (git): mutete -> mutate
-
09:18 PM Bug #17268: special global variables which can be accessed from ractors
- Eregon (Benoit Daloze) wrote in #note-4:
> I wonder if "regular" global variables should be Ractor-local, or behave like constants.
I wouldn't mind either way. Although if Ractor-local I would hope they are derived from created racto... -
07:31 PM Bug #17268: special global variables which can be accessed from ractors
- I think this issue is mostly about "special" global variables, not so much about "regular" global variables.
I wonder if "regular" global variables should be Ractor-local, or behave like constants.
Since most of the above became Ract... -
02:56 PM Bug #17268: special global variables which can be accessed from ractors
- Why can't ractors access global variables? Shouldn't it be like constants, where a frozen/shareable object can be accessed?
```ruby
$x = [1,2,3]
Ractor.new{ $x }.take # I understand that this can't work
$x = true
Ractor.new{ $x }.t... - 05:56 PM Revision ef3c2588 (git): Fix small typo in comment in lib/irb.c
-
05:17 PM Misc #17200: DevelopersMeeting20201026Japan
- * [Bug #17280] Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries (eregon)
* What's the intended behavior? -
12:58 AM Misc #17200: DevelopersMeeting20201026Japan
- * [Bug #17146] Queue operations are allowed after it is frozen
* It is interesting question what "freeze" mean.
* [Feature #17256] Freeze all Regexp objects
* I feel it is too heavy to freeze all regexp...
* [Feature #17269] Froz... - 04:52 PM Revision b9193df9 (git): * 2020-10-23 [ci skip]
-
04:52 PM Revision 9a6720a1 (git): Revert "Add assertions when inline caches are copied to MJIT"
- This reverts commit 6cb6d5abc36ede9d5158c2cd90734134838e6bfb.
This reverts commit 1484b786aee8d411a9e2278ac6d6e44aedbf6662.
I think we don't need these assertions anymore. I believe the problem
is solved by abf678a4397c6c00a1bb686043e3... -
03:16 PM Feature #17277: Make Enumerator#with_index yield row and col indices for Matrix
- I think the current behaviour is natural. You cannot play around with `with_index` since its receiver is `Enumerator`, not `Matrix`, and the information as a matrix is already gone.
You can retrieve the row and column indices easily fro... -
06:02 AM Feature #17277: Make Enumerator#with_index yield row and col indices for Matrix
- greggzst (Grzegorz Jakubiak) wrote in #note-2:
> I also noticed when combining `each_with_index` with `inject` it passes `element, row_index and col_index` as one argument to the block
> ...
My bad I just figured out that's a case for ... -
05:30 AM Feature #17277 (Assigned): Make Enumerator#with_index yield row and col indices for Matrix
-
03:05 PM Bug #17254: ENV.replace may set nil instead of the proper value
- znz (Kazuhiro NISHIYAMA) wrote in #note-2:
> I dump duplicated keys with encoding.
> ...
Interesting. So it may be that duplicate keys in ENV in general are in issue? We generally think of ENV having unique keys, but I'm guessing that... -
06:44 AM Bug #17254: ENV.replace may set nil instead of the proper value
- I dump duplicated keys with encoding.
Encodings of duplicated keys are same.
```
vagrant@buster:/tmp/t$ cat /tmp/dump2.rb
class << ENV
alias orig_replace replace
def replace(h)
key_count = ENV.keys.tally
duplicated_... -
02:59 PM Revision abf678a4 (git): Use a lock level for a less granular lock.
- We are seeing an error where code that is generated with MJIT contains
references to objects that have been moved. I believe this is due to a
race condition in the compaction function.
`gc_compact` has two steps:
1. Run a full GC to p... -
02:20 PM Bug #17280 (Closed): Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries
- ```
% ruby -e 'p Dir.glob("**/*", File::FNM_DOTMATCH)'
[".", "bar", "bar/.", "bar/.baz", "bar/.baz/.", "bar/.baz/qux"]
% ruby -e 'p Dir.glob("**", File::FNM_DOTMATCH)'
[".", "..", "bar"]
% ruby -e 'p Dir.glob("*", File::FNM_DOTMATC... -
02:15 PM Bug #15661: Disallow concurrent Dir.chdir with block
- From the bug report, I got the idea this was about preventing a chdir while a chdir with block was active _in another thread_. That sounds fine to me, but this code also triggers a warning:
```ruby
Dir.chdir("/usr") do
#do things ... -
01:07 PM Feature #16461: Proc#using
- Eregon (Benoit Daloze) wrote in #note-10:
> Maybe a way to design this restriction could be to annotate the method `where` with "enables MyRefinement on the lexical block given to it".
I like this idea. Since the block should always ... -
10:58 AM Feature #16461: Proc#using
- Reading #12086 again, I feel #12281 is a much simpler alternative (`using(refinement) { literal block }`).
Wouldn't #12281 be enough?
`block.using(IntegerDivExt)` is mutating state and this feels too magic and dangerous to me.
I think D... -
12:49 PM Feature #17265: Add `Bool` module
- mame (Yusuke Endoh) wrote in #note-2:
> BTW, @soutaro (the original author of RBS) is now thinking the redefinition of `bool` as an alias to `true | false`.
I think that's the better choice. Having `bool` as an alias to `top` is quit... -
10:41 AM Feature #17265: Add `Bool` module
- I tried to make a shorter summary of my thoughts here, so just three points - hopefully that makes it easier to read:
(1) Most of the discussion, I think, happened at https://github.com/ruby/rbs/issues/133 - if I then understand the dis... -
10:43 AM Bug #17263: Fiber context switch degrades with number of fibers, limit on number of fibers
- You do not need to preface your questions like that.
The fiber stack is a fixed size, but it's allocated using virtual memory and it's "released" using `madvise(DONT_NEED)` which allows the kernel to release those pages. So whether yo... -
09:18 AM Feature #16851 (Feedback): Ruby hashing algorithm could be improved using Tabulation Hashing
- By replacing `rb_obj_id` with `other_func`, I cannot see any significant difference between the proposed patch and the current master. I believe that the large part of the performance improvement comes from the wrong omission of `#hash` ...
-
06:12 AM Feature #16851: Ruby hashing algorithm could be improved using Tabulation Hashing
- > With that it is not allowed to overwrite the hash method for the hashing implementation (which maybe is ok
It is far from okay... Your patch does not call #hash method at all. `make test` does not pass.
```
class Foo
def hash... -
09:00 AM Bug #12485 (Closed): Kernel.Rational raises TypeError though given denominator returns 1 by to_int - Applied in changeset commit:git|d23d5c3130a0944e7e591370cbf8599009318a7c.
----------
rational.c: try converting by to_int in Rational() (#3684)
[Bug #12485] -
06:12 AM Bug #12485 (Assigned): Kernel.Rational raises TypeError though given denominator returns 1 by to_int
- I'm working on this at https://github.com/ruby/ruby/pull/3684
- 08:59 AM Revision d23d5c31 (git): rational.c: try converting by to_int in Rational() (#3684)
- [Bug #12485]
-
05:00 AM Bug #14012: NameError is raised when use class variables in Refinements
- I'm not against the change, if there is no implementation difficulty.
However, class variables are not accessible in class_eval either, and reflection APIs can be used as a workaround as you suggested, so the change may not be necessary. -
03:14 AM Feature #17156: Refinements per directory tree
- @shugo, may I ask for your opinion on this?
-
03:11 AM Feature #17278: On-demand sharing of constants for Ractor
- ko1 (Koichi Sasada) wrote in #note-3:
> * is it acceptable runtime overhead (memory + traversing)? Not so heavy, but not 0.
The deep-freezing traversal has to occur at some point. Eagerly when the constant is assigned or lazily when it'... -
01:50 AM Feature #17278: On-demand sharing of constants for Ractor
- Oh, I see. I missed the process:
```
[with ractor lock]
if all objects recursively are still marked with FL_AUTOSHARE
make_shareable (state C)
```
I understand this proposal `make_sharable` lazily, until it is needed.
I ... -
02:23 AM Feature #17279 (Assigned): Allow a negative step in Range#step with a block
- `Range#step` prohibits a negative step when a block is given.
```
>> (6..3).step(-1) {|i| p i }
Traceback (most recent call last):
5: from /home/mrkn/.rbenv/versions/2.7/bin/irb:23:in `<main>'
4: from /home/mrkn/.r... -
12:52 AM Feature #17273: shareable_constant_value pragma
- Eregon (Benoit Daloze) wrote in #note-5:
> If there are that many constants, I think there is a high chance the value is an immediate or a String, then there is no need.
We can eliminate calling by compile time, in future.
-
12:46 AM Feature #17273: shareable_constant_value pragma
- > If one needs some constants to not be frozen, maybe it's enough to use Ractor.make_shareable explicitly?
Yes. I agree if there is few constants, explicit method call with good name is more friendly.
10/21/2020
-
11:37 PM Feature #17278: On-demand sharing of constants for Ractor
- ko1 (Koichi Sasada) wrote in #note-1:
> If a non-main ractor is accessing `H` with immutable operation (such as `.each`), modifying `H` by main ractor will cause thread-safety issue.
If a non-main ractor is accessing `H`, it will cau... -
10:56 PM Feature #17278: On-demand sharing of constants for Ractor
- If a non-main ractor is accessing `H` with immutable operation (such as `.each`), modifying `H` by main ractor will cause thread-safety issue.
-
07:39 PM Feature #17278 (Feedback): On-demand sharing of constants for Ractor
- ### Description
This proposal aims to reduce (but not eliminate) the need for freezing/sharing boilerplate code needed by ractors.
```ruby
A = [1, [2, [3, 4]]]
H = {a: "a"}
Ractor.new do
p A #A is not actually modified anyw... -
11:00 PM Feature #17274: Ractor.make_shareable(obj)
- Eregon (Benoit Daloze) wrote in #note-3:
> @ko1 What's the difference with `Object#deep_freeze(skip_shareable: false)` from #17145 ?
Almost same.
* the ability is to focus `skip_shareable: true`.
* this ticket describes the detai... -
06:47 PM Feature #17274: Ractor.make_shareable(obj)
- @ko1 What's the difference with `Object#deep_freeze(skip_shareable: false)` from #17145 ?
-
06:47 AM Feature #17274 (Closed): Ractor.make_shareable(obj)
- This ticket describes the semantics of "shareable" and proposes a new method `Ractor.make_shareable(obj)`.
With this method, `obj` becomes a shareable object by freezing it and reachable objects if it is necessary and it is possible.
... -
09:02 PM Bug #17272 (Feedback): Ruby 2.7.2 crash report
- The crash occurs when freeing an object, and you are using 10 external C extensions. A bug in a C extension can certainly cause a crash during free (as can a bug in a core class or the interpreter). Can you build a debug version of Rub...
-
07:03 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- @marcandre Thanks, I didn't get the use-case from the DeepCover above (I just missed the `freeze` definition).
I think the last variant of #20 works too if we call user `freeze` instead of internal freeze.
As long we call it before i... -
01:28 PM Feature #17145: Ractor-aware `Object#deep_freeze`
- marcandre (Marc-Andre Lafortune) wrote in #note-22:
> I've been wanting for a long while to propose an API for caching methods, and that could be made Ractor compatible and would resolve most of these cases
+1
The `@var ||= expr` idiom ... -
05:23 AM Feature #17145: Ractor-aware `Object#deep_freeze`
- Looking at `def freeze` in the top ~400 gems, I found 64 in `sequel` gem alone, and 28 definitions in the rest 😅.
Excluding `sequel`, half do deep freeze. The other use cases:
Cache prebuilding:
https://github.com/rails/rails/blob... -
06:58 PM Feature #17273: shareable_constant_value pragma
- Re naming, how about `# shareable_constants: true` instead of `# shareable_constant_value: true`?
(it's `# frozen_string_literal: true` but maybe it should have been `# frozen_string_literals: true` ...)
> However, if we have 100 c... -
05:56 AM Feature #17273 (Closed): shareable_constant_value pragma
- This proposal is to introduce `# shareable_constant_value: true` pragma to make constant values shareable objects.
With this pragma, you don't need to add `freeze` to access from non-main ractors.
```ruby
# shareable_constant_value:... -
04:37 PM Misc #17200: DevelopersMeeting20201026Japan
- * [Feature #17277] Make Enumerator#with_index yield row and col indices for Matrix
* Access Matrix indices in enumerable methods -
03:43 PM Revision 603fb940 (git): refactoring obj_traverse_i
-
03:43 PM Revision 0c0d0752 (git): allow to access ivars of frozen shareable objects
- Accessing a shareable object is prohibitted because it can cause
race condition, but if the shareable object is frozen, there is no
problem to access ivars. - 03:07 PM Revision 96293784 (git): * 2020-10-22 [ci skip]
-
02:57 PM Revision 3a97d361 (git): refactoring frozen_shareable_p
-
02:52 PM Revision 89f6644d (git): refactoring rb_obj_traverse()
- * create rec check hash lazily
* do not pass *data pointer for enter/leave function because
it is not used. -
02:52 PM Revision af247136 (git): refactoring rb_ractor_confirm_belonging()
- rb_ractor_belonging() returns 0 only if it has sharable flag.
rb_ractor_confirm_belonging() checks rb_ractor_shareable_p()
if the belonging ractor id is different from current ractor id. -
02:52 PM Revision 631eaa85 (git): check main-ractor or not first
- On non-multi-ractor-mode, the cost of rb_ractor_main_p() is low
so check it first. -
02:37 PM Revision 762be877 (git): test/json/json_parser_test.rb: suppress warnings
- http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20201021T123003Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20201021T123003Z/ruby/test/json/json_parser_test.rb:227: warning: ambiguous first argument; put parentheses or a spa... -
12:07 PM Feature #17277: Make Enumerator#with_index yield row and col indices for Matrix
- ~~I also noticed when combining `each_with_index` with `inject` it passes `element, row_index and col_index` as one argument to the block~~
```ruby
Matrix[[1,2,4,5],[7,8,9,2]].each_with_index.inject({}) { |acc, e, row, col| puts "#{acc}... -
11:26 AM Feature #17277: Make Enumerator#with_index yield row and col indices for Matrix
- What about chained enumerators?
```ruby
matrix.each(:diagonal).each_const(2).with_index do |elem, ?|
```
It's not clear to me how that could be implemented efficiently, do you have an idea?
Finally, what is the use case?
I ... -
10:07 AM Feature #17277 (Closed): Make Enumerator#with_index yield row and col indices for Matrix
- Given a matrix:
```ruby
matrix = Matrix[[0,2,3,4], [6,7,8,9], [1,4,5,8]]
```
You could get the row and col indices of a matrix using `Matrix#each_with_index`:
```ruby
matrix
.each_with_index { |e, row, col| p [row, col] }
[... -
10:00 AM Feature #17276 (Closed): Ripper stops tokenizing after keyword as a method parameter
- Although these are obviously syntax errors at this time, the following
codes cannot be tokenized correctly by `Ripper.tokenize`.
```
$ cat src.rb
def req(true) end
def opt(true=0) end
def rest(*true) end
def keyrest(**true) end
... -
08:59 AM Revision 44140317 (git): extend timeout of rbs test on rbs tests
-
07:50 AM Bug #17275: Please backport 8b0dc77a621ded75f72486c33f55404ce73f00d7
- Thank you for your notice. I will fill the Backport field.
I think the situation is same on 2.5/2.6, though I didn't confirmed that this issue was reproducibility on them. -
07:43 AM Bug #17275 (Closed): Please backport 8b0dc77a621ded75f72486c33f55404ce73f00d7
- I've encountered the issue as same as https://github.com/ruby/ruby/pull/3307 with ruby-2.7.2.
I'm using a workaround for now, but it would be very nice if ruby_2_7 had a backport the commit https://git.ruby-lang.org/ruby.git/commit/?id=... -
07:15 AM Revision b59077ee (git): Ractor-safe rb_objspace_reachable_objects_from
- rb_objspace_reachable_objects_from(obj) is used to traverse all
reachable objects from obj. This function modify objspace but it
is not ractor-safe (thread-safe). This patch fix the problem.
Strategy:
(1) call GC mark process during_gc
... -
05:26 AM Feature #17267: Remove Win32API at Ruby 3.0
- +1
-
01:15 AM Feature #17267: Remove Win32API at Ruby 3.0
- Eregon (Benoit Daloze) wrote in #note-4:
> I think it's fine as long as it's moved to a gem, so it can still be used when desired.
I agree with Benoit. -
04:08 AM Feature #17256: Freeze all Regexp objects
- Dan0042 (Daniel DeLorme) wrote in #note-6:
> Given that string literals with interpolation were recently unfrozen, it would appear slightly inconsistent to freeze regexp literals with interpolation.
The difference is that there are m... -
02:57 AM Feature #17256: Freeze all Regexp objects
- Given that string literals with interpolation were recently unfrozen, it would appear slightly inconsistent to freeze regexp literals with interpolation.
`/#{str}/` is equivalent to `Regexp.new(str)` so I would find it a bit weird if th... -
04:04 AM Revision 4640c4ea (git): Removed more unnecessary ID caches
- ```
find . -name \*.o -exec nm {} + |&
grep -e 'InitVM_.*\.rbimpl_id' -e 'Init_.*\.rbimpl_id' |
sed 's/^.* b //;s/\.[1-9][0-9]*$//;s/\.rbimpl_id$//' |
uniq
```
should be empty. -
03:46 AM Revision 5a77e90f (git): Use rb_intern_const instead of rb_intern in Init functions
- ```
find . -name \*.o -exec nm {} + |&
sed '/Init_.*\.rbimpl_id/!d;s/^.* b //;s/\.[1-9][0-9]*$//;s/\.rbimpl_id$//' |
uniq
```
should be empty. - 03:45 AM Revision 8c2e5bbf (git): Don't redefine #rb_intern over and over again
-
03:31 AM Revision d497436d (git): Update dependencies for macOS
-
03:31 AM Revision 640b3405 (git): Check dependencies on macOS too
-
02:44 AM Revision 73834b5f (git): Calculate transient heap block usable size at compile time
-
12:24 AM Revision da25affd (git): .github: reduce copy&paste
- Found that we can set default working directory for github actions.
-
12:24 AM Revision 1c5f44cd (git): .travis.yml: reduce redundant tests
- These tests are (more or less) covered by github actions now.