Activity
From 10/21/2021 to 10/27/2021
10/27/2021
-
11:58 PM Revision b74bf8dd (git): Follow up the RString change [ci skip]
- Since 46b66eb9e8e6de2d5750591e532310e8f8599d90, already `ary` has
been enclosed in `embed`. -
11:35 PM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
- I've submitted a pull request that implements @matz's idea of `public?`, `private?`, and `protected?`: https://github.com/ruby/ruby/pull/5040
-
11:16 PM Feature #11919: Passing a module directly
- I think this feature would be useful, and submitted a pull request to implement it: https://github.com/ruby/ruby/pull/5039
-
10:50 PM Feature #17380 (Closed): Useful `include/prepend` in `refine`
-
08:09 PM Feature #11782 (Closed): String#+@ and String#-@
-
07:42 PM Feature #12495 (Open): Make "private" return the arguments again, for chaining
- I think it makes sense to modify private/protected/public/module_function to be like `def` and return the receiver. I've submitted a pull request for this that builds on @herwinw's patch: https://github.com/ruby/ruby/pull/5037
-
07:40 PM Bug #18274 (Assigned): Time.new initializes the date incorrectly after a leap day with a positive UTC offset
- This appears to be caused by commit:bf789af28a3b7108186743f3cb4fd2f649afdd20. Reverting the commit fixes the issue. Assigning to @nobu to determine whether he wants to revert or try to debug.
-
07:05 PM Bug #18274 (Closed): Time.new initializes the date incorrectly after a leap day with a positive UTC offset
- With 3.1.0dev revision 30942c19c0, `Time.new` can initialize the date incorrectly on the day following a leap day. The year 2000 is a leap year. 2000-03-01 00:00:00 +01:00 is considered to be 2000-02-29 00:00:00 +0100:
``` ruby
Time.... -
07:27 PM Feature #18275 (Assigned): Add an option to define_method to not capture the surrounding environment
- Invoking `define_method` will capture the surrounding environment, making sure we have access to anything defined in that surrounding scope. However, that’s not always necessary. There are uses for `define_method` where the surrounding e...
-
06:05 PM Bug #16936: `make test-all TESTS="-n !/Foo#method/"` not skipping the test case
- Setting the backport flag, because it is useful to disable some test cases in Fedora package, if needed (and it will be included there soonish). But it is not super important. So feel free to ignore this backport request. Thx
-
10:56 AM Bug #16936 (Closed): `make test-all TESTS="-n !/Foo#method/"` not skipping the test case - Applied in changeset commit:git|5086c25f6015558877f85c3f1c014780b08fd3ce.
----------
Properly exclude test cases.
Lets consider the following scenario:
~~~
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite
OpenS... - 05:00 PM Revision 30942c19 (git): * 2021-10-28 [ci skip]
-
05:00 PM Revision fdbae385 (git): YJIT: move --yjit-stats at_exit call into Ruby
- This change fixes `-v --yjit-stats`. Previously in this situation,
YJIT._print_stats wasn't defined as yjit.rb is not evaluated when there
is only "-v" and no Ruby code to run. -
05:00 PM Revision 6875d6d1 (git): Expect multi-line -v output for -DRUBY_DEVEL in tests
- On -DRUBY_DEVEL builds, `ruby -v` can print extra info about the last
commit on a separate line, breaking some tests that expect a single
line. Assert only the first line instead. -
05:00 PM Revision 0d9913e5 (git): Fix indentation in test
-
04:52 PM Feature #12533 (Closed): Refinements: allow modules inclusion, in which the module can call internal methods which it defines.
- `Refinement#include` has been deprecated. `Refinement#import_methods` can now be used to handle this use case:
```ruby
module Extensions
def vegetables ; potatoe ; end
def potatoe ; "potatoe" ; end
end
module Refinary
re... -
04:47 PM Feature #12929 (Rejected): ternary should look ahead w/in a block (and not care about newlines)
-
04:45 PM Feature #12971 (Closed): (Refactoring) Remove `defined?` checks from observer.rb
-
04:33 PM Bug #18268 (Closed): Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
-
04:31 PM Bug #18271 (Closed): Regexp inconsistency (repeatable)
-
12:52 PM Bug #18271: Regexp inconsistency (repeatable)
- `$1` is global variable, `"#{$1}"` is evaluated BEFORE the method call, making a string "whatever was in `$1` at that moment":
```ruby
st = 'A. C. Cobble'
'foobar' =~ /f(.{2})/ # unrelated regex call, sets $1 to "oo"
st.gsub(/. (... -
11:45 AM Bug #18271 (Closed): Regexp inconsistency (repeatable)
- han:~/au> irb >> st = 'A. C. Cobble'
=> "A. C. Cobb... -
03:09 PM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
- We still support `digest/md5` and `digest/rmd160`, and I doubt those are more secure than SHA-1. If the operating system OpenSSL doesn't include support for old digests, then Ruby's openssl extension will not either (though the digest e...
-
01:06 PM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
- AFAIK SHA-1 is used in Bundler/RubyGems only to hash filepath for gem clones and could be replaced in the future. It was recently vendored in bundler and could be vendored into RubyGems as well.
It can be changed to different hashing ... -
12:00 PM Feature #18272 (Third Party's Issue): Please replace unsafe SHA1 with another digest algorithm
- ## Context
When working on a new version of RHEL (with Ruby 3.0), the requirement is to have a better security (remove unsafe digests or limit the use for non-security purposes). This would be achieved with using OpenSSL 3.0 as well, wh... -
02:57 PM Revision 367884c6 (git): Fix yjit_asm_tests.c as C99 compliant (#5033)
- * rb_bug should be variadic
* Prefer ANSI-style prototypes over old K&R-style definitions
* Add missing argument types -
02:55 PM Revision a6104b39 (git): YJIT: Support newhash with values (#5029)
- * YJIT: Implement newhash with values
* YJIT: Add test of duphash
* Fix compilation on macos/clang -
02:31 PM Feature #16252: Hash#partition should return hashes
- FWIW, current usage in gems is consistent with Hash, but I did find one incompatibility in fugit-1.3.3.
actionpack-6.0.0/lib/action_dispatch/routing/mapper.rb
267: constraints.partition do |key, requirement|
subarrays then ... -
02:07 PM Feature #16252: Hash#partition should return hashes
- I think it's ok that we don't have some particular rules for Enumerables to return their own class. Rather than consistently follow a decision, I think it's good to evaluate each case on its own merits. That said, I can certainly imagine...
-
07:03 AM Feature #16252: Hash#partition should return hashes
- I am afraid we don't have some particular rules for Enumerables to return their own class:
```ruby
Set[*1..8].select(&:odd?)
# => [1, 3, 5, 7] -- not a Set
```
Making `Hash#select` and `#reject` return hashes was an ad-hoc decision ... -
01:27 PM Feature #18273 (Closed): Class#subclasses
- Ref: https://github.com/rails/rails/pull/43481
Something we forgot to mention in [Feature #14394], is either a parameter or another method to only get direct descendants.
Active Support has been offering `Class.subclasses` as:
`... -
11:02 AM Feature #17351: Deprecate Random::DEFAULT
- Just realized, another way to write that roll method (without deprecation) is:
```ruby
def roll rnd = Random
rnd.rand(6)+1
end
```
I also noticed deprecated constants are no longer warned by default as they depend on `Warning[:... - 10:56 AM Revision 5086c25f (git): Properly exclude test cases.
- Lets consider the following scenario:
~~~
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):001:0> p suite
OpenSSL::TestEC
=> OpenSSL::TestEC
irb(#<Test::Unit::AutoRunner::Runner:0x0000560f68afc3c8>):002:0> p all_test_methods
[... -
07:55 AM Revision 9fc2f537 (git): Sort URLs by issue numbers [ci skip]
-
07:30 AM Feature #18137: A new method to check Proc is isolated or not
- I'm afraid that we can define "Isolated Proc".
As I know there are several versions.
1) self
a: self is shareable
b: self is not shareable
2) reference to outer scope variables
x: no references
y: has references, but read-on... -
07:15 AM Feature #18137: A new method to check Proc is isolated or not
- `Ractor.shareable?(proc_object)` is not enough?
-
07:28 AM Revision 5ff47e0c (git): Check old-style definitions
-
07:22 AM Revision 219f5415 (git): Update stdlib versions
-
07:13 AM Revision 489e5e3a (git): the core problem is the Proc is not shareable
-
06:44 AM Revision 9541b3b7 (git): random.c: simplify Random object deallocation
- This is a follow-up for commit 265c0022390e ("Do not allocate
ractor-local storage in dfree function during GC", 2021-02-09).
The comparison with the default rb_random_mt_t is useless in the first
place, since it is never equal: no actu... -
05:47 AM Revision ed5f8eaf (git): [rubygems/rubygems] Don't warn when a lockfile is locked to a dev version
- Even if it's newer than the running versions. Dev versions are not
released to rubygems.org, so the warning message suggests a command that
doesn't work. And dev versions are currently non deterministic
(2.3.0.dev can be many different v... -
02:29 AM Revision 4c32fcb8 (git): [ruby/error_highlight] Make the formatter mechanism support Ractor
- Now the formatter configuration is per Ractor. DefaultFormatter is used
if not set.
DefaultFormatter#message_for is now a class method to allow sub-Ractors
to call the method.
https://github.com/ruby/error_highlight/commit/9fbaa8ab7c -
01:16 AM Revision 33844f30 (git): Prefer ANSI-style prototypes over old K&R-style definitions
10/26/2021
-
08:27 PM Feature #18254 (Closed): Add an `offset` parameter to String#unpack and String#unpack1
- Applied in changeset commit:git|e5319dc9856298f38aa9cdc6ed55e39ad0e8e070.
----------
pack.c: add an offset argument to unpack and unpack1
[Feature #18254]
This is useful to avoid repeteadly copying strings when parsing binary formats -
08:27 PM Revision e5319dc9 (git): pack.c: add an offset argument to unpack and unpack1
- [Feature #18254]
This is useful to avoid repeteadly copying strings when parsing binary formats -
07:35 PM Feature #14394 (Closed): Class.descendants
- Applied in changeset commit:git|717ab0bb2ee63dfe76076e0c9f91fbac3a0de4fd.
----------
Add Class#descendants
Doesn't include receiver or singleton classes.
Implements [Feature #14394]
Co-authored-by: fatkodima <fatkodima123@gmail.com>
... -
07:35 PM Bug #18264 (Closed): TracePoint leaks memory
- Applied in changeset commit:git|a4d5ee4f31bf3ff36c1a8c8fe3cda16aa1016b12.
----------
[Bug #18264] Fix memory leak in TracePoint
TracePoint leaks memory because it allocates a `rb_tp_t` struct
without ever freeing it (it is created with... -
05:21 AM Bug #18264: TracePoint leaks memory
- Good catch.
~~An empty function was replaced with `RUBY_TYPED_NEVER_FREE` at commit:5c1b9b38d69d, but an empty free function means that the instance has nothing others to free, and it should equal `RUBY_TYPED_DEFAULT_FREE`.~~ -
07:35 PM Revision 717ab0bb (git): Add Class#descendants
- Doesn't include receiver or singleton classes.
Implements [Feature #14394]
Co-authored-by: fatkodima <fatkodima123@gmail.com>
Co-authored-by: Benoit Daloze <eregontp@gmail.com> -
07:29 PM Feature #16663: Add block or filtered forms of Kernel#caller to allow early bail-out
- I think this is a useful feature. I submitted a pull request to implement `caller`/`caller_locations` yielding to a passed block: https://github.com/ruby/ruby/pull/5031
-
07:12 PM Feature #12737: Module#defined_refinements
- Should the code in the description be `p M.defined_refinements`?
I'm not sure to understand the use case, isn't `using M` doing the same as that `for`? -
02:21 AM Feature #12737 (Assigned): Module#defined_refinements
- Matz, can I add Module#defined_refinements?
-
07:08 PM Bug #18267: Argument forwarding requires parenthesis on method definitions
- On a more serious note, `def=` also has this restriction:
```
$ ruby -e 'def m(a) = 2'
OK
$ ruby -e 'def m a = 2'
-e:1: syntax error, unexpected end-of-input
$ ruby -e 'def m a = a'
-e:1: circular argument reference - a
-e:1: syn... -
07:03 PM Bug #18267: Argument forwarding requires parenthesis on method definitions
- [joke] Maybe a reason to be a little bit more consistent about Ruby syntax and always use parens for method definitions? :D [/joke]
-
06:50 PM Bug #18267: Argument forwarding requires parenthesis on method definitions
- It was known when the feature was introduced https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/d1ae2bc27fd4183e6abb9e83691e192bfe1e5316/diff, @mame added a NEWS entry specifically for it.
I presume it would clas... -
08:36 AM Bug #18267: Argument forwarding requires parenthesis on method definitions
- I agree that this is a bug.
Matz.
-
06:01 PM Bug #18269: trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
- No matter how we implement it (making each instruction unique, telling the compiler to not perform de-duplication if possible, etc.), one direction would be to make every address of trace instructions unique like you suggested. I would n...
-
05:01 PM Bug #18269: trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
- I guess one option would be to have each of the optimized trace instructions use code specific to each instruction, so that the compiler would never merge the instructions. @k0kubun, do you think that would make sense? I'm not sure wha...
-
04:08 AM Bug #18269 (Closed): trace_opt_not and trace_opt_regexpmatch2 insns are indistinguishable
- On some platforms and compiler tool chain, `RubyVM::ISeq#to_a` shows a wrong instruction.
```
set_trace_func(Proc.new { })
set_trace_func(nil)
iseq = RubyVM::InstructionSequence.compile("/true/ =~ 'true'")
pp iseq.to_a.last
# e... -
05:11 PM Revision a4d5ee4f (git): [Bug #18264] Fix memory leak in TracePoint
- TracePoint leaks memory because it allocates a `rb_tp_t` struct
without ever freeing it (it is created with `RUBY_TYPED_NEVER_FREE`). - 05:10 PM Revision f180fa6c (git): Fix Typo
- 05:05 PM Revision 66e31850 (git): * 2021-10-27 [ci skip]
-
05:05 PM Revision 26353c75 (git): Embed bare `double` if `sizeof(double) == sizeof(VALUE)`
-
05:05 PM Revision e3a783b1 (git): Align `RFloat` at VALUE boundary
-
04:31 PM Bug #16497: StringIO#internal_encoding is broken (more severely in 2.7)
- @nobu @naruse @byroot Year after, this is still broken in the recent head.
```ruby
RUBY_DESCRIPTION
# => "ruby 3.1.0dev (2021-10-26T11:17:00Z master afdca0e780) [x86_64-linux]"
str = 'Україна'.encode('KOI8-U')
# => "\xF5\xCB\xD2\x... -
02:44 PM Misc #18266: DevelopersMeeting20211118Japan
- * [Feature #16252] Hash#partition should return hashes (dan0042)
* More consistent with `select`/`reject`
* More in line with existing usage (most people seem to convert the results to hashes)
* More efficient than arrays of arrays... -
10:39 AM Misc #18266: DevelopersMeeting20211118Japan
- * [Bug #18270] Refinement#{extend_object,append_features,prepend_features} should be removed
* Refinements are different from normal modules, so it's potentially dangerous to use refinements as mixins.
* Why not deprecate them in Rub... -
02:28 AM Misc #18266: DevelopersMeeting20211118Japan
- * [Feature #12737] Module#defined_refinements (shugo)
* It's good to have for debugging purposes. Users can see refinements defined in a module in irb etc. without reading code.
* [Feature #14332] Module.used_refinements to list refin... -
02:42 PM Feature #16252: Hash#partition should return hashes
- Two years later, and today when using hash.partition I was surprised that it didn't return two hashes.
This has to be just an oversight, right? -
11:17 AM Revision afdca0e7 (git): Fix unaligned access to `double` in RFloat
-
11:17 AM Revision e1ecda29 (git): Make new object for negated float as `Float` is always frozen now
-
10:36 AM Revision 37395ffa (git): Make the metaclass of Refinement explicitly
- Otherwise, singleton methods of Module are not inherited unless
Refinement.singleton_class is called. -
10:21 AM Bug #16936 (Open): `make test-all TESTS="-n !/Foo#method/"` not skipping the test case
- This was somehow swept under the carpet, but it is still unresolved. I have opened PR with a fix:
https://github.com/ruby/ruby/pull/5026 -
10:20 AM Feature #18270 (Closed): Refinement#{extend_object,append_features,prepend_features} should be removed
- Refinement#{extend_object,append_features,prepend_features} are not useful and should be removed.
How about to deprecate them in Ruby 3.1 and remove in Ruby 3.1?
-
08:59 AM Bug #18170: Exception#inspect should not include newlines
- @mame thanks for all your work on this issue.
> Incompatibility. In general, users should not depend on the return value of #inspect. That being said, we don't want to introduce incompatibility unnecessarily. According to my PR, the s... -
08:06 AM Revision 8a49c7e4 (git): Revert "introduce check code for mysterious EBADF"
- This reverts commit 7864efa105921eb3900c843126f2e0db02b9c6ae.
-
08:06 AM Revision d1424f7f (git): Revert "check other IO#close calls"
- This reverts commit a1c4cab11d613d7df037a81a770ee44a23a2e9be.
-
07:05 AM Bug #18268: Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
- Thank you for the information source. This looks like a breaking change in Ruby 3.1, but it's okay if it's a considered impact.
-
03:09 AM Bug #18268: Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
- It appears to have been changed at https://github.com/ruby/ruby/pull/1509.
-
02:55 AM Bug #18268 (Closed): Behavior change when `each_cons` and `break ... if false` are combined in Ruby 3.1
- I'm not sure the details, but the following behavior has changed between Ruby 3.0.2 (and earlier) and Ruby 3.1.0-dev.
```ruby
# example.rb
def foo
[1, 2].each_cons(2) do |one, two|
break one if false
end
end
p foo
``... -
05:43 AM Revision 049e1f85 (git): Fix typo
-
02:39 AM Revision 5c2b6441 (git): fix random EBADF problem
- ```ruby
r, w = IO.pipe
r.close
IO.for_fd(w.fileno).close
```
This code closes a file descriptor `w.fileno`, but `w` doesn't know
the closing. Another code can open same file descriptor with opening
file (`f`). After t... -
12:30 AM Revision 7d4c5920 (git): improve doc coverage [ci skip]
- Just split the comment for struct's one and array's one.
-
12:30 AM Revision a0029ae2 (git): just another evidence that @shyouhei is an idiot [ci skip]
- (gdb) ptype/o struct RString
/* offset | size */ type = struct RString {
/* 0 | 16 */ struct RBasic {
/* 0 | 8 */ VALUE flags;
/* 8 | 8 */ const VALUE klass;
... -
12:05 AM Revision b49ec78f (git): more on eliminating $make
-
12:05 AM Revision b682f763 (git): GNUMAKEFLAGS is too new for mac
- It is relatively well known that mac does not update its command line
tools, and make is no exception. They ship GNU make 3.x, which didn't
yet implemented GNUMAKEFLAGS.
Resort to MAKEFLAGS there. -
12:05 AM Revision 748688a6 (git): .github: use GNUMAKEFLAGS instead of JOBS
- A bit readable to me.
See also https://github.com/ruby/ruby/pull/4880
10/25/2021
-
11:52 PM Bug #18267 (Closed): Argument forwarding requires parenthesis on method definitions
- I like to write my method definitions without parenthesis. For example:
```ruby
def foo bar
# ...
end
```
I tried to use `...`, but it doesn't work. For example if I do:
```ruby
def call a, ...
a.nil?(...)
end
```
... - 11:01 PM Revision 92ec0105 (git): [rubygems/rubygems] Add support to build and sign certificates with multiple key algorithms
- https://github.com/rubygems/rubygems/commit/967876f15d
Co-Authored-By: Frederik Dudzik <frederik.dudzik@shopify.com> -
06:53 PM Revision 10fe8495 (git): Update YJIT code owners. Revert accidental commit.
-
06:29 PM Revision 722d43ad (git): Test PR
-
06:28 PM Revision cf52a2c9 (git): Add code owners for YJIT sources
- Code owners are automatically tagged as reviewers on pull requests
-
06:27 PM Bug #18263 (Third Party's Issue): "make install" crashed when Ruby3.0.2 clean install. (in japanese)
- It looks like this may be an issue with the embedded version of libyaml that Ruby ships. If so, it should be fixed upstream in libyaml (https://github.com/yaml/libyaml), and then a pull request or issue should be filed to https://github...
-
05:36 PM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- Agreed. The goal is to avoid slicing anyway, and to slice you need to know how many bytes you consumed.
If there's no other objections I'll merge in a day or two. -
04:55 PM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- @byroot Thank you for adding documentation. I agree with merging.
> there should be a way to know how many bytes an invocation of String#unpack consumes.
In fact, some committers discussed this point at the dev-meeting. However, in... -
02:34 PM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- I extended the pull request to clearly document the `offset` keyword and stress that it's a byte offset. Hopefully that clears that concern.
-
09:41 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- That argument will indeed be pretty much worthless if you use the `U` format, but I don't really see it as a blocker. It is meant to help binary parsers, I don't see `U` making sense for these.
As for the documentation, we indeed need... -
09:26 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- mame (Yusuke Endoh) wrote in #note-5:
> Just a confirmation: the offset is byte-oriented, not character-oriented, right? There are a format "u" which is UTF-8 coding, so the behavior should be explained clearly in the document.
This ... -
06:55 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- > Just a confirmation: the offset is byte-oriented, not character-oriented, right? There
Yes. -
05:39 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- As the RDoc of `String#unpack` states:
```ruby
# Decodes <i>str</i> (which may contain binary data) according to the
# format string, returning an array of each value extracted. The
```
Isn't it clear that it is counted as binary? -
02:36 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- Just a confirmation: the offset is byte-oriented, not character-oriented, right? There are a format "u" which is UTF-8 coding, so the behavior should be explained clearly in the document.
-
02:08 AM Feature #18254: Add an `offset` parameter to String#unpack and String#unpack1
- Sounds reasonable. Accepted.
Matz.
-
05:26 PM Feature #18239 (Closed): Variable Width Allocation: Strings
- Applied in changeset commit:git|46b66eb9e8e6de2d5750591e532310e8f8599d90.
----------
[Feature #18239] Add struct for embedded strings -
05:26 PM Revision a5b65981 (git): [Feature #18239] Implement VWA for strings
- This commit adds support for embedded strings with variable capacity and
uses Variable Width Allocation to allocate strings. -
05:26 PM Revision 6374be5a (git): [Feature #18239] Refactor RVARGC alloc functions
- The allocation functions no longer assume that one RVALUE needs to be
allocated. -
05:26 PM Revision 46b66eb9 (git): [Feature #18239] Add struct for embedded strings
-
05:21 PM Feature #17837: Add support for Regexp timeouts
- There are other tradeoffs to consider
* `Regexp.backtrack_limit=` is deterministic, and will stop execution after a certain amount of "processing" regardless of how many threads are busy
* `Regexp.timeout=` will stop a regexp after a cer... -
04:42 PM Feature #17837: Add support for Regexp timeouts
- In my understanding, this feature is just a workaround to prevent Regexp DoS pracitcally. We can craft a regexp skirting this feature, but it would have worked well against regexps that I have ever seen as DoS issues.
I agree that usi... -
11:17 AM Feature #17837: Add support for Regexp timeouts
- What if the time between two backtracks is much larger for some Regexp, isn't that possible with many characters being matched and then at the end a possible backtrack? (e.g., something like `/(a{100000}|b{100000})*/`)
If so, it sounds ... -
04:39 AM Feature #17837: Add support for Regexp timeouts
- For the record: this API will not interrupt the execution of a regexp that includes no interrupt check. Typically just a long regexp like `/xxxxxxxxx....{so long}...xxx/` may not be interrupted even if the time limit is exceeded. The doc...
-
04:26 AM Feature #17837: Add support for Regexp timeouts
- mame (Yusuke Endoh) wrote in #note-31:
> @ko1 suggested mixing the two ideas
According to @ko1, @knu suggested it first. Sorry for my wrong credit. -
03:09 AM Feature #17837: Add support for Regexp timeouts
- Discussed at dev-meeting today.
In summary, there are two proposals, `Regexp.timeout=` and `Regexp.backtrack_limit=`, which have a trade-off.
* `Regexp.timeout=` is easy to use in practical applications, but makes the regexp matchi... -
04:58 PM Revision 09fa773e (git): ast.c: Use kept script_lines data instead of re-opening the source file (#5019)
- ast.c: Use kept script_lines data instead of re-open the source file
- 04:51 PM Revision 33113c6b (git): * 2021-10-26 [ci skip]
-
04:51 PM Revision 557fa389 (git): [rubygems/rubygems] Fix Bundler::Digest#sha1 on big-endian systems
- As noticed by @nobu https://github.com/rubygems/rubygems/pull/4989#discussion_r735674633
From wikipedia: https://en.wikipedia.org/wiki/SHA-1#SHA-1_pseudocode
> append ml, the original message length in bits, as a 64-bit big-endian inte... -
03:07 PM Bug #18170: Exception#inspect should not include newlines
- ioquatix (Samuel Williams) wrote in #note-14:
> @matz what problem are we trying to prevent by not just applying `#inspect` to every message?
Incompatibility. In general, users should not depend on the return value of `#inspect`. Tha... -
10:20 AM Bug #18170: Exception#inspect should not include newlines
- > Note that there is no space between the colon and the double quote in the first line.
Why is that? Why is it necessary?
> ...
I agree it's ad-hoc and I dislike that we could not just call inspect on every message which would be c... -
08:59 AM Bug #18170: Exception#inspect should not include newlines
- We discussed this ticket at the dev-meeting, and matz basically accepted as above.
The approved spec is very hacky. Only when the message includes new lines, `Exception#inspect` applies `inspect` to the message. Otherwise, it embeds t... -
02:48 PM Feature #18035: Introduce general model/semantic for immutability.
- ioquatix (Samuel Williams) wrote in #note-29:
> So, I'd like to share some ideas.
> ...
I've also thought about this in the past so I'd like to share my own observation; it seems like RHash uses a lot of `FL_USER*` bits. Like 4 bits ea... -
02:19 AM Feature #18035: Introduce general model/semantic for immutability.
- > What to do on 32-bit platforms?
I wondered about this. If we don't have 64-bits in general, the only way to implement this is to either:
1. Reuse existing flag if possible.
2. Reduce number of user flags.
3. Only allow some kin... -
01:39 AM Feature #18035: Introduce general model/semantic for immutability.
- What to do on 32-bit platforms?
And you seem to assume little endian. -
01:28 AM Feature #18035: Introduce general model/semantic for immutability.
- I tried a couple of times but I could not figure out how to allocate more flags within `RBasic` and `enum` in C99 has problems with more than 32-bit constants on some platforms.
So, I'd like to share some ideas.
Can we split flags ... -
02:45 PM Revision 244c98e6 (git): Strip out YJIT at build time when unsupported or disabled (#5003)
- In an effort to minimize build issues on non x64 platforms, we can
decide at build time to not build the bulk of YJIT. This should fix
obscure build errors like this one on riscv64:
yjit_asm.c:137:(.text+0x3fa): relocation truncated... - 02:40 PM Revision e9435114 (git): YJIT: Implement duphash (#5009)
- `duphash` showed up in the top-20 most frequent exit ops for @jhawthorn's benchmark that renders github.com/about
The implementation was almost exactly the same as `duparray`
Co-authored-by: John Hawthorn <john@hawthorn.email>
Co-auth... -
12:30 PM Revision 1c0c8d5d (git): test/ruby/test_jit.rb: Add a test for checkmatch insn
-
12:28 PM Revision 5bcef26d (git): test/ruby/test_jit.rb: Print a hint at exit of the original process
- Otherwise, the hint is printed whenever fork is called.
http://rubyci.s3.amazonaws.com/debian9/ruby-master/log/20211025T093004Z.log.html.gz
```
[20244/21156] TestThread#test_fork_while_lockedyou may want to add tests for following insns... -
11:55 AM Feature #17795 (Closed): Around `Process.fork` callbacks API
- Applied in changeset commit:git|13068ebe32a7b8a1a9bd4fc2d5f157880b374e1d.
----------
process.c: Add Process._fork (#5017)
* process.c: Add Process._fork
This API is supposed for application monitoring libraries to hook fork
event.
[F... -
10:03 AM Feature #17795: Around `Process.fork` callbacks API
- I agree with Jeremy, but I'll go a step further. If we want Ruby to be safe, the only sane way to handle fork (in general) is to close all resources in the child process (as already happens with Thread instances, and similarly with close...
-
04:18 AM Feature #17795: Around `Process.fork` callbacks API
- @matz Thanks. I've created a prototype PR: https://github.com/ruby/ruby/pull/5017
-
02:36 AM Feature #17795: Around `Process.fork` callbacks API
- The new method should be override (or wrap) target, so `wrap_` or `around_` are not a part of proper names.
I propose `Process._fork` for the method name, since:
* It is not for typical users
* It is the target for overriding
* We ... -
11:48 AM Revision 9d286180 (git): [rubygems/rubygems] Avoid loading the `digest` gem unnecessarily
- OpenSSL includes what we need.
https://github.com/rubygems/rubygems/commit/955f3b72ca -
11:48 AM Revision a959342a (git): [rubygems/rubygems] Remove comment that seems no longer accurate
- We require things inline or autoload them for efficiency and to avoid as
much as possible conflicting with user's choice of gems.
But I removed the require and observed no deadlocks when activating
gems.
https://github.com/rubygems/rub... -
11:48 AM Revision 9fbf3a1f (git): Unify issue template and ISSUES.md document
- Some crucial information to ease maintainers work, like the advice of
upgrading rubygems and bundler, was one step away from the issue
template, making it easier for some users to miss.
Now all relevant information is written directly i... -
11:48 AM Revision b4a43e4f (git): [rubygems/rubygems] Show proper error when previous installation of gem can't be deleted
- Instead of showing the bug report template with an error at a random
place.
https://github.com/rubygems/rubygems/commit/882ad3ab57 -
11:48 AM Revision 00412be2 (git): [rubygems/rubygems] Show a proper error if gem path is not writable
- Instead of showing the bug report place with an error at a randome
place.
https://github.com/rubygems/rubygems/commit/241854ce73 -
11:48 AM Revision f6d19095 (git): [rubygems/rubygems] Catch up with recent error message modification
- https://github.com/rubygems/rubygems/commit/ae374c1f31
-
11:48 AM Revision 7073870d (git): [rubygems/rubygems] Improve readability by splitting updating the cache and searching it
- https://github.com/rubygems/rubygems/commit/d0df25bb0f
-
11:48 AM Revision f7f85c1f (git): [rubygems/rubygems] Manage global gem cache directly
- Previously, it was maintained in sync with the standard cache. That was
less efficient, and it caused some error messages to point to non
existent files.
https://github.com/rubygems/rubygems/commit/931f8cb8a9 -
11:48 AM Revision 4fc29d17 (git): [rubygems/rubygems] Cached gem path resolution should consider default gems
- https://github.com/rubygems/rubygems/commit/83b2b845b3
-
11:48 AM Revision 4edcda67 (git): [rubygems/rubygems] Simplify gem downloading inside bundler
- We can skip most stuff in `Gem::RemoteFetcher#download`, and use
`Gem::RemoteFetcher#update_cache_path` directly.
This has the benefit of allowing us to remove some workarounds to
support several rubygems versions, but also allows us to... -
11:48 AM Revision 03a563b4 (git): [rubygems/rubygems] Remove unused `let`
- https://github.com/rubygems/rubygems/commit/7e1316e454
-
11:48 AM Revision 57d990dd (git): [rubygems/rubygems] Raise original exception
- https://github.com/rubygems/rubygems/commit/3c93b9fd21
-
11:48 AM Revision 7b821bc9 (git): [rubygems/rubygems] Add missing requires
- These methods rescue a constant defined by `rubygems/remote_fetcher`,
so they should technically require it.
The require is provided by `gem_remote_fetcher` anyways but I was
running a unit spec that stubs that method, so I was getting ... -
11:48 AM Revision 9b1b1718 (git): [rubygems/rubygems] Use `Gem::Specification#file_name` consistently
- https://github.com/rubygems/rubygems/commit/13b933f49a
-
11:48 AM Revision 38542cff (git): [rubygems/rubygems] Extract a `default_cache_path` helper
- https://github.com/rubygems/rubygems/commit/8319305d58
-
11:48 AM Revision edc18131 (git): [rubygems/rubygems] Small refactor
- Extract final cache path to a variable and pass that to `download_gem`.
It actually fits better the parameters documentation since it's the
final directory where the downloaded gem will be placed.
https://github.com/rubygems/rubygems/co... -
11:47 AM Revision 13068ebe (git): process.c: Add Process._fork (#5017)
- * process.c: Add Process._fork
This API is supposed for application monitoring libraries to hook fork
event.
[Feature #17795]
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> -
11:45 AM Revision 1eac38c6 (git): test/ruby/test_rubyvm.rb: prevent "assigned but unused variable" warnings
- http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz
```
[ 4896/21159] TestRubyVM#test_keep_script_lines(none):3: warning: assigned but unused variable - b
(none):6: warning: assigned but unused variable - ... -
11:44 AM Revision 7da9c25a (git): test/ruby/test_refinement.rb: Prevent deprecation warnings during test
- http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_refinement.rb:777: warning: Refinement#include is deprecated and will be remov... -
11:43 AM Revision 00c7b91f (git): test/ruby/test_marshal.rb: Prevent "assigned but unused variable" warning
- http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_marshal.rb:925: warning: assigned but unused variable - objects
``` -
11:24 AM Revision 5af3f7f3 (git): [rubygems/rubygems] Vendor a pure ruby implementation of SHA1
- This allows `Source::Git` to no longer load the `digest` gem as it is causing
issues on Ruby 3.1.
https://github.com/rubygems/rubygems/pull/4989/commits/c19a9f2ff7 -
11:01 AM Feature #18176 (Closed): Make Coverage suspendable
- Applied in changeset commit:git|86e3d77abb8a033650937710d1ab009e98647494.
----------
Make Coverage suspendable (#4856)
* Make Coverage suspendable
Add `Coverage.suspend`, `Coverage.resume` and some methods.
[Feature #18176] [ruby-cor... -
08:49 AM Feature #18176 (Assigned): Make Coverage suspendable
- We discussed this ticket in the dev-meeting, and I accepted this proposal as the author and maintainer of coverage.so.
Currently, coverage.so does not support per-thread coverage measurement, so using Coverage.suspend/resume to gather... -
11:00 AM Revision 86e3d77a (git): Make Coverage suspendable (#4856)
- * Make Coverage suspendable
Add `Coverage.suspend`, `Coverage.resume` and some methods.
[Feature #18176] [ruby-core:105321] -
10:42 AM Revision 54379e3d (git): Update TypeProf to 0.20.1
-
10:02 AM Revision 7394514b (git): [rubygems/rubygems] Simplify and remove some unused code
- When `install_with_build_args` was added in
https://github.com/rubygems/rubygems/commit/be96283985cb49c023112117b2ac2dea0d9becf1,
there were two versions of the method: the default version in the base class that still
used the locking `w... -
09:17 AM Misc #18266: DevelopersMeeting20211118Japan
- * [Feature #18262] `Enumerator::Lazy#partition` (zverok)
* Part of the effort to make `Lazy` more natural: `#partition` to return two lazy enumerators -
09:11 AM Misc #18266 (Closed): DevelopersMeeting20211118Japan
- # The next dev meeting
**Date: 2021/11/18 13:00-17:00** (JST)
Place/Sign-up/Agenda/Log: https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20211118Japan.md
- Dev meeting *IS NOT* a decision-making place. All deci... -
09:11 AM Misc #18174 (Closed): DevelopersMeeting20211021Japan
-
09:07 AM Bug #12436 (Assigned): newline argument of File.open seems not respected on Windows
- @matz accepted this and asked @nobu to review the PR.
-
09:05 AM Bug #18066 (Rejected): Load did_you_mean/error_highlight even with --disable-gems
- We discussed this ticket at the dev-meeting, and @matz rejected this.
Now the `--disable-gems` option is just for debugging, not for casual users. We, the core developers, mainly use the option to investigate the startup overhead of t... -
08:38 AM Revision a1c4cab1 (git): check other IO#close calls
- http://ci.rvm.jp/results/trunk@ruby-iga/3690333
> tool/lib/test/unit/parallel.rb:68:in `close': Bad file descriptor (Errno::EBADF) -
08:13 AM Bug #18255: ioctl zeroes the last buffer byte
- vihai (Daniele Orlandi) wrote in #note-6:
> The first issue is caused by `<sys/ioctl.h>` not defining `_IOC_SIZE`, ruby falls back to `DEFULT_IOCTL_NARG_LEN`. I guess you have to detect and include `<linux/ioctl.h>` or `<asm/ioctl.h>`.
... -
06:47 AM Revision 7864efa1 (git): introduce check code for mysterious EBADF
- parallel test randomly failed with EBADF.
This patch checks wich suite causes this error.
ex) http://ci.rvm.jp/results/trunk@ruby-iga/3690219
```
/tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:88:in `close': Bad file descriptor ... -
03:25 AM Revision b74f9d65 (git): add example for buffer: argument of pack.
-
03:15 AM Revision 66d09501 (git): fix typo [ci skip]
-
03:13 AM Revision dfb47bbd (git): Fix `Enumerable#each_cons` and `Enumerable#each_slice` to return a receiver
- Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
10/24/2021
-
11:38 PM Revision aa09c8da (git): Fix links [ci skip]
-
11:14 PM Feature #18033: Time.new to parse a string
- I checked the latest update.
I'm still not sure about `Time.new(string)` parsing a string.
What about `Time.parse_strict` or `Time.parse_iso8601` etc? -
04:11 PM Feature #18265: Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
- duerst (Martin Dürst) wrote in #note-4:
> - Fixed typo in Subject
> ...
Updated, so there is exists more describe for now.
for that youtube video, except copy the video content, i can't do more, because I can't understand Japanese -
12:49 AM Feature #18265: Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
- - Fixed typo in Subject
- When proposing a feature, please describe the feature in the text here, not just by reference (e.g. to a Youtube video).
-
04:04 PM Revision 4fb71575 (git): [DOC] Fix code markup [ci skip]
- Code markup in RDoc must not be concatenated with anothr word.
- 03:43 PM Revision df444512 (git): * 2021-10-25 [ci skip]
-
03:40 PM Revision e10dfdf6 (git): [ruby/openssl] bn: expand BIGNUM_RAND and BIGNUM_RAND_RANGE macros
- Now that BN.pseudo_rand{,_range} are alias, those macros are only used
once. Let's expand the macros for better readability.
https://github.com/ruby/openssl/commit/7c2fc00dee -
03:40 PM Revision e1918670 (git): [ruby/openssl] bn: make BN.pseudo_rand{,_range} an alias of BN.rand{,_range}
- BN_pseudo_rand() and BN_pseudo_rand_range() are deprecated in
OpenSSL 3.0. Since they are identical to their non-'pseudo' version
anyway, let's make them alias.
https://github.com/ruby/openssl/commit/2d34e85ddf -
03:40 PM Revision 1b5ccc8a (git): [ruby/openssl] pkey, ssl: use EVP_PKEY_eq() instead of EVP_PKEY_cmp()
- OpenSSL 3.0 renamed EVP_PKEY_cmp() to EVP_PKEY_eq() because that was a
confusing name.
https://github.com/ruby/openssl/commit/d42bd7fcdb -
03:40 PM Revision ee713161 (git): [ruby/openssl] pkey/ec: use EC_GROUP_free() instead of EC_GROUP_clear_free()
- EC_GROUP_clear_free() is deprecated in OpenSSL 3.0.
EC_GROUP does not include any sensitive data, so we can safely use
EC_GROUP_free() instead.
https://github.com/ruby/openssl/commit/e93a5fdffc -
03:40 PM Revision 555788b6 (git): [ruby/openssl] pkey/ec: deprecate PKey::EC::Point#make_affine! and make it a no-op
- It converts the internal representation of the point object to the
affine coordinate system. However, it had no real use case because the
difference in the internal representation has not been visible from
Ruby/OpenSSL at all.
EC_POINT_... -
03:40 PM Revision 16272d9a (git): [ruby/openssl] hmac: use EVP_MD_CTX_get_pkey_ctx() instead of EVP_MD_CTX_pkey_ctx()
- OpenSSL 3.0 renamed EVP_MD_CTX_pkey_ctx() to include "get" in the
function name. Adjust compatibility macro so that we can use the new
function name for all OpenSSL 1.0.2-3.0.
https://github.com/ruby/openssl/commit/c106d888c6 -
03:40 PM Revision 040387d2 (git): [ruby/openssl] digest: use EVP_MD_CTX_get0_md() instead of EVP_MD_CTX_md() if exists
- The function was renamed in OpenSSL 3.0 due to the change of the
lifetime of EVP_MD objects. They are no longer necessarily statically
allocated and can be reference-counted -- when an EVP_MD_CTX is free'd,
the associated EVP_MD can also... -
03:40 PM Revision cfa4fa63 (git): [ruby/openssl] bn: use BN_check_prime() in OpenSSL::BN#prime{,_fasttest}?
- In OpenSSL 3.0, BN_is_prime_ex() and BN_is_prime_fasttest_ex() are
deprecated in favor of BN_check_prime().
https://github.com/ruby/openssl/commit/90d51ef510 -
03:40 PM Revision fa24e7a5 (git): [ruby/openssl] ssl: use SSL_get_rbio() to check if SSL is started or not
- Use SSL_get_rbio() instead of SSL_get_fd(). SSL_get_fd() internally
calls SSL_get_rbio() and it's enough for our purpose.
In OpenSSL 3.0, SSL_get_fd() leaves an entry in the OpenSSL error queue
if BIO has not been set up yet, and we wou... -
03:40 PM Revision d5aa3fca (git): [ruby/openssl] ssl: use SSL_CTX_load_verify_{file,dir}() if available
- SSL_CTX_load_verify_locations() is deprecated in OpenSSL 3.0 and
replaced with those two separate functions. Use them if they exist.
https://github.com/ruby/openssl/commit/5375a55ffc -
03:40 PM Revision 19ef7082 (git): [ruby/openssl] ts: use TS_VERIFY_CTX_set_certs instead of TS_VERIFY_CTS_set_certs
- OpenSSL 3.0 fixed the typo in the function name and replaced the
current 'CTS' version with a macro.
https://github.com/ruby/openssl/commit/2be6779b08 -
03:40 PM Revision 3d164015 (git): [ruby/openssl] ossl.c: use ERR_get_error_all() if available
- OpenSSL 3.0 deprecated ERR_get_error_line_data() in favor of
ERR_get_error_all(), as part of the error queue structure changes.
https://github.com/ruby/openssl/commit/8e98d2ecc8 -
03:40 PM Revision 32d49e93 (git): [ruby/openssl] ext/openssl/ossl.h: add helper macros for OpenSSL/LibreSSL versions
- Add following convenient macros:
- OSSL_IS_LIBRESSL
- OSSL_OPENSSL_PREREQ(maj, min, pat)
- OSSL_LIBRESSL_PREREQ(maj, min, pat)
https://github.com/ruby/openssl/commit/00abee791d -
02:42 PM Bug #18263: "make install" crashed when Ruby3.0.2 clean install. (in japanese)
- Thank you xtkoba san.
After "dnf install libyaml-devel", "make install" and "make check" now completed without crash.
and "gem list" etc. also completed normally.
"make check" still has some errors,
> Finished tests in 2156.24421... -
08:54 AM Bug #18263: "make install" crashed when Ruby3.0.2 clean install. (in japanese)
- Gotcha.
```
CFLAGS = -std=c99 -pedantic -Wall
```
`strdup(3)` is not declared because of `-std=c99`. Try instead with `-std=gnu99`. You can alternatively append `-D_DEFAULT_SOURCE` to make it declared.
You may also have an op... -
10:35 AM Revision 1ea53253 (git): Reduce YJIT runs on Ubuntu [ci skip]
-
10:35 AM Revision fe77a033 (git): Use `${{}}` for if statement
-
10:24 AM Revision 408605aa (git): EWOULDBLOCK is always defined since 74ba9c248890
-
10:24 AM Revision 3d7c92df (git): Extract io_again_p to check if EAGAIN or EWOULDBLOCK
-
10:24 AM Revision 9822ebee (git): suppress warnings by parenthesizing unclear expressions
-
10:24 AM Revision 7459a32a (git): suppress warnings for probable NULL dererefences
-
10:24 AM Revision e5c2bf55 (git): Suppress sign-compare warning
-
08:50 AM Revision b69c38e6 (git): Refactor associated pointer
-
07:20 AM Revision 8d6e9b66 (git): Suppress false warning for freed pointer
-
12:25 AM Revision 1be2875e (git): [flori/json] Bump version to v2.6.1
- https://github.com/flori/json/commit/2db5894cfa
-
12:25 AM Revision 4cbce794 (git): [flori/json] Bump JSON::VERSION to 2.6.0.
- https://github.com/flori/json/commit/da94d9f059
10/23/2021
-
11:49 PM Revision d04d6bbc (git): [ruby/psych] Prefer `require_relative` for internal requires
- https://github.com/ruby/psych/commit/a0f55ee85a
-
11:48 PM Revision 48cd6330 (git): [ruby/psych] Add stringio as a dependency.
- https://github.com/ruby/psych/commit/86e3049579
-
09:04 PM Feature #16989: Sets: need ♥️
- Any update on that?
-
08:58 PM Feature #17873: Update of default gems in Ruby 3.1
- Done: Fiddle, CSV, StringScanner
- 08:58 PM Revision bd65757f (git): * 2021-10-24 [ci skip]
- 08:57 PM Revision 53dcb354 (git): NEWS: StringScanner 3.0.1 is released
- 08:57 PM Revision c0c43276 (git): [ruby/strscan] Bump version
- If we use the same version as the default strscan gem in Ruby, "gem
install" doesn't extract .gem. It fails "gem install" because "gem
install" can't find ext/strscan/ to be built.
https://github.com/ruby/strscan/commit/3ceafa6cdc - 08:57 PM Revision 76e277a0 (git): NEWS: CSV 3.2.1 is released
-
08:57 PM Revision ee948fc1 (git): [ruby/csv] Add support for Ractor (https://github.com/ruby/csv/pull/218)
- https://github.com/ruby/csv/commit/a802690e11
- 08:57 PM Revision 274882be (git): [ruby/csv] Use test-unit gem instead of test-framework of ruby repo
- https://github.com/ruby/csv/commit/9c4add0d31
- 08:57 PM Revision 8fde54a3 (git): [ruby/csv] CSV(): Add support for Ruby 3 (https://github.com/ruby/csv/pull/215)
- The implementation of the `CSV` shortcut method is broken in Ruby 3
for calls that look like this:
```ruby
CSV(write_stream, col_sep: "|", headers: headers, write_headers: true) do |csv|
...
end
```
The above will result in the follo... - 08:57 PM Revision 10739750 (git): [ruby/csv] CI: Stop coverage mesurement
- https://github.com/ruby/csv/commit/5ff3b95018
- 08:57 PM Revision 8ba98f83 (git): [ruby/csv] Use "\n" for the default row separator on Ruby 3.0 or later
- https://github.com/ruby/csv/commit/1f9cbc170e
- 08:57 PM Revision 7f3dd601 (git): [ruby/csv] Changed line ending handling to consider the combination \r\n as a single entry when row is faulty (https://github.com/ruby/csv/pull/220)
- https://github.com/ruby/csv/commit/29cef9ea9d
- 08:57 PM Revision 39ecdabe (git): [ruby/csv] Resolve CSV::Converters and HeaderConverters lazy
- It's for Ractor. If you want to use the built-in converters, you
should call Ractor.make_shareable(CSV::Converters) and/or
Ractor.make_shareable(CSV::HeaderConverters).
https://github.com/ruby/csv/commit/b0b1325d6b - 08:57 PM Revision 8aaa1c27 (git): [ruby/csv] doc: Match text to the struct name (https://github.com/ruby/csv/pull/217)
- https://github.com/ruby/csv/commit/744e41130c
- 08:57 PM Revision e40baca3 (git): [ruby/csv] Bump version
- https://github.com/ruby/csv/commit/3025070cea
-
07:46 PM Feature #18265: Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
- FYI, MRuby supports this. Of course it just embeds the bytecode in the binary, no actual AOT compilation of Ruby code.
Also there are various gems which make this possible for CRuby, notably https://github.com/pmq20/ruby-packer, altho... -
01:02 PM Feature #18265 (Open): Self-contained one-binary feature which discuss on ruby kaigi 2021 day 2, 《 Ruby Committers vs the World / CRuby Committers》
- 
https://www.youtube.com/watch?v=zQnN1pqK4FQ
Yes, what i said is this.
1. Go-language supports to make self-contained one-binary.
2. Is it useful for ruby?
I personal propose add this f... -
01:19 PM Revision 185c5738 (git): Add INSTRUBY_OPTS to INSTRUBY_ARGS [ci skip]
- For extra options from the `make` command line.
Also add explicit `--install` option to install-nodoc. -
06:03 AM Bug #18263: "make install" crashed when Ruby3.0.2 clean install. (in japanese)
From `LOG.make`:
```
compiling ../.././ext/psych/yaml/api.c
../.././ext/psych/yaml/api.c: 関数 ‘yaml_strdup’ 内:
../.././ext/psych/yaml/api.c:66:27: 警告: implicit declaration of function ‘strdup’; did you mean ‘cmp’? [-Wimplicit-func...-
04:38 AM Revision cda8bc36 (git): [ruby/openssl] test/openssl/test_ssl: use assert_raise in test_bad_socket
- The Ruby tree disallows assert_raises.
https://github.com/ruby/openssl/commit/9b4f761e74 -
04:38 AM Revision 35b9d8d3 (git): [ruby/openssl] Raise an exception if the IO object passed to SSLSocket isn't a file
- SSLSocket#connect eventually calls `GetOpenFile` in order to get the
underlying file descriptor for the IO object passed in on
initialization. `GetOpenFile` assumes that the Ruby object passed in is
a T_FILE object and just casts it to ... -
04:38 AM Revision 47975ece (git): [ruby/openssl] test/openssl/test_pkey_rsa: disable test_no_private_exp on OpenSSL 3.0
- OpenSSL::PKey::RSA#set_key does not exist when built with OpenSSL 3.0,
so it is not possible to create an RSA object with incomplete state.
https://github.com/ruby/openssl/commit/ca03c9c070 -
04:38 AM Revision 95044fa1 (git): [ruby/openssl] test/openssl/test_pkey: use EC keys for PKey.generate_parameters tests
- OpenSSL 3.0 refuses to generate DSA parameters shorter than 2048 bits,
but generating 2048 bits parameters takes very long time. Let's use EC
in these test cases instead.
https://github.com/ruby/openssl/commit/c732387ee5 -
04:38 AM Revision d67fe1e9 (git): [ruby/openssl] test/openssl/test_ssl: fix illegal SAN extension
- A certificate can only have one SubjectAltName extension. OpenSSL 3.0
performs a stricter validation and certificates containing multiple SANs
will be rejected.
https://github.com/ruby/openssl/commit/558cfbe5f5 -
04:38 AM Revision 79d5abd0 (git): [ruby/openssl] test/openssl/test_pkcs12: fix test failures with OpenSSL 3.0
- OpenSSL's PKCS12_create() by default uses pbewithSHAAnd40BitRC2-CBC for
encryption of the certificates. However, in OpenSSL 3.0, the algorithm
is part of the legacy provider and is not enabled by default.
Specify another algorithm that ... -
04:38 AM Revision d26e64e0 (git): [ruby/openssl] test/openssl/test_ssl: relax regex to match OpenSSL's error message
- OpenSSL 3.0 slightly changed the error message for a certificate
verification failure when an untrusted self-signed certificate is found
in the chain.
https://github.com/ruby/openssl/commit/b5a0a19850 -
04:38 AM Revision 54047b6d (git): [ruby/openssl] test/openssl/test_digest: do not test constants for legacy algorithms
- Remove availability test for MD4 and RIPEMD160 as they are considered
legacy and may be missing depending on the compile-time options of
OpenSSL. OpenSSL 3.0 by default disables them.
https://github.com/ruby/openssl/commit/a3e59f4c2e -
04:38 AM Revision 5a8e1c52 (git): [ruby/openssl] test/openssl/test_ssl: assume ECC support
- Disabling ECC support of OpenSSL is impractical nowadays.
We still try to have the C extension compile on no-ec builds (as well
as no-dh or no-engine, etc.) as long as we can, but keeping test cases
for such an extreme scenario is not w... -
04:38 AM Revision 0e805e73 (git): [ruby/openssl] test/openssl/test_ssl: assume TLS 1.2 support
- Current versions of OpenSSL and LibreSSL all support TLS 1.2, so there
is no need for checking the availability.
https://github.com/ruby/openssl/commit/a175a41529 -
04:38 AM Revision 37632a0a (git): [ruby/openssl] test/openssl/utils: remove dup_public helper method
- It uses deprecated PKey::{RSA,DSA,DH}#set_* methods, which will not
work with OpenSSL 3.0. The same can easily be achieved using
PKey#public_to_der regardless of the key kind.
https://github.com/ruby/openssl/commit/7b66eaa2db -
01:56 AM Revision e353bcd1 (git): Sync did_you_mean
-
01:22 AM Revision 93badf47 (git): Disable did_you_mean in TestPatternMatching
-
01:14 AM Revision 905be49b (git): Remove the test for DYM's verbose formatter
-
01:00 AM Revision 66df18c5 (git): Sync did_you_mean again
-
12:56 AM Revision 22249bbb (git): Revert "Sync did_you_mean"
- This reverts commit e22d293e06966733e71a7fd9725eee06c03d0177.
-
12:35 AM Revision e22d293e (git): Sync did_you_mean
10/22/2021
-
09:22 PM Revision f8006982 (git): YJIT: Don't take VM lock on constant IC fill when disabled
- While theoretically it's fine to take the lock and then immediately release
it, we don't need to do it when YJIT is off. - 09:03 PM Revision 7246c5b8 (git): NEWS: Fiddle 1.1.0 is released
-
08:03 PM Feature #18239: Variable Width Allocation: Strings
- Thank you @matz. We will merge with it turned off by default for 3.1.
-
06:07 PM Bug #18264 (Closed): TracePoint leaks memory
- # GitHub PR: https://github.com/ruby/ruby/pull/5008
TracePoint leaks memory because it allocates a `rb_tp_t` struct without ever freeing it (it is created with `RUBY_TYPED_NEVER_FREE`). This is reproducible on all maintained Rubies (2... -
04:47 PM Feature #13715: [PATCH] avoid garbage from Symbol#to_s in interpolation
- normalperson (Eric Wong) wrote in #note-4:
> "jeremyevans0 (Jeremy Evans)" <noreply@ruby-lang.org> wrote:
> ...
Other options recommended were `rb_str_new_literal` and `rb_fstring_literal`. I went with `rb_fstring_literal`: https://gi... -
09:29 AM Feature #13715: [PATCH] avoid garbage from Symbol#to_s in interpolation
- "jeremyevans0 (Jeremy Evans)" <noreply@ruby-lang.org> wrote:
> @normalperson's patch: https://github.com/ruby/ruby/pull/5002,
> expanding the optimization to include nil/true/false/0-9.
> This is an across-the-board performance impro... -
04:38 PM Revision 199ba9c3 (git): update NEWS about last commits.
-
04:33 PM Feature #17592 (Closed): Ractor should allowing reading shareable class instance variables
- https://github.com/ruby/ruby/pull/5006
merged. -
04:33 PM Bug #18193 (Closed): Accessing global configuration from Ractors
- https://github.com/ruby/ruby/pull/5006
merged. - 04:33 PM Revision 41f6ce9f (git): * 2021-10-23 [ci skip]
-
04:32 PM Revision df9fac5c (git): update doc/ractor.md about ivars
-
04:32 PM Revision a7776077 (git): add vm_ivar_of_class_set
- benchmark for a class's ivar setter
-
04:32 PM Revision acb23454 (git): allow to access ivars of classes/modules
- if an ivar of a class/module refer to a shareable object, this ivar
can be read from non-main Ractors. -
02:56 PM Revision 6b9285e8 (git): 'uri/https' is needed
- `URI.parse('https://a.b.c/')` needs 'uri/https'.
-
02:53 PM Revision ba4bf8a1 (git): Fix simple test on platforms where compaction is not supported
- 844588f9157b364244a7d34ee0fcc70ccc2a7dd9 made it so that trying to call
gc_verify_compaction_references on unsupported platform result in an
exception rather than a crash. Rescue the exception in a YJIT btest
that uses gc_verify_compacti... -
02:31 PM Feature #15504: Freeze all Range objects
- @ko1 Do you know why only Range instances and not Range subclass instances were frozen? (https://bugs.ruby-lang.org/issues/15504#note-8)
This issue title is a bit confusing, also https://bugs.ruby-lang.org/issues/15504#note-9.
Probab... -
12:25 PM Bug #18263 (Third Party's Issue): "make install" crashed when Ruby3.0.2 clean install. (in japanese)
- 本日 gem update を行った後、gem コマンドが異常終了するようになってしまいました。
/usr/local/lib/ruby/gems/3.0.0/gems/psych-4.0.2/lib/psych.rb:455: [BUG] Segmentation fault at 0xffffffff9ade4120
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
OSは、C... -
12:22 PM Feature #18262: Enumerator::Lazy#partition
- +1
Since a lazy enumerator is produced for both #select and #reject, it would make sense for #partition as well. -
12:08 PM Feature #18262 (Open): Enumerator::Lazy#partition
- (Part of my set of proposals about making `.lazy` more useful/popular.)
Currently:
```ruby
file = File.open('very-large-file.txt')
lines_with_errors, lines_without_errors = file.lazy.partition { _1.start_with?('E:') }
lines_with_e... -
10:49 AM Revision d09cb64a (git): [ruby/mutex_m] Make VERSION shareable
- https://github.com/ruby/mutex_m/commit/a839e29d04
-
10:48 AM Revision 553f234a (git): [ruby/uri] URI#HTTP#origin and URI#HTTP#authority (https://github.com/ruby/uri/pull/30)
- https://github.com/ruby/uri/commit/bf13946c32
Co-authored-by: Samuel Williams <samuel.williams@oriontransfer.co.nz> -
10:48 AM Revision c8ad024e (git): [ruby/delegate] gemspec: Drop unused executables directives
- https://github.com/ruby/delegate/commit/81a3c32140
-
09:00 AM Bug #18261 (Closed): String#prepend inconsistent documentation
-
09:00 AM Bug #18261: String#prepend inconsistent documentation
- This is a duplicate of #18241 and already fixed in the development branch. Thanks anyway.
-
08:45 AM Bug #18261 (Closed): String#prepend inconsistent documentation
- I noticed documentation at https://docs.ruby-lang.org/en/3.0.0/String.html#method-i-prepend says:
```
Returns a new String containing the concatenation of all given other_strings and self:
```
but `String#prepend` modifies string i... -
08:14 AM Revision aee4940d (git): Reduce YJIT runs on macOS [ci skip]
- MacOs concurrency on GitHub Actions is limited, and the
performance is relatively poor. -
06:53 AM Revision 93691d07 (git): Import bigdecimal-3.1.0.dev
-
06:06 AM Revision 22a7f7ec (git): Refinement#include and Refinement#prepend have been deprecated
-
05:43 AM Revision 598382f6 (git): debug.gem 1.3.1
-
05:18 AM Feature #14332: Module.used_refinements to list refinement modules
- Matz, can I add Module.used_refinements?
-
04:53 AM Revision 9f4f3bd1 (git): Refinement#include and Refinement#prepend have been deprecated
-
03:47 AM Revision 4446942f (git): Extract UNPACK_FETCH
-
03:41 AM Revision 6469038a (git): Fix TestRubyOptions#test_enable for -DMJIT_FORCE_ENABLE
- --enable=all didn't work when cppflags=-DMJIT_FORCE_ENABLE was given.
-
12:28 AM Feature #17873: Update of default gems in Ruby 3.1
- OK. I'll do.
10/21/2021
-
11:06 PM Feature #11066 (Rejected): symbol.to_s performance - caching and returning a frozen string
-
11:06 PM Feature #11346 (Closed): New #intern_str or similarly-named method of Symbol to return a cached, frozen string (like "string".freeze)
- `Symbol#name` was added in Ruby 3.0 for this.
-
10:56 PM Feature #13715: [PATCH] avoid garbage from Symbol#to_s in interpolation
- I've submitted a pull request for an updated version of @normalperson's patch: https://github.com/ruby/ruby/pull/5002, expanding the optimization to include nil/true/false/0-9. This is an across-the-board performance improvement, mostly...
-
10:47 PM Revision 844588f9 (git): Push compaction page alignment check down
- It seems like `gc_verify_compaction_references` is not protected in case
alignment is wrong. This commit pushes the alignment check down to
`gc_start_internal` so that anyone trying to compact will check page
alignment
I think this met... -
10:26 PM Feature #8637 (Closed): I18n documentation
-
10:23 PM Feature #8951 (Closed): Please add a hash-to-hash alternative of the map method to Hash
-
08:48 PM Feature #4183 (Closed): [ext/openssl] Timestamp support
- ruby-openssl 2.2.0 (included with Ruby 3.0) added OpenSSL::Timestamp, so this can be closed.
-
08:34 PM Bug #18260: YJIT uses insecure mmap protections
- We can look into this. The downside is that YJIT does a lot of code patching, so this would presumably involve two system calls every time YJIT needs to generate code. Hopefully the performance impact will be relatively minimal.
-
03:58 PM Bug #18260 (Closed): YJIT uses insecure mmap protections
- YJIT uses `mmap` with `PROT_READ | PROT_WRITE | PROT_EXEC` protections, which reduces security because it makes code injection attacks much easier, as the attacker only needs to be able to write their shellcode to the mapped memory regio...
-
07:07 PM Revision bdfc23cb (git): YJIT: don't compile attr_accessor methods when tracing (#4998)
- 2d98593bf54a37397c6e4886ccc7e3654c2eaf85 made it so that
attr_accessor methods fire C method tracing events.
Previously, we weren't checking for whether we are tracing before
compiling, leading to missed events.
Since global invalidatio... -
06:33 PM Revision d0cad8ad (git): [rubygems/rubygems] Re-enable `default_ignores` option for standard
- I am not sure why this flag was turned off (it wasn't explained in my commit message in 0365dc852767ae589376a7aad1fb129738e408b0 or in my PR in #4411).
Whatever the reason, without `default_ignores` turned on, most default CI configurat... -
04:49 PM Revision 32a8cb96 (git): Add link to YJIT blog post to NEWS.md
- Requested by @nurse
-
04:14 PM Bug #17007 (Closed): SystemStackError when using super inside Module included and lexically inside refinement
- Refinement#include is now deprecated and will be removed in Ruby 3.2.
-
04:13 PM Bug #17379 (Closed): Refinement with modules redefinition bug
- Refinement#include is now deprecated and will be removed in Ruby 3.2.
-
04:13 PM Bug #18021 (Closed): Mixins in Refinements: possibly multiple bugs, workarounds are awkward
- Refinement#include is now deprecated and will be removed in Ruby 3.2.
- 03:28 PM Revision ad1f7f2a (git): * 2021-10-22 [ci skip]
-
03:26 PM Revision 119626da (git): Force disable yjit on OpenBSD
- TestRubyOptions#test_enable was broken on OpenBSD after the yjit
merge. --yjit (and --enable-all, which enables --yjit) fails on
OpenBSD because yjit uses an insecure mmap call (both writable
and executable), in alloc_exec_mem, which Ope... -
02:14 PM Bug #18187 (Rejected): Float#clamp() returns ArgumentError (comparison of Float with 1 failed)
-
08:11 AM Bug #18187: Float#clamp() returns ArgumentError (comparison of Float with 1 failed)
- I vote for keeping NaN raises exceptions.
Matz.
-
01:57 PM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
- I think a condition of "RSTRING_PTR is returning NULL!!" was fixed this year, but can't remember now.
-
01:54 PM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
- vo.x (Vit Ondruch) wrote in #note-2:
> ~~~
> ...
The `flags` 73831 = 0x12067, that means `orig` is an `Array` object, which has two elements(0x00000001000728e8, 0x0000000100072870). -
01:34 PM Bug #18255: ioctl zeroes the last buffer byte
- nobu (Nobuyoshi Nakada) wrote in #note-3:
> Found the bug.
> ...
Here I am.
Apparently it doesn't.
I dug a bit deeper and I found that there are two issues that concur to this behavior:
* `ioctl_narg_len` isn't properly extracti... -
01:00 PM Feature #18083: Capture error in ensure block.
- ioquatix (Samuel Williams) wrote in #note-24:
> Surprisingly this does work:
> ...
It is a pattern-matching. -
11:17 AM Feature #18083: Capture error in ensure block.
- Regarding
``` ruby
foo rescue $!
```
Maybe we can improve this:
``` ruby
foo rescue => error
```
I'm not sure it's worth the effort...
Surprisingly this does work:
``` ruby
foo rescue $! => error
``` -
11:15 AM Feature #18083: Capture error in ensure block.
- Proposal to RuboCop to introduce warning: https://github.com/rubocop/rubocop/issues/10204
I support deprecating `$!` and `$@`.
One way: for Ruby 3.x we can create deprecation warning, and remove it in Ruby 4.x. -
10:24 AM Feature #18083: Capture error in ensure block.
- ko1 (Koichi Sasada) wrote in #note-20:
> Sorry, my proposal is introducing dynamic scope, not syntactical scope like:
Ah, I misunderstood.
Then I think deprecating `$!` is the right way, since that seems the only way to be able to... -
06:28 AM Feature #18083: Capture error in ensure block.
- First, I am not going to change the syntax for the `ensure` clause. The `ensure` clause is to unwind-protect so it is not recommended to branch depending on exceptions.
I admit the current `$!` behavior is error-prone. But considering... -
06:13 AM Feature #18083: Capture error in ensure block.
- Sorry, my proposal is introducing dynamic scope, not syntactical scope like:
```ruby
def foo
p $! #=> A
begin
# no raise
ensure
p $! #=> nil
end
end
begin
raise A
ensure
foo
end
```
We can implement `raise` like me... -
12:31 PM Feature #17873: Update of default gems in Ruby 3.1
- I prepared versions for Ruby 3.1.0-preview1. But I keep the version numbers of the following libraries.
* RubyGems/Bundler: I coordinate the version numbering with @deivid
* Reline, Irb: @aycabta
* BIgDecimal: @mrkn
* Fiddle, CSV, Strin... -
12:19 PM Revision d74f1e16 (git): Added version of readline-ext
-
12:17 PM Revision c5345979 (git): Bump up readline-ext version to 0.1.3
-
12:15 PM Feature #18259: Support quarter spec %q in Time#strftime
- When we introduce a new specifier for strftime, we are afraid that we accidentally introduce it as a different meaning from the de-facto standard.
Maybe you insist coreutil's date is an implementation near the de-facto, but I think the... -
09:39 AM Feature #18259 (Open): Support quarter spec %q in Time#strftime
- This syntax is used by coreutil's `date` program (since 8.26):
> ‘%q’
> ...
> quarter of year (‘1’…‘4’) -
12:07 PM Revision 03fd6093 (git): Update the merged versions of default gems.
-
12:05 PM Revision eac7a710 (git): [ruby/prettyprint] Bump up prettyprint version to 0.1.1
- https://github.com/ruby/prettyprint/commit/0e8eee5f5f
-
12:04 PM Revision ba3c2593 (git): [ruby/pp] Bump up pp version to 0.2.1
- https://github.com/ruby/pp/commit/06b839b9ca
-
12:03 PM Revision 9f398d02 (git): [ruby/securerandom] Bump up securerandom version to 0.1.1
- https://github.com/ruby/securerandom/commit/5f9d3d1dfa
-
12:02 PM Revision aca0dcc5 (git): [ruby/rinda] Bump up rinda version to 0.1.1
- https://github.com/ruby/rinda/commit/d394ba107e
-
12:01 PM Revision b8d49d0d (git): [ruby/optparse] Bump up optparse version to 0.2.0
- https://github.com/ruby/optparse/commit/1226b670e6
-
12:01 PM Revision cb4c98f9 (git): [ruby/net-http] Bump up net-http version to 0.2.0
- https://github.com/ruby/net-http/commit/f3e65e2a31
-
12:00 PM Revision cc2f7604 (git): [ruby/net-protocol] Bump up net-protocol version to 0.1.2
- https://github.com/ruby/net-protocol/commit/088e52609a
-
12:00 PM Revision 8ef125c8 (git): [ruby/uri] Bump up uri version to 0.11.0
- https://github.com/ruby/uri/commit/1619f713e6
-
11:54 AM Revision 422b057d (git): [ruby/ostruct] Bump up ostruct version to 0.5.0
- https://github.com/ruby/ostruct/commit/c535a406f8
-
11:54 AM Revision 7529fe82 (git): [ruby/io-wait] Bump up io-wait version to 0.2.0
- https://github.com/ruby/io-wait/commit/f6a1b10a59
-
11:53 AM Revision 8eb8522f (git): [ruby/stringio] Bump up stringio version to 3.0.1
- https://github.com/ruby/stringio/commit/f7c40aa339
-
11:37 AM Misc #18174: DevelopersMeeting20211021Japan
- We held the dev-meeting but didn't finish until the last topic. An extra meeting will be held at the next Monday.
-
11:14 AM Revision 6b08aaf2 (git): [ruby/fileutils] Bump up fileutils version to 1.6.0
- https://github.com/ruby/fileutils/commit/918d19e4f2
-
09:43 AM Feature #18035: Introduce general model/semantic for immutability.
- Re naming, I discussed with @ioquatix and I think this is consistent and makes sense:
```ruby
class MyClass
extend Immutable
end
MyClass.new.immutable? # true
MY_CONSTANT = Immutable [1, 2, [3]]
MY_CONSTANT.immutable? # tr... -
09:20 AM Feature #18035: Introduce general model/semantic for immutability.
- Use cases:
* Actually have a way to express immutable/deeply frozen in Ruby. Right now there is no way, and `freeze` is only shallow.
* Immutability has many benefits, easier to reason about, no data races possible, clarifies a lot the b... -
09:12 AM Feature #18035: Introduce general model/semantic for immutability.
- The above sounds good.
Note that `RB_FL_FREEZE | RB_FL_SHAREABLE` is not enough, it should be a new flag, I detailed in https://bugs.ruby-lang.org/issues/18035#note-24.
Re (2) I think `.deep_freeze` would be a good option too. `Immut... -
03:21 AM Feature #18035: Introduce general model/semantic for immutability.
- After discussing it, we found some good ideas regarding immutability in Ruby.
Firstly, we need some definition for immutability. There appear to be two options.
(1) We can assume that `RB_FL_FREEZE | RB_FL_SHAREABLE` implies immutable ... -
09:41 AM Feature #17760: Where we should install a header file when `gem install --user`?
- We have discussed this in today's developer meeting.
- As a tentative workaround, I'll fix the digest gem not to try to install `digest.h` to an unwritable directory so `gem install --user digest` succeeds.
- It is (technically) poss... -
08:58 AM Feature #18258: Ractor.shareable? can be slow and mutates internal object flags.
- I think for the semantic model it could be easier with the proposed semantics in this issue: only always-shareable objects are shareable without `Ractor.make_shareable`/`freeze` for leaf objects with no ivars/`deep_freeze/Immutable`.
Ri... -
08:58 AM Feature #18258: Ractor.shareable? can be slow and mutates internal object flags.
- I feel from a predictability POV, it would definitely be advantageous to set `RB_FL_SHAREABLE` in every case it's known ahead of time to avoid unexpected overheads. Even if `Ractor.shareable?` is not public interface, it's still used int...
-
08:52 AM Feature #18258: Ractor.shareable? can be slow and mutates internal object flags.
- Yeah that's an alternative design.
Currently `Ractor.shareable?` semantics are "is it already shareable as in conceptually or not?".
(And the flag is just a cache for the "yes" case)
And it's not "is it already shareable as marked w... -
03:19 AM Feature #18258 (Closed): Ractor.shareable? can be slow and mutates internal object flags.
- On my computer, even with a relatively small object graph,`Ractor.shareable?` can be quite slow (around 1-2ms). The following example creates an object graph with ~40k objects as an example, and on my computer takes around 20ms to execut...
-
07:50 AM Feature #17369 (Closed): Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
-
07:49 AM Feature #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods.
- Please file a new issue for fiber-local `$?`.
-
07:36 AM Bug #17429 (Closed): Prohibit include/prepend in refinement modules
- Applied in changeset commit:git|6606597109bdb535a150606323ce3d8f5750e1f6.
----------
Deprecate include/prepend in refinements and add Refinement#import_methods instead
Refinement#import_methods imports methods from modules.
Unlike Modu... -
05:42 AM Bug #17429: Prohibit include/prepend in refinement modules
- I agreed with `import_methods`, which is more descriptive and clear.
Matz.
-
07:31 AM Revision 66065971 (git): Deprecate include/prepend in refinements and add Refinement#import_methods instead
- Refinement#import_methods imports methods from modules.
Unlike Module#include, it copies methods and adds them into the refinement,
so the refinement is activated in the imported methods.
[Bug #17429] [ruby-core:101639] -
07:17 AM Revision 7185c00f (git): freeze (make shareable) script_lines
-
07:17 AM Revision c7550537 (git): `RubyVM.keep_script_lines`
- `RubyVM.keep_script_lines` enables to keep script lines
for each ISeq and AST. This feature is for debugger/REPL
support.
```ruby
RubyVM.keep_script_lines = true
RubyVM::keep_script_lines = true
eval("def foo = nil\ndef bar = nil")
pp ... -
06:02 AM Feature #18239: Variable Width Allocation: Strings
- I agree with merging it, but it's too close to the 3.1 release. So how about merging it, turned off by default, then turning it on after the release?
Matz.
-
05:08 AM Bug #18170: Exception#inspect should not include newlines
- I agree with the new behavior that wraps messages with newlines.
Matz.
-
05:08 AM Revision 3b16d07e (git): Fix test_version again for RUBY_YJIT_ENABLE=1
-
04:57 AM Revision 76f9bc7e (git): Reduce the amount of false positive notifications
- While f6048e592c520e20ba498ba4d553f07f02213a61 tried to approach the
instability mentioned there, unfortunately the Travis arm32 environment
seems unstable by itself. I already saw 2 different failures in the last
4 builds:
https://app.t... -
04:49 AM Revision 58231687 (git): [ruby/psych] Bump up psych version to 4.0.2
- https://github.com/ruby/psych/commit/69a713f860
-
04:25 AM Feature #18229: Proposal to merge YJIT
- I finished to setup maximecb's account as a committer.
-
04:07 AM Revision 4d4bdcf3 (git): Move the test file
-
04:07 AM Revision 58956dba (git): Fix for out-of-place build
-
04:07 AM Revision 18b65508 (git): Suppress warnings
-
03:52 AM Revision 66a64e6f (git): Fix tests with cppflags=-DYJIT_FORCE_ENABLE
- https://github.com/ko1/build-ruby/commit/0dbd95c6250594b6ddadc3c4424b071704083187