Activity
From 08/01/2020 to 08/07/2020
08/07/2020
- 05:08 PM Revision b4b702dd (git): * 2020-08-08 [ci skip]
-
05:08 PM Revision 4126a979 (git): Enhanced RDoc for Array#take and Array#take_while (#3398)
-
11:52 AM Revision 615b7fa5 (git): Enhanced RDoc for Array#product (#3395)
-
11:21 AM Feature #15504: Freeze all Range objects
- Right, every object cached at parse time must be deeply immutable, I would think that was an oversight.
-
06:12 AM Feature #15504: Freeze all Range objects
- I got an issue on Ractor.
```ruby
def test
(1..2)
end
r1 = test
Ractor.new do
r2 = test
end.take
```
* compiler cached Range `(1..2)` because they begin and end are frozen literals. The test method returns a cached same range obj... -
11:17 AM Bug #17013: `RubyVM::AbstractSyntaxTree.parse("struct.field += foo")` has no operator
- ruby_2_7 e9e4f8430a62f56a4e62dd728f4498ee4c300c12 merged revision(s) 8e189df32cacef4b21e357a590d349330532baf5.
-
11:16 AM Revision e9e4f843 (git): merge revision(s) 8e189df32cacef4b21e357a590d349330532baf5: [Backport #17013]
- Add operator info to `OP_ASGN2` of `RubyVM::AbstractSyntaxTree`.
-
07:38 AM Bug #17106: Build ruby 2.6.6 from git source
- Hi,
I think you are using bison that is newer than the latest version at Ruby 2.6 release.
I guess @nobu has already fixed the issue in ruby master, so we need to backport something. -
06:50 AM Bug #17106 (Closed): Build ruby 2.6.6 from git source
- Hello!
I tried to build ruby 2.6.6 from git source, but get an error.
My Dockerfile:
```
FROM archlinux:20200705
RUN pacman -Sy vim curl git ruby --noconfirm && \
pacman -S --needed base-devel libffi libyaml openssl zlib --... -
05:01 AM Revision 504e632a (git): sync NDEBUG, RUBY_DEBUG, and RUBY_NDEBUG (#3327)
- - When NDEBUG is defined that shall be honoured.
- When RUBY_DEBUG is defined that shall be honoured.
- When both are defined and they conflict, warnings shall be rendered.
- When nothing is specified, nothing shall happen. -
03:28 AM Revision 8a99f820 (git): Use zlib provided by vcpkg in mswin CI (#3397)
- * Revert "mswin build - install src zlib files after checkout"
This reverts commit b6175c9e4fe25b978252d8998fe791d65d998fc5.
* Revert "mswin build - install src zlib files"
This reverts commit bf758ef8b4e2895bf71a611a7ab2a4f236e260ea. -
12:27 AM Feature #16495: Inconsistent quotes in error messages
- Some terminals don't highlight text inside different quotes (for example, Iterm2, Terminal on Mac).
So you're going to double-click, copy; but have to highlight text manually.
08/06/2020
-
11:47 PM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- IMHO it should be a LocalJumpError. The Proc should return to the lambda, that's syntactically the closest scope it should return to.
Since it's not possible to return to it (the lambda is no longer on stack), it should be a LocalJumpError. -
07:09 PM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- I think the behavior makes sense to some extent, because the proc is within 2 nested contexts. Since the proc is within the lambda context, calling it in the lambda returns from the lambda. And since the proc is _also_ within the method ...
-
02:43 PM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- Hans I don't think anyone is debating the basic idea of what return in a proc or lambda does - I think we're talking about the edge-case for a proc in a return in the example above, which isn't explained by the text you have.
-
02:34 PM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- i think this is by design:
https://www.rubyguides.com/2016/02/ruby-procs-and-lambdas/
> A lambda will return normally, like a regular method.
> ...
> Procs return from the current method, while lambdas return from the lambda itself. -
11:00 AM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- I should also note some of these semantics might significantly harm the performance of Ruby.
CRuby seems to walk the stack on every `return`.
On others VMs there need to be some extra logic to find if the frame to return to is still on... -
10:54 AM Bug #17105 (Closed): A single `return` can return to two different places in a proc inside a lambda inside a method
- A single `return` in the source code might return to 2 different lexical places.
That seems wrong to me, as AFAIK all other control flow language constructs always jump to a single place.
```ruby
def m(call_proc)
r = -> {
# ... - 03:17 PM Revision 429efce4 (git): * 2020-08-07 [ci skip]
-
03:16 PM Revision fcdda2f8 (git): Add more debug info to test_verify
- http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/3111684
-
01:04 PM Revision 99e48527 (git): Add verbose message to random failed assertion
- for example:
http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/3111251
http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/3109195 -
11:10 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- > I'd argue "a#{2}c" is not a string literal ("a2c" is a string literal).
I understand your point of view. However in my view what defines a literal, is the use of a specific syntax, so `""` in this case.
Same for hashes or arrays,... -
10:12 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- byroot (Jean Boussier) wrote in #note-8:
> Because I understand the consistency argument. "All string literals are frozen" is much easier to wrap your head around than "All string literals are frozen except the ones that are interpolated... -
09:23 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- > If you want to get a mutable string from an interpolated literal +"_#{method1}_", 2 allocation will be done instead of 1
Maybe the parser could understand `+"#{}"` and avoid that second allocation? The same way it understand `"".fre... -
01:37 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- +1
A while ago I opened ticket #16047 about the same thing.
Seems a lot of people don't like the current behavior so much. -
10:14 AM Misc #17041: DevelopersMeeting20200831Japan
- * [Feature #17104] Do not freeze interpolated strings when using frozen-string-literal (eregon)
* It seems many people agree there is no point to freeze interpolated strings.
* Interpolated strings are not "simple literals" (just lik... -
06:51 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- I've directly heard "not-yet-implemented" from @ko1. Sorry for noise.
-
06:45 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Question: What is "immutable"?
I've tried the following code, but the implementation raises a NameError "can not access non-sharable objects in constant A by non-main Ractors".
```
A = {}
A.freeze
Hash.freeze
Object.freeze
s... -
02:56 AM Feature #16513 (Closed): TracePoint#inspect to return "... file:line" instead of "...@file:line"
- Applied in changeset commit:git|1819652578e8f9fe3606f7a716ec4e427fc55f0a.
----------
[Feature #16513] TracePoint#inspect returns "... file:line" (#3391)
* Fix debug documents to match Thread#to_s change (Feature #16412 ticket)
* Trace... - 02:56 AM Revision 18196525 (git): [Feature #16513] TracePoint#inspect returns "... file:line" (#3391)
- * Fix debug documents to match Thread#to_s change (Feature #16412 ticket)
* TracePoint#inspect returns "... file:line" (Feature #16513)
* Guard older version of Ruby in Tracepoint inspection tests
* Focus on current thread only when r...
08/05/2020
- 11:36 PM Revision bbbec4b8 (git): Apply timeout-scale to test_thr_kill.
-
09:26 PM Feature #17104 (Open): Do not freeze interpolated strings when using frozen-string-literal
- We can treat this as a feature request. I changed it from Misc to Feature and modified the Subject to be the feature you are requesting as opposed to a question. The issue for the next developer meeting is at https://bugs.ruby-lang.org...
-
09:18 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- Can't we just treat this as I feature request? The reasons are, it will reduce allocations, be more logical, less surprising and produce simpler code (when a mutable string is needed and you don't want extra allocations)
-
09:10 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- FWIW I'd be +1 to make interpolated Strings non-frozen.
It's BTW still the behavior in TruffleRuby to this day, since it seems to cause no incompatibility and is convenient for writing the core library with Ruby code. -
09:05 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- If you would like the behavior changed, you should file a feature request for it, and add it to the agenda of a future developer meeting.
-
08:58 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- If you want to get a mutable string from an interpolated literal `+"_#{method1}_"`, 2 allocation will be done instead of 1, if it weren't pointlessly frozen.
In this case a feature designed to reduce allocations is producing more allo... -
08:25 PM Feature #17104 (Closed): Do not freeze interpolated strings when using frozen-string-literal
- Other people have felt the same way, including me (see https://bugs.ruby-lang.org/issues/11473#note-7 and https://bugs.ruby-lang.org/issues/8976#note-67). However, @matz decided during the November 2015 developer meeting that they should...
-
08:06 PM Feature #17104 (Closed): Do not freeze interpolated strings when using frozen-string-literal
- I think the point of frozen string literals is to avoid needless allocations. Interpolated strings are allocated each time, so freezing them appears pointless.
```rb
#frozen_string_literal: true
def foo(str)
"#{str}"
end
f... - 07:58 PM Revision 77cfd2e0 (git): * 2020-08-06 [ci skip]
-
07:58 PM Revision e0bc436d (git): Enhanced documentation for Array#repeated_combination (#3392)
- * Enhanced documentation for Array#repeated_combination
* Enhanced documentation for Array#repeated_combination -
02:42 PM Revision 24983346 (git): Enhanced documentation for Array#repeated_permutation (#3390)
- * Enhanced documentation for Array#repeated_permutation
* Enhanced documentation for Array#repeated_permutation -
11:01 AM Revision 8f71bb0e (git): Fixed the inconsistency gemspec location with net-* gems.
-
09:14 AM Feature #16513: TracePoint#inspect to return "... file:line" instead of "...@file:line"
- I created a patch for this ticket here: https://github.com/ruby/ruby/pull/3391.
-
08:01 AM Bug #17025: `Time#ceil` does not work like `Rational#ceil` or `Float#ceil`
- Thank you for fixing this Jeremy.
08/04/2020
-
11:15 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- ko1 (Koichi Sasada) wrote in #note-5:
> BTW, there is some inconsistent by variable types:
I think that does not matter much, it's about consistency between what "state" of modules/classes can be accessed.
I do not mind much about class... -
01:18 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Eregon (Benoit Daloze) wrote in #note-2:
> * I think we need to introduce `#deep_freeze` to make it easy to create deeply-immutable objects conveniently and efficiently.
> ...
Do we need both? It seems an "optimised deep copy that ret... -
12:38 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Thank you for trying Ractor.
ibylich (Ilya Bylich) wrote in #note-4:
> 1. Multiple ractors use a single shared objectspace, right? If so, is it ok that objects can be shared using ObjectSpace? I'm talking about something like this:
... -
12:30 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Thank you for your question.
Eregon (Benoit Daloze) wrote in #note-2:
> * Reactor#recv/Channel#recv => Reactor#receive/Channel#receive. I don't think libc-like abbreviations should be used. Let's use actual words.
I want to ask Ma... - 11:05 PM Revision c8704328 (git): * 2020-08-05 [ci skip]
-
11:04 PM Revision 9db5d63e (git): [DOC] Use oracle url instead of sun url
- [ci skip]
-
07:57 PM Bug #14607: Fix use of the rb_profile_frames start parameter
- The original patch has a merge conflict. However, I have opened a pull request with the fix for this issue (https://github.com/ruby/ruby/pull/2713) that has been rebased to resolve the merge conflict.
-
03:36 PM Bug #17101: YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4
- I run this program on Windows 10 64-bit. Very very slow: I wait more than 10 minutes, then I press Ctrl-Break. Now I install Ruby 2.6, then the program runs as fast as Ruby 2.4.
-
10:13 AM Bug #17101: YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4
- I tried this benchmark in several ruby's(Ubuntu18.04 in WSL2. using `rbenv`).
```yaml
prelude: |
require 'yaml'
benchmark:
load_file: YAML.load_file('qlnv_h_h.yaml')
loop_count: 1
```
And, result.
```bash
sh@MyComputer:~/rubyde... -
08:32 AM Misc #17041: DevelopersMeeting20200831Japan
- * [Feature #17103] Add a :since option to `ObjectSpace.dump_all` (byroot)
* On large heap, `dump_all` can take over a minute and generate huge (6+GiB) files.
* `since: 42`, means only objects matching `generation && generation >= 42`... -
08:26 AM Feature #17103 (Closed): Add a :since option to ObjectSpace.dump_all
- Patch: https://github.com/ruby/ruby/pull/3368
This is useful for seeing what a block of code allocated, e.g.
```ruby
GC.start
GC.disable
gc_gen = GC.count
ObjectSpace.trace_object_allocations do
# run some code
end
allocat... -
08:24 AM Bug #17020: ObjectSpace.trace_object_allocations_stop raises if called before trace_object_allocations_start
- I added a regression test using `assert_separately`.
-
02:59 AM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- tenderlovemaking (Aaron Patterson) wrote in #note-16:
> I guess I need to read the Sequel implementation. It seems possible to design a system that is no overhead in the no-plugin case that also uses regular instance variables. In fac... -
12:40 AM Feature #16986: Anonymous Struct literal
- Matz said: "good to have, but current proposed syntax are not acceptable. If there is good syntax, I can consider to accept."
-
12:19 AM Feature #15752: A dedicated module for experimental features
- FYI: [Type-profiler](https://github.com/mame/ruby-type-profiler), which I'm developing for an experimental type inference tool for Ruby 3 types, heavily depends upon `RubyVM::InstructionSequence` because it performs static analysis on M...
-
12:01 AM Revision e8edc34f (git): Remove unused struct member
- I accidentally added this in 35ba2783fe6b3316a6bbc6f00bf975ad7185d6e0,
and it's making the size of RVALUE be too big. I'm sorry! orz
08/03/2020
-
10:31 PM Bug #17102 (Closed): openssl/buffering.rb:182: [BUG] Segmentation fault at 0x00001fa0fd774000
- Ruby crashed in our CI today, here's the console output:
```
Fetching google-api-client 0.23.9
/Users/anka/.rbenv/versions/2.6.5/lib/ruby/2.6.0/openssl/buffering.rb:182: [BUG] Segmentation fault at 0x00001fa0fd774000
ruby 2.6.5p114... -
07:56 PM Bug #17021: "arm64" and "arm" are mixed in RbConfig on Apple silicon
- IMHO, "host_cpu" should have "arm64". "arm" looks like a bug to me. Would be nice to get this resolved, since it blocks https://github.com/ffi/ffi/pull/801 .
-
07:40 PM Feature #15752: A dedicated module for experimental features
- I think an important lesson the Ruby implementors have learned over time is that there are no CRuby-specific APIs, it's a myth.
Whatever was thought once as CRuby-specific will eventually be implemented on some other Ruby implementation... -
07:34 PM Feature #15752: A dedicated module for experimental features
- Dan0042 (Daniel DeLorme) wrote in #note-18:
> Can I ask what would be so bad about having the `RubyVM` constant in other implementations? I mean, in itself the name is very general. Every implementation can be said to be a "Ruby VM".
... -
07:04 PM Feature #15752: A dedicated module for experimental features
- Can I ask what would be so bad about having the `RubyVM` constant in other implementations? I mean, in itself the name is very general. Every implementation can be said to be a "Ruby VM".
If support for an experimental feature is indi... - 07:28 PM Revision d8e78850 (git): * 2020-08-04 [ci skip]
-
07:28 PM Revision 3dc313a2 (git): Don't pin objects if we're just walking the heap
- Walking the heap can inadvertently pin objects. Only mark the object's
pin bit if the mark_func_data pointer is NULL (similar to the mark bits) -
06:51 PM Bug #17101: YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4
- You used the phrase 'runs very very slow'. I found 2.7 slower, as below. What were the times you had?
Using Psych.safe_load, got the following for several mingw builds, along with an mswin master build.
All returned a hash with 608 k... -
03:19 PM Bug #17101 (Closed): YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4
- When use Ruby 2.4, the following program runs fast, After ungrade to Ruby 2.7, the same program runs very very slow. Please unzip the attach first for test.
require 'yaml'
YAML.load_file('qlnv_h_h.yaml') -
06:31 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- jeremyevans0 (Jeremy Evans) wrote in #note-15:
> tenderlovemaking (Aaron Patterson) wrote in #note-14:
> ...
I guess I need to read the Sequel implementation. It seems possible to design a system that is no overhead in the no-plugin c... -
05:01 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- tenderlovemaking (Aaron Patterson) wrote in #note-14:
> jeremyevans0 (Jeremy Evans) wrote in #note-13:
> ...
It certainly could, but it would require more work, and would result in slower performance in the the no-plugin case. We coul... -
04:48 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- jeremyevans0 (Jeremy Evans) wrote in #note-13:
> As you'll see by the benchmark, the reason the performance difference is much different than you would expect is that Model loads from the database in Sequel run through `Sequel::Model.ca... -
04:30 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- Eregon (Benoit Daloze) wrote in #note-12:
> jeremyevans0 (Jeremy Evans) wrote in #note-11:
> ...
I'm glad you asked, as the difference is actually much greater than I remember it being. With the attached benchmark, on PostgreSQL localh... -
11:22 AM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- jeremyevans0 (Jeremy Evans) wrote in #note-11:
> The last time I did testing on this in Sequel, the performance decrease from initializing instance variables to nil was around 5% for Sequel::Model instance creation depending on the plug... -
04:23 PM Bug #15773: Net::HTTP doesn't try next IP address in case of timeout
- phluid61 (Matthew Kerwin) wrote in #note-5:
> benlangfeld (Ben Langfeld) wrote in #note-4:
> ...
Thank you for pointing that out. RFC 6724 is even more explicit:
```
Well-behaved applications SHOULD NOT simply use the first address
retu... -
03:55 PM Misc #17041: DevelopersMeeting20200831Japan
- * [Bug #17017] Range#max & Range#minmax incorrectly use Float end as max (dan0042)
* `(1..3.1).max` has resulted in `3.1` since ruby 1.9 and has now been "fixed" to return `3`. Matz, please confirm? -
10:46 AM Revision 1d637b1f (git): [ruby/weakref] Use Gemfile instead of Gem::Specification#add_development_dependency.
- https://github.com/ruby/weakref/commit/10d547ba12
-
10:42 AM Revision 9e93596d (git): [ruby/ostruct] Drop to Ruby 2.4
- https://github.com/ruby/ostruct/commit/00e8fe3df2
-
10:29 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- First of all, thanks a lot for your work. This is a huge (and incredibly valuable) addition to Ruby.
I have your branch built locally and I played a lot with it during last few days. I've got a few questions:
1. Multiple ractors us... -
10:18 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Note: I updated my questions on Redmine based on rereading https://github.com/ko1/ruby/blob/ractor_parallel/doc/ractor.md
-
09:49 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Looking forward to this.
I have a few questions.
* Reactor#recv/Channel#recv => Reactor#receive/Channel#receive. I don't think libc-like abbreviations should be used. Let's use actual words.
* About synchronization for Modules, specific... -
05:54 AM Feature #17100 (Closed): Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- # Ractor: a proposal for a new concurrent abstraction without thread-safety issues
## Abstract
This ticket proposes a new concurrent abstraction named "Ractor," Ruby's Actor-like feature (not an exact Actor-model).
Ractor achiev... -
09:56 AM Revision 85dc5708 (git): [ruby/net-http] Fix SSL session reuse test with LibreSSL 3.2+
- https://github.com/ruby/net-http/commit/5ae9620fbc
-
09:55 AM Revision 20eb9e98 (git): [ruby/net-http] Switch invalid server name format
- invalid_servername is not a valid name in an SSL request due to
the use of the underscore, and LibreSSL 3.2.0 will raise an
exception for this. These tests are not testing the allowed
characters in the server name, but how net/http hand... -
09:30 AM Revision e732d376 (git): [ruby/cgi] Drop to Ruby 2.4
- https://github.com/ruby/cgi/commit/8a86536e94
-
08:52 AM Revision 3ec860ae (git): net-ftp is under `lib/net` instead of `lib/net/ftp`
-
08:40 AM Revision 2346e2f0 (git): Followed up b2d96abb42abbe2e01f010ffc9ac51f0f9a50002 for net-ftp.
-
01:25 AM Bug #16695: Stack consistency error when using the return value
- Oops, my patch is duplicated at 43c1eb440a7 == r61618 partially so I must revert it at first.
```diff
diff --git a/compile.c b/compile.c
index dfa3802579..2766e985c3 100644
--- a/compile.c
+++ b/compile.c
@@ -2836,7 +2836,6 @@ is...
08/02/2020
-
11:20 PM Bug #16695: Stack consistency error when using the return value
- How about adjust sp in dead code that is after `jump`?
```patch
diff --git a/compile.c b/compile.c
index dfa3802579..85cbd42893 100644
--- a/compile.c
+++ b/compile.c
@@ -5386,6 +5386,9 @@ compile_if(rb_iseq_t *iseq, LINK_ANCHOR ... -
08:34 PM Bug #17023: How to prevent String memory to be relocated in ruby-ffi
- I think there are several options to solve this issue:
1. Change `RSTRING_PTR()` to pin the string to a fixed memory location.
2. Add a new function kind of `rb_obj_mark_unmovable()` to ruby's C-API that pins string memory without ke... - 04:58 PM Revision 1cc91b63 (git): * 2020-08-03 [ci skip]
-
04:56 PM Revision c987be25 (git): Improve docs for Module#remove_class_variable [ci skip]
-
04:51 PM Feature #17099 (Open): Remove boolean argument and warning from Module#attr
- `Module#attr` works as `Module#attr_reader` by default (since in 1.9.1). Its optional boolean argument is obsoleted, but it works as `Module#attr_writer` when its value is `true`.
I think it's okay to remove the optional boolean argum... -
03:38 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- Eregon (Benoit Daloze) wrote in #note-9:
> jeremyevans0 (Jeremy Evans) wrote in #note-6:
> ...
This is correct. Whether or not to initialize instance variables depends on the object. For long lived objects (classes, constants), it de... -
12:21 PM Bug #17098: Float#negative? reports negative zero as not negative
- Ruby or IEEE 754 seem to regard `-0.0` and `0.0` not as 0 in the mathematical sense, but as (something like) negative and positive infinitesimal. Taking this into account, I started to think `-0.0.negative?` and `0.0.positive?` should bo...
-
03:05 AM Revision ac69849e (git): Enable an assert on all configs for debugging
- I'm trying to get a better understanding for rare crashes that happen on
ci:
- http://ci.rvm.jp/results/trunk_clang_10@silicon-docker/3101898
- http://ci.rvm.jp/results/trunk-test@ruby-sky1/2777695
Looking at the stack trace it looks ...
08/01/2020
-
07:51 PM Revision a1246270 (git): remove accidentally introduced debug code
-
07:41 PM Bug #17098: Float#negative? reports negative zero as not negative
- AFAIK, the only way to check for `-0.0` is `1.0 / var == -Float::INFINITY`
I find it difficult to discuss what need to be done about any of this as I do not know of the use cases for `-0.0`; without them it seems very theoretical. -
06:02 PM Bug #17098: Float#negative? reports negative zero as not negative
- chrisseaton (Chris Seaton) wrote in #note-5:
> then another option could be to add a new predicate `Float#negative_zero?` - that would allow people to differentiate as needed.
Interesting, I thought `equal?` would work for that (it d... -
04:00 PM Bug #17098: Float#negative? reports negative zero as not negative
- If people aren't keen on changing `Float#negative?` since it has existing semantics, then another option could be to add a new predicate `Float#negative_zero?` - that would allow people to differentiate as needed.
-
12:50 PM Bug #17098: Float#negative? reports negative zero as not negative
- My suggestion is that `Float#negative?(neg_zero) == true` and `Float#positive?(pos_zero) == false`.
We can't get rid of negative zero - it's a standard part of floating point numbers as implemented by the hardware. It's also useful in... -
12:38 PM Bug #17098: Float#negative? reports negative zero as not negative
- chrisseaton (Chris Seaton) wrote in #note-2:
> not all methods on the two [return] the same result - for example `neg_zero.inspect != pos_zero.inspect`.
What is your suggestion? To dispense with `-0.0`? -
12:18 PM Bug #17098: Float#negative? reports negative zero as not negative
- It's already the case that `neg_zero == pos_zero` but not all methods on the two returns the same result - for example `neg_zero.inspect != pos_zero.inspect`.
-
02:18 AM Bug #17098: Float#negative? reports negative zero as not negative
- I disagree. By that logic, positive float zero should be positive (it isn't), and since `-0.0 == 0.0` both should report as negative and positive, which is a contradiction.
-
01:05 AM Bug #17098 (Rejected): Float#negative? reports negative zero as not negative
- Is this intended behaviour?
```
irb(main):001:0> neg_zero = -0.0
=> -0.0
irb(main):002:0> neg_zero.negative?
=> false
irb(main):003:0> neg_zero < 0
=> false
```
It happens because `Numeric#negative?` uses `< 0`. My understan... -
07:24 PM Revision b4f58ea3 (git): support multiple filters by RUBY_DEBUG_LOG_FILTER
- Now you can specify multiple filters for RUBY_DEBUG_LOG output
by RUBY_DEBUG_LOG_FILTER=a,b,c (in this case, logs that the
function name contains a, b or c). -
06:31 PM Revision f7cf600c (git): fix mark bit operation.
- To optimize the sweep phase, there is bit operation to set mark
bits for out-of-range bits in the last bit_t.
However, if there is no out-of-ragnge bits, it set all last bit_t
as mark bits and it braek the assumption (unmarked objects wi... - 04:07 PM Revision d5bed288 (git): * 2020-08-02 [ci skip]
-
04:04 PM Revision fcdbdff6 (git): rb_{ary,fnd}_pattern_info: Remove imemo member to reduce memory usage
- This is a partial revert commit of 8f096226e1b76f95f4d853d3dea2bc75eeeb5244.
NODE layout:
Before:
| ARYPTN | FNDPTN | HSHPTN
---+--------+--------+-----------
u1 | pconst | pconst | pconst
u2 | unused | unused | p... -
02:54 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- In other words, lazily initializing @ivars causes reads to need some branching because they need to handle both the initialized and uninitialized cases.
So @ivars reads can no longer be straight-line code, which can impact performance a... -
02:36 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- jeremyevans0 (Jeremy Evans) wrote in #note-6:
> Yes. When you initialize an instance variable to nil, it slows things down, and there is no benefit because the trying to access an uninitialized instance variable returns nil anyway (plus... -
01:29 PM Feature #15752: A dedicated module for experimental features
- To clarify, by "move" I mean moving under `ExperimentalFeatures` but we could still e.g. have a deprecated constant under RubyVM to help transition.
-
01:25 PM Feature #15752: A dedicated module for experimental features
- The existence of `RubyVM` prevents other Ruby implementations to be fully 100% compatible, because more and more gems start to rely on it.
So either:
* We move most of `RubyVM` to `ExperimentalFeatures` so that other Ruby implementatio... -
01:27 PM Misc #17041: DevelopersMeeting20200831Japan
- * [Feature #14844] Future of RubyVM::AST? (eregon)
* Other Ruby implementations need to be able to implement it too given more and more gems use it. Where do we move it?
* [Feature #15752] A dedicated module for experimental features... -
01:11 PM Feature #14844: Future of RubyVM::AST?
- [RBS](https://github.com/ruby/rbs) is using `RubyVM::AbstractSyntaxTree` for `rbs prototype`.
RBS is an official project under the Ruby organization, so I believe it should be able to fully work on other Ruby implementations too ([issue... -
10:31 AM Bug #17094: PTY methods with blocks
- Runtime testing of RBS uncovered this issue.
https://github.com/ruby/rbs/pull/346#issuecomment-665817340
The RDoc implies the type of `(*String) { (IO, IO) -> void } -> void`, but the implementation is `(*String) { ([IO, IO]) -> void }... -
10:02 AM Revision b6175c9e (git): mswin build - install src zlib files after checkout
- actions/checkout deletes the contents of the source directory.
-
10:01 AM Revision bf758ef8 (git): mswin build - install src zlib files
-
08:58 AM Revision e8ce9dfa (git): `rb_encoding` is defined as `const`
- Duplicate type qualifier is not needed.
-
08:34 AM Bug #16931: `defined?` against a protected method call on an inherited instance returns wrong `nil`
- ruby_2_7 23d130a9ddcaf766d6ce309f8518b434a2537fc1 merged revision(s) d05f04d27dd86c67e4a8dfff4392f806cf577bdf.
-
08:34 AM Bug #16931: `defined?` against a protected method call on an inherited instance returns wrong `nil`
- I cherry-pick'ed the following commits before backporting d05f04d27dd86c67e4a8dfff4392f806cf577bdf.
de9d6a7a8cb0929e0b4cf0a3120971c7b8ee8927
da5bd0047d6c961105da210c69d4c88421324b70
ce91c5615ca96f357519043181fb5b76b57ee223
c53aebb1d2... -
08:33 AM Revision 23d130a9 (git): merge revision(s) d05f04d27dd86c67e4a8dfff4392f806cf577bdf: [Backport #16931]
- Fixed `defined?` against protected method call
Protected methods are restricted to be called according to the
class/module in where it is defined, not the actual receiver's
class. [Bug #16931] -
08:17 AM Revision 315f1ee8 (git): Split test_defined_method
-
08:17 AM Revision 171d4c51 (git): Fix typo in test name
-
08:17 AM Revision b222ae41 (git): Test for [Bug #16669]
-
08:17 AM Revision 34427bc0 (git): Split test_defined
-
08:03 AM Bug #17095: Backport c0b93267497d47858ea9539ef863be321bc1ddbf
- I cherry-pick'ed https://github.com/ruby/ruby/pull/3364/commits/826886da7fe9c2bcb387a19eb2a5c0a8abdca727 at a332e8a0ddad90c540c6c52f0db2a45e5955a23d.
-
07:56 AM Revision a024bae5 (git): bump up patchlevel for a332e8a0ddad90c540c6c52f0db2a45e5955a23d
-
07:55 AM Revision a332e8a0 (git): ruby_2_7 update MinGW Actions workflow
-
06:04 AM Revision b6e68079 (git): Initialize memo pointer and use it consistently to silence gcc 7+
-
05:44 AM Revision 32bec658 (git): Remove obsolete rubygems file
- Fixes a weird error in CodeQL autobuild.
-
03:53 AM Feature #17097: `map_min`, `map_max`
- I do not understand why the proposal has to be extended to all other `Enumerable` methods.
My point is semantic. I do not see that there are significantly more use cases where I am interested in the element that is related to the min/ma... -
12:56 AM Feature #17097: `map_min`, `map_max`
- @nobu is right, we're not going to add `map_` for everything.
Eregon (Benoit Daloze) wrote in #note-6:
> Then repeating it is not elegant and is duplicated code.
I don't see why there would be repetition.
Just do `enum.map { ve... - 02:29 AM Revision d3d68729 (git): * 2020-08-01 [ci skip]
-
02:29 AM Revision eebb1de7 (git): Enhanced RDoc for Array