Activity
From 11/27/2020 to 12/03/2020
12/03/2020
-
11:27 PM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17357] `Queue#pop` should have a block form for clsoed queues (marcandre)
* Have a way to distinguish `nil` from closed queue in `Queue#pop`
* Adding block form similar to `fetch` ok? -
03:04 PM Misc #17346: DevelopersMeeting20201210Japan
- * Meta: please change future deadlines from a week before the meetings to 1 or 2 days before (marcandre)
-
03:00 PM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17363] Timeouts (marcandre)
* Add `timeout` parameter to `Queue.pop`, `Ractor.receive`, ...
* And/or `Timeout::wake` that would make these operations safer by raising only if thread is asleep (and presumably in a safe s... -
02:48 PM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17314] Method declarations (marcandre)
* Have `Module#protected`, `private`, `public` accept a single Array argument of symbols (and also `private_class_method/public_class_method` for consistency)
* Have `Module#attr_r... -
12:14 PM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17361] lambda(&block) does not warn with lazy proc allocation (znz)
* optimization affects warnings
-
06:56 AM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17342] Add Hash#fetch_set (maxlap)
* Yes/no?
-
09:08 PM Bug #17364 (Closed): Fix documentation for String#encode options
- Applied in changeset commit:git|9195310168fa43186b1918fb0432a54b000fcbba.
----------
Update documentation for String#encode{,!} [ci skip]
These methods take keywords, not a hash.
From tjschuck (T.J. Schuck)
Fixes [Bug #17364] -
08:51 PM Bug #17364: Fix documentation for String#encode options
- Thank you, Jeremy — I appreciate all the assistance you gave here!
-
08:46 PM Bug #17364: Fix documentation for String#encode options
- tjschuck (T.J. Schuck) wrote in #note-2:
> Aha, thanks for the pointer to `doc/method_documentation.rdoc`, Jeremy — very helpful!
> ...
I can apply your patch.
> (It would also be ideal if this could be backported to 2.7 to save any... -
08:39 PM Bug #17364: Fix documentation for String#encode options
- Aha, thanks for the pointer to `doc/method_documentation.rdoc`, Jeremy — very helpful!
Based on the info you provided, it seems like using `**options` and axing the `[]` in the call-seq is the preferred method. The attached diff shou... -
08:24 PM Bug #17364: Fix documentation for String#encode options
- Which format should be used in documentation depends on the method implementation. If the method ignores unrecognized keywords, then `**options` should be used. If the method raises an ArgumentError for unrecognized keywords, then keyw...
-
07:44 PM Bug #17364 (Closed): Fix documentation for String#encode options
- (Everything below is written about `String#encode`, but it also applies to `String#encode!` — only referring to `encode` for brevity.)
The current signature for `String#encode` is `str.encode(dst_encoding, src_encoding [, options] )`,... -
08:47 PM Revision 91953101 (git): Update documentation for String#encode{,!} [ci skip]
- These methods take keywords, not a hash.
From tjschuck (T.J. Schuck)
Fixes [Bug #17364] -
07:58 PM Revision 88bb1a67 (git): Skip repeated scan of object during compaction
-
07:13 PM Feature #17342: Hash#fetch_set
- shyouhei (Shyouhei Urabe) wrote in #note-13:
> Yes I’m quite sure he is dead serious. There are idiots who write nonsense codes. As a language ruby has to be fool-proof.
I think such semantics (calling #hash only once) could be pa... -
07:03 AM Feature #17342: Hash#fetch_set
- I think this is a good feature. I like the fact that the this can not be implemented in pure Ruby as efficiently (i.e. with hash calculated once).
An alternative name is `fetch_init`, as it may gives a better idea that it is meant to in... -
07:04 PM Feature #17363: Timeouts
- +1 for `Queue#pop(timeout: 42)`.
FWIW TruffleRuby already has `Queue#receive_timeout` as a private method,
and this is used to implement `Timeout.timeout` without creating a new Thread every time.
---
It sounds like the propose... -
03:11 PM Feature #17363: Timeouts
- I've wanted a timed version of `Queue#pop` for a long time, to use as the backed for Sequel's connection pool. I was thinking of a separate method (`Queue#timed_pop`), but a keyword argument works fine too. I think either is better tha...
-
02:58 PM Feature #17363 (Assigned): Timeouts
- Builtin methods like `Queue.pop` and `Ractor.receive` have no timeout parameter.
We should either:
- provide such a parameter
- and/or provide a `Timeout::wake` that raises an timeout error only if the block is currently sleeping.
... - 05:08 PM Revision 04b96fc3 (git): * 2020-12-04 [ci skip]
-
05:06 PM Revision b60eaea8 (git): Update NEWS [ci skip]
- Make core class updates section use a consistent format. Alphabetize
core class updates section by class name, and stdlib updates section
by library name. Minor formatting changes while here. -
03:49 PM Bug #17362: Thread core dump
- I suspect this is the same issue as #17289 because the segfault occurs immediately after rb_funcallv_with_cc, but I'm not 100% sure. Unfortunately, there is no reproducible code of this issue that is available for ruby core developers, s...
-
03:39 PM Bug #17362 (Feedback): Thread core dump
- Can you please provide a minimal self-contained example showing the problem? Without it, I'm afraid there is not much we can do to help.
-
11:22 AM Bug #17362 (Closed): Thread core dump
- Hi,
I moved from 2.4.10 to 2.7.2, and now I get one thread killed.
I am unable to isolate the root cause.
This is the backtrace from the core dump.
```
Program terminated with signal SIGABRT, Aborted.
#0 0x0000000808eda16a in ... -
03:18 PM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
- A Ruby summary:
```ruby
class Foo
protected [:x, :y]
# same as:
protected :x, :y
attr_accessor :foo, :bar # => [:foo, :foo=, :bar, :bar=] instead of `nil`
attr_reader :foo, :bar # => [:foo, :bar] instead of `nil`
... -
02:34 PM Revision bc4ca06f (git): test/ruby/test_io.rb: some test methods had been overwritten
- http://rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20201203T123002Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20201203T123002Z/ruby/test/ruby/test_io.rb:1830:
warning: method redefined; discarding old test_each_byte
/home/chkb... -
12:31 PM Revision 2a99fea8 (git): test-bundled-gems.rb: show failed gems at last
-
10:17 AM Revision d3c685f0 (git): digest gem is available now
-
09:41 AM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- About `__getaddrinfo_a_before_exec_func`:
* the name starting with `__` is reserved by C standard
* the name seems too specific and can be more generic w/o `getaddrinfo_a`
* it should not be exposed in public headers
About the test... -
08:48 AM Revision 1af8a0a9 (git): [ruby/ipaddr] fixup 90b46678a5b09ed32612b0629b7c51c6d39a0444
- https://github.com/ruby/ipaddr/commit/d2ec7cc3ee
-
08:37 AM Revision e62eb9a3 (git): [ruby/ipaddr] Relaxed Ruby version for 3.0
- https://github.com/ruby/ipaddr/commit/90b46678a5
- 08:37 AM Revision d65621b6 (git): Specify minimum version.
-
08:36 AM Revision ca024bee (git): Use Gemfile instead of Gem::Specification#add_development_dependency.
- 08:35 AM Revision 7b126a82 (git): Simplify `ipaddr.gemspec`.
- 08:35 AM Revision ab524dfd (git): [ruby/forwardable] Specify minimum Ruby version.
- Remove jruby-9.1.17.0 from CI
https://github.com/ruby/forwardable/commit/08d92a9c39 -
08:35 AM Revision 5b1ebb8e (git): [ruby/readline-ext] Rename depend.gem with depend-gem
- https://github.com/ruby/readline-ext/commit/897ffe26a6
-
08:35 AM Revision b526db85 (git): [ruby/readline-ext] Version 0.1.1
- https://github.com/ruby/readline-ext/commit/6d55854434
-
08:35 AM Revision b619197d (git): Use gemified depend
-
08:35 AM Revision eab4aa41 (git): [ruby/io-wait] Added extensions
- https://github.com/ruby/io-wait/commit/664c93b2ff
-
08:35 AM Revision 09266ecc (git): [ruby/io-wait] Fixed regexp to reject .travis* at the toplevel only
- https://github.com/ruby/io-wait/commit/4434b10e46
-
08:35 AM Revision 7fcbe07d (git): [ruby/io-wait] Exclude dot-files for CIs
- https://github.com/ruby/io-wait/commit/12cce69ddf
-
08:35 AM Revision 09bcb935 (git): [ruby/io-wait] Fix ls-files matching regexp
- See rubygems/rubygems@8a81183236c4475152798db99734e89779287331.
https://github.com/ruby/io-wait/commit/04857e0cf5 -
08:35 AM Revision 2800e9f3 (git): [ruby/io-nonblock] Added extensions
- https://github.com/ruby/io-nonblock/commit/8b7abbd1b5
-
08:35 AM Revision 78201620 (git): [ruby/io-nonblock] Exclude dot-files for CIs
- https://github.com/ruby/io-nonblock/commit/9fa3ad9c7a
-
08:35 AM Revision 7d0a6e28 (git): [ruby/io-nonblock] Fix ls-files matching regexp
- See rubygems/rubygems@8a81183236c4475152798db99734e89779287331.
https://github.com/ruby/io-nonblock/commit/e14f7952c1 -
08:35 AM Revision 412a0f52 (git): [ruby/digest] LICENSE
- https://github.com/ruby/digest/commit/aa048ce345
-
08:35 AM Revision 7324d76d (git): [ruby/digest] Fixup d981714348f71177132426e3ac19598e1b2e8f5d
- https://github.com/ruby/digest/commit/502a12587c
-
08:01 AM Revision 541e4340 (git): Assert unit->iseq null out happens under the JIT/GC guard
-
07:52 AM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
- I've created a PR for the proposal https://github.com/ruby/ruby/pull/3839
-
07:38 AM Revision 58c3c75f (git): Skip checking Ractor recursive locking
- for an MJIT worker thread. We can't do it because its GET_EC() returns
NULL. -
06:27 AM Revision 29c9588e (git): Add Proc#{==,eql?} addition to NEWS [ci skip]
-
03:47 AM Revision 43b95baf (git): delete deprecated IO-like methods
- This commit deletes
{IO,ARGF,StringIO,Zib::GZipReader}#{bytes,chars,lines,codepoints}, which
have been deprecated since c47c095b9740e7c19d6fdca29ab661c1089221d4.
Note that String also has those methods. They are neither depreacted
nor ... -
03:07 AM Revision 84eb2bfa (git): include/ruby/internal/xmalloc.h: add doxygen
- Thought it was not a bad idea to document these CAPI. [ci skip]
-
02:45 AM Feature #17361 (Closed): lambda(&block) does not warn with lazy proc allocation
- In NEWS,
```
* Kernel#lambda now warns if called without a literal block.
[[Feature #15973]]
```
But the following code from https://docs.ruby-lang.org/ja/latest/method/Kernel/m/lambda.html (<https://github.com...
12/02/2020
-
09:49 PM Revision 1f71c7dc (git): add GC guard
- new_prev_env is stored in the env_body memory block but this is not
a GC root, so new_prev_env could be freed. -
09:42 PM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17055] Allow suppressing uninitialized instance variable and method redefined verbose mode warnings (jeremyevans0)
* Can we completely remove uninitialized instance variable warnings? Then we don't need this feature. I wo... -
09:25 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- During the November developer meeting, @matz seems in favor of completely removing the undefined instance variable warning. I am strongly in favor of removing the undefined instance variable warning completely, and much prefer doing tha...
-
06:47 PM Revision 51268be7 (git): When allocating new pages, add them to the end of the linked list
- When we allocate new pages, allocate them on the end of the linked list.
Then when we compact we can move things to the head of the list -
05:42 PM Bug #17359: Ractor copy mode is not Ractor-safe
- Dan0042 (Daniel DeLorme) wrote in #note-14:
> I think it's feasible. `initialize_clone` and `initialize_copy` are mostly (only?) used because `clone` and `dup` only
Indeed, I imagine that this will be most of the cases, as of today ... -
02:00 PM Bug #17359: Ractor copy mode is not Ractor-safe
- ko1 (Koichi Sasada) wrote in #note-6:
> One idea is prohibit `initialize_copy` written in Ruby, for ractor_copy.
> ...
I think it's feasible. `initialize_clone` and `initialize_copy` are mostly (only?) used because `clone` and `dup` only... -
05:42 PM Bug #17341 (Closed): Unsound quantifier reduction with nested quantifiers
- Applied in changeset commit:git|9e73177d5362c1986814f411961b712967dc5f97.
----------
Do not reduce quantifiers if it affects which text will be matched
Quantifier reduction when using +?)* and +?)+ should not be done
as it affects whic... -
05:42 PM Revision 9e73177d (git): Do not reduce quantifiers if it affects which text will be matched
- Quantifier reduction when using +?)* and +?)+ should not be done
as it affects which text will be matched.
This removes the need for the RQ_PQ_Q ReduceType, so remove the
enum entry and related switch case.
Test that these are the only... - 04:23 PM Revision 7546be2c (git): * 2020-12-03 [ci skip]
-
04:23 PM Revision 0bebea98 (git): Incremental sweeping should not require page allocation
- Incremental sweeping should sweep until we find a slot for objects to
use. `heap_increment` was adding a page to the heap even though we
would sweep immediately after.
Co-authored-by: John Hawthorn <john@hawthorn.email> -
03:20 PM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- patch updated:
- to stop posting new task, we need keep holding GVL.
- use function pointer instead of `rb_funcall` (this may release GVL)
- use `sleep()` instead of `rb_thread_sleep()` (ditto) -
02:52 PM Bug #17360 (Rejected): Objects disappear from ObjectSpace after using Ractor
- Test:
```ruby
GC.disable
STR = -"testing 123"
x = STR.dup
puts "before:"
ObjectSpace.each_object(String){ |s| puts s.object_id if s == STR }
Ractor.new{ }.take
puts "after:"
ObjectSpace.each_object(String){ |s| puts s.object_i... -
02:05 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
- Thanks! I'll give it a try :-)
-
01:55 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
- I think we need to decide if this change is accepted, I'll add it to the dev meeting agenda.
Indeed, the concrete change would just be that, feel free to give it a try. -
12:02 PM Feature #16697: Hash.ruby2_keywords_hash?(value) should support any object
- I'd like to contribute here but I'm new to this so please forgive me if this is a stupid question: we basically just need to change `ruby2_keywords_hash?` to return `false` if the argument is not an `Hash` instead of raising a `TypeError` ?
-
11:17 AM Revision 12a121cc (git): ENV.index: delete
- Has been deprecated since 373282f6656d3d3d989d261e7a95f8e81b5c9712.
-
11:06 AM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- FYI.
I was informed by IBM that IBM i PASE *malloc* always returns 16-byte aligned memory!
This differs from AIX (that is not my target).
So my patch seems to be
* redundant for my environment and
* unsafe in other platforms.
None... -
10:36 AM Revision 28001e55 (git): Added dependencies for net-pop
-
10:36 AM Revision 1fa3f9a1 (git): Added dependencies for net-imap
-
10:11 AM Revision 4e01ab34 (git): Revert "Removed deprecated Dir.exists? and File.exists?"
- This reverts commit 1a5205536f0c0d6021450b11722919211847df86.
-
08:24 AM Revision 1a520553 (git): Removed deprecated Dir.exists? and File.exists?
-
08:06 AM Revision 9e94cd18 (git): test-bundled-gems: select bundled gems to test by BUNDLED_GEMS
-
08:04 AM Revision 44f038bd (git): gmake.mk: renamed BUNDLED_GEMS as bundled-gems
- Hyphenated names are safe in GNU make.
-
07:16 AM Revision 30ded41f (git): Loaded script is unset yet when crashed in the initialization phase
-
04:45 AM Revision 98c9120c (git): Bundle rbs 0.19.0 (#3838)
-
04:32 AM Revision c461b240 (git): Removed needless .rb
- 03:46 AM Revision 4bbb6100 (git): Emit warning when 'RubyGems' were not properly loaded.
- 03:46 AM Revision fbe37ff3 (git): Emit warning when 'did_you_mean' was not properly loaded.
- 03:46 AM Revision 0ad7f2dd (git): Don't fail when 'RubyGems' are not available.
- Although 'RubyGems' are always available in upstream Ruby, it might not
be available optionally when Ruby is delivered via packaging systems.
E.g. Linux distributions. - 03:46 AM Revision 55c9a95a (git): Don't fail when 'did_you_mean' is not available.
- Although 'did_you_mean' is always available in upstream Ruby, it might
not be available when speed, memory, disk or network bandwidth is a
concern. This is typically the case for production environment, where
'did_you_mean' is of limited... -
02:19 AM Feature #17303 (Assigned): Remove webrick from stdlib
-
02:09 AM Revision 2e601c28 (git): digest: remove OpenSSL engine
- The OpenSSL engine of Digest uses the low-level API of OpenSSL, whose
use has been discouraged for years for multiple reasons.
A long-standing issue on a FIPS-enabled system is that using ::Digest
results in crashing the Ruby process, b... - 01:59 AM Revision 95bb49d4 (git): Fix code example in Readline::HISTORY documentation.
- Wrapping the example into a
- 12:44 AM Revision 82dc0c6a (git): memory_view.c: Check availability in rb_memory_view_get
-
12:12 AM Revision 7172272c (git): Added dependencies for net-ftp
-
12:12 AM Revision afba96f9 (git): Added dependencies for net-http
-
12:12 AM Revision 48149d8f (git): Added dependencies for net-smtp
-
12:12 AM Revision b0f4cccf (git): Added dependencies for net-protocol
-
12:12 AM Revision f8435f42 (git): Added dependencies for tmpdir
-
12:12 AM Revision 10d6a273 (git): Added dependencies for erb
-
12:12 AM Revision c364865b (git): Added dependencies for pp
-
12:02 AM Bug #17213 (Closed): Rails CI against Ruby 3.0.0dev fails likely since a53e2850c572135ed657144bc14e47b29c64fa94
12/01/2020
-
11:26 PM Bug #17213: Rails CI against Ruby 3.0.0dev fails likely since a53e2850c572135ed657144bc14e47b29c64fa94
- This issue has been addressed by https://github.com/ruby/ruby/commit/56bb6e7d582f2e73c23f05594cd89d6deea9c318
This Rails CI job which runs `3.0.0p-1 (2020-12-02 revision 984ba8de75ab306bb87c8f4767dd179bb81ee308) [x86_64-linux]
`succe... -
10:28 PM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- My proposal I wrote in #note-1 is basically the same as @kou’s in #note-5. I think it’s quite possible to add such things.
-
08:11 PM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- How about introducing new APIs like `ruby_xaligned_malloc()` and `ruby_xaligned_free()` that wraps existing `rb_aligned_malloc()` and `rb_aligned_free()` with `objspace_*()` and `TRY_WITH_GC()` like `objspace_xmalloc0()` and `objspace_xf...
-
05:46 PM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- IMHO, this feature is something that Fiddle or FFI should handle.
They can call malloc/posix_memalign/etc themselves of course.
I don't see a need to change anything so fundamental in the GC.
Fiddle/FFI can use finalizers if automat... -
12:45 PM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- Sadly that has portability issues. It is not always possible to pass a pointer returned from aligned_alloc to realloc. You are lucky to have an environment with that capability. But we can’t always replace malloc with aligned_alloc.
-
06:32 AM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- Right now the change I have introduced manually is fine for me. I was wondering if there was a simple way to #ifdef the change in the macro invocation in `gc.c` so that I can re-introduce it easily in future releases by setting a define...
-
12:29 AM Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
- You mean the `configure` script we ship along with ruby? I don't think it's a good idea to a add parameter there (too much overhead for everything allocated). Instead we could possibly implement a variant of `posix_memalign` that intera...
-
10:10 PM Bug #17359: Ractor copy mode is not Ractor-safe
- THis was changed to actual traversal and cloning. This way any intermediate object that is shareable is simply shared. Other objects were also not marshalable but can be cloned.
-
10:01 PM Bug #17359: Ractor copy mode is not Ractor-safe
- I was under the impression that ractor-copy worked via dump+load sort of like marshaling, in fact I thought that was the basis for #17298 basket communication APIs. Is that not (no longer?) the case? Because Marshal.load doesn't call `in...
-
08:40 PM Bug #17359: Ractor copy mode is not Ractor-safe
- ko1 (Koichi Sasada) wrote in #note-10:
> same as https://bugs.ruby-lang.org/issues/17359#note-7 ?
Ohh, sorry 😅 I got confused because I didn't understand how moving worked. Now I understand better. So yes, there would be a performanc... -
06:44 PM Bug #17359: Ractor copy mode is not Ractor-safe
- > Nobody commented on my idea: make the deep copy as currently (in the current Ractor), then move it to the new Ractor (like send(new_copy, move: true))
same as https://bugs.ruby-lang.org/issues/17359#note-7 ? -
06:29 PM Bug #17359: Ractor copy mode is not Ractor-safe
- I feel it is important not to break the contract of `initialize_copy` (or otherwise replace it with another one, but that doesn't solve the problem).
Nobody commented on my idea: make the deep copy as currently (in the current Ractor)... -
06:09 PM Bug #17359: Ractor copy mode is not Ractor-safe
- Eregon (Benoit Daloze) wrote in #note-7:
> An idea: copy everything in the source Ractor as currently, and then `move` the resulting copied object.
> ...
Complete idea, but it makes two objects per one. mmm.
Doing it if user-defined... -
05:59 PM Bug #17359: Ractor copy mode is not Ractor-safe
- An idea: copy everything in the source Ractor as currently, and then `move` the resulting copied object.
That way, the source Ractor might keep references to copied objects, but it won't be able to use them.
This actually means a parti... -
05:53 PM Bug #17359: Ractor copy mode is not Ractor-safe
- One idea is prohibit `initialize_copy` written in Ruby, for ractor_copy.
But I'm not sure how it is feasible.
```
ko1@aluminium:~$ gem-codesearch 'def initialize_clone' | wc -l
120
ko1@aluminium:~$ gem-codesearch 'def initialize_c... -
05:36 PM Bug #17359: Ractor copy mode is not Ractor-safe
- marcandre (Marc-Andre Lafortune) wrote in #note-2:
> The issue I'm pointing out is that one can register the new copy in the initial Ractor and use that reference later to mutate the object.
I couldn't guess that the src ractor can acce... -
05:30 PM Bug #17359: Ractor copy mode is not Ractor-safe
- Dan0042 (Daniel DeLorme) wrote in #note-3:
> The `initialize_copy` is executed in the main ractor, that's why it can set a global variable. It should be executed in the sub-ractor I think.
It is not acceptable because the src object ... -
01:09 PM Bug #17359: Ractor copy mode is not Ractor-safe
- The `initialize_copy` is executed in the main ractor, that's why it can set a global variable. It should be executed in the sub-ractor I think.
-
09:23 AM Bug #17359: Ractor copy mode is not Ractor-safe
- ko1 (Koichi Sasada) wrote in #note-1:
> mmm, should not call `clone` here?
Sorry, I don't understand. Above code should be same with `initialize_copy` => `initialize_clone`, if that's what you mean?
The issue I'm pointing out is t... -
09:14 AM Bug #17359: Ractor copy mode is not Ractor-safe
- mmm, should not call `clone` here?
-
08:29 AM Bug #17359 (Assigned): Ractor copy mode is not Ractor-safe
- It should not be possible to mutate an object across Ractors, but the copy mode allows it currently:
```ruby
class Foo
attr_accessor :x
def initialize_copy(*)
$last = self
super
end
end
o = Foo.new
o.x = 42
... -
08:23 PM Revision 56141d38 (git): Fix docs about movement for rb_gc_register_mark_object()
- This API in fact pins objects passed to it. See vm.c:2546.
- 03:40 PM Revision 984ba8de (git): * 2020-12-02 [ci skip]
-
03:40 PM Revision 21bc330e (git): Bundle rbs 0.18.1 (#3825)
- 11:40 AM Revision 0c57438c (git): Update fixnum.h
- Fix a typo: "nevative" => "negative" in `rb_fix_plus_fix`.
-
10:48 AM Revision ad0c2232 (git): Added dependencies for open-uri
-
10:48 AM Revision ac29c405 (git): Added dependencies for time
-
10:48 AM Revision 0115ae5f (git): Added dependencies for prime
-
10:48 AM Revision 6ac5e3c0 (git): Added dependencies for weakref
-
09:16 AM Revision 764de756 (git): should not use rb_str_modify(), too
- Same as 8247b8edde, should not use rb_str_modify() here.
https://bugs.ruby-lang.org/issues/17343#change-88858 -
08:35 AM Revision d5e16161 (git): Update ext/.document
-
07:13 AM Bug #17358 (Closed): Backport 1ca9facab6c85264168b4c0a18c24f489cabcc9f
- monitor が C 実装になったときから rdoc が生成されなくなっていたようで、 `ext/.document` に追加する必要があったようです。
C 実装になったのが 2.7 からで、2.6 以前には影響しないようなので、2.7 へのバックポートをお願いします。 -
07:07 AM Revision 1ca9faca (git): Add monitor to document files
-
06:44 AM Feature #17307 (Closed): A way to mark C extensions as thread-safe, Ractor-safe, or unsafe
- Applied in changeset commit:git|182fb73c40351f917bf44626c44c1adb6cb1aa5a.
----------
rb_ext_ractor_safe() to declare ractor-safe ext
C extensions can violate the ractor-safety, so only ractor-safe
C extensions (C methods) can run on no... -
06:44 AM Revision 182fb73c (git): rb_ext_ractor_safe() to declare ractor-safe ext
- C extensions can violate the ractor-safety, so only ractor-safe
C extensions (C methods) can run on non-main ractors.
rb_ext_ractor_safe(true) declares that the successive
defined methods are ractor-safe. Otherwiwze, defined methods
chec... -
04:40 AM Bug #17343 (Open): Ractor can't clone frozen structures
- Cool. You'll need to do the same for strings though...
```ruby
$ ruby -e 'Ractor.new(String.new.instance_eval { @x = []; freeze}){}'
<internal:ractor>:38:in `new': can't modify frozen #<Class:#<String:0x00007fec13883478>>: "" (Froze... -
04:18 AM Bug #17343 (Closed): Ractor can't clone frozen structures
- Applied in changeset commit:git|8247b8eddeb2a504a5c9776d1f77d413c8146897.
----------
should not use rb_ary_modify()
ractor_copy() used rb_ary_modify() to make sure this array is not
sharing anything, but it also checks frozen flag. So ... -
04:18 AM Revision 8247b8ed (git): should not use rb_ary_modify()
- ractor_copy() used rb_ary_modify() to make sure this array is not
sharing anything, but it also checks frozen flag. So frozen arrays
raises an error. To solve this issue, this patch introduces new
function rb_ary_cancel_sharing() which m... -
02:10 AM Revision d2cfb522 (git): show with sharing info
-
01:42 AM Feature #17357 (Open): `Queue#pop` should have a block form for closed queues
- It is currently difficult to reliably distinguish a `nil` value in a queue from the `nil` that is returned when a Queue is closed:
```ruby
n = 100_000
result = []
t2 = Thread.new { n.times { Thread.pass }} # to make things less pre... -
01:11 AM Revision a67cd8a8 (git): -> creates a lambda so this updates the documentation to reflect that
-
12:39 AM Revision 67693d8d (git): ractor local storage C-API
- To manage ractor-local data for C extension, the following APIs
are defined.
* rb_ractor_local_storage_value_newkey
* rb_ractor_local_storage_value
* rb_ractor_local_storage_value_set
* rb_ractor_local_storage_ptr_newkey
* rb_ractor_loc... -
12:39 AM Revision e79f1941 (git): tune parallel test
- This patch contains the fowllowing hacks:
(1) Add "--timetable-data=FILE" option for test-all
This option enables to dump timeline event
contains worker, suite, and start/end time.
(2) remove TestJIT in test_jit_debug.rb on para... -
12:34 AM Bug #17344: `Ractor#shareable?` confused by recursive structures
- Thanks Nobu.
Same issue was still present with `Ractor.make_shareable`, which I fixed in https://github.com/ruby/ruby/pull/3827
Please let me know if I missed something. - 12:33 AM Revision e25165b3 (git): Fix `Ractor.make_shareable` for recursive structures with unfreezable components
- Followup to #3823
11/30/2020
- 10:45 PM Revision 750e2d9e (git): * 2020-12-01 [ci skip]
-
10:45 PM Revision 56bb6e7d (git): Only check if the current ep is a local or not, then mark
- The vm mark function should only check if the current frame is a local
or not and then mark values in that frame. Since it's walking up the
stack looking at each cfp, then all ep's should be examined.
This fixes a bug in the Rails test... -
07:44 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- mame (Yusuke Endoh) wrote in #note-6:
> An example. You can ignore the result of `const_source_location` if `autoload?` returns non-nil.
> ...
@mame Thank you! That actually works for my use-case. In that case, I suggest that we leave ... -
07:06 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- We can probably never change this behavior due to backwards compatibility, but along the same lines, I think this behavior is weird too:
```
irb(main):001:0> File.read "foo.rb"
=> "class Bar\nend\n"
irb(main):002:0> autoload(:Foo, ... -
06:58 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- jeremyevans0 (Jeremy Evans) wrote in #note-4:
> This is not always true. Ruby does not know that the constant's location will be in that file. All it knows is that requiring that file should result in the constant being available afte... -
04:33 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- An example. You can ignore the result of `const_source_location` if `autoload?` returns non-nil.
```
$ irb
irb(main):001:0> autoload(:Foo, "./foo")
=> nil
irb(main):002:0> Module.autoload?(:Foo)
=> "./foo"
irb(main):003:0> Modul... -
04:28 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- @ufuk @tomstuart I'm unsure if I could understand your use case correctly, but maybe does `Module#autoload?` help you?
-
04:14 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- ufuk (Ufuk Kayserilioglu) wrote in #note-2:
> @mame In my use-case, I would very much like `Module#const_source_location` to tell me where the constant is loaded or *would be loaded from if it is autoloaded*. I am doing runtime reflecti... -
01:34 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- > Do you think what is the purpose of `Module#const_source_location`? Unfortunately, the original motivation is not expressed in #10771. IMO, it is for debugging. I think, when we are trying to find the definition of a constant, it is ac...
-
12:16 PM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- @mame In my use-case, I would very much like `Module#const_source_location` to tell me where the constant is loaded or *would be loaded from if it is autoloaded*. I am doing runtime reflection to discover types in gems and their associat...
-
01:23 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
- Do you think what is the purpose of `Module#const_source_location`? Unfortunately, the original motivation is not expressed in #10771. IMO, it is for debugging. I think, when we are trying to find the definition of a constant, it is actu...
-
07:30 PM Feature #17355: Using same set of names in or-patterns (pattern matching with Foo(x) | Bar(x))
- decuplet (Nikita Shilnikov) wrote in #note-2:
> Out of curiosity, did you see an example of syntax like that in any other language?
No I haven't. I briefly mentioned it in #16464#note-2; it just seemed a logical complement to Or-patt... -
06:42 PM Feature #17355: Using same set of names in or-patterns (pattern matching with Foo(x) | Bar(x))
- Dan0042 (Daniel DeLorme) wrote in #note-1:
> Or-patterns _are_ supported, just not with variable assignment. I agree with the request but the title of the ticket is a bit misleading.
Yeah, thanks, I updated the title.
Dan0042 (D... -
04:04 PM Feature #17355: Using same set of names in or-patterns (pattern matching with Foo(x) | Bar(x))
- Or-patterns _are_ supported, just not with variable assignment. I agree with the request but the title of the ticket is a bit misleading.
But I think the `user_email` example actually makes a rather good case for the usefulness of And... -
07:22 PM Bug #17197: Some Hash methods still have arity 2 instead of 1
- It doesn't have to be a deprecation warning though. But I think that in the same sense as the "method redefined" warning indicates a potential problem, `hash.select{|x|...}` is likely to have a surprising result, and that's worth a warning.
-
06:36 PM Feature #17316: On memoization
- marcandre (Marc-Andre Lafortune) wrote in #note-3:
> Gem is here: https://github.com/marcandre/ractor-cache
> ...
Since you say so... :-)
An additional strategy might to wrap the @cache in a Ractor::LVar (if/once available). I tend to... -
03:26 PM Feature #17326: Add Kernel#must! to the standard library
- I'm also not fond of the name `must`, so I'm relieved that Matz is of the same opinion.
In the end I think that `notnil` is the best option. It's clear. It's explicit. It's short. There's no rule that says an error-raising method shou... -
02:38 PM Feature #17016: Enumerable#accumulate
- y.annikov (Yakov Annikov) wrote in #note-35:
> What about `#cumulate`? Does it sound natural?
I'm not as familiar with the verb "cumulate", so it doesn't sound as natural to me as "accumulate". But that being said, I don't think ther... -
10:06 AM Revision 89774a93 (git): [DOC] Update -l option [ci skip]
- `-l` option has used `chomp!` since Ruby 2.5. [Bug #12926]
-
09:27 AM Revision b4e21ce2 (git): Clean temproray directory created by test-spec
-
09:27 AM Revision d92f427d (git): Clean static-ruby
-
08:33 AM Revision 6bef4942 (git): Fix rb_interned_str_* functions to not assume static strings
- Fixes [Feature #13381]
When passed a `fake_str`, `register_fstring` would create new strings
with `str_new_static`. That's not what was expected, and answer
almost no use cases. -
08:25 AM Feature #17356 (Open): Alignment of memory allocated through Fiddle struct's malloc
- I am testing a low-level patch for **Ruby 3** that inside *gc.c* replaces:
`TRY_WITH_GC(size, mem = malloc(size));`
with:
`TRY_WITH_GC(size, mem = aligned_alloc(16,size));`
This should allow me to control that Fiddle retu... -
07:25 AM Feature #17307: A way to mark C extensions as thread-safe, Ractor-safe, or unsafe
- Here is implementation: https://github.com/ruby/ruby/pull/3824/files
Documents will be filled soon... -
03:23 AM Feature #17307: A way to mark C extensions as thread-safe, Ractor-safe, or unsafe
- Eregon (Benoit Daloze) wrote in #note-17:
> shyouhei (Shyouhei Urabe) wrote in #note-16:
> ...
For instance:
```C
#include <string.h>
const char *
foo(int bar)
{
return strerror(bar);
}
```
This is not a thread-safe ... -
07:08 AM Bug #17344 (Closed): `Ractor#shareable?` confused by recursive structures
- Applied in changeset commit:git|930a135524382ddd80c0608a7593b6cdfceee846.
----------
Fixed Ractor.shareable? on cross-recursive objects [Bug #17344] -
07:07 AM Revision 930a1355 (git): Fixed Ractor.shareable? on cross-recursive objects [Bug #17344]
-
06:20 AM Bug #17192 (Closed): ISeq.load_from_binary can cause BUG if binary is a rbinc-derived
- Applied in changeset commit:git|555bd83a8e8b1e859f698089cbbd9ad938159a0e.
----------
Raise when loading unprovided builtin function [Bug #17192] -
06:19 AM Revision 555bd83a (git): Raise when loading unprovided builtin function [Bug #17192]
- 05:53 AM Revision 73a337e2 (git): Keep references of memory-view-exported objects (#3816)
- * memory_view.c: remove a reference in view->obj at rb_memory_view_release
* memory_view.c: keep references of memory-view-exported objects
* Update common.mk
* memory_view.c: Use st_update -
03:46 AM Bug #17335: load gem in ruby 2.6.6 extremely slow
- thanks Jeremy. I will post the issue in ruby-tk.
-
03:17 AM Bug #17335 (Third Party's Issue): load gem in ruby 2.6.6 extremely slow
- paulHu (paul hu) wrote in #note-4:
> could someone please have a look at this?
From your own analysis, the problem seems to be in tk. I can replicate your issue:
```
$ time ruby -rsequel -rtk -e '1'
0m02.37s real 0m00.... -
02:49 AM Bug #17335: load gem in ruby 2.6.6 extremely slow
- could someone please have a look at this?
-
03:29 AM Feature #17353: Functional chaining operator
- Off topic:
fulcanelly (Maks Kompanienko) wrote:
> ``` ruby
> ...
This made me want to disable fluent-dots in endless-def...
-
03:18 AM Revision 7e1dbe59 (git): [DOC] Fixed st_udpate comment [ci skip]
- Clarified that the first and second arguments to the callback
function are pointers to the KEY and the VALUE, but not those
values themselves.
11/29/2020
-
11:40 PM Feature #8421: add Enumerable#find_map and Enumerable#find_all_map
In Ruby 2.7, I think we can use `enumerable.lazy.filter_map{..}.first` as an equivalent for `.find_map{..}`
-
08:37 PM Misc #17337: Don't embed Ruby build-time configuration in Ruby
- It seems that this issue also breaks building the sassc gem from version 2.1 onward.
Building it on the ruby 3.0-rc docker image (ruby:3.0-rc-slim-buster) gives me:
``` shell
current directory: /usr/local/bundle/gems/sassc-2.4.0/ext... - 08:12 PM Revision b408d32b (git): * 2020-11-30 [ci skip]
-
08:10 PM Revision 77936ad6 (git): support SIGSEGV/BUS while read_barrier_handler()
- read_barrier_handler() can cause SIGSEGV/BUS so it should show
the errors. -
07:41 PM Feature #17355 (Assigned): Using same set of names in or-patterns (pattern matching with Foo(x) | Bar(x))
- Given pattern matching is officially supported in Ruby 3, I have an idea about making it more flexible.
Currently, this piece of code produces a syntax error
```ruby
case [1, 2]
in [1, a] | [a, 3] => a then a
end # duplicated vari... -
06:32 PM Feature #17353: Functional chaining operator
- "Let's take `|>` from Elixir" is proposed roughly once a month. The problem with this proposal is that it doesn't work well with Ruby syntax. Ruby's core chaining module is `Enumerable` ("core" in the sense it shows how the things are de...
-
02:06 PM Feature #17353 (Open): Functional chaining operator
- Since ruby already moving in that direction(functional), I would like to propose add to it OCaml-like chaining/pipe operator into ruby.
Which would allow such syntax
``` ruby
def handle(requests) = requests
|> Array.filter { not ... -
03:23 PM Bug #17354 (Closed): Module#const_source_location is misleading for constants awaiting autoload
- Feature #10771 added `Module#const_source_location` as a way to find the source location of a constant’s definition. Bug #16764 reported that it didn’t work correctly for autoloaded constants, instead giving the source location of the `a...
-
06:01 AM Revision 02c32b2e (git): Get rid of allocation when the capacity is small
- 02:50 AM Revision 9c5d1a29 (git): * 2020-11-29 [ci skip]
-
02:49 AM Revision dbdeb92b (git): Do not throttle the workaround for --jit-wait
- --jit-wait CI can be stuck when the workaround is throttled
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3274091
11/28/2020
-
06:02 PM Bug #17352 (Closed): Backport Subsecond of Time::tm should be 0
- I'm requesting a backport of pull request 3821, containing the following two commits: 276f6a225d18561cbe5282b798cb4e416c66079f and 95bef7b69a6fb42687a6200b338060be307259f5.
This affects Ruby 2.6 and 2.7, as support for timezones was i... -
05:11 PM Feature #17047: Support parameters for MAIL FROM and RCPT TO
- Thanks.
New PR here: https://github.com/ruby/net-smtp/pull/18 -
09:52 AM Revision fd329e24 (git): NEWS for [Feature #17136] [ci skip]
-
09:51 AM Feature #17136 (Closed): Remove special behavior from $KCODE
- Applied in changeset commit:git|85aabef023e1a2e81c308ad98741137c73d4d80b.
----------
[Feature #17136] Remove special behavior from $KCODE -
09:51 AM Revision 85aabef0 (git): [Feature #17136] Remove special behavior from $KCODE
-
09:47 AM Revision 3db21cf2 (git): Revived the getenv macro for dln_find.c
- This partially reverts commit "Windows: Improve readablity of
getenv() encoding" 14453a256d58b11b06d432e2a4388d95aac298d6.
The `getenv` macro defined here is to also substitute the function
in dln_find.c, not only in this file. - 08:49 AM Revision 14453a25 (git): Windows: Improve readablity of getenv() encoding
- getenv() did use the expected codepage as an implicit parameter of the macro.
This is mis-leading since include/ruby/win32.h has a different definition.
Using the "cp" variable explicit (like the other function calls) makes it
more reada... -
08:17 AM Revision 95edb3ec (git): Increase timeout for MJIT Actions
- It's too short for --jit-wait
https://github.com/ruby/ruby/runs/1466690076?check_suite_focus=true -
07:46 AM Revision 3378a1cc (git): Fix compactions.size for throttling
- 096f54428d changes the behavior for this kind of cases.
-
07:25 AM Revision 096f5442 (git): Throttle JIT compaction
- The compilation for JIT compaction is very heavy. Triggering a second
compaction to include one more new method is probably not worth it. So
this triggers JIT compaction for ten more new methods after each
compaction. -
07:13 AM Revision 2a7e8586 (git): Try to fix the mswin CI failure
- Sorry, I forgot to add this in 122cd35939 while I said I did something
for it. -
07:06 AM Revision 122cd359 (git): Throttle unload_units
- Because d80226e7bd often reduces the number of unloaded units, it
increases the number of unload_units calls, which are heavy.
To mitigate that, this throttles unload_units per `max_cache_size / 10`.
Also hoping to fix
https://ci.appve... -
06:41 AM Revision 95bef7b6 (git): Subsecond of Time::tm should be 0
-
06:41 AM Revision 276f6a22 (git): Don't double fractional seconds when passing timezone object to Time.new
- I found that fractional seconds were doubled when using the timezone
feature of Time in Sequel's named_timezones extension (which uses
TZInfo for the timezone object), and traced the problem to this code.
There is no subsecx being modif... -
06:26 AM Revision d80226e7 (git): Avoid unloading units which have enough total_calls
- instead of just unloading worst 10% methods.
-
05:52 AM Revision 12866b0d (git): Log when JIT compaction is skipped due to ISeq GC
- 05:39 AM Revision 46a49536 (git): * 2020-11-28 [ci skip]
-
05:38 AM Revision 16dab6b6 (git): Run unload_units in the JIT worker thread
- to avoid "Too many JIT code, but skipped unloading units for JIT compaction".
Now we can forget the `in_compact` locking.
Moving some functions from mjit.c to mjit_worker.c because mjit_worker.c
should have functions executed in the JIT...
11/27/2020
-
08:32 PM Bug #17306: TestGCCompact#test_ast_compacts test failures
- vo.x (Vit Ondruch) wrote in #note-11:
> Testing with commit:git|6be9d18a4d and so far so good. Thank you.
Great! Thanks for reporting this :) -
06:20 PM Bug #17350: mongo-ruby-driver causes the segfault at program's exit
- Thank you for the report. I can reproduce and investigated the issue.
I think this is the known (but unfixed) issue #16288. When Ruby process ends, it terminates all threads, run all finalizers, and then destruct everything. However, ... -
10:19 AM Bug #17350 (Closed): mongo-ruby-driver causes the segfault at program's exit
- ## Overview
mongo-ruby-driver 2.11.0 has caused the segfault at program's exit when connecting a certain MongoDB cluster.
I also reported this issue to mongo-ruby-driver.
https://jira.mongodb.org/browse/RUBY-2453
This is the repr... -
03:14 PM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- patch updated:
* call `rb_getaddrinfo_a_before_exec()` before `rb_thread_stop_timer_thread()`
* use `rb_protect()` instead of `rb_rescue` -
12:34 PM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- `rb_rescue(call_getaddrinfo_a_before_exec, Qnil, NULL, Qnil)` should be `rb_protect`?
-
11:20 AM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- patch updated
-
09:22 AM Bug #17220: Rails Active Job integration test fails with Ruby 3.0.0 since 2038cc6cab6ceeffef3ec3a765c70ae684f829ed
- I wrote a patch to fix this bug.
Before fork(), it cancels requests and waits for worker threads of getaddrinfo_a(3) to be finished.
@naruse -san, could you review this? -
03:05 PM Feature #17351: Deprecate Random::DEFAULT
- It seems pretty rare to need to supply a custom Random instance.
But in such a case, it would be easy to create an explicit one in e.g. the constructor:
```ruby
class Dice
def initialize(random = Random.new)
@random = random
... -
02:56 PM Feature #17351: Deprecate Random::DEFAULT
- I don't against to remove `Random::DEFAULT`, but need to care about current users.
```ruby
def roll rnd = nil
(rnd ? rnd.rand(6) : rand(6)) + 1
end
```
is one way, but I think some people can like previous definition. -
02:54 PM Feature #17351: Deprecate Random::DEFAULT
- > I don't think there is any use case for Random::DEFAULT, but happy to hear if there is and there is no trivial replacement.
As mentioned here: https://bugs.ruby-lang.org/issues/17322#note-7
there are several users.
For example, ... -
11:16 AM Feature #17351 (Closed): Deprecate Random::DEFAULT
- From https://bugs.ruby-lang.org/issues/17322#note-11
I think we should deprecate the `Random::DEFAULT` constant, it doesn't make sense anymore and it's longer than using Random class methods (Random.rand) or Kernel instance methods (#... -
02:47 PM Revision ddb1736b (git): Update to ruby/spec@c4170a3
-
01:55 PM Revision f02d2f82 (git): Update to ruby/spec@ac878ad
-
01:55 PM Revision f0bfa266 (git): Update to ruby/mspec@b58e665
-
01:38 PM Feature #17347: Enumerator::Chain of Enumerator::Lazy should be lazy
- Is it a duplicate? I can see it's similar, but I'm not entirely sure fixing #17216 will fix this. Willing to be wrong, though.
-
12:53 PM Feature #17307: A way to mark C extensions as thread-safe, Ractor-safe, or unsafe
- shyouhei (Shyouhei Urabe) wrote in #note-16:
> This is not what I know is a thread-safety. I understand what you need, but you should name the property differently than thread-safe, like for instance Truffle safe.
Could you explain ... -
12:38 PM Revision 039ba387 (git): Use opaque struct pointer than void
-
11:18 AM Misc #17346: DevelopersMeeting20201210Japan
- * [Feature #17351] Deprecate Random::DEFAULT (eregon)
* Is it OK?
* [Feature #16697] Hash.ruby2_keywords_hash?(value) should support any object (eregon)
* Yes/no? -
10:53 AM Revision 5d8fe126 (git): configure.ac: Check x86intrin.h only when the target CPU is x86
- The check output a warning on M1 Mac mini
http://rubyci.s3.amazonaws.com/osx1100arm/ruby-master/log/20201127T074507Z.log.html.gz
```
checking x86intrin.h usability... no
checking x86intrin.h presence... yes
configure: WARNING: x86intrin... -
10:39 AM Bug #17345: ripper: nothing raised when assigning to keyword variables
- Thanks for the quick fix, however `*_error` parser events except `parse_error` seem not to set an error message properly.
```
$ ruby -rripper -ve 'Ripper.lex("nil=1", raise_errors: true)'
ruby 3.0.0dev (2020-11-26T11:14:34Z master f... -
10:28 AM Feature #16604: Set default for Encoding.default_external to UTF-8 on Windows
- Both Appveyor and Github-Actions use `Encoding.default_external = UTF-8` in their default ruby versions on Windows. [Appveyor sets this](https://ci.appveyor.com/project/larskanis/github-action-test/build/job/v6vgrdu9iprxu6x3) per `RUBYOP...
-
09:29 AM Revision f0e2ea28 (git): Clarify spec and change of behavior for Random::DEFAULT
-
08:52 AM Bug #17349 (Closed): Rake での並行実行における正規表現マッチングの異常
- 小さな再現コードが作成できなかったのですが、以下のように Rake で並行実行すると正規表現のマッチングがおかしくなることがあるように見えます。
### 再現手順
``` shell
$ git clone https://github.com/mruby/mruby
$ cd mruby
$ git checkout 0cb3a718
$ rake -m CONFIG=boxing clean gensym
Cleaned up target b... -
08:42 AM Revision d4098377 (git): Cache access to reg_cfp->self on JIT
- ```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-11-27T06:41:15Z master 8ce1711c25) +JIT [x86_64-linux]
after --jit: ruby 3.0.0dev (20... -
08:36 AM Revision 5496415d (git): mark default_rand
- default_rand can points a Bignum seed, so it should be marked.
-
08:03 AM Feature #17322 (Closed): Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator
- Applied in changeset commit:git|2db2fb9f6c742d5bd0019ccd11c7a375e1b12c0b.
----------
per-ractor Random::DEFAULT
Random generators are not Ractor-safe, so we need to prepare
per-ractor default random genearators. This patch set
`Random:... -
02:37 AM Feature #17322: Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator
- Eregon (Benoit Daloze) wrote in #note-10:
> Is this needed? It sounds very bad practice from a security point of view to ever be able to read the seed directly
> ...
As you **must not** use the default RNG for security purpose, it does... -
08:03 AM Revision 2db2fb9f (git): per-ractor Random::DEFAULT
- Random generators are not Ractor-safe, so we need to prepare
per-ractor default random genearators. This patch set
`Random::DEFAULT = Randm` (not a Random instance, but the Random
class) and singleton methods like `Random.rand()` use a p... -
07:26 AM Feature #17342: Hash#fetch_set
- +1 for the feature. I have had chances to write what is proposed here several times.
marcandre (Marc-Andre Lafortune) wrote in #note-12:
> On Thu, Nov 26, 2020 at 9:05 PM <nobu@ruby-lang.org> wrote:
> ...
Yes I’m quite sure he is d... -
06:05 AM Feature #17342: Hash#fetch_set
- On Thu, Nov 26, 2020 at 9:05 PM <nobu@ruby-lang.org> wrote:
>
> ...
Please, let's be serious. `hash[obj] ||= something_that_changes_obj` is nonsense code. -
02:05 AM Feature #17342: Hash#fetch_set
- Eregon (Benoit Daloze) wrote in #note-8:
> Having it as a built-in method, it also makes it possible to avoid computing the key's `#hash` twice, and potentially avoid redoing the lookup in the Hash.
It is true **ideally**, but no one... -
06:41 AM Revision 8ce1711c (git): Revert "Set VM_FRAME_FLAG_FINISH at once on MJIT"
- This reverts commit 4d2c8edca69884a41d2f843d36023e3decdb9872.
Unfortunately this seems to cause several issues:
https://github.com/ruby/ruby/runs/1462188376?check_suite_focus=true
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-dock... -
05:32 AM Revision 4d2c8edc (git): Set VM_FRAME_FLAG_FINISH at once on MJIT
- Performance is probably improved?
$ benchmark-driver -v --rbenv 'before --jit;after --jit' --repeat-count=12 --alternate --output=all benchmark.yml
before --jit: ruby 3.0.0dev (2020-11-27T04:37:47Z master 69e77e81dc) +JIT [x86_64-linux]... -
04:37 AM Revision 69e77e81 (git): Run rb_print_backtrace first on ruby_on_ci
- Unfortunately we couldn't see a C backtrace with the previous commit
http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3272697. -
04:31 AM Feature #17303: Remove webrick from stdlib
- Personally, I'm in favour of a smaller stdlib. Therefore I support this change.
I also believe that we see more innovation when things are allowed to grow under their own terms rather than part of stdlib. -
01:39 AM Feature #17303: Remove webrick from stdlib
- Thank you for your reply.
I'm sorry but I cannot afford to hire you and have no bugdet. If I were a billionaire..
Anyway, you are not against the removal of WEBrick from Ruby package.
If you are, let me know.
This is my opinion.
I... -
04:09 AM Revision 4dbf6f1e (git): Call rb_bug_without_die on CI
- when GC.compact's SEGV handler is installed
-
04:09 AM Revision 82541df0 (git): Separated tests for $KCODE and $=
-
03:47 AM Revision eca85404 (git): [DOC] Mersenne Twister isn't cryptographically secure [ci skip]
- 03:25 AM Revision ead32e6e (git): * 2020-11-27 [ci skip]
-
03:23 AM Revision 1898e955 (git): Always clean up leftovers at ci.rvm.jp
- to prevent failures like
http://ci.rvm.jp/logfiles/brlog.trunk-mjit.20201126-182515.
Since fa1250a506e9b6a1bcbf664f6b7b9c06e045d9b9, it should be safe to do
this.