Project

General

Profile

Activity

From 07/08/2021 to 07/14/2021

07/14/2021

11:54 PM Bug #18031: Nested TracePoint#enable with define_method target crashes
I don't think the overriding behavior is intentional, since it doesn't happen for other kinds of targets.
There is an existing [test case][1] that tests this for `Proc`.
I also found a leak specific to targeting bmethods while looking ...
alanwu (Alan Wu)
11:47 PM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
Eregon (Benoit Daloze) wrote in #note-12:
> It seems ruby master as of today still uses Onigmo 6.1.3, but https://github.com/k-takata/Onigmo/releases/tag/Onigmo-6.2.0 is needed to fix this bug.
> ...
If nobody else wants to urgently do...
duerst (Martin Dürst)
02:33 PM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
It seems ruby master as of today still uses Onigmo 6.1.3, but https://github.com/k-takata/Onigmo/releases/tag/Onigmo-6.2.0 is needed to fix this bug.
Who can update Onigmo to latest?
Eregon (Benoit Daloze)
02:34 PM Misc #17997: DevelopersMeeting20210715Japan
* [Bug #13671] Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters (eregon)
* Can we update to latest Onigmo to fix this? Who knows how to do that/who to assign?
Eregon (Benoit Daloze)
12:06 PM Misc #17997: DevelopersMeeting20210715Japan
- [Feature #17837] Add support for Regexp timeouts (Sam Saffron)
- I support looking more closely at Nobu's patch. I have done some experiments which show worst-case slowdowns of ~5%.
duerst (Martin Dürst)
01:00 PM Revision 2fa3209a (git): [ruby/fiddle] fixed the test on case-insensitive filesystem
nobu (Nobuyoshi Nakada)
11:59 AM Feature #17837: Add support for Regexp timeouts
nobu (Nobuyoshi Nakada) wrote in #note-22:
> I made a patch for `Regexp#backtrack_limit=`.
> ...
I have looked at this patch. I think this is the general direction to go. I also think that the interface/API looks good, maybe having a k...
duerst (Martin Dürst)
11:52 AM Bug #18038 (Closed): Invalid interpolation in heredocs
Given code as followed:
``` ruby
var = 1
v1 = <<~CMD
something
#{"/#{var}"}
CMD
v2 = <<~CMD
something
#{other = "/#{var}"}
CMD
v3 = <<~CMD
something
#{("/#{var}")}
CMD
p v1
p v2
p v3
p v1 == v2
...
maciej.mensfeld (Maciej Mensfeld)
09:56 AM Revision 67897762 (git): [ruby/fiddle] Add Fiddle::Handle#file_name (https://github.com/ruby/fiddle/pull/88)
https://github.com/ruby/fiddle/commit/4ee1c6fc4b Kenta Murata
09:55 AM Revision 169529a0 (git): [ruby/fiddle] Check HAVE_RUBY_MEMORY_VIEW_H rather than API version (https://github.com/ruby/fiddle/pull/86)
https://github.com/ruby/fiddle/commit/c5abcc3a7e nobu (Nobuyoshi Nakada)
09:43 AM Revision 818c74b7 (git): [ruby/fiddle] Return the module handle value in Fiddle::Handle#to_i and add FIddle::Handle#to_ptr (https://github.com/ruby/fiddle/pull/87)
https://github.com/ruby/fiddle/commit/170111a0cb Kenta Murata
04:18 AM Bug #16654 (Closed): Segfault in rb_str_hash
jeremyevans0 (Jeremy Evans)
03:14 AM Bug #16654: Segfault in rb_str_hash
I was able to reproduce this on an old app I inherited. It's not an issue in ruby itself, rather the issue seems to be caused by a bug in bootsnap <= 1.4.8: https://github.com/Shopify/bootsnap/pull/322
You can reproduce this by having...
mwallba (Michael Wallbaum)
01:48 AM Revision 57a743ef (git): * 2021-07-14 [ci skip]
git[bot]
01:48 AM Revision 896bbb9f (git): Merge RubyGems/Bundler master from 8459ebd6ad65ce3397233416dc64083ae7572bb9
hsbt (Hiroshi SHIBATA)
12:31 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
@eregon thanks for the feedback.
The flags are more efficient and for the current design they are mostly implementation specific. I'm not sure how you implement multiple flags with symbols? For the initial design we can actually avoid e...
ioquatix (Samuel Williams)

07/13/2021

01:55 PM Bug #17788 (Closed): ruby 3.0.0 - compiling c++ extension on alpine fails
Applied in changeset commit:git|29f6f79e7396018962eb25c5f5e409f5fe28a73b.
----------
Get `ruby_nonempty_memcpy` to have C linkage
Fixes [Bug #17788]
xtkoba (Tee KOBAYASHI)
01:55 PM Revision 29f6f79e (git): Get `ruby_nonempty_memcpy` to have C linkage
Fixes [Bug #17788] xtkoba (Tee KOBAYASHI)
01:20 PM Misc #17997: DevelopersMeeting20210715Japan
* [Feature #17795] Around `Process.fork` callbacks API (dan0042)
* After a few meetings without a decision, can we at least reach a compromise with `Process._fork_` ?
* For certain uses cases that would improve the statu quo from "...
Dan0042 (Daniel DeLorme)
12:34 PM Revision cb955dc9 (git): [ruby/fiddle] update dependencies
nobu (Nobuyoshi Nakada)
12:21 PM Revision 1d03c7da (git): [ruby/irb] Add an explanation of default sub commands of "measure", which are :time and :stackprof
https://github.com/ruby/irb/commit/759be5a344 aycabta (aycabta .)
11:36 AM Revision 40d45ab0 (git): [ruby/fiddle] Check HAVE_RUBY_MEMORY_VIEW_H rather than API version
https://github.com/ruby/fiddle/commit/93f9564446 nobu (Nobuyoshi Nakada)
11:30 AM Revision a5d6ea92 (git): [ruby/error_highlight] Set the binary mode for Tempfile creation in a test
https://github.com/ruby/error_highlight/commit/8273d3b6f2 mame (Yusuke Endoh)
10:37 AM Revision 472d8c55 (git): [ruby/fiddle] Update required_ruby_version (https://github.com/ruby/fiddle/pull/85)
Drop supports for old versions, keeping 2.5 as CI supports it for
now.
https://github.com/ruby/fiddle/commit/90634e7c55
nobu (Nobuyoshi Nakada)
10:37 AM Revision bb868f48 (git): [ruby/fiddle] Use have_header and have_type to detect memory view availability
Fix https://github.com/ruby/fiddle/pull/84
It may detect ruby/memory_view.h for system Ruby that is installed in
/usr.
We can use RUBY_API_VERSION_MAJOR to detect memory view availability
because memory view is available since Ruby 3.0...
Sutou Kouhei
10:37 AM Revision 5c0d8c63 (git): [ruby/fiddle] Add "offsetof" to Struct classes (https://github.com/ruby/fiddle/pull/83)
* Add "offsetof" to Struct classes
I need to get the offset of a member inside a struct without allocating
the struct. This patch adds an "offsetof" class method to structs that
are generated.
The usage is like this:
```ruby
MyStruct...
tenderlovemaking (Aaron Patterson)
10:37 AM Revision a2c9e1b5 (git): [ruby/fiddle] Bump version
https://github.com/ruby/fiddle/commit/049138b4b8 Sutou Kouhei
10:37 AM Revision 70b03186 (git): [ruby/fiddle] MemoryView: ensure reset rb_memory_view_t::obj on error
https://github.com/ruby/fiddle/commit/0ed39345fe Sutou Kouhei
10:37 AM Revision 9f86e50e (git): [ruby/fiddle] StringValuePtr may change the val
https://github.com/ruby/fiddle/commit/bddca7c895 Sutou Kouhei
10:37 AM Revision 10e26cfa (git): [ruby/fiddle] Add MemoryView.export and MemoryView#release (https://github.com/ruby/fiddle/pull/80)
fix https://github.com/ruby/fiddle/pull/79
Users can release memory views explicitly before process exit.
Reported by xtkoba. Thanks!!!
https://github.com/ruby/fiddle/commit/1de64b7e76
Sutou Kouhei
10:37 AM Revision 9988f6ac (git): [ruby/fiddle] Add Fiddle::MemoryView#to_s (https://github.com/ruby/fiddle/pull/78)
Fix https://github.com/ruby/fiddle/pull/74
Reported by dsisnero. Thanks!!!
Sutou Kouhei
10:37 AM Revision 8c905349 (git): [ruby/fiddle] test: fix SetLastError's input type
https://github.com/ruby/fiddle/commit/ca5e6a0404 Sutou Kouhei
10:37 AM Revision 37d16bb9 (git): [ruby/fiddle] test: use double quote for string literal
https://github.com/ruby/fiddle/commit/fab7eab95b Sutou Kouhei
10:37 AM Revision 5516d74a (git): [ruby/fiddle] test: add a test for win32_last_socket_error
https://github.com/ruby/fiddle/commit/c86cec03cd Sutou Kouhei
10:37 AM Revision 303ab5da (git): [ruby/fiddle] test: add missing receiver
https://github.com/ruby/fiddle/commit/1da3b4af16 Sutou Kouhei
10:37 AM Revision d1eeb9fe (git): [ruby/fiddle] windows: use GetLastError() for win32_last_error
Ruby: [Bug #11579]
Patch by cremno phobia. Thanks!!!
https://github.com/ruby/fiddle/commit/760a8f9b14
Sutou Kouhei
10:37 AM Revision c0f9191a (git): [ruby/fiddle] Bump version
https://github.com/ruby/fiddle/commit/3784cfeec4 Sutou Kouhei
10:36 AM Revision 4c039a2e (git): tool/sync_default_gems.rb: remove CRs
nobu (Nobuyoshi Nakada)
10:35 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
API-wise: integer flags feel not so Ruby-like. How about symbols instead?
Or are those flags only meant to be used from C?
`def to_str(offset, length)` seems problematic, the coercion protocol is to_str() (no arguments). So it should...
Eregon (Benoit Daloze)
10:05 AM Revision f9c559a0 (git): sync_default_gems.rb: expand links to PRs of the upstream
nobu (Nobuyoshi Nakada)
07:54 AM Revision 5fd5d71a (git): [ruby/error_highlight] Support a file that has no final newline
https://github.com/ruby/error_highlight/commit/9d671284cb mame (Yusuke Endoh)
07:51 AM Revision 23c8bc36 (git): [ruby/error_highlight] Support hard tabs
Now, the highlight line is created by replacing non-tab characters with
spaces, and keeping all hard tabs as-is. This means the highlight line
has the completely same indentation as the code snippet line.
Fixes #7
https://github.com/ru...
mame (Yusuke Endoh)
07:28 AM Revision b18f6fff (git): * 2021-07-13 [ci skip]
git[bot]
07:28 AM Revision 9df712a0 (git): Expose `rb_obj_is_fiber`.
Samuel Williams

07/12/2021

04:30 PM Bug #18002: s390x: Tests failing without LC_ALL env
Here is the status under the `/tmp/rubytest1` (`tmpdir`).
```
ruby01|s390x$ unset LC_ALL
ruby01|s390x$ ls -l /tmp/rubytest1
total 0
-rw-r--r-- 1 jaruga sudo 0 Jul 12 12:21 'A�'$'\221'
lrwxrwxrwx 1 jaruga sudo 3 Jul 12 12:21 x ->...
jaruga (Jun Aruga)
04:28 PM Bug #18002: s390x: Tests failing without LC_ALL env
> ```
> ...
For the 1st failed test, I created a minimal reproducer.
```
$ cat test.rb
require 'fileutils'
fsenc = Encoding.find("filesystem")
# => #<Encoding:ISO-8859-1> if `unset LC_ALL` on s390x.
# => #<Encoding:US-ASCII> ...
jaruga (Jun Aruga)
04:07 PM Bug #15856: Performance of redundant `Kernel.require` is slow when many gems are activated
The feature index arrays seems to ignore the priority of file types. nobu (Nobuyoshi Nakada)
10:28 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
> I missed some functions in io.c which could invoke read. That's why read was showing up.
Sorry, this tripped me up and I was looking for a corresponding `write` line.
> ...
This seems fine to me, but to play the devil's advocate ...
ciconia (Sharon Rosner)
02:26 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
I was playing around with a larger number of connections and the deferred submit:
```
io_write:Event_Backend_fiber_transfer -> 46
io_write:Event_Backend_fiber_transfer -> 46
io_write:Event_Backend_fiber_transfer -> 46
io_write:Eve...
ioquatix (Samuel Williams)
01:03 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
Here is `DirectScheduler`:
```
Running 30s test @ http://localhost:9090
4 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.55ms 658.12us 14.96ms 64.38%
Req/Sec 8.92k 0.9...
ioquatix (Samuel Williams)
12:54 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
I rewrote the `uring` implementation to track the number of pending operations. I'm kind of surprised that the SQ doesn't do this.
```
% time seconds usecs/call calls errors syscall
------ ----------- ----------- -------...
ioquatix (Samuel Williams)
12:16 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
I missed some functions in `io.c` which could invoke `read`. That's why `read` was showing up. Now that's been patched:
```
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------...
ioquatix (Samuel Williams)
07:48 AM Revision 84fea8ee (git): [ruby/error_highlight] Update a test for multibyte characters
https://github.com/ruby/error_highlight/commit/2fc70d7f8e mame (Yusuke Endoh)
07:48 AM Revision 8b01d16a (git): [ruby/error_highlight] Stop showing a code snippet if it has non-ascii characters
See https://github.com/ruby/error_highlight/issues/4
https://github.com/ruby/error_highlight/commit/c20efd3961
mame (Yusuke Endoh)
07:45 AM Feature #18037: Update Unicode data to Unicode Version 14.0.0
I have successfully tested upgrading to Unicode 14.0.0 with the beta release data, and reported this back to the Unicode consortium. This means that the actual upgrade should be rather smooth. duerst (Martin Dürst)
07:44 AM Feature #18037 (Closed): Update Unicode data to Unicode Version 14.0.0
Unicode Version 14.0.0 is currently in beta. See the announcement at https://home.unicode.org/unicode-14-0-beta-review/ and more details at https://www.unicode.org/versions/beta-14.0.0.html. We should test the new data during the beta pe... duerst (Martin Dürst)
07:16 AM Revision 028441d2 (git): Avoid calling `fstat` on things we already know are valid sockets.
Samuel Williams
05:50 AM Feature #17039 (Closed): Remove Time#succ
Removed at commit:7817a438eb1803e7b3358f43bd1f38479badfbdc znz (Kazuhiro NISHIYAMA)
05:19 AM Misc #18025: rb_iterate is obsolete since 1.9 but is not marked as deprecated for C compilers
+1 ko1 (Koichi Sasada)
04:45 AM Revision 0895d57d (git): * 2021-07-12 [ci skip]
git[bot]
03:10 AM Revision 6504ca00 (git): Show node IDs in dump
nobu (Nobuyoshi Nakada)

07/11/2021

10:46 PM Bug #12052: String#encode with xml option returns wrong result for totally non-ASCII-compatible encodings
nagachika (Tomoyuki Chikanaga) wrote in #note-11:
> The multiple GitHub Actions environments show the failure of make check.
commit:391abc543cea118a9cd7d6310acadbfa352668ef is needed.
nobu (Nobuyoshi Nakada)
09:15 PM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
> My understanding is sockets are buffered, so normally you'll see EAGAIN only if you saturate them.
For `write` this seems totally reasonable, but I was also checking `read` which you'd expect to block more often.
> ...
Yes, agree...
ioquatix (Samuel Williams)
04:38 PM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
> In my testing, comparing `io_uring` `io_read` and `io_write` operations, perform about 20% worse in practice in my benchmarks. This was surprising to me. My current understanding as to why it's slow is because when we perform `io_read`... ciconia (Sharon Rosner)
10:05 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
Here are some summaries from `strace -c`:
Using non-blocking sockets (note the errors column which indicates EAGAIN):
```
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ---...
ioquatix (Samuel Williams)
09:16 AM Bug #17664: Behavior of sockets changed in Ruby 3.0 to non-blocking
I have researched this topic today and I'm going to share some of my notes and thoughts.
Firstly, with regards to performance, the most important platform is Linux, and I personally believe that `io_uring` is going to be the most import...
ioquatix (Samuel Williams)
11:28 AM Revision c2ed5ab0 (git): [ruby/date] Fixed markups for bold [ci skip]
https://github.com/ruby/date/commit/404f9d2096 nobu (Nobuyoshi Nakada)
11:28 AM Revision 8065670c (git): [ruby/date] Fix comparison with Float::INFINITY
Fixes [Bug #17945]
https://github.com/ruby/date/commit/953d907238
jeremyevans (Jeremy Evans)
11:12 AM Revision 49ba7cd2 (git): [DOC] Move mailing-list URLs to footnotes [ci skip]
nobu (Nobuyoshi Nakada)
10:56 AM Revision 69038501 (git): Move core_assertions.rb from test/unit
This file contains extended assertions for ruby core which do not
belong to test/unit.
nobu (Nobuyoshi Nakada)
09:26 AM Revision b32ae989 (git): Move rb_str_escape function declaration
S_H_ (Shun Hiraoka)
09:11 AM Bug #12261 (Closed): Windows: File.dirname with 2+ / or 2+ \\ will return // or \\\\
It is a different thing from single '/' on Windows, like drive letters. nobu (Nobuyoshi Nakada)

07/10/2021

09:12 PM Revision e330bbee (git): * 2021-07-11 [ci skip]
git[bot]
09:12 PM Revision 947d0198 (git): [ruby/irb] Show LANG and LC_ALL env by irb_info
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
https://github.com/ruby/irb/commit/b431742430
aycabta (aycabta .)
12:02 PM Revision 491ab282 (git): Remove half-defined Reline on LoadError
When fiddle is not avaiable, reline/terminfo depending on it also
fails.
nobu (Nobuyoshi Nakada)
10:14 AM Revision d172f8ac (git): Skip fiddle tests if fiddle is not avaiable
nobu (Nobuyoshi Nakada)
08:42 AM Feature #18033: Time.new to parse a string
```
user system total real
Time.iso8601 0.006919 0.000185 0.007104 ( 0.007091)
Time.parse 0.018338 0.000207 0.018545 ( 0.018590)
Time.new 0.003671 0.000069 0.003740 ( 0.00...
byroot (Jean Boussier)
08:39 AM Revision cb3eb3d7 (git): Get rid of conflict in ccan/list
Undefine LIST_HEAD from BSD-origin sys/queue.h. nobu (Nobuyoshi Nakada)
04:44 AM Bug #17530 (Closed): irb handles << incorrectly with variable as identifier
jeremyevans0 (Jeremy Evans)
04:44 AM Revision 9c285150 (git): * 2021-07-10 [ci skip]
git[bot]
04:44 AM Revision 289fd3c8 (git): [ruby/irb] Pass local variables from workspace binding to lexer
This fixes at least an issue where irb will incorrectly assume
code opens a heredoc when it does not, such as this code:
```ruby
s1 = 'testing'
s2 = 'this'
s2 <<s1
p s1
s1
```
Ruby parses the `s2 <<s1` as `s2.<<(s1)`, not as a heredoc,...
jeremyevans (Jeremy Evans)
03:30 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
Add notes about buffer allocation. ioquatix (Samuel Williams)
01:20 AM Bug #15856: Performance of redundant `Kernel.require` is slow when many gems are activated
We've still been using the David Rodriguez patch with no reported issues around it for the past ~2 years or so.
It is likely that we don't hit the Digest issue due to the way we already have to play games with that built-in gem due to...
lamont (Lamont Granquist)
12:01 AM Bug #18031: Nested TracePoint#enable with define_method target crashes
I've submitted a pull request to fix this crash: https://github.com/ruby/ruby/pull/4640
I noticed two other issues:
1. Tracepoints leak memory. I think this is definitely a bug. Example code:
```ruby
loop do
tp = Trac...
jeremyevans0 (Jeremy Evans)

07/09/2021

11:51 PM Bug #18028: test/ruby/enc/test_emoji_breaks.rb does not deal with Unicode ranges in file emoji-sequences.txt
One of the testing scripts (`test/ruby/enc/test_emoji_break.rb`) that the version declared internally in a data files matches the version we expect. In that context, I ran into the following problem, reported via standard channels to the... duerst (Martin Dürst)
09:33 PM Feature #17370: Introduce non-blocking `Addrinfo.getaddrinfo` and related methods.
This was merged and basic testing seems to work well. More evaluation is required. ioquatix (Samuel Williams)
03:51 PM Bug #15993 (Open): 'require' doesn't work if there are Cyrillic chars in the path to Ruby dir
inversion (Yura Babak) wrote in #note-8:
> jeremyevans0 (Jeremy Evans) wrote in #note-7:
> ...
I was able to reproduce the issue, but only when I installed Ruby into a path not supported by the `Windows-1251` encoding:
```
d:\Евген...
jeremyevans0 (Jeremy Evans)
11:12 AM Bug #15993: 'require' doesn't work if there are Cyrillic chars in the path to Ruby dir
jeremyevans0 (Jeremy Evans) wrote in #note-7:
> This appears to be fixed starting in Ruby 2.7 (also works in 3.0):

**Still, there is a problem.**
`require 'bundler/setup'` fails if `LOAD_PATH` or `Gem.dir` contain Cyrillic chars, t...
inversion (Yura Babak)
02:49 PM Bug #18036: Pthread fibers become invalid on fork - different from normal fibers.
I'm fine having `fork` raise an exception when called from non-main fiber if the pthread coroutine implementation is used, and issue a verbose warning in other cases. jeremyevans0 (Jeremy Evans)
09:45 AM Bug #18036 (Closed): Pthread fibers become invalid on fork - different from normal fibers.
Fork is notoriously hard to use correctly and I most cases we should be encouraging `Process#spawn`. However, it does have use cases for example pre-fork model of server design. So there are some valid usage at least.
We recently intr...
ioquatix (Samuel Williams)
09:51 AM Feature #18035: Introduce general model/semantic for immutability.
Regarding method chains, one thing that's always bothered me a bit is this:
```ruby
def foo(*arguments)
pp object_id: arguments.object_id, frozen: arguments.frozen?
end
arguments = [1, 2, 3].freeze
pp object_id: arguments.object_id, f...
ioquatix (Samuel Williams)
08:48 AM Feature #18035: Introduce general model/semantic for immutability.
This is mostly just a generic comment that may not be very helpful, but I can only say that I fully agree. Even before talking about parallel stuff (thread/fiber), knowing some object is frozen can be of help when optimizing.
One thin...
duerst (Martin Dürst)
08:11 AM Feature #18035: Introduce general model/semantic for immutability.
Fix title. ioquatix (Samuel Williams)
08:10 AM Feature #18035 (Open): Introduce general model/semantic for immutability.
It would be good to establish some rules around mutability, immutability, frozen, and deep frozen in Ruby.
I see time and time again, incorrect assumptions about how this works in production code. Constants that aren't really constant...
ioquatix (Samuel Williams)
08:51 AM Feature #18033: Time.new to parse a string
ioquatix (Samuel Williams) wrote in #note-4:
> > Time.parse often results in unintentional/surprising results.
> ...
Yes, it seems by design, and changing the behavior will just break something.
I thought that the same name but differ...
nobu (Nobuyoshi Nakada)
08:29 AM Feature #18033: Time.new to parse a string
> Time.parse often results in unintentional/surprising results.
Can we change it so that it doesn't return unintentional/surprising results? I realise this might be impossible without extending the interface... e.g. `Time.parse(..., sur...
ioquatix (Samuel Williams)
07:51 AM Feature #18033: Time.new to parse a string
ioquatix (Samuel Williams) wrote in #note-2:
> But does any other `#new` implementation work this way? Can we fix `Time#parse`? I wonder if user will be confused, should they use `Time.parse` or `Time.new`?
The reason not to "fix `Ti...
nobu (Nobuyoshi Nakada)
06:30 AM Feature #18033: Time.new to parse a string
It looks like good improvement.
But does any other `#new` implementation work this way? Can we fix `Time#parse`? I wonder if user will be confused, should they use `Time.parse` or `Time.new`?
Why is `Time.parse` so slow?
This se...
ioquatix (Samuel Williams)
06:13 AM Feature #18033 (Closed): Time.new to parse a string
Make `Time.new` parse `Time#inspect` and ISO-8601 like strings.
* `Time.iso8601` and `Time.parse` need an extension library, `date`.
* `Time.iso8601` can't parse `Time#inspect` string.
* `Time.parse` often results in unintentional/s...
nobu (Nobuyoshi Nakada)
07:22 AM Revision 60722391 (git): Remove no longer needed include files (Unicode Version 12.1.0)
duerst (Martin Dürst)
07:14 AM Bug #18032: Openstruct is ~20..25x slower with Ruby 3.0.0 and 3.0.1 compared to earlier versions
@mame @marcandre that is unfortunate, because initializing from a hash is probably the most frequently used form.
I agree on correctness over perfomance - I ran into the issue with pre-defined methods before :)
Thank you for takin...
TiloS (Tilo S)
06:34 AM Bug #18032 (Rejected): Openstruct is ~20..25x slower with Ruby 3.0.0 and 3.0.1 compared to earlier versions
@mame is correct that #15409 was a concern, but this is mainly due to #12136 and listed in the release notes for 3.0.
Basically we have prioritized correctness over performance and came back to a solution similar to that of Ruby 2.2.
...
marcandre (Marc-Andre Lafortune)
05:41 AM Bug #18032 (Assigned): Openstruct is ~20..25x slower with Ruby 3.0.0 and 3.0.1 compared to earlier versions
Maybe due to this change: https://bugs.ruby-lang.org/issues/15409#note-9
> reverts lazy initialization and restores overriding private methods
I'm assigning this ticket to @marcandre.
BTW, OpenStruct is now considered as "an ant...
mame (Yusuke Endoh)
05:04 AM Bug #18032 (Rejected): Openstruct is ~20..25x slower with Ruby 3.0.0 and 3.0.1 compared to earlier versions
Doing some timings with different Ruby versions, I noticed that when using Ruby 3.0.0 and 3.0.1
the time to create OpenStruct instances has significantly increased by 20..25x
```
0.936016 seconds elapsed for Class.new (Ruby 2.7.2...
TiloS (Tilo S)
07:01 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
Okay, the PR is ready for review: https://github.com/ruby/ruby/pull/4621
Here is how it's used:
- `uring.c`: https://github.com/socketry/event/blob/b40bb0b174aed4cc3fed0f0eaafdd73f2a6a6f4c/ext/event/backend/uring.c#L265-L365
- `epoll.c...
ioquatix (Samuel Williams)
06:47 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
Does `FFI::Pointer` have locking mechanism suitable for IO? Does it have a mutability model suitable for reading and writing? Does it allocate page aligned mapped memory suitable for zero-copy IO?
Even if I agree that it was suitable,...
ioquatix (Samuel Williams)
06:39 AM Revision 23ed8ef4 (git): Update bundled_gems
znz (Kazuhiro NISHIYAMA)
06:16 AM Bug #18034 (Closed): Segmentation fault fiddle with `--enable-bundled-libffi` and macOS
I always got a segmentation fault with `make test-all TESTS="fiddle"` and `--enable-bundled-libffi` on macOS.
https://gist.github.com/hsbt/9f7dc9f62e9197b92c5a99384972dad3
hsbt (Hiroshi SHIBATA)

07/08/2021

11:58 PM Feature #17924: Range#infinite?
This is a partial duplicate of this ticket.
https://bugs.ruby-lang.org/issues/15864
matz's comment: https://bugs.ruby-lang.org/issues/15864#note-7
osyo (manga osyo)
09:56 PM Feature #17924: Range#infinite?
Seems reasonable to me.
PR at: https://github.com/ruby/ruby/pull/4535
marcandre (Marc-Andre Lafortune)
11:54 PM Revision f3e4c340 (git): * 2021-07-09 [ci skip]
git[bot]
11:53 PM Bug #18031 (Closed): Nested TracePoint#enable with define_method target crashes
Found this crash while looking at tracing related code.
Haven't had time to dig deeper, so I'm making a ticket for now.
```ruby
one = TracePoint.new(:call) {}
two = TracePoint.new(:call) {}
obj = Object.new
obj.define_singleton...
alanwu (Alan Wu)
11:52 PM Revision fbe9b691 (git): Added missing declarations in readline.h bundled with macOS 10.13
nobu (Nobuyoshi Nakada)
07:38 PM Bug #18030 (Closed): Backport 1fac99afdae2671a9ca86bead5bde4d0e2eff1b4
jeremyevans0 (Jeremy Evans)
06:30 PM Bug #18030 (Closed): Backport 1fac99afdae2671a9ca86bead5bde4d0e2eff1b4
Ruby 3.0 is impacted by this bug too.
Ruby 2.7 and older is fine.
https://github.com/ruby/ruby/pull/4342
repro script
```ruby
require 'objspace'
ObjectSpace.trace_object_allocations do
GC.stress = true
class A
de...
byroot (Jean Boussier)
03:29 PM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
ioquatix (Samuel Williams) wrote in #note-5:
> why is there interest in `IO::Buffer` from other people?
I was not aware of that, did people specifically ask for IO::Buffer?
> ...
It's very efficient, most likely as efficient or be...
Eregon (Benoit Daloze)
10:55 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
@eregon thanks for your discussion.
Something like this is required for the fiber scheduler interface. It's also required for efficient IO. Many people have asked for this feature, maybe there is something I don't know but why they di...
ioquatix (Samuel Williams)
10:39 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
Does it need to be core, or could it be behind a `require` like `require 'io/buffer'`?
The reason I'm asking is the C code could be reused if it's an extension (behind a require) in TruffleRuby, but not if it is core (to avoid loading C...
Eregon (Benoit Daloze)
11:21 AM Revision a7c85ccb (git): Update bundled_gems
znz (Kazuhiro NISHIYAMA)
10:40 AM Feature #17873: Update of default gems in Ruby 3.1
At first glance, it looks specific to `bundler/inline`, when installing gems and using gems happens in the same process. I'll fix it by vendoring `net/http` and its dependencies under the `Bundler::` namespace like we do with the other p... deivid (David Rodríguez)
09:18 AM Revision 524513be (git): mkmf.rb: try linking at try_var
To check for variables accessible but not declared. nobu (Nobuyoshi Nakada)
09:11 AM Feature #18029 (Closed): Update Unicode Emoji version to 13.1
The current version of Unicode Emoji is 13.1.
This was announced here:
http://blog.unicode.org/2020/09/emoji-131-now-final-to-be-widely.html
For more details, see also:
https://www.unicode.org/emoji/charts-13.1/emoji-released.html
I...
duerst (Martin Dürst)
08:58 AM Revision d6cf4c0c (git): rbinstall.rb: just call File.basename directly
nobu (Nobuyoshi Nakada)
08:57 AM Revision b90ca734 (git): Ubuntu: remove pthread coroutine which is done in Compilations
nobu (Nobuyoshi Nakada)
07:47 AM Revision 7a2383b5 (git): Split test of Hash.[] and add assertion for default value/proc
For a73f13c9070a5189947641638398cbffb8d012d8. nobu (Nobuyoshi Nakada)
07:43 AM Revision 771f6dd7 (git): [ruby/stringio] Suppress a sign-compare warning
https://github.com/ruby/stringio/commit/a88c070e0b nobu (Nobuyoshi Nakada)
06:30 AM Bug #18028 (Closed): test/ruby/enc/test_emoji_breaks.rb does not deal with Unicode ranges in file emoji-sequences.txt
While working on issue #17750, I found out that test_emoji_breaks.rb does not deal with Unicode ranges in the file emoji-sequences.txt. That means that the tests may not cover all emoji. This should eventually be fixed, but requires some... duerst (Martin Dürst)
06:25 AM Bug #18027 (Closed): test/ruby/enc/test_emoji_breaks.rb does not use the file emoji-variation-sequences.txt
While working on issue #17750, I found out that the number of assertions is essentially the same whether or not the file emoji-variation-sequences.txt is included in the files used to create the test data. This is the case both before an... duerst (Martin Dürst)
05:45 AM Revision 3b36e34b (git): Adapt test_emoji_breaks.rb to Unicode 13.0.0/Emoji 13.0
- Add UNICODE_VERSION,... to deal with new location of some
of the emoji-related data files.
- Introduce class BreakFile to handle various file properties.
- Adapt main code to use BreakFile.
duerst (Martin Dürst)
05:45 AM Revision 146a943d (git): Fix ruby_version guards in Unicode/Emoji version specs
Correct version guards in ruby_version in Unicode/Emoji version
specs to correctly use exclusive range endings.
duerst (Martin Dürst)
05:45 AM Revision 323ff38c (git): Add directory and include files for Unicode version 13.0.0
- Add directory enc/unicode/13.0.0
- Add include files casefold.h and name2ctype.h for Unicode
version 13.0.0
duerst (Martin Dürst)
05:45 AM Revision ba357bac (git): Add new Unicode/Emoji version checks to spec/ruby/library/rbconfig
- Limit Unicode version 12.1.0 to Ruby versions 2.6.3 - 3.0
- Check that Ruby version 3.1 has Unicode version 13.0.0
- Limit Unicode Emoji version 12.1 to Ruby versions 2.7 - 3.0
- Check that Ruby version 3.1 has Unicode Emoji version 13.0
duerst (Martin Dürst)
05:45 AM Revision 99cd0e1f (git): Update lib/unicode_normalize/tables.rb to Unicode version 13.0.0
duerst (Martin Dürst)
05:45 AM Revision 94fc4b18 (git): Adjust tool/enc-unicode.rb to deal with new location of some emoji files
- Change location of file emoji-data.txt
- Change range of files in emoji directory
([stz] is for emoji-sequences.txt, emoji-test.txt, and emoji-zwj-sequences.txt)
- Make sure that version of all emoji files is checked against Emoji ve...
duerst (Martin Dürst)
05:45 AM Revision b6113a3f (git): Update common.mk to deal with Unicode version 13.0.0
- Change Unicode version to 13.0.0
- Change Emoji version to 13.0
- Adjust to moved locations of emoji-data.txt and emoji-variation-sequences.txt
by splitting these files from $(UNICODE_EMOJI_FILES) and putting them into
a new group ...
duerst (Martin Dürst)
 

Also available in: Atom