Activity
From 10/23/2021 to 10/29/2021
10/29/2021
-
09:11 PM Revision f634d1ee (git): [rubygems/rubygems] Better error when installing a git lockfile and git not present
- https://github.com/rubygems/rubygems/commit/28f4842196
-
08:29 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
- I don't like the idea to alter the semantics of Proc methods just for Ractor though (also it costs extra checks on every Proc#call !).
The best and cleanest solution is IMHO to raise for `Ractor.make_shareable(someProc)` if the Proc `se... -
08:24 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
- jhawthorn (John Hawthorn) wrote in #note-2:
> In Rails we use `obj.instance_exec(&proc_obj)` in a few places. One of the downsides `instance_exec` has is that it creates a singleton class for `obj`, which isn't friendly to method caches ... -
08:07 PM Feature #18275 (Rejected): Add an option to define_method to not capture the surrounding environment
- vinistock (Vinicius Stock) wrote in #note-3:
> Indeed I haven't thought about using `Ractor.make_shareable` in the proc. But that still does not create the method in all Ractors, only inside the one where the invocation happens.
That's... -
01:21 PM Feature #18275: Add an option to define_method to not capture the surrounding environment
- > I can't get your point.
> ...
If we create a method using `define_method`, it only exists in the Ractor that made the invocation. Trying to invoke that method from a different Ractor throws an error (something like `defined in another... -
09:48 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
- Maybe it's orthogonal, but what if `define_method` accepted any object responding to `call`?
e.g.
```
class SomeCallback
def initialize(foo, bar)
@foo = foo
@bar = bar
end
def call
@foo.call(@bar)
en... -
09:07 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
- vinistock (Vinicius Stock) wrote in #note-3:
> Indeed I haven't thought about using `Ractor.make_shareable` in the proc. But that still does not create the method in all Ractors, only inside the one where the invocation happens.
> ...... -
07:59 PM Revision a954f273 (git): Cleanup GC.auto_compact spec
- * Make the supported check more obvious.
-
07:54 PM Revision 800dad62 (git): Skip GC.auto_compact= spec for platforms not supporting it
- * See https://github.com/ruby/spec/pull/891
-
06:58 PM Revision 2e14fb7d (git): Add comments about send method types (#5059)
-
05:22 PM Revision 99c60d4b (git): Get rid of exponential backtracks found by CodeQL
- Since these regexps are used at build/installation, they are not
vulnerabilities. -
04:08 PM Feature #11919: Passing a module directly
- jeremyevans0 (Jeremy Evans) wrote in #note-12:
> @matz pretty much rejected `using do` as well (https://bugs.ruby-lang.org/issues/14344#note-15): `the modified syntax using do is also confusing`. So that's why I closed this (this featur... -
02:27 PM Feature #11919: Passing a module directly
- Dan0042 (Daniel DeLorme) wrote in #note-11:
> @jeremyevans0 may I ask why you closed this? Matz has not rejected this idea. He only rejected `refine X do` (#14344) because `refine` should not have such different behavior for class vs mo... -
01:02 PM Feature #11919: Passing a module directly
- @jeremyevans0 may I ask why you closed this? Matz has not rejected this idea. He only rejected `refine X do` (#14344) because `refine` should not have such different behavior for class vs module. Although there's also `refining X do` (#1...
- 03:58 PM Revision 6cee10d8 (git): * 2021-10-30 [ci skip]
-
03:58 PM Revision d7279f08 (git): make obj_free return true when it frees an object
- Previously obj_free returned true when it could not free a slot because
of a finalizer, and false when it successfully frees a slot. -
01:17 PM Revision ed8540eb (git): Prefer size pool heap macros over direct access
-
12:40 PM Revision 5e52fd4b (git): Preserve the encoding of message from outer local variable
- In the case of read-only but refering an unshareable object.
-
09:53 AM Revision ec2e04c9 (git): Preserve the encoding of message from outer local variables
-
09:53 AM Revision 0ad57158 (git): Remove redundant calls
- The ArgumentError should raise in `isolate`.
-
09:00 AM Revision 71b370f6 (git): [rubygems/rubygems] Enforce bundler platform (and default gem) to keep invalid gemspec test compatible with ruby-trunk.
- https://github.com/rubygems/rubygems/commit/a77061d4e9
-
09:00 AM Revision 9b7afd3c (git): [rubygems/rubygems] Update mirror_probe realword specs to not rely exactly at raised HTTP exception.
- - this exception differs across Ruby versions.
https://github.com/rubygems/rubygems/commit/38c6927a5f -
09:00 AM Revision 0029e094 (git): [rubygems/rubygems] Install stringio for standalone spec.
- - previously it was required already by net/http, but it is not anymore using ruby-trunk
- https://github.com/ruby/net-http/commit/996d18a43f34557cb0b2fcf41b93131d48a235f4
- https://github.com/ruby/ruby/commit/364044e0909692315bd6c2f0e1d... -
09:00 AM Revision b1791664 (git): [rubygems/rubygems] Assert NoMethodError message only partialy in downloader_spec.
- - latest ruby adds error_highlight gem introducing backtrace into exception message
https://github.com/rubygems/rubygems/commit/08c70f9dd0 -
09:00 AM Revision fd17ae82 (git): [rubygems/rubygems] Lock racc version in platform_spec.
- - latest ruby is shipped with racc 1.6 making this spec failing
- this spec is related to platform locking, changing version should not do any harm
https://github.com/rubygems/rubygems/commit/3e18b626cb - 09:00 AM Revision 17fb785d (git): [rubygems/rubygems] Vendor tsort into rubygems
- So that it loads a consistent version of the library and `rubygems` is
never affected by gem activation conflicts related to `tsort`.
Getting CI green required updating one `bundler` spec, because `tsort`
is no longer loaded by `bundle ... - 08:32 AM Revision f45af5f0 (git): Support gemification of tsort
- Co-authored-by: Frederik Dudzik <frederik.dudzik@shopify.com>
Co-authored-by: Jacques Chester <jacques.chester@shopify.com> -
08:22 AM Revision a9be84db (git): [rubygems/rubygems] Add new default gems to setup_spec exempts.
- - error_highlight was introduced at https://github.com/ruby/ruby/commit/e94604966572bb43fc887856d54aa54b8e9f7719
orriginally as error_squiggle later renamed at https://github.com/ruby/ruby/commit/9438c99590f5476a81cee8b4cf2de25084a40b4... -
08:13 AM Revision 79f90535 (git): [rubygems/rubygems] Unskip inline spec that can pass now on the latest rubies
- https://github.com/rubygems/rubygems/commit/a81d4421b4
- 08:13 AM Revision 2a90ad7a (git): [rubygems/rubygems] use Rubocop Lint/Debugger check rather than custom spec
- We have a quality spec that check for debugger statements. Rubocop has a
cop that tests for the same thing. As such it makes sense to remove the
spec and activate the cop.
https://github.com/rubygems/rubygems/commit/dc1eb6eec5 -
02:04 AM Revision 27220b2f (git): Skip CodeQL if only document files changed [ci skip]
-
01:58 AM Revision ffd8592e (git): Update stdlib version
-
01:57 AM Revision c1228f83 (git): vm_core.h: Avoid unaligned access to ic_serial on 32-bit machine
- This caused Bus error on 32 bit Solaris
-
01:57 AM Revision 92ad520a (git): Merge macOS CIs to reduce concurrency
- On GitHub Actions, the macOS runners seem much more expensive than
Ubuntu, and its limit is the most significant bottlenecks for our
CIs. As the "check" tasks usually finish 3 or 4 times faster than
"test-bundler-parallel", it will be b... -
01:32 AM Revision 96648c50 (git): Mitigate the timeout of tests [ci skip]
- * The worker timeouts seem working for test-all.
* The bundled gems have increased. -
01:26 AM Feature #18020: Introduce `IO::Buffer` for fiber scheduler.
- @matz you said you are positive on this feature. Can you confirm that we can merge this PR? Even we can mark it as experimental, but it would be great to start testing with 3.1 preview release.
@akr I believe we addressed your concerns ...
10/28/2021
-
10:01 PM Revision 3e743d31 (git): Cleanup some RDoc (#5050)
- Mostly adding blank line before and after code segment, to improve compliance with doc\documentation_guide.rdoc.
-
10:01 PM Feature #11256: anonymous block forwarding
- Looks like @matz approved this, but it was never committed. I've submitted a pull request for this that is based on the patches provided by @mame and @nobu: https://github.com/ruby/ruby/pull/5051
-
09:39 PM Revision 9b751db9 (git): Fix script_lines in loaded iseq as nil
-
08:11 PM Revision f8bbd608 (git): Enhanced RDoc for Numeric (#4994)
- Treats:
#eql?
#<+>
#floor
#ceil
#round
#truncate
#step -
05:44 PM Feature #18275: Add an option to define_method to not capture the surrounding environment
- Regarding the examples, they are over simplified for the sake of understanding. Sure, you wouldn't need `define_method` in those cases. I'm talking more generally when someone needs to capture a block or surrounding locals to use in `def...
-
11:27 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
- In general if `define_method` takes an existing Proc, it should IMHO behave exactly like calling that Proc.
If we do anything special, every call like that to `define_method` would become very expensive as we'd need to e.g. change bytec... -
12:45 AM Feature #18275: Add an option to define_method to not capture the surrounding environment
- Can you tell us why you cannot define your methods using normal `def` statements? As far as I read your proposal there seems no need of `define_method` to creep in.
-
05:43 PM Revision e53d07f5 (git): Rename ::YJIT to RubyVM::YJIT
- Since the YJIT Ruby module is CRuby specific and not meant for general
use, it should live under RubyVM instead of at top level. -
05:40 PM Revision d8e97169 (git): [rubygems/rubygems] Only delete cached gem when it's corrupted
- Rescuing all errors here might end up hiding other errors if the
deletion of the cached gem itself raises an error for some reason. Let's
be more conservative.
https://github.com/rubygems/rubygems/commit/3d80dfba08 -
05:00 PM Revision cbf2078a (git): need to mark script_lines
-
04:57 PM Revision acb2f86c (git): string.c: Add some comments about STR flags
-
04:54 PM Revision c75df796 (git): Update to ruby/spec@21a48d9
-
03:53 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
- In Rails we use `obj.instance_exec(&proc_obj)` in a few places. One of the downsides `instance_exec` has is that it creates a singleton class for `obj`, which isn't friendly to method caches or JITs. `Proc#bind_call` would be very useful...
-
02:50 PM Feature #18276: `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
- I'm in favor of adding this method, and would like to see it support the following:
```ruby
pr = ->(*a, **kw, &block) do
# ...
block.call(something)
end
pr.bind_call(obj, arg, kw: nil) do |something|
# ...
end
```
Thi... -
12:37 PM Feature #18276 (Rejected): `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
- `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
```ruby
proc_obj = proc{|params...| ...}
obj.instance_exec(params..., &proc_obj)
```
is frequent pattern.
```
$ gem-codesearch 'instance_exec.+\&' | wc -l
95... - 03:28 PM Revision 3bf36979 (git): * 2021-10-29 [ci skip]
-
03:22 PM Revision 0a9cbe85 (git): Skip tests if only document files changed
-
03:01 PM Feature #11919: Passing a module directly
- jeremyevans0 thanks for taking up the issue, anyway.
-
02:43 PM Feature #11919 (Rejected): Passing a module directly
- Eregon (Benoit Daloze) wrote in #note-8:
> I guess we need to persuade matz then: https://bugs.ruby-lang.org/issues/14344#note-15 (https://bugs.ruby-lang.org/issues/16241#note-5 has some more context)
This shows why we need feature t... -
11:15 AM Feature #11919: Passing a module directly
- I guess we need to persuade matz then: https://bugs.ruby-lang.org/issues/14344#note-15 (https://bugs.ruby-lang.org/issues/16241#note-5 has some more context)
-
11:07 AM Feature #11919: Passing a module directly
- Discussed here, also: #16241
Copying my comment from there:
> I believe that is really a super-good thing. As I've written elsewhere in this tracker, the most useful case for refinements is "in the current module, I want some shortc... -
11:02 AM Feature #11919: Passing a module directly
- I'm rather neutral about this.
On one hand, I think `using Module.new {` is clearer that there is a module involved and might avoid some confusion when learning about refinements,
OTOH it seems a fairly harmless shorthand which doesn't... -
02:33 PM Feature #12533: Refinements: allow modules inclusion, in which the module can call internal methods which it defines.
- chucke (Tiago Cardoso) wrote in #note-12:
> Thx for the reply. Is import_methods a new ruby 3.1 feature?
Yes. See commit:6606597109bdb535a150606323ce3d8f5750e1f6 -
10:47 AM Feature #12533: Refinements: allow modules inclusion, in which the module can call internal methods which it defines.
- Thx for the reply. Is import_methods a new ruby 3.1 feature?
-
01:51 PM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
- After some discussion with @ko1, it seems there are different cases.
Sharing `self` is the only way to preserve the Proc's context correctly, i.e., method calls, @ivar, etc still work in the Proc
I think raising if `self` is not shareab... -
11:39 AM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
- Sorry, I missed to paste some part of the snippet, fixed now.
-
11:36 AM Bug #18243: Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it
- Relevant related discussion: https://bugs.ruby-lang.org/issues/18137#note-2
-
12:10 PM Feature #18273: Class#subclasses
- I took a stab at it: https://github.com/ruby/ruby/pull/5045
-
11:31 AM Feature #18273: Class#subclasses
- +1 for Class#subclasses, I think it makes sense since we have Class#descendants.
`Class#subclasses` is then also the "complement" of `Class#superclass`,
just like `Class#descendants` is the complement of `Class#ancestors`. -
11:22 AM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
- IMHO it'd be good to rediscuss this at a dev meeting.
It seems most people agree that `Method#visibility` would be better and more convenient (also @samuel on the PR).
Potential for confusion seems extremely low (to me). -
04:42 AM Feature #11689: Add methods allow us to get visibility from Method and UnboundMethod object.
- jeremyevans0 (Jeremy Evans) wrote in #note-15:
> I've submitted a pull request that implements @matz's idea of `public?`, `private?`, and `protected?`: https://github.com/ruby/ruby/pull/5040
I see that there is still a comment in the pu... -
11:11 AM Feature #12495: Make "private" return the arguments again, for chaining
- :+1:
Note there is some inconsistency with e.g. `attr_reader` always returning an array (#6470):
```ruby
class F
attr_reader :a # => [:a]
end
```
But I think it does not matter too much.
`private` also accepts a single Arra... -
07:45 AM Feature #12495: Make "private" return the arguments again, for chaining
- I stumbled several times upon this issue. The semantics as described above are OK, IMHO. It would be nice if the patch could be merged.
-
09:21 AM Revision d51ba1e1 (git): Add changes Enumerable#each_cons and each_slice in NEWS [ci skip]
-
08:42 AM Revision e76e1d3c (git): Downloader: retry when RFC 2616 noncompliant dates [ci skip]
- zlib.net rarely returns the current time in RFC 2616 noncompliant
format in the response header, and the checksum does not match in
that case (maybe creating the tarball on the fly?). -
05:45 AM Bug #18274 (Closed): Time.new initializes the date incorrectly after a leap day with a positive UTC offset
- Applied in changeset commit:git|1d666ed50f8b4b3779583381882a0b3edd3cff0e.
----------
Fix leap day with UTC offset [Bug #18274]
`struct vtm::year` is a Ruby integer instance, but not a C integer
type. -
05:45 AM Revision 1d666ed5 (git): Fix leap day with UTC offset [Bug #18274]
- `struct vtm::year` is a Ruby integer instance, but not a C integer
type. -
05:31 AM Revision 77544caa (git): add `make runirb` rule
- it's start irb on built ruby (not installed ruby).
-
04:45 AM Revision efcf18f1 (git): Update TypeProf to 0.20.2
-
04:14 AM Revision 179aa26f (git): Prune stale worktrees before checking out a new pull request [ci skip]
-
12:22 AM Revision d8444593 (git): Fix a warning
- ```
../gc.c:2342:45: warning: comparison of integers of different signs: 'short' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
GC_ASSERT(size_pools[pool_id].slot_size == slot_size);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^... -
12:13 AM Feature #18272: Please replace unsafe SHA1 with another digest algorithm
- +1 to replace unsafe use of SHA-1, if any, to something more secure. That shall be a good thing.
-1 for its removal. -
12:07 AM Revision da22e43c (git): Fix a warning
- ```
../gc.c:2342:25: warning: array subscript is of type 'char' [-Wchar-subscripts]
GC_ASSERT(size_pools[pool_id].slot_size == slot_size);
^~~~~~~~
```
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