Activity
From 11/08/2021 to 11/14/2021
11/14/2021
-
07:16 PM Bug #18283: Creating a subclass in Ractor dumps core
- I think this is a duplicate of #18119.
-
04:14 PM Misc #18335 (Third Party's Issue): openindiana ruby 3.1 --enable-dtrace requires debugflags="-g1"
- Hello,
I tried compiling ruby 3.1 preview on OpenIndiana (Illumos) and this works:
./configure --prefix=$HOME/ruby-31 --with-gcc --disable-dtrace
gmake
gmake install
It works:
$HOME/ruby-31/bin/ruby --version
ruby 3.1.0pre... -
03:46 PM Feature #18334: ENV#to_h returns a new Hash object but Hash#to_h does not, which can cause inconsistencies
- With the current implementation of ENV#to_h, `ENV.to_h.dup` would create two new Hashes instead of one. `hash.to_h.dup` would correctly create only one new Hash.
-
12:23 PM Feature #18334: ENV#to_h returns a new Hash object but Hash#to_h does not, which can cause inconsistencies
- I think it would be confusing if `ENV#dup` returns a `Hash` and not a `ENV`, as that would be inconsistent with all other `#dup`.
`to_SHORT` never guarantees to return a copy, so if you don't know the receiver and want to mutate the res... -
05:08 AM Feature #18334 (Open): ENV#to_h returns a new Hash object but Hash#to_h does not, which can cause inconsistencies
- I noticed that in ruby-3.1.0-preview1 ENV#dup was removed in favor of ENV#to_h. However, methods that accept either ENV or a Hash object will not behave the same, since ENV#to_h returns a new Hash object but Hash#to_h returns the same Ha...
-
12:40 PM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- mame (Yusuke Endoh) wrote in #note-13:
> Also, the motivation of this proposal is not clear to me.
Some important motivation is explained in https://bugs.ruby-lang.org/issues/18296#note-4:
* Callers can choose whether they want `did... -
12:26 PM Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
- cc @ioquatix
-
01:20 AM Bug #18333: /Library/Ruby/Gems/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb:36: [BUG] Illegal instruction at 0x0000000104978000
- Dup of #18288 and others. Third-party issue.
-
12:01 AM Bug #18333 (Rejected): /Library/Ruby/Gems/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb:36: [BUG] Illegal instruction at 0x0000000104978000
- ```
$ github-pages health-check
/Library/Ruby/Gems/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb:36: [BUG] Illegal instruction at 0x0000000104978000
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]
-- Cra... -
12:42 AM Feature #18332: a ? b
- `"font-bold" if root?` reads much better than `root? ? "font-bold"`.
11/13/2021
-
08:48 PM Revision fc456adc (git): Enhanced RDoc for Integer (#5099)
- Treats:
#allbits?
#anybits?
#nobits?
#succ
#pred
#chr`
#to_s
#+
#- -
08:36 PM Feature #18332: a ? b
- Well, obviously that's a matter of personal taste, but for a one-branch `if` the postfix form seems to read naturally ("this item will have class "font-bold" if it is root).
So it might be that `cond ? result` reads better for you be... -
07:42 PM Feature #18332: a ? b
- Thanks, I still think the `root? ? "font-bold"` reads better than `"font-bold" if root?` though
-
07:34 PM Feature #18332: a ? b
- ```ruby
puts "#{'font-bold' if true}"
# => font-bold
``` -
06:41 PM Feature #18332 (Open): a ? b
- It would be a shortcut for `a ? b : nil`:
e.g.
```
"#{current_path == "/" ? "font-bold"}"
"#{user.admin? ? "text-red-600"}"
```
Doing `a && b` returns `false` which converted to a string gives `"false"`.
When `nil` convert... -
05:41 PM Revision 38c555a3 (git): show encoding for each path
- 05:36 PM Revision 43358c08 (git): * 2021-11-14 [ci skip]
-
05:35 PM Revision 4d8d8c9d (git): test/io/console/test_io_console.rb: dump debug output to stderr
- make test-all in parallel mode seems to hide stdout
-
12:41 PM Feature #18331: Kernel.#Time
- And I just found a `Date` counterpart https://bugs.ruby-lang.org/issues/13259, and said to myself, "there are people thinking similar things with me", but it happened to be myself.
-
12:27 PM Feature #18331 (Open): Kernel.#Time
- I remember that, once, Matz suggested a new literal notation for date/time, but he later withdrew it. It seems like introducing new syntax at this point is less realistic. But I believe that many people have wanted a simple way to create...
11/12/2021
-
04:47 PM Bug #18250: Anonymous variables seem to break `Ractor.make_shareable`
- So following the last fixes Rails CI, as well as Shopify CI with regular ruby-head now passes.
However I noticed our ruby-head debug builds are running into an assertion error:
```
id_table.c:153: hash_table_raw_insert: Assertion ... -
11:33 AM Feature #18033: Time.new to parse a string
- Nice performance improvement!
In terms of the interface I think it would be confusing to make `Time.new` parse a string:
* Using a `.parse` method for parsing is more conventional / less surprising / more intention revealing
* Havin... -
10:45 AM Bug #18330: Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
- For the arm32 + clang's log <https://rubyci.s3.amazonaws.com/crossruby/crossruby-master-armv7a-android30/log/20211111T210030Z.log.html.gz>.
If we want to add the arm32 + clang case to the pull-request timing CI, we can add the arm32 +... -
08:36 AM Revision 415671a2 (git): parse.y: Fix memory leak at parse error
- Local variable tables might leak at the parse error.
-
07:44 AM Bug #18269: trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
- FYI: I stopped the false-positive warning by explicitly excluding opt_regexpmatch2 from the check.
commit:61938e2db59a032a46fc3de2ebead2e5e9d630a9 -
07:40 AM Revision 61938e2d (git): test/ruby/test_jit.rb: suppress a false-positive warning
- It reports "opt_regexpmatch2 insn is not included", but actually it is
included. This is due to a known bug of ISeq#to_a on which this check
depends.
https://bugs.ruby-lang.org/issues/18269 -
07:23 AM Revision 3aa62b45 (git): test/io/console/test_io_console.rb: add debug code
- to debug the following failure
http://ci.rvm.jp/results/trunk-test@ruby-sky1/3708240
```
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:10:in `===': incompatible encoding regexp match (US-ASCII regexp with UTF-16BE strin... - 07:04 AM Revision a0460818 (git): Update bundled_gems at 2021-11-12
- 03:46 AM Revision c833ece5 (git): Rework implementation of `IO::Buffer.for(string)` to use string locking.
- 03:46 AM Revision 98b442e0 (git): More immutability and locking tests.
-
12:56 AM Revision e73197df (git): Update vcvars on windows-2022 [ci skip]
- https://github.com/ruby/actions/commit/875a056af0fb2f26fed20c32263ea840c293e2da
https://github.com/actions/virtual-environments/commit/d6a789cbef30e0681d6667b1c91cb7a9bd9184bd#diff-a1f67f5c4a583bf90c239743379ad9473fbf1fa9d11c5cb7739c8012...
11/11/2021
-
11:47 PM Bug #18330 (Closed): Make failure on 32-bit Linux (Android) with Clang due to implicit 64-to-32-bit integer truncation
- Observed in crossruby CI for armv7a-android30 (http://rubyci.s3.amazonaws.com/crossruby/crossruby-master-armv7a-android30/log/20211111T210030Z.log.html.gz):
```
compiling io_buffer.c
io_buffer.c:297:16: error: implicit conversion ... -
09:52 PM Bug #18329 (Closed): Calling super to non-existent method dumps core
-
04:57 PM Bug #18329: Calling super to non-existent method dumps core
- Thank you for the report. I have a fix prepared here: https://github.com/ruby/ruby/pull/5108
-
09:05 PM Revision 3cf7130d (git): [rubygems/rubygems] Remove duplicated spec
- https://github.com/rubygems/rubygems/commit/86b874ed24
-
09:05 PM Revision 4736dec5 (git): [rubygems/rubygems] Remove `gemfile_should_be` helper as well
- https://github.com/rubygems/rubygems/commit/79f3c00caa
-
09:05 PM Revision 1f91009d (git): [rubygems/rubygems] Remove `have_lockfile` matcher too
- https://github.com/rubygems/rubygems/commit/635f3f2605
-
09:05 PM Revision d0f26646 (git): [rubygems/rubygems] Remove `lockfile_should_be` helper
- It doesn't add anything.
https://github.com/rubygems/rubygems/commit/ece3c864df -
07:08 PM Revision 84202963 (git): [Bug #18329] Fix crash when calling non-existent super method
- The cme is NULL when a method does not exist, so check it before
accessing the callcache. -
06:47 PM Revision a9a94540 (git): Remove RCLASS(obj)->ptr when RVARGC is enabled
- With RVARGC we always store the rb_classext_t in the same slot as the
RClass struct that refers to it. So we don't need to store the pointer
or access through the pointer anymore and can switch the RCLASS_EXT
macro to use an offset -
05:49 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- It seems like C -> builtin conversion makes method calls with keyword arguments faster, but C seems faster on method calls without keyword arguments if the method has keyword arguments (with default values).
```
$ benchmark-driver -v... -
01:13 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- Current status:
```
$ cat /tmp/a.yml
benchmark:
- Time.at(0)
$ benchmark-driver -v --rbenv '3.0.0;before;after' /tmp/a.yml
3.0.0: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
before: ruby 3.1.0dev (2021-11-10T08:42... - 05:02 PM Revision d08d1370 (git): * 2021-11-12 [ci skip]
-
05:01 PM Revision dee2e9b2 (git): Bundle RBS 1.7.0 (#5105)
- * Bundle RBS 1.7.0
* tool/test-bundled-gems.rb: Use a correct path to Check if rbs is built
* tool/test-bundled-gems.rb: lib/rbs/parse.y is no longer created
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org> -
02:06 PM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- Eregon (Benoit Daloze) wrote in #note-7:
> mame (Yusuke Endoh) wrote in #note-6:
> ...
Thanks. I think that this is the most important part of this proposal. It should be clearly explained in the description. Actually, I don't think th... -
11:38 AM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- While initially thinking about this issue I kind of forgot `full_message` includes the backtrace (the name doesn't make that super obvious).
One thing to address is how `did_you_mean/error_highlight` can insert additional output after... -
11:07 AM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- mame (Yusuke Endoh) wrote in #note-6:
> Does this proposal include that the ruby interpreter should use `#full_message` to show the error information? This is an incompatibility, is it acceptable?
Yes, let's fix that.
I don't think ... -
05:49 AM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- TBH I'm unsure if I could understand what you propose. It would be very helpful if you could create a proof-of-concept patch.
I have one concern. My minimum expectation of error_highlight and did_you_mean is that the ruby interpreter ... -
01:54 PM Revision c53aecee (git): fix a memory leak introduced in 8bbd319
- This commit fixes a memory leak introduced in an early part of the
variable width allocation project that would prevent the rb_classext_t
struct from being free'd when the class is swept. -
01:52 PM Bug #18170: Exception#inspect should not include newlines
- Eregon (Benoit Daloze) wrote in #note-19:
> BTW it seems `irb` disables `error_highlight` somehow:
Because irb uses `Kernel#eval` to execute the input code, error_highlight cannot get the source code. Currently, there is a secret API... -
10:28 AM Feature #18280: Allow rb_utf8_str_new_cstr(NULL)
- shyouhei (Shyouhei Urabe) wrote in #note-13:
> Fix merged ATM to delete the attribute, for the sake of compatibility.
> ...
Thank you! I'm agree, compatibility is very important. -
08:30 AM Feature #18280: Allow rb_utf8_str_new_cstr(NULL)
- Fix merged ATM to delete the attribute, for the sake of compatibility.
What to do with those other functions shall be discussed though. -
10:10 AM Feature #10917: Add GC.stat[:total_time] when GC profiling enabled
- > for experts who want to tuning the GC performance. So I think the difference (ns, ms in Integer and sec in Float) it is no problem.
Agreed. As long it's clearly stated in the method documentation, it's fine. -
09:44 AM Feature #10917: Add GC.stat[:total_time] when GC profiling enabled
- * `GC.total_time` returns measured total time in nano seconds.
* `GC.stat(:time)` (and Hash) returns measured total time in milli seconds.
ns and ms can be confusion but there are some reasons:
* As request `GC.stat(:time)` should... -
09:23 AM Feature #10917: Add GC.stat[:total_time] when GC profiling enabled
- I cleanup the patch:
https://github.com/ruby/ruby/pull/4757
GC measurement feature
* `GC.measure_total_time = true` enables total time measurement (default: true)
* `GC.measure_total_time` returns current flag.
... -
09:04 AM Revision b5531adf (git): quick fix for `test_initialize_HEAD`
- https://github.com/ruby/ruby/commit/52ab9bbee918c63faad32e3851b162691b984d40 makes a failure.
```
1) Failure:
HTTPRequestTest#test_initialize_HEAD [/tmp/ruby/v3/src/trunk/test/net/http/test_http_request.rb:53]:
<{"accept"=>["*/*"], "u... -
08:59 AM Revision cd51bf61 (git): test/openssl/test_ssl: adjust certificate expiry date
- test_connect_certificate_verify_failed_exception_message occasionally
fails. Is it possible that OpenSSL sees a different clock from Ruby by
more than 10 seconds?
http://ci.rvm.jp/logfiles/brlog.trunk-random0.20211111-072828
Let's give... - 08:34 AM Revision 52ab9bbe (git): [ruby/net-http] Send Accept-Encoding header on HEAD method
- https://github.com/ruby/net-http/commit/9d95c5e3e6
-
08:14 AM Revision 33533fab (git): revival of must_not_null()
- Presence of RBIMPL_ATTR_NONNULL let C compilers to eliminate
must_not_null(). Because null pointers are not allowed to exist there
are no reason to call the function. In reality null pointers are still
passed to those functions in a nu... -
05:00 AM Revision 155bc427 (git): [ruby/getoptlong] fixup 5f57f47572502173e2e8880f83ef7b3e2659f974
- https://github.com/ruby/getoptlong/commit/5683297853
-
05:00 AM Revision 6ecd30b4 (git): [ruby/getoptlong] Save the copy of `ARGV`
- It refers the same object and will be replaced.
https://github.com/ruby/getoptlong/commit/5f57f47572 -
02:45 AM Revision f5dcecf3 (git): rb_file_size: add doxygen
- Must not be a bad idea to improve documents. [ci skip]
-
02:45 AM Revision ad84c5d1 (git): rb_enc_code_to_mbclen: fix doxygen
- Wrong parameter name. [ci skip]
-
02:45 AM Revision 4b383012 (git): RB_ENCODING_SET_INLINED: fix doxygen
- Wrong parameter name. [ci skip]
-
02:45 AM Revision a4a6e5cd (git): ENCODING_MASK: fix doxygen link [ci skip]
-
02:45 AM Revision 1370b087 (git): io/buffer.h: C linkage
- Because `make install` installs this header to target systems, it must
be ready to be `#include`d form a C++ program. -
01:37 AM Revision db316e62 (git): [ruby/getoptlong] Write a first test of getoptlong.rb
- https://github.com/ruby/getoptlong/commit/18cdb03fd4
-
01:37 AM Revision 414b5565 (git): [ruby/tmpdir] [DOC] Fix syntax in example code [ci skip]
- RDoc expects example code to be valid syntax.
https://github.com/ruby/tmpdir/commit/ee42540ebb - 12:35 AM Revision 51c67ee6 (git): Don't allow `fd == -1` to propagate to system calls.
11/10/2021
-
11:46 PM Bug #18329 (Closed): Calling super to non-existent method dumps core
- The following code runs on Ruby 2.7.4 and doesn't produce a core dump. On Ruby 3.0.0, 3.0.2 and 3.1.0-preview 1 the following code produces a core dump:
``` ruby
# example2.rb
module Probes
def self.included(base)
base.ext... -
10:14 PM Revision d5dd87d0 (git): [ci skip] Fix typo in test name
-
07:05 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- On current master I get `6044704` i/s and `5368058` i/s on 3.0.2, 11.2% slower.
-
07:02 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- FYI in TruffleRuby when we need to know if an argument is passed or not we use a default value of `undefined` which would be just `Qundef` in CRuby.
It works well and it's efficient to check (identity check).
For the anecdote, that's an ... -
11:19 AM Bug #18293 (Open): Time.at in master branch was 25% slower then Ruby 3.0
-
09:18 AM Bug #18293 (Closed): Time.at in master branch was 25% slower then Ruby 3.0
- Applied in changeset commit:git|8bcff5604b15fd29f357669dd8cb65a6618c9926.
----------
Tentative fix of subsec to `Time.at` [Bug #18293] -
08:44 AM Bug #18293 (Open): Time.at in master branch was 25% slower then Ruby 3.0
- I thought and tried it but still 10% slower than 3.0.
-
08:42 AM Bug #18293 (Closed): Time.at in master branch was 25% slower then Ruby 3.0
- Applied in changeset commit:git|83bdc2f00c4565a091d88399e5a315a96f6afed6.
----------
Simplify default values of `Time.at` [Bug #18293] -
08:07 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- FYI, the current iseq is:
```
irb(main)[01:0]> puts RubyVM::InstructionSequence.of(Time.method(:at)).disasm
== disasm: #<ISeq:at@<internal:timev>:270 (270,2)-(272,5)> (catch: FALSE)
local table (size: 7, argc: 1 [opts: 2, rest: -1,... -
07:32 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- I don't understand why we need to detect wether the parameters were passed, why can't we just have default values?
```ruby
>> Time.at(946702800, 0, :usec) == Time.at(946702800)
=> true
```
Or am I missing something? -
04:24 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- `Time.at` has complicated default arguments. I believe that would result in 5 local variable assignments in VM and be the bottleneck.
If you apply the attached patch and use this benchmark script:
```yml
benchmark:
- Time.at(0)
- T... - 06:52 PM Revision 98cc6d15 (git): * 2021-11-11 [ci skip]
-
06:51 PM Revision 8d5f38a8 (git): Use Primitive. in timev.rb for consistency with all other .rb files
-
06:08 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
- Lack of codesigning on Apple Silicon is an excellent guess, but unfortunately does not seem to be the cause here as Tim's demonstrated above (and I've verified as well). I first noticed this issue when testing a `ruby` that was fully sig...
-
05:50 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
- Sure. I had suspected that at some point so I checked the signature using `codesign -dvvvvv`. But I also just repeated that test, and then replaced the built binary with a new ad-hoc signature on the M1. That unfortunately seemed to not ...
-
05:25 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
- Can you please try `codesign -s - ruby`? Because Apple's arm chip requires the exectutables signed.
I encountered the same killed 9 error elsewhere, FYI: https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-11/msg01480.html -
01:00 PM Feature #6210: load should provide a way to specify the top-level module
- Agreed, it could be used to experiment with new ways to load code in a non global manner.
That being said it would entirely sidestep iseq caching. Not that it's a deal breaker, but if this were to be used for loading lots of code, we ... -
12:23 PM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
- My initial assessment, based on the changes we made, is that we are potentially incorrectly using `fd` before this PR is applied. For it to fail in the way it is, it means we are still using the previous value of `fptr->fd` even though i...
-
09:04 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
- Thanks @mame, yes this change adds fiber scheduler hooks for low level file read/write operations and this necessitates passing the IO object around rather than just the file descriptor integer. The changes are mostly cosmetic though and...
-
08:06 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
- The change caused SEGV on Solaris.
http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20211110T070003Z.fail.html.gz
```
Thread 8 (Thread 84 (LWP 84)):
#0 0xfef2054c in __systemcall6 () from /lib/libc.so.1
#1 0xfef05d18... -
06:24 AM Feature #18020 (Closed): Introduce `IO::Buffer` for fiber scheduler.
- I have merged this. We will follow up with additional changes in new tickets as needed.
-
12:02 PM Misc #18266: DevelopersMeeting20211118Japan
- - [Bug #18296] Custom exception formatting should override `Exception#full_message`.
* (mame: you need to write your comment)
-
11:58 AM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- Also given how this works, I believe we should remove `ErrorHighlight.formatter` from the public interface. https://github.com/ruby/error_highlight/issues/15
-
11:57 AM Feature #18296: Custom exception formatting should override `Exception#full_message`.
- I think this is a clean and simple proposal/fix, which enables users to choose whether they want that extra information on a per-call to #full_message-basis.
As a side effect it also enables DidYouMean and ErrorHighlight to e.g. look ... -
11:49 AM Feature #18296 (Closed): Custom exception formatting should override `Exception#full_message`.
- After discussing with @eregon, we came to the conclusion that the current implementation of `did_you_mean` and `error_highlight` could avoid many issues by using `Exception#full_message`.
We propose to introduce a more nuanced interfa... -
11:26 AM Feature #18033: Time.new to parse a string
- If I might add a nitpick, the actual format is RFC 3339, which is pretty much a subset of ISO 8601.
But yes, +1 to making `Time.iso8601` a core method. -
10:44 AM Feature #18033: Time.new to parse a string
- Like @ioquatix and @byroot I think `Time.new` taking a iso-like String is not a good idea.
Also it's technically incompatible (the first argument is always the year for `Time.new` and it even accepts strings):
```
> Time.new "2234-01-01... -
11:15 AM Bug #18170: Exception#inspect should not include newlines
- ioquatix (Samuel Williams) wrote in #note-18:
> Here is what I want:
> ...
That's hard, e.g. for Errno#message.
I think having a way to get the original message or the message unaffected by `did_you_mean/error_highlight` is good thoug... -
11:10 AM Bug #18170: Exception#inspect should not include newlines
- BTW it seems `irb` disables `error_highlight` somehow:
```
$ ruby -ve 'self.instance_off'
ruby 3.1.0dev (2021-11-08T13:15:21Z master bd2674ad33) [x86_64-linux]
-e:1:in `<main>': undefined method `instance_off' for main:Object (NoMeth... -
11:10 AM Bug #18170: Exception#inspect should not include newlines
- Here is what I want:
- `Exception.new(message).message` is always `message`.
- Top level unhandled exception handler, which defaults to some well defined interface for printing exceptions.
- Well defined hooks for augmenting the exc... -
11:03 AM Bug #18170: Exception#inspect should not include newlines
- I've been thinking about this again, and I'm not sure if
```
#<Foo:0x00007f15aeb4ba48 @exception=#<NameError: undefined local variable or method `exampl' for #<Foo:0x00007f15aeb4ba48 ...>
@exception = begin; exampl; rescue Excepti... -
09:14 AM Revision 8bcff560 (git): Tentative fix of subsec to `Time.at` [Bug #18293]
-
08:47 AM Revision 850912b6 (git): Install pkg-config on 32-bit Ubuntu [ci skip]
-
08:47 AM Revision 4eb23c9d (git): Commit miss [ci skip]
-
08:42 AM Revision 83bdc2f0 (git): Simplify default values of `Time.at` [Bug #18293]
-
08:42 AM Revision cc33d07f (git): Disable experimental warnings in test/runner.rb
-
08:07 AM Revision 943b6e4d (git): Fix format specifier
-
07:41 AM Revision 46e46eaf (git): size_t is not for file size
- 06:21 AM Revision 81d0ce7e (git): Mark IO::Buffer as experimental.
- 06:21 AM Revision 4b890342 (git): IO::Buffer for scheduler interface.
-
05:09 AM Revision 56b90cf9 (git): Fix a typo and add `IO.` [ci skip]
- 01:08 AM Revision af74cc75 (git): * 2021-11-10 [ci skip]
-
01:08 AM Revision e8086e27 (git): gc.h: move rb_objspace_garbage_object_p to internal/gc.h
- ... to allow class.c to use the function
-
01:08 AM Revision 5c892da7 (git): class.c: descendants must not cause GC until the result array is created
- Follow up of 428227472fc6563046d8138aab17f07bef6af753. The previous fix
uses `rb_ary_new_from_values` to create the result array, but it may
trigger the GC.
This second try is to create the result array by `rb_ary_new_capa`
before the s...
11/09/2021
-
04:55 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- I think it'd be good to understand the slow down here.
Is it due to having the method in Ruby and using `Primitive.`?
It seems unexpectedly high for that.
Or maybe the fact there is a declared keyword argument is slow if the kwarg is n... -
09:04 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- It's quite a hotspot in our cache serializers:
- https://github.com/Shopify/paquito/blob/aabd8740175f37b382d425da004636266d546901/lib/paquito/types.rb#L88
- https://github.com/Shopify/paquito/blob/aabd8740175f37b382d425da00463626... -
04:38 AM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- Could anybody share use cases (preferably a link to a particular code calling it) where `Time.at`'s performance matters?
-
04:47 PM Feature #18035: Introduce general model/semantic for immutability.
- @Dan0042 I think you can experiment with that in a gem if you'd like.
I wouldn't call the module `Immutable` to avoid mixing the two concepts.
I think concretely it would be hard and not necessarily useful to use that refinement for ... -
04:42 PM Feature #18035: Introduce general model/semantic for immutability.
- Re flags, can we just remove the highest FL_USER flags and use it to mark immutable instead?
Those FL_USER flags are actually not meant to be used by gems BTW (#18059). -
04:33 PM Feature #18035: Introduce general model/semantic for immutability.
- Question for the immutability-minded folks here. What would you think of an `Immutable` refinement like:
```ruby
module Immutable
refine String do
def +(other)
super.freeze
end
def <<(other)
raise Immu... -
04:32 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
- @zverok No, that can't work because then in your example the actual place where the stack is queried is e.g. inside `#find` which e.g. adds an extra entry on the stack.
Also in general we can't use Enumerable/Enumerator here, the passed... -
01:28 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
- Can't the specialized Enumerator be used for that? The downside is it probably would be inconsistent with the existing protocol of `caller`, so maybe the new method would be necessary, but, roughly speaking:
```ruby
lazy_caller.find { ... -
12:36 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
- The non-local return like `return frame` is likely to be rather costly in this case unfortunately.
Stack walking typically can't be JITed since it accesses a lot of VM stuff, and so the exception/jump for the `return` (or `break`) is qu... -
12:27 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
- :+1: this seems a great idea.
I was initially thinking this might be tricky to implement, but it seems most APIs to walk the stack out there already allow to do arbitrary calls from inside a callback (e.g., Java 9's `StackWalker`, `Tr... -
02:45 PM Feature #18127: Ractor-local version of Singleton
- ioquatix (Samuel Williams) wrote in #note-4:
> 1. Existing Ruby code is incompatible with Ractor.
> ...
That's a really good summary of the current situation with Ractor. Too many things need to be modified, frozen, restricted, even fo... -
01:19 AM Feature #18127: Ractor-local version of Singleton
- I appreciate the work that is being done here. However I am against introducing this feature as currently proposed and think that more discussion is required.
This change does not address the fact that `Singleton` remains broken when us... -
12:43 PM Bug #18282: Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
- No need to say sorry. Thanks for providing fixes. https://github.com/ruby/ruby/pull/5097 resolves segmentation fault at Rails test.
-
12:23 PM Bug #18282: Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
- Could you please try this PR? https://github.com/ruby/ruby/pull/5097
I knew that the fix was incomplete but I couldn't fix it before preview1. I'm sorry. -
11:02 AM Bug #18282: Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
- Thanks for the update.
I have attempt to validate the fix, actually it still raises segmentation fault with `ruby 3.1.0preview1` including 428227472fc6563046d8138aab17f07bef6af753 .
```
$ bundle exec rake test
/home/yahonda/.rben... -
07:15 AM Bug #18282 (Closed): Rails CI raises Segmentation fault with ruby 3.1.0dev supporting `Class#descendants`
- Applied in changeset commit:git|428227472fc6563046d8138aab17f07bef6af753.
----------
class.c: calculate the length of Class.descendants in advance
GC must not be triggered during callback of rb_class_foreach_subclass.
To prevent GC, we... -
12:21 PM Revision 0d3898ec (git): [rubygems/rubygems] Remove more unused stuff from make command parsing
- https://github.com/rubygems/rubygems/commit/eba7d173d4
-
12:21 PM Revision ba3dfe6e (git): [rubygems/rubygems] This method is never passed a block
- https://github.com/rubygems/rubygems/commit/d79ade274b
- 12:21 PM Revision d713b602 (git): [rubygems/rubygems] Fix assert_contains_make_command on make defined by environment variable.
- The `parse_make_command_line` in `assert_contains_make_command` fails to get
the make targets correctly, when the make command is set with make options by
environment variable such as `export make='make -j2'` at
lib/rubygems/ext/builder.... -
12:21 PM Revision ec6352c1 (git): [rubygems/rubygems] Improve error message when make command doesn't match
- https://github.com/rubygems/rubygems/commit/8c2725e9a6
-
08:31 AM Revision 54bda176 (git): test/ruby/test_iseq.rb: Prevent a warning
- http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20211109T063003Z.log.html.gz
```
[ 9898/21145] TestISeq#test_super_with_block_and_kwrest/home/chkbuild/chkbuild/tmp/build/20211109T063003Z/ruby/test/ruby/test_iseq.rb:1: warning: meth... -
08:30 AM Revision cf50f948 (git): test/ruby/test_enum.rb: Prevent a warning
- http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20211109T063003Z.log.html.gz
```
[ 1960/21145] TestEnumerable#test_to_a_keywords/home/chkbuild/chkbuild/tmp/build/20211109T063003Z/ruby/test/ruby/test_enum.rb:138: warning: method red... -
08:10 AM Revision d5ae8925 (git): Add doc for `a_call` and `a_return` events of TracePoint
-
08:09 AM Revision 75aae66c (git): Some codes replace to `RBOOL` macro (#5023)
- * Some code replace and using RBOOL macro
* Fix indent
* Using RBOOL in syserr_eqq function - 07:56 AM Revision c1c13c58 (git): Add one more test example for swap instruction
-
07:21 AM Revision 5a3b2e61 (git): Needs `$` in `make` command line to be escaped
-
07:21 AM Revision 5680c38c (git): Use valid `ec` for postponed job.
- Postponed job can be registered from non-Ruby thread, which means
`ec` in TLS can be NULL. In this case, use main thread's `ec` instead.
See https://github.com/ruby/ruby/pull/4108
and https://github.com/ruby/ruby/pull/4336 -
07:11 AM Revision 3628616d (git): Remove a redundant condition
-
07:11 AM Revision 64007fc5 (git): class.c (Class#descendants): Ingore subclasses created after estimation
- It is theoretically possible if a finalizer creates a subclass.
-
07:11 AM Revision 037da506 (git): class.c: Use ALLOC_N instead of ALLOCA_N
-
07:11 AM Revision 42822747 (git): class.c: calculate the length of Class.descendants in advance
- GC must not be triggered during callback of rb_class_foreach_subclass.
To prevent GC, we can not use rb_ary_push. Instead, this changeset calls
rb_class_foreach_subclass twice: first counts the subclasses, then
allocates a buffer (which ... -
06:20 AM Revision 3ff0a0b4 (git): Filter method names only if filtering method name only
- If sole `filter` option doesn't seem including test case name,
match with method name only.
And if the filter is a Regexp or String, it never matches method
name symbols. -
05:52 AM Revision 6cf7c0a4 (git): test/readline/test_readline.rb: skip a test on i686-linux
- ... because readline library (or libtinfo) seems to cause SEGV
internally even with Readline 8.1.
This SEGV is caught as SystemStackError, which leads to a test failure.
http://rubyci.s3.amazonaws.com/debian-i386/ruby-master/log/2021110... -
05:39 AM Revision 1290bdf1 (git): test/ruby/test_fiber.rb: Extend timeout on Solaris
- The test usually takes 200 sec. on Solaris, so the timeout of 300 sec.
looks too short. -
02:30 AM Revision 1d609707 (git): Fix a link [ci skip]
-
02:09 AM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
- Eregon (Benoit Daloze) wrote in #note-22:
> @mame How do you explain the test I linked above fails (still does with latest CRuby) then?
The exception is raised immediately after the block returns, and before `handle_interrupt` return... - 01:56 AM Revision d7432fde (git): [rubygems/rubygems] Use `shellsplit` instead of array of strings
- Previously, the command string to be used for the shell command
was first generated and then split using shellsplit. This change
reverts the current behavior as it breaks if the value of remote
contains a space.
https://github.com/rubyg...
11/08/2021
-
09:41 PM Revision e014c9d6 (git): [ci skip] Update NEWS.md for [Feature #18290]
-
09:27 PM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
- @matz thanks, I will rebase and merge it with experimental warning.
-
02:35 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
- I am not fully satisfied with the quality of the code (at the last time I checked a while ago), but basically, I agree with the merging.
So let us experiment with it.
Matz.
-
09:25 PM Bug #18295 (Third Party's Issue): gtk2 won't work with newest versions of its dependencies
- This looks like an issue with your setup. You'll need to install version 3.4.3 of the atk, pango, and gdk_pixbuf2 gems (see https://rubygems.org/gems/gtk2/versions/3.4.3). Looks like the ruby-gnome maintainers stopped supporting gtk2 s...
-
09:13 PM Bug #18295 (Third Party's Issue): gtk2 won't work with newest versions of its dependencies
- I am running an up-to-date version of Artix, which installs ruby-atk 3.4.5-1 ruby-pango 3.4.5-1 and ruby-gdk_pixbuf2 3.4.5-1.
But it would seem that ruby-gtk2 3.4.3 wants specifically that version of the above three packages (at least, ... -
08:39 PM Revision 39d3d24a (git): [Feature #18290] Remove tests that test use of rb_gc_force_recycle
- Remove tests that assume objects get force recycled.
-
07:24 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
- I have been hoping to do the same operation here for my org, as a way to distribute a universal Ruby binary that would be usable on both Intel and Apple Silicon machines, and to be able to build it on Intel. I seem to run into the same p...
-
07:16 PM Bug #18293: Time.at in master branch was 25% slower then Ruby 3.0
- I was able to repro this on Ubuntu 20.04 on an AMD CPU. Looks like moving these functions from `time.c` to `timev.rb` is the reason.
77e7082e824af8523c1e7c3bfc111c2e52e7e3b3 (Moved Time.at to builtin)
```
Time.at ... -
02:27 PM Bug #18293 (Closed): Time.at in master branch was 25% slower then Ruby 3.0
- − | Ruby 3.0.2 | Ruby 3.1.0-dev | result
-- | -- | -- | --
Time.at | 8.223M | 6.190M | 0.753x
### Environment
- MacBook Pro (14inch, 2021)
- macOS 12.0
- Apple M1 Max
- Apple clang ve... -
07:06 PM Feature #18290 (Closed): Deprecate rb_gc_force_recycle
- Applied in changeset commit:git|aeae6e2842e1702dfb89b8ae69b48c4f5f64c662.
----------
[Feature #18290] Remove all usages of rb_gc_force_recycle
This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes... -
07:05 PM Revision 30940648 (git): [Feature #18290] Deprecate rb_gc_force_recycle and remove invalidate_mark_stack_chunk
- This commit deprecates rb_gc_force_recycle and coverts it to a no-op
function. Also removes invalidate_mark_stack_chunk since only
rb_gc_force_recycle uses it. -
07:05 PM Revision aeae6e28 (git): [Feature #18290] Remove all usages of rb_gc_force_recycle
- This commit removes usages of rb_gc_force_recycle since it is a burden
to maintain and makes changes to the GC difficult. -
06:38 PM Revision aa5bccfc (git): NEWS.md: Mention Process._fork [[Feature #17795]]
-
06:33 PM Bug #18294 (Closed): error when parsing regexp comment
- The following code generates the error "too short escaped multibyte character"
``` ruby
_re = /
foo # \M-ca
/x
```
Removing the \ or doubling it makes the error disappear.
Since this is in comment text, I would expect to be abl... - 06:33 PM Revision 83749338 (git): * 2021-11-09 [ci skip]
-
06:32 PM Revision efe7e6e9 (git): Bundle rbs 1.7.0.beta.5
-
06:13 PM Feature #12125: Proposal: Shorthand operator for Object#method
- Hello,
I cannot help myself to see than all proposal are of the form:
` (expression) (shorthand_operator) (method_name)`
while I had seen some interesting option, to me, that format seem to add an obsure behaviour rater than a shorthan... -
06:01 PM Misc #18266: DevelopersMeeting20211118Japan
- * [Feature #6210] load should provide a way to specify the top-level module (jeremyevans0)
* This is fairly easy to implement in a backwards compatible manner, and seems useful.
* Are we OK adding this feature? If so, is the pull ... -
05:33 PM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
- @mame How do you explain the test I linked above fails (still does with latest CRuby) then?
https://bugs.ruby-lang.org/issues/17849#note-16
Anyway, we all agree nobody should rely on that, and it's also unrealistic to ask people to e... -
08:58 AM Feature #17849: Fix Timeout.timeout so that it can be used in threaded Web servers
- @headius
headius (Charles Nutter) wrote in #note-18:
> This is incorrect code.
I believe that my code is correct under the current implementation of MRI. You may think that the method invocation itself `Thread.handle_interrupt(..... -
03:45 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
- Eregon (Benoit Daloze) wrote in #note-10:
> I'd assume on that object's singleton class like `instance_exec`, but I guess it's not the only possibility.
I would assume the same thing; it would be pretty strange if this defined a `foo... -
01:27 PM Bug #18292 (Closed): 3.1.0-dev `include` cause Module to be marked as initialized
- Some subtle change I found while testing our app compatibility with Ruby head:
```ruby
class Mod1 < Module
def initialize(...)
super
end
end
p Mod1.new
class Mod2 < Module
def initialize(...)
include Enumerabl... -
01:15 PM Revision bd2674ad (git): [rubygems/rubygems] Use bundler-graph instead of bundler-viz
- https://github.com/rubygems/rubygems/commit/a54cca13db
-
11:43 AM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
- Another suggestion from our internal discussion:
```
SHA1 should work for you, though it would be better if you could switch to EVP API from old SHA* API, if you by chance still use it.
``` -
09:35 AM Revision 7cc4e147 (git): Get rid of implicit expansion to `long double` on ix86
-
09:33 AM Revision 395738e8 (git): Separate TestReadline#test_interrupt_in_other_thread
- This method is already known to fail on Travis-CI arm32-linux.
-
09:04 AM Revision a64f7e9c (git): Try 32bit environment
-
08:08 AM Revision 2772f856 (git): Prefer ANSI-style prototypes over old K&R-style definitions
-
08:08 AM Revision b47f7afb (git): Fix filename typo [Bug #18140]
- 07:07 AM Revision b5ca8ebc (git): Update bundled_gems at 2021-11-08
-
06:14 AM Revision 833c69ee (git): Convert IDs to Integers
- As the ID serial is 32bit value and internal IDs created in the
parser are assigned from its maximum value, Symbol converted from
it will exceed 32bit and overflow on 32bit platforms. - 03:52 AM Revision f3bae1a2 (git): * 2021-11-08 [ci skip]
- 03:52 AM Revision 3501e0cb (git): memory_view.c: Add _memory_view_entry member in rb_memory_view_t (#5088)