Activity
From 01/06/2023 to 01/12/2023
01/12/2023
-
10:48 PM Misc #19240: DevMeeting-2023-01-19
- - [Feature #19333] Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
-
07:57 AM Misc #19240: DevMeeting-2023-01-19
- * [Bug #18658] Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x)
* Should we merge openssl-3.0.x into `ruby_3_0` before moving security only maintenance phase?
-
08:18 PM Revision 537183cd (git): Fix write barrier order for `klass` to `cme` edge
- Previously, the following crashes with
`CFLAGS=-DRGENGC_CHECK_MODE=2 -DRUBY_DEBUG=1 -fno-inline`:
$ ./miniruby -e 'GC.stress = true; Marshal.dump({})'
It crashes with a write barrier (WB) miss assertion on an edge from the
`Hash` c... -
08:09 PM Revision da7e5c7b (git): YJIT: Do not refer to an undefined constant (#7112)
-
03:25 PM Bug #19331 (Feedback): --enable-rpath results in incorrect RPATH in Ruby 3.1.3+
- I tried the exactly same commands on Ubuntu 22.04, but couldn't reproduce the result of `grep`.
And the command to build windows_31j.so seems using the expected options.
```
gcc -shared -o .ext/x86_64-linux/enc/windows_31j.so enc/... - 03:14 PM Revision 8d3ff663 (git): Enable `clippy` checks for yjit in CI (#7093)
- * Add job to check clippy lints in CI
* Address all remaining clippy lints
* Check lints on arm64 as well
* Apply latest clippy lints
* Do not exit 0 on clippy warnings -
02:06 PM Revision bfc887f3 (git): Add str_enc_copy_direct
- This commit adds str_enc_copy_direct, which is like str_enc_copy but
does not check the frozen status of str1 and does not check the validity
of the encoding of str2. This makes certain string operations ~5% faster.
```ruby
puts(Benchma... -
11:49 AM Revision 207f8d00 (git): [ruby/irb] Avoid calling private methods on the main object
- (https://github.com/ruby/irb/pull/498)
When the main object is frozen, `IRB` wraps a `SimpleDelegator` around it.
But because `SimpleDelegator` doesn't delegate private methods, methods like
`require_relative` or `const_get` would cause... - 10:34 AM Revision 3faecaaa (git): Update bundled gems list at b7598b535e49d316110aa96542a746 [ci skip]
-
10:33 AM Revision b7598b53 (git): Bump up typeprof-0.21.4
-
10:33 AM Revision 633fde41 (git): Try to use https://github.com/ruby/rbs/pull/1207
-
10:30 AM Revision 019c6582 (git): [ruby/irb] Remove redundant argument defaults from some RubyLex
- methods
(https://github.com/ruby/irb/pull/502)
* Remove unnecessary parameter defaults
These methods are always called with tokens specified. So their default
`@tokens` value is never used and is misleading.
* Remove unnecessary conte... - 09:40 AM Revision aa665958 (git): [ruby/reline] Update to Unicode 15.0.0
- (https://github.com/ruby/reline/pull/437)
* Update to Unicode 14.0.0
* Update to Unicode 15.0.0 -
07:14 AM Revision d4a3882c (git): Assert possible hash functions in RHASH_ST_TABLE (#7107)
- Because of the function pointer, it's hard to figure out what hash
functions could be used in Hash objects when st_lookup is used.
Having this assertion makes it easier to understand what
hash_stlike_lookup could possibly do. (AR uses o... -
05:41 AM Revision a8537eae (git): [ruby/mutex_m] Avoid anonymous eval
- It makes it hard to locate code when profiling etc.
https://github.com/ruby/mutex_m/commit/8760ab19ec -
05:38 AM Revision 0e21c9f5 (git): [ruby/mutex_m] Drop to support Ruby 2.4
- https://github.com/ruby/mutex_m/commit/9245b9a63a
-
04:41 AM Feature #19322: Support spawning "private" child processes - "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> 2. Programs doing `waitpid -1` are widely deployed, it would
> be good if, when writing gems, there were APIs we could use
> which offer better is... -
02:20 AM Feature #19322: Support spawning "private" child processes
- > In the example you shown, I believe it's none of Unicorn's business to reap arbitrary processes
Firstly, I do want to note that I don't think this is just a Unicorn problem. This is the "classic unix" way of writing a preforking poo... -
12:11 AM Feature #19322: Support spawning "private" child processes - "Eregon (Benoit Daloze) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> IMHO this sounds like some code is doing bad stuff and not
> properly caring about its own resources.
>
> In the example you shown, I believe it's none of... -
02:11 AM Bug #19334 (Closed): Defining many instance variables and accessing them is slow in Ruby 3.2.0
- ```
class C
eval("def initialize; #{ (0..100000).map { "@x#{ _1 } = 0; " }.join } end")
attr_reader :x50000
end
p :start
C.new.x50000
```
This script takes less than one second in Ruby 3.1.3, and does more than ten second i... -
01:46 AM Revision fe11bee5 (git): Suppressing installation messages with test-bundler
- Ignoring the following messages:
```
(snip)
-e 'load "spec/bundler/support/bundle.rb"' -- install --gemfile=tool/bundler/dev_gems.rb
Using rake 13.0.6
Using bundler 2.5.0.dev
Using diff-lcs 1.5.0
Usin... -
01:26 AM Bug #19254 (Third Party's Issue): Enabling YJIT configuration option breaks rspec-core test suite
-
01:15 AM Revision 617b3f69 (git): enhance build matrix
-
01:11 AM Feature #19075: Binary searching for the last element
- I have thought about this issue and am now leaning toward `bsearch(target: :last)`.
I proposed `bsearch_last` at first, this is because I didn't think of an optional keyword argument for `bsearch`.
Since searching the beginning and t... -
12:29 AM Revision cc15963a (git): Strip trailing spaces [ci skip]
-
12:14 AM Revision 0abb4b63 (git): [ruby/reline] Pass unmodifined lines(that does not include escape
- sequence) to check_multiline_prompt
(https://github.com/ruby/reline/pull/458)
* pass unmodified lines to check_multiline_prompt
* Add test to check that output modified by output_modifier_proc is not passed to prompt_proc
01/11/2023
-
10:54 PM Revision 048751dd (git): Generate parser-text.rb with bcdc058e50674aedb180eea91e0fdb15bcf529db
-
10:52 PM Revision bcdc058e (git): [ruby/racc] Get rid of anonymous eval calls
- Things declared in anonymous eval are always annoying to locate.
(profilers, etc)
https://github.com/ruby/racc/commit/f304205256 -
10:52 PM Revision 11e15b4d (git): [ruby/racc] Make racc Ractor compatible
- https://github.com/ruby/racc/commit/1948de9d1d
-
10:29 PM Revision 7e283c58 (git): [ruby/irb] Formatting to header styles
- https://github.com/ruby/irb/commit/cef125850d
-
10:29 PM Revision 128398e7 (git): [ruby/irb] After Ruby 2.0, coding is always utf-8
- https://github.com/ruby/irb/commit/7a94bc4135
-
10:29 PM Revision c7bb8d67 (git): [ruby/irb] Removed Release Version and Revisions for old VCS software
- https://github.com/ruby/irb/commit/07fae94862
-
10:21 PM Feature #19333 (Open): Setting (Fiber Local|Thread Local|Fiber Storage) to nil should delete value in order to avoid memory leaks.
- As it stands, Fiber Locals, Thread Locals and Fiber Storage have no way of deleting key-value associations.
```ruby
100.times do |i|
name = :"variable-#{i}"
Thread.current[name] = 10
end
```
Because of this, dynamically ge... -
09:26 PM Revision c693dfd7 (git): [ruby/irb] Drop unused arguments in `RubyLex`
- (https://github.com/ruby/irb/pull/504)
* Simplify `RubyLex#set_prompt`
It's optional argument is never used by any caller.
* Remove the optional `p` argument from `RubyLex#set_input`
The argument is only used in a test case, which ca... -
07:39 PM Feature #19322: Support spawning "private" child processes
- Also the hacks for MJIT in process.c are already infamous, let's not add on top of it and force every Ruby implementation to have such complexity please.
-
07:38 PM Feature #19322: Support spawning "private" child processes
- IMHO this sounds like some code is doing bad stuff and not properly caring about its own resources.
In the example you shown, I believe it's none of Unicorn's business to reap arbitrary processes, it doesn't compose (I could be wrong,... -
08:01 AM Feature #19322: Support spawning "private" child processes
- So I ran into a pretty serious snag when trying to implement my idea with Linux pidfds - you can make a hidden process which is unwaitable & doesn't raise SIGCHLD, but if that process exec's, those special properties go away and it goes ...
-
07:12 PM Revision 36420068 (git): YJIT: Add a few asm comments (#7105)
- * YJIT: Add a few asm comments
* YJIT: Clarify exiting insns
* YJIT: Fix cargo test -
06:09 PM Bug #19254: Enabling YJIT configuration option breaks rspec-core test suite
- I agree with mame that the test is highly questionable.
The GC does not guarantee collection for all semantically unreachable objects since it's not exact.
Because we scan the native stack for conservative marking, changes in code genera... -
04:33 PM Bug #19254: Enabling YJIT configuration option breaks rspec-core test suite
- k0kubun (Takashi Kokubun) wrote in #note-2:
> ```
> ...
I have not hit the issue trying to run just this minimal example -
06:01 PM Revision ad5ab0c3 (git): Remove unnecessary set of INVALID_SHAPE_ID in rb_callcache
- We don't use this value, so there's no need to set it.
-
05:18 PM Bug #19332: Thread::Queue#pop raises ArgumentError with
- Oh thanks Jeremy!
-
05:13 PM Bug #19332 (Closed): Thread::Queue#pop raises ArgumentError with
- The documentation shows that `non_block` is a positional argument, not a keyword argument. You want `q.pop(true)`.
-
04:42 PM Bug #19332 (Closed): Thread::Queue#pop raises ArgumentError with
- ✓ ruby --version
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
✓ irb
Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1
Ignoring rbs-2.8.2 because its extensions are not b... -
04:06 PM Revision abff5f62 (git): Move classpath to rb_classext_t
- This commit moves the classpath (and tmp_classpath) from instance
variables to the rb_classext_t. This improves performance as we no
longer need to set an instance variable when assigning a classpath to
a class.
I benchmarked with the f... -
04:06 PM Revision d86833e7 (git): Make variation_count an unsigned char
- Since SHAPE_MAX_VARIATIONS is 8, it can easily fit inside an unsigned
char. -
03:48 PM Feature #19324: Enumerator.product => Enumerable#product
- zverok (Victor Shepelev) wrote in #note-4:
> [I]s there a design plan to change _many_ of the methods (`Array.product` in addition to `Enumerable.product`, `Array.zip`, `Hash.merge`, I dunno, maybe even `Array.concat`?..) to the `Module.... -
08:47 AM Feature #19324: Enumerator.product => Enumerable#product
- First, I just looked through codebases at my disposal, and it seems that for `product` there are at least as many examples where the first argument _has_ a special meaning as those where it doesn't. Examples are like:
```ruby
user_name... -
03:09 AM Feature #19324: Enumerator.product => Enumerable#product
- As @duerst mentioned, it is sometimes noted that `Array#product` and `Array#zip` are ugly and inconvenient due to its asymmetry.
https://bugs.ruby-lang.org/issues/8970
https://bugs.ruby-lang.org/issues/6499
I don't think we have ... -
02:29 PM Bug #19331 (Feedback): --enable-rpath results in incorrect RPATH in Ruby 3.1.3+
- I just updated Ruby from 3.1.2 to 3.1.3 and found out that all .so libraries from the enc directory have wrong RPATH/RUNPATH (when building with `--enable-rpath`). I first hit this on Solaris, but my testing on Linux resulted in the same...
-
02:25 PM Revision a4682139 (git): [DOC] Mention the conditional regexp
-
02:16 PM Revision ac8cf010 (git): Remove check for RCLASS_EXT in variable.c
- A class/module should always have a RCLASS_EXT, so we shouldn't need to
check that it exists. -
12:41 PM Revision 327cf5ec (git): Skip rbs Encoding#replicate test
-
12:41 PM Revision 6abe20e8 (git): Remove Encoding#replicate
- 11:38 AM Revision d831b1d5 (git): [ruby/reline] Reset IOGate in test_reset
- https://github.com/ruby/reline/commit/331c1094ef
- 11:38 AM Revision 4222083c (git): [ruby/reline] Change IOGate back to GeneralIO
- Staying with ANSI can cause side effects with other tests.
https://github.com/ruby/reline/commit/ba36067802 -
11:00 AM Revision b311c35b (git): Suppressing pending messages with RSpec
-
10:08 AM Revision 3161fd43 (git): [ruby/psych] Get rid of anonymous eval calls
- Things declared in anonymous eval are always annoying to locate.
https://github.com/ruby/psych/commit/38871ad4e5 -
09:26 AM Revision e85ef212 (git): [ruby/set] Avoid the `block or return` pattern to save Proc allocations
- Using the block param in a boolean context like this cause it to be
allocated.
Using it with an `if` or `unless` was optimized in 3.2
(https://github.com/ruby/ruby/pull/6286) but using it with `or`
or `and` wasn't.
```ruby
def foo(&blo... -
09:09 AM Revision 8c2b6926 (git): Skip unfixed assertion about objspace/dump_all
- ```
{"address":"0x7f8c03e9fcf0", "type":"STRING", "shape_id":10, "slot_size":40, "class":"0x7f8c00dbed98", "frozen":true, "embedded":true, "fstring":true, "bytesize":5, "value":"TEST2", "encoding":"US-ASCII", "coderange":"7bit", "memsize... -
09:05 AM Revision 2038c5c4 (git): Remove about ext/psych/yaml which is no longer bundled [ci skip]
-
03:12 AM Bug #19330 (Closed): ruby 3.2.0 parameter lack-of-autosplat breaks call using (*args, &block)
- rockorequin (rocko requin) wrote:
> The following code in Rails 6.1.7 activerecord relation.rb no longer works with ruby 3.2.0, because the call "instance_exec(*args, &block)" raises an ArgumentException:
> ...
This code is expected to... -
02:37 AM Bug #19330 (Closed): ruby 3.2.0 parameter lack-of-autosplat breaks call using (*args, &block)
- The following code in Rails 6.1.7 activerecord relation.rb no longer works with ruby 3.2.0, because the call "instance_exec(*args, &block)" raises an ArgumentException:
```
def _exec_scope(*args, &block) # :nodoc:
@delegate_to_kla...
01/10/2023
-
07:12 PM Bug #19316: YJIT crash in 3.2.0
- Here is a reproducer for 3.1.3:
```ruby
def foo(_, a, b, c)
a & b & ~c
end
n = 2 ** 64
args = [0, -n, n, n-1]
GC.stress = true
p foo(0, -n, n, n-1)
p foo(0, -n, n, n-1)
p foo(0, -n, n, n-1)
__END__
$ ruby-3.1.3/bin/... -
04:11 PM Bug #19316 (Closed): YJIT crash in 3.2.0
- Applied in changeset commit:git|aeddc19340c7116d48fac3080553fbb823857d16.
----------
YJIT: Save PC and SP before calling leaf builtins (#7090)
Previously, we did not update `cfp->sp` before calling the C function of
ISEQs marked with `... -
03:29 AM Bug #19316 (Assigned): YJIT crash in 3.2.0
-
06:54 PM Revision 5bf7218b (git): Differentiate T_ARRAY and array subclasses (#7091)
- * Differentiate T_ARRAY and array subclasses
This commit teaches the YJIT context the difference between Arrays
(objects with type T_ARRAY and class rb_cArray) vs Array subclasses
(objects with type T_ARRAY but _not_ class rb_cArray). ... -
05:12 PM Feature #19325: YJIT: Windows support lacking.
- Sorry my tone seemed to be complaining - I appreciate all the hard work being done and seeing that #18439 is being looked at eases my mind. I will try to contribute with some tooling to help ease the pain since I do use windows at work ...
-
05:02 AM Feature #19325: YJIT: Windows support lacking.
- Sorry, not intended to change the tracker
-
04:25 AM Feature #19325: YJIT: Windows support lacking.
- dsisnero (Dominic Sisneros) wrote:
> Also, windows compiler support has matured enough and vcpkg support has evolved enough that it seems it should be possible to finally get a ruby version without having to use msys2.
Well, you can ... -
03:31 AM Feature #19325: YJIT: Windows support lacking.
- The reason Windows being second class is not lack of interest but lack of contributors with extensive experience with (non WSL) Windows platform. Any contributors?
I understand your frustration, but complaining does not improve the situ... -
03:23 AM Feature #19325 (Assigned): YJIT: Windows support lacking.
-
03:05 AM Feature #19325: YJIT: Windows support lacking.
- > With rust having first class windows support and threading support, is there a reason why yjit is not able to work on windows?
Whether the tool (rustc) used to write a (YJIT) compiler supports a platform and whether the compiler sup... -
04:11 PM Revision aeddc193 (git): YJIT: Save PC and SP before calling leaf builtins (#7090)
- Previously, we did not update `cfp->sp` before calling the C function of
ISEQs marked with `Primitive.attr! "inline"` (leaf builtins). This
caused the GC to miss temporary values on the stack in case the function
allocates and triggers a... -
04:00 PM Revision 6a585dbd (git): YJIT: Fix a compilation warning with release build (#7092)
- warning: unused variable: `start_addr`
--> ../yjit/src/asm/mod.rs:359:39
|
359 | pub fn remove_comments(&mut self, start_addr: CodePtr, end_addr: CodePtr) {
| ^^^^^^^^^^ help: if this ... -
03:51 PM Feature #18190: Split `Random::Formatter` from securerandom
- To clarify, random/formatter is now a stdlib (not loaded by default).
`Random::Formatter` is defined in core but has few methods before `require 'random/formatter'`:
```
$ ruby -e 'puts Random::Formatter.instance_methods(false)'
ra... -
02:31 PM Revision be1db1ca (git): Just ignore empty lines in bundled_gems file [ci skip]
-
01:59 PM Revision 2861c8de (git): Remove ARY_SET_SHARED
- We don't need ARY_SET_SHARED since we already have rb_ary_set_shared.
-
12:45 PM Feature #18949 (Closed): Deprecate and remove replicate and dummy encodings
- 12:18 PM Revision 97f8f2c4 (git): [ruby/reline] Add key binding for Delete
- https://github.com/ruby/reline/commit/603eacee22
-
11:39 AM Revision 47ca75d3 (git): Remove extra line which causes `make test-bundled-gems-fetch` to fail
-
09:58 AM Feature #19261: `Data#members` is not important
- > But Data randomly lacking some shorthand methods that exist for Struct would make such refactoring harder.
Yes, that was the only reason I preserved the method in `Data`. Don't recall using it myself, but don't see harm in its exis... -
01:25 AM Feature #19261: `Data#members` is not important
- k0kubun (Takashi Kokubun) wrote in #note-2:
> If we were to remove this from Data instances, I'd like Struct instances to not have that method either for consistency. Let's say you replace Struct.new with Data.define for something that'... -
09:35 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
- maybe we could add some conditions when the object should be printed instead of the class for NoMethodError?
* if object overwrites `method_missing` and maybe `respond_to_missing` then print the object instead of the class
* if the o... -
07:04 AM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
- zverok (Victor Shepelev) wrote in #note-26:
> Say, in a complicated algorithm working with nested data structures, `undefined method transform_keys for object Array` is significantly worse than `undefined method transform_keys for [{id:... -
09:20 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- nobu (Nobuyoshi Nakada) wrote in #note-33:
> Adding `-no_fixup_chains -undefined dynamic_lookup` together will break old compilers.
> ...
Good point. I've updated https://github.com/ruby/ruby/pull/7086. -
08:34 AM Revision 6053624a (git): [DOC] Comments about fields in bundled_gems file
-
06:53 AM Revision a43f1d90 (git): Merge RubyGems and Bundler master
- from https://github.com/rubygems/rubygems/commit/0635c1423db5d7c461d53bf0c3329bca75de7609
-
05:27 AM Bug #19266: URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER
- The attached patch adds a failing test and a change that fixes it.
The rest of the test suite passes with this patch. -
04:46 AM Feature #18439: YJIT: Support Microsoft x86 calling convention
- What's used for compiling YJIT itself, which was changed from a C compiler to `rustc`, wasn't a huge concern for supporting Windows. Given that @usa has an idea for the `mmap` part, the main challenge for supporting Windows would be ABI ...
-
03:39 AM Feature #18439 (Assigned): YJIT: Support Microsoft x86 calling convention
- YJIT has been rewrote with rust in Ruby 3.2. Should we close this?
-
04:39 AM Revision 89fb61f9 (git): Update LEGAL sections for pub_grub
-
04:13 AM Revision f2fc7519 (git): Removed vendored LICENSE file.
-
04:07 AM Revision 90023083 (git): Fixed a typo
-
03:58 AM Revision 2e0159c5 (git): [rubygems/rubygems] Fix resolver edge case
- Let it deal with legacy gems with equivalent version and different
dependencies.
https://github.com/rubygems/rubygems/commit/b430babe97 -
03:30 AM Bug #19255 (Assigned): YJIT: global symbol leakage
- 02:20 AM Revision 97d52a8e (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.53 to 0.9.54.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.53...v0.9.54)
---
updated-depende... -
01:43 AM Revision 9792d9e4 (git): Revert "Re-enable test_ractor for YJIT"
- This reverts commit 650a20a3e1205f47224a987676cdbad7d826d597.
Now that 3.2.0 is released, let's disable flaky tests. Koichi said he'll
rework Ractor implementation for this, and it has not been done yet. -
12:45 AM Revision df76c54f (git): Allow overriding a gdb command on `make gdb`
- With --enable-yjit, you see an annoying warning like this:
warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts
of file /home/k0kubun/src/github.com/ruby/ruby/.ruby/miniruby.
Use `info auto-load python-scripts [RE... -
12:00 AM Bug #19320 (Closed): Crash during compaction while traversing the stack
- Applied in changeset commit:git|72eb33066fa9e7dacb7470cd140b219abe37667e.
----------
Fix off-by-one error in rb_vm_each_stack_value
Applying the following patch to test/erb/test_erb.rb and running that
file will cause Ruby to crash on ... -
12:00 AM Revision 72eb3306 (git): Fix off-by-one error in rb_vm_each_stack_value
- Applying the following patch to test/erb/test_erb.rb and running that
file will cause Ruby to crash on my machine (macOS 13.1 on M1 Pro):
```
--- a/test/erb/test_erb.rb
+++ b/test/erb/test_erb.rb
@@ -7,6 +7,12 @@
class TestERB < Test::...
01/09/2023
-
11:34 PM Feature #19328 (Rejected): Please bring back the use of Hash objects for keyword arguments
- This would mean breaking code working on 3.0/3.1/3.2, of course that's not acceptable.
Adding `**` there is not a big deal and it makes a lot of sense once you understand keyword arguments are now separated from positional arguments. -
09:05 PM Feature #19328: Please bring back the use of Hash objects for keyword arguments
- jeremyevans0 (Jeremy Evans) wrote in #note-2:
>
> ...
Many developers are working on legacy systems that aren't immediately up to date with the latest version of ruby. To imply this is "established" across the entire community is misle... -
08:50 PM Feature #19328: Please bring back the use of Hash objects for keyword arguments
- Considering:
* That separating keyword and positional arguments was done for good reasons (as explained in the
"Why we're deprecating the automatic conversion" section of the page you linked to),
* That reverting the change would r... -
08:31 PM Feature #19328 (Rejected): Please bring back the use of Hash objects for keyword arguments
- The change in 3.0 (linked here https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/) no longer automatically converts Hash objects into keyword arguments. This takes Ruby away from wha...
-
11:29 PM Bug #19316: YJIT crash in 3.2.0
- Updated the Backport field. Looking at the patch, we probably need to backport this to 3.1 as well (the same logic needs to be rewritten in C for https://github.com/ruby/ruby/blob/v3_1_0/yjit_codegen.c#L3638-L3661).
-
11:26 PM Bug #19316: YJIT crash in 3.2.0
- Thank you for the report and for providing a reliable repro -- it makes diagnosing the problem that much easier!
We have a [fix](https://github.com/ruby/ruby/pull/7090) in the pipeline now. -
11:03 AM Bug #19316: YJIT crash in 3.2.0
- Looks like a SIGABRT, address 0x38. This isn't one I've seen yet.
-
10:29 PM Revision 0247ccdd (git): Fix a warning in .gdbinit
- Warning: 'set logging on', an alias for the command 'set logging enabled', is deprecated.
Use 'set logging enabled on'. -
10:14 PM Bug #19329 (Third Party's Issue): "gem install" installs logs and other "noisy", non-reproducible files
- Please file it to https://github.com/rubygems/rubygems
-
09:28 PM Bug #19329 (Third Party's Issue): "gem install" installs logs and other "noisy", non-reproducible files
- Hello, Ruby!
When building/installing C extensions via `gem install`, log files produced during the build get installed to the `GEM_VENDOR` location. This is undesirable because these files are not functional and they contain non-rep... -
07:27 PM Misc #19240: DevMeeting-2023-01-19
- - [Bug #19289] RbConfig::CONFIG["STRIP"] should keep `rb_abi_version` and `rb_abi_version` should always be part of Ruby
- In dev meeting #18557 it was decided that we would keep `rb_abi_version` on both development and release (so ... -
07:27 PM Feature #19261: `Data#members` is not important
- If we were to remove this from Data instances, I'd like Struct instances to not have that method either for consistency. Let's say you replace Struct.new with Data.define for something that's already immutable, I don't want that change t...
-
07:12 PM Revision 40bf8987 (git): Update yjit.md
- Add Alan Wu's keynote & Maxime's talk to the list of YJIT-related talks :)
- 06:43 PM Revision 93b2de82 (git): [rubygems/rubygems] Bump rb-sys in /test/rubygems/test_gem_ext_cargo_builder/custom_name
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.53 to 0.9.54.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.53...v0.9.54)
---
updated-depende... -
04:45 PM Bug #19327 (Closed): Backport commits 3be2acfafd3b3c6168e2266c7c6561d143d7ae5c and 9726736006b3f74635fd8af05814fe0908e2cf84
- Please backport commits [3be2acfafd3b3c6168e2266c7c6561d143d7ae5c](https://github.com/ruby/ruby/commit/3be2acfafd3b3c6168e2266c7c6561d143d7ae5c) and [9726736006b3f74635fd8af05814fe0908e2cf84](https://github.com/ruby/ruby/commit/972673600...
-
04:29 PM Revision a7fbdc35 (git): YJIT: Remove old comments for regenerated branches (#7083)
-
01:49 PM Revision 97267360 (git): Set STR_SHARED_ROOT flag on root of string
-
01:49 PM Revision 2ad081f7 (git): Assert that resizing arrays will re-embed them
-
01:49 PM Revision 682b45d4 (git): Assert that resizing objects will re-embed them
-
01:49 PM Revision 3be2acfa (git): Fix re-embedding of strings during compaction
- The reference updating code for strings is not re-embedding strings
because the code is incorrectly wrapped inside of a
`if (STR_SHARED_P(obj))` clause. Shared strings can't be re-embedded
so this ends up being a no-op. This means that s... -
12:44 PM Revision 29dc9378 (git): mkmf.rb: Refine message from `pkg_config`
-
12:44 PM Revision 0d7bbfc9 (git): mkmf.rb: Prefer `caller_locations` over parsing `caller`
-
10:46 AM Revision 0a2bf5f1 (git): [ruby/zlib] Check for functions with arguments and the header
- With arguments, mkmf skips compilation check for the function as RHS.
https://github.com/ruby/zlib/commit/9ed9d6d36e -
09:58 AM Revision 9d078fe4 (git): [ruby/zlib] Fix the test broken in older versions
- https://github.com/ruby/zlib/commit/fc89ff9ef0
-
09:39 AM Revision f6952a94 (git): [ruby/psych] Fix wrong package name of MSYS2/MINGW dependency
- There is no package called "libyaml-devel". "libyaml" is enough.
-
03:07 AM Feature #19324: Enumerator.product => Enumerable#product
- For `product`, one important issue not yet mentioned here is whether it's calculated on e.g. two or three separate arrays, where making the first of the arrays the receiver, or whether it's calculated on an array of arrays where the firs...
-
12:17 AM Feature #19324: Enumerator.product => Enumerable#product
- >[T]wo methods [...] do completely different things and differ by one letter, both being somewhat vague verbs
`produce` is (most of the time) a verb or (sometimes) a noun. `product` is no doubt a noun.
01/08/2023
-
11:14 PM Revision 41a947e7 (git): [ruby/uri] [DOC] Enhanced RDoc for URI
- (https://github.com/ruby/uri/pull/55)
https://github.com/ruby/uri/commit/89ab4f1407 -
07:31 PM Feature #19326 (Closed): Please add a better API for passing a Proc to a Ractor
- Example 1:
```ruby
class Worker
def initialize(&block)
@block = block
end
def run
Ractor.new(@block, &:call)
end
end
worker = Worker.new { 1 }
puts worker.run.take
```
Errors with:
```
<internal:racto... -
06:28 PM Feature #19261: `Data#members` is not important
- I've attached a patch with the changes to remove the aforementioned method. Also, I run the test suite in `test_data.rb` to validate my changes but there was one test failure that I'm unable to explain. However, the test failure looks to...
-
06:09 PM Feature #19325 (Assigned): YJIT: Windows support lacking.
- Ruby's support on windows has always been second class. With some of the recent decisions, windows support is falling even more behind. Recent developments in mjit and yjit that exclude windows are two glaring issues that should be cor...
-
05:11 PM Revision 20b691d6 (git): [ruby/uri] [DOC] Enhanced RDoc for URI.decode_www_form
- (https://github.com/ruby/uri/pull/53)
https://github.com/ruby/uri/commit/ce379e6125 -
03:06 PM Feature #19324 (Assigned): Enumerator.product => Enumerable#product
- I know it might be too late after introducing a feature and releasing a version, but I find `Enumerator.product` quite confusing, and can't find any justification in #18685.
**Problem 1: It is `Array#product` but `Enumerator.product`*... -
03:02 PM Revision 8f6a9ad3 (git): Remove no longer used environment variable [ci skip]
-
01:54 PM Feature #19317: Unicode ICU Full case mapping
- Oh, OK, I see where you are coming from (the formal correctness of correspondence to Unicode standard/known standard definitions), while I was operating in vague and informal terms "what the user might've meant".
I still don't know w... -
01:24 PM Feature #19317: Unicode ICU Full case mapping
- zverok (Victor Shepelev) wrote in #note-5:
> Also, I believe that having a formal language code in the API (instead of a small informal list of writing systems supported) creates a false expectation that every language specificity might... -
09:46 AM Feature #19317: Unicode ICU Full case mapping
- @noraj I believe the important point here is that [there are many](https://en.wikipedia.org/wiki/Turkic_languages#Members) **turkic** languages, and as far as I understand, more than two of them use "dotless i".
At least Crimean Tata... -
12:45 AM Feature #19317: Unicode ICU Full case mapping
- duerst (Martin Dürst) wrote in #note-3:
> Something like this was discussed. My recollection was that it was rejected because it was overkill for the case at hand, and there was no other functionality in core Ruby that needed it.
May... -
01:16 PM Bug #19323 (Closed): Integer overflow in `Integer#<<`
- Applied in changeset commit:git|1cdf8ab07b24ebd16e93621957196e8b1d67f2ba.
----------
[Bug #19323] Raise `RangeError` instead of integer overflow -
11:05 AM Bug #19323: Integer overflow in `Integer#<<`
- https://github.com/ruby/ruby/pull/7087
-
11:03 AM Bug #19323 (Closed): Integer overflow in `Integer#<<`
- ```ruby
require 'rbconfig/sizeof'
char_bit = RbConfig::LIMITS["UCHAR_MAX"].bit_length
size_max = RbConfig::LIMITS["SIZE_MAX"]
size_bit_max = size_max * char_bit
1 << size_bit_max
```
The above code raises an "integer overflow" e... -
01:14 PM Revision 1cd4db77 (git): Adjust spec of bundler like as `sync_default_gems` [ci skip]
-
11:58 AM Revision 60ccd1ca (git): Ignore LICENSE files of libraries vendored in rubygems [ci skip]
-
11:54 AM Revision 1cdf8ab0 (git): [Bug #19323] Raise `RangeError` instead of integer overflow
-
10:42 AM Feature #19300: Move public methods from Kernel to Object
- Thanks, @mame, it is pretty educative and exactly the answer I was looking for in my first ("historical") question!
-
08:09 AM Revision 89546dce (git): [rubygems/rubygems] [DOC] Remove internal document about `Kernel` monkey patch
- https://bugs.ruby-lang.org/issues/19285
https://github.com/rubygems/rubygems/commit/1e22219ed4 -
08:09 AM Revision 55aa1a20 (git): [rubygems/rubygems] `LoadError#path` on the caught exception does not need to protect
- https://github.com/rubygems/rubygems/commit/a31f5d1a18
-
08:09 AM Revision 1a1b653c (git): [rubygems/rubygems] Let RDoc parse the doc of `Kernel#require`
- Since RDoc does not parse string literals as documents, `eval` the
entire file instead of embedding in a here-document.
On the contrary, as `gem_original_require` alias is an implementation
detail but not for users, it should not be docu... -
07:50 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- Adding `-no_fixup_chains -undefined dynamic_lookup` together will break old compilers.
`-no_fixup_chains` should be checked solely **before** `-undefined dynamic_lookup`, at least. -
07:01 AM Bug #19005 (Open): Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
-
07:02 AM Feature #18568 (Feedback): Explore lazy RubyGems boot to reduce need for --disable-gems
01/07/2023
-
07:22 PM Revision fd98169e (git): [ruby/uri] [DOC] Common rdoc (https://github.com/ruby/uri/pull/52)
- https://github.com/ruby/uri/commit/be8047028f
-
06:55 PM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- Submitted https://github.com/ruby/ruby/pull/7086.
-
06:28 PM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- A possible fix is to squelch this warning via `-no_fixup_chains`:
```diff
diff --git a/configure.ac b/configure.ac
index a2a0c1e387..d653a13bb8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3104,7 +3104,7 @@ AS_IF([test "$rb_c... -
06:20 PM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
-
08:40 AM Bug #19005 (Closed): Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- Ok, I see this was reported in https://bugs.ruby-lang.org/issues/19082.
-
08:38 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
-
08:19 AM Bug #19005: Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- I think this problem was "accidentally" fixed in Ruby 2.7.7 and 3.0.5, but it's not working in Ruby 3.1.3 and up due to a simple removal of a dollar sign (https://github.com/ruby/ruby/commit/667aa81219ca080c0a4b9f97d29bb3221bd08a33).
I... -
02:48 PM Bug #19321: BigDecimal multiplication giving different result since Ruby 3.1
- > The old result was incorrect. The new, correct result is due to a bug fix. I'm going to close this. If you can find a result that is incorrect in Ruby 3.1 or 3.2, please post it.
I see, makes sence. Thanks for the explanation
-
06:43 AM Bug #19321: BigDecimal multiplication giving different result since Ruby 3.1
- JFI: it is https://github.com/ruby/bigdecimal/pull/180, which fixed https://github.com/ruby/bigdecimal/issues/70 and #13331.
-
05:37 AM Bug #19321 (Closed): BigDecimal multiplication giving different result since Ruby 3.1
- The old result was incorrect. The new, correct result is due to a bug fix. I'm going to close this. If you can find a result that is incorrect in Ruby 3.1 or 3.2, please post it.
-
04:25 AM Bug #19321: BigDecimal multiplication giving different result since Ruby 3.1
- The newer result seems arithmetically correct.
-
03:46 AM Bug #19321 (Closed): BigDecimal multiplication giving different result since Ruby 3.1
- I have this math operation 120.to_d * 0.07 and I noticed that since upgrading to Ruby 3.1 I get different results. I would expect to get the same result as in previous versions.
```
rbenv local 3.0.3
➜ irb
require 'bigdecimal/util.r... -
01:35 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
- It might be interesting to limit the depth or maximum number of fields shown for inspect via some argument/fiber locals (so it'd work to some extent with custom `#inspect`)/etc.
But that should be a separate new proposal then. -
01:31 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
- zverok (Victor Shepelev) wrote in #note-26:
> Honestly, I would much rather prefer users to be advised "make sure your `#inspect` is efficient" than make everybody suffer.
That's not reasonable to ask. `#inspect` was never meant to b... -
01:23 PM Feature #18285: NoMethodError#message uses a lot of CPU/is really expensive to call
- > The vast majority of classes out there don't define a custom inspect. So Ruby should do something reasonable for these cases.
+1 My intention with my bug report was to call this out -- `inspect` can get really expensive, and you jus... -
12:20 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
- Spec fixed in https://github.com/ruby/ruby/compare/651a098ea1526b363e85fd8d3f30e9783f6c5de1...28cfc0c116b6c6e40bf3b391f026a51b3b208047, so only RangeError for when above the limit.
-
12:06 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
- CRuby actually can give NoMemoryError, RangeError but also ArgumentError (seems a bug:
```
$ ruby -e '1 << (2**67-1)'
-e:1:in `<<': integer overflow: 4611686018427387905 * 4 > 18446744073709551615 (ArgumentError)
``` -
12:00 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
- nobu (Nobuyoshi Nakada) wrote in #note-8:
> It is a test for the development branch and unrelated to users using released versions.
It might not be clear given the original bug report, but the behavior of NoMemoryError vs RangeError on ... -
01:58 AM Bug #18518 (Rejected): NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
- It is a test for the development branch and unrelated to users using released versions.
-
12:18 PM Revision 28cfc0c1 (git): Only RangeError on CRuby for shift width >= 2**67
- * It seems a better exception class too than NoMemoryError.
-
12:13 PM Revision 897cf122 (git): Fix Integer#{<<,>>} specs with large shift width
- * The limit depends on the implementation and platform, it seems unavoidable.
* See https://bugs.ruby-lang.org/issues/18518#note-9 -
11:54 AM Feature #19317: Unicode ICU Full case mapping
- Just answering to one part:
noraj (Alexandre ZANNI) wrote:
> ## language-sensitive case mapping
> ...
'turkic' was chosen because it includes both Turkish and Azeri languages (see https://en.wikipedia.org/wiki/Turkic_languages).... -
02:03 AM Feature #19317 (Assigned): Unicode ICU Full case mapping
-
10:48 AM Feature #19314: String#bytesplice should support partial copy
- > That shouldn't cost much compared to copying many bytes.
This proposal shows two use cases: text editor and NAT, which doesn't copy many bytes. -
09:24 AM Feature #19322: Support spawning "private" child processes
- Apologies if I wasn’t clear, but I definitely don’t intend for the proposed interface to be platform specific. It would make use of clone/pdfork if they were available, but the fallback implementation (either the “proxy everything throug...
-
09:16 AM Feature #19322: Support spawning "private" child processes
- I'm not very positive to implement platform specific methods, and rather suggest to create a gem as the first step.
-
09:10 AM Feature #19322: Support spawning "private" child processes
- I did think about something in that shape @nobu for unsupported systems, but I think there are two problems -
- SIGCHLD will still be received, which is undesirable on its own
- if a different thread is running `Process.waitpid2(-1)` co... -
08:59 AM Feature #19322: Support spawning "private" child processes
- Already possible solution would be a daemon process:
```ruby
IO.popen("-", "r+") do |childio|
if childio
# In parent process
Process.wait(childio.pid)
# `Process.wait` no longer consume the returned status code.
... -
07:40 AM Feature #19322 (Open): Support spawning "private" child processes
- ## Background
The traditional Unix process APIs (`fork` etc) are poorly isolated. If a library spawns a child process, this is not transparent to the program using the library. Any signal handler for `SIGCHLD` in the program will be c... - 08:47 AM Revision 651a098e (git): [ruby/did_you_mean] Keep the deprecated API for another year in case this could break 'bundle install'
- https://github.com/ruby/did_you_mean/commit/0f4b0806b7
-
08:41 AM Bug #19082: Recent gRPC gem fails to build from the source in already released versions
- Ok, this is indeed a bug. While Ruby 2.7.7 and 3.0.5 work, Ruby 3.1.3 and up have reintroduced https://bugs.ruby-lang.org/issues/19005. See https://bugs.ruby-lang.org/issues/19005#note-25.
-
08:02 AM Revision e537aa65 (git): [ruby/syntax_suggest] Run with the given ruby command
- Running the file with shebang has a few issues.
* shebang is an OS dependent feature. Many modern UNIX-like OSes
support it, but not all, e.g., Windows.
* `env` command may not be in `/usr/bin`.
* "ruby" command may not be "ruby", whe... -
03:15 AM Revision 69a2687a (git): [ruby/bigdecimal] Fix format specifiers for `size_t`
- https://github.com/ruby/bigdecimal/commit/99db3c9754
-
02:47 AM Revision 41fbcc51 (git): Fix format specifiers for pointer differences
01/06/2023
-
08:09 PM Bug #19318 (Closed): Float#round rounds incorrectly for some cases
-
03:27 PM Bug #19318 (Closed): Float#round rounds incorrectly for some cases
- This was discovered by @aardvark179.
The following spec in `spec/ruby/core/float/round_spec.rb` fails on CRuby:
```ruby
ruby_bug "", ""..."3.3" do
# These numbers are neighbouring floating point numbers round a
# precise... -
07:49 PM Revision 00d58afb (git): YJIT: Make iseq_get_location consistent with iseq.c (#7074)
- * YJIT: Make iseq_get_location consistent with iseq.c
* YJIT: Call it "YJIT entry point"
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> -
07:49 PM Revision 311ce917 (git): YJIT: Colorize outlined code differently on --yjit-dump-disasm (#7073)
- * YJIT: Colorize outlined code differently
on --yjit-dump-disasm
* YJIT: Reduce the number of escape sequences -
07:26 PM Bug #19320 (Closed): Crash during compaction while traversing the stack
- Fix PR: https://github.com/ruby/ruby/pull/7081
Applying the following patch to test/erb/test_erb.rb and running that file will cause Ruby to crash on my machine (macOS 13.1 on M1 Pro):
```diff
--- a/test/erb/test_erb.rb
+++ b/tes... -
04:46 PM Bug #19319 (Closed): Crash in rb_str_casemap
- Applied in changeset commit:git|d8ef0a98c670449b20436947f5ebbd327ed5ab0d.
----------
[Bug #19319] Fix crash in rb_str_casemap
The following code crashes on my machine:
```
GC.stress = true
str = "testing testing testing"
puts str.ca... -
03:27 PM Bug #19319 (Closed): Crash in rb_str_casemap
- Fix here: https://github.com/ruby/ruby/pull/7080
The following code crashes on my machine:
```ruby
GC.stress = true
str = "testing testing testing"
puts str.capitalize
```
I can repro this issue on Ruby 2.7.7, 3.0.5, 3.1... -
04:46 PM Revision 66bc6209 (git): Remove unused function `rb_shape_flags_mask`
-
04:37 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
- There's no practical reason to support left shift of greater than integer max, so I would support a fast check and RangeError. It would make more sense than just blowing up memory and raising NoMemoryError for something that should never...
-
03:01 PM Bug #18518: NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large
- So on 32-bit platforms it already behaves as I would expect, from the log in https://bugs.ruby-lang.org/issues/19260?next_issue_id=19259&prev_issue_id=19261#note-1
```ruby
1 << (2**40) #=> RangeError (shift width too big)
```
I thi... -
04:36 PM Revision d8ef0a98 (git): [Bug #19319] Fix crash in rb_str_casemap
- The following code crashes on my machine:
```
GC.stress = true
str = "testing testing testing"
puts str.capitalize
```
We need to ensure that the object `buffer_anchor` remains on the stack
so it does not get GC'd. -
03:49 PM Feature #19302 (Closed): Non-destructive String#insert
-
02:28 PM Feature #19302: Non-destructive String#insert
- I think we can close this issue.
-
03:39 PM Bug #19260: ruby/spec is failed with Ruby 3.3
- With `git grep -P '\b3\.3\b'`, I found:
```
lib/did_you_mean.rb:116: # TODO: Remove on 3.3:
lib/did_you_mean.rb:135: # TODO: Remove on 3.3:
```
cc @yuki24
```
re.c:3851: rb_warn_deprecated_to_remove("3.3", "3rd argument... -
03:31 PM Bug #19260 (Closed): ruby/spec is failed with Ruby 3.3
- All good now, thanks for creating this ticket.
-
02:05 PM Bug #19260: ruby/spec is failed with Ruby 3.3
- Going in the order of https://github.com/ruby/ruby/commit/a236661a62dc89173dcdd9e071365929db1201a7
* `Encoding#replicate has been removed FAILED` I'll remove it and adjust guard, it's #18949: https://github.com/ruby/ruby/pull/7079
* `do... -
03:34 PM Bug #19293: The new Time.new(String) API is nice... but we still need a stricter version of this
- > A trustworthy version of ISO8601 parser method perhaps with another name than .new that accepts strict ISO8601-ish String only
Can we improve `Time.iso8601`?
Alternatively we could introduce a method based on https://www.rfc-edit... -
03:28 PM Revision 2b88dbc6 (git): Add bug number
-
03:19 PM Feature #18949: Deprecate and remove replicate and dummy encodings
- This is all done now, only https://github.com/ruby/ruby/pull/7079 left and I'll merge that when it passes CI.
Overall:
* We deprecated and removed `Encoding#replicate`
* We removed `get_actual_encoding()`
* We limited to 256 encodi... -
02:19 PM Feature #18949: Deprecate and remove replicate and dummy encodings
- @ko1 did https://github.com/ruby/ruby/pull/6935, great, thank you!
-
03:05 PM Feature #19317 (Assigned): Unicode ICU Full case mapping
- As announced in [Case Mapping](https://docs.ruby-lang.org/en/master/case_mapping_rdoc.html#label-Default+Case+Mapping), Ruby support for Unicode case mapping is not complete yet.
Unicode supports in Ruby is pretty awesome, it works by... -
03:03 PM Misc #19240: DevMeeting-2023-01-19
- * [Bug #18518] NoMemoryError + [FATAL] failed to allocate memory for twice 1 << large (eregon)
* I would like a decision on this ticket
* I propose to raise `RangeError (shift width too big)` if `shift width` is >= 2**31 (32-bit si... -
12:46 PM Misc #19240: DevMeeting-2023-01-19
- EDIT: I remove #19315 for this meeting's agenda, let's discuss it at a later meeting.
-
11:19 AM Misc #19240: DevMeeting-2023-01-19
- * [Feature #19314] String#bytesplice should support partial copy
* Not only I but also kazuho-san wants this feature: https://twitter.com/kazuho/status/1611279616098070532
* Can the length be omitted in the destination? -
04:52 AM Misc #19240: DevMeeting-2023-01-19
- * [Misc #16671] BASERUBY version policy
* How about my proposal?
-
02:35 PM Bug #19316 (Closed): YJIT crash in 3.2.0
- When I check out this commit from GitHub, https://github.com/jdashton/aoc2022-ruby/tree/5702dac483cd6e95f7be35bfebaf9d4a654796d8 , and run the following command, `RUBYOPT="-v --yjit" bin/rspec spec/aoc2022/puzzles/unstable_diffusion_spec...
-
02:33 PM Bug #8973: Allow to configure archlibdir for multiarch
- Actually, the real intention here is to get rid of the `${arch}` from the paths. The thing is that `--enable-multiarch` used to make it possible, because this is the implementation:
~~~
rubyarchprefix=${multiarch+'${archlibdir}/${RUBY_B... -
01:55 PM Bug #8973: Allow to configure archlibdir for multiarch
- nobu (Nobuyoshi Nakada) wrote in #note-9:
> @vo.x With your patch and `--with-multiarch --with-archlibdir='${libdir}'`, not only libruby.so but also all standard library extensions are placed under `${libdir}` without `${arch}`.
> ...
... -
02:20 PM Revision ddbf7be9 (git): [ruby/uri] [DOC] Enhanced RDoc for common methods
- (https://github.com/ruby/uri/pull/50)
https://github.com/ruby/uri/commit/7ff4fb372b -
01:59 PM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
- @duerst Could you take a look at this? It's not fixed yet in 3.2.0.
-
01:17 PM Feature #18598: Add String#bytesplice
- shugo (Shugo Maeda) wrote in #note-4:
> > * Do not use String and e.g. use an Array of byte values or a C extension
> ...
The typical approach is to flatten (or convert) the Rope to String before matching (whether the Rope is in Ruby o... -
01:14 PM Feature #19314: String#bytesplice should support partial copy
- Eregon (Benoit Daloze) wrote in #note-5:
> Now that we have IO::Buffer and there is https://docs.ruby-lang.org/en/master/IO/Buffer.html#method-i-copy, why not use that?
So this does what you want I believe:
```ruby
x = "0123456789"... -
01:02 PM Feature #19314: String#bytesplice should support partial copy
- Ah, something I missed though is that with lazy substrings, there would still need to be a copy of the bytes to "unshare" the string when writing to it.
That copy would also be needed if the string was shared before (e.g. with .dup), but... -
12:54 PM Feature #19314: String#bytesplice should support partial copy
- naruse (Yui NARUSE) wrote in #note-3:
> But your proposal: Lazy substrings is not a solution because it also creates an object especially for small strings which is embedded in RVALUE.
Yes it creates a String instance reusing the sam... -
12:41 PM Feature #19314: String#bytesplice should support partial copy
- I agree that this is a workaround and a VM should solve this as an optimization.
But your proposal: Lazy substrings is not a solution because it also creates an object especially for small strings which is embedded in RVALUE.
I agr... -
12:20 PM Feature #19314: String#bytesplice should support partial copy
- I think this is too hard to read and parse for a human and 5 arguments seems way too much for a core method.
It feels like a full memcpy/arraycopy which I don't think in general is a good idea for String.
The implementation complexity ... -
11:06 AM Feature #19314 (Closed): String#bytesplice should support partial copy
- String#bytesplice should support partial copy without temporary String objects.
For example, given `x = "0123456789"`, either of the following replaces the contents of `x` with `"0167856789"`:
```ruby
x.bytesplice(2, 3, x, 6, 3)
... -
12:58 PM Bug #19312 (Closed): SEGV during test_ast.rb: <internal:ast>:76: [BUG] parser_token2id: unknown token -1
- Applied in changeset commit:git|cee5beab1d7bf6f99530957494ab9775696d42ce.
----------
[Bug #19312] Return end-of-input at `__END__` -
11:35 AM Bug #19312: SEGV during test_ast.rb: <internal:ast>:76: [BUG] parser_token2id: unknown token -1
- https://github.com/ruby/ruby/pull/7077
Maybe old versions should use `END_OF_INPUT` instead of 0 and -1. -
12:45 PM Feature #19315: Lazy substrings in CRuby
- `SHARABLE_MIDDLE_SUBSTRING` was introduced circa 2014 in https://github.com/ruby/ruby/commit/a707ab4bc8a by @nobu.
@nobu maybe you have some insights to share on this topic? Is there a reason you remember why this flag was never enabl... -
12:33 PM Feature #19315: Lazy substrings in CRuby
- The documentation of RSTRING_PTR() doesn't specify it returns a \0-terminated `char*`, but it seems assumed in various places and it would likely be a security issue if that's not always \0-terminated.
So RSTRING_PTR() needs to realloc ... -
12:30 PM Feature #19315 (Open): Lazy substrings in CRuby
- CRuby should implement lazy substrings, i.e., "abcdef"[1..3] must not copy bytes.
Currently CRuby only reuse the char* if the substring is until the end of the buffer.
But it should also work wherever the substring starts and ends.
... -
12:13 PM Revision cee5beab (git): [Bug #19312] Return end-of-input at `__END__`
-
11:00 AM Revision d9520bf2 (git): [DOC] Mention `configure` options earlier, not after failure
- The command line arguments to `configure` are stored in `rbconfig.rb`.
Usually these are just useless but harmless after the installation,
however could affect unexpectedly when updating default gems. -
11:00 AM Revision 42820a98 (git): [DOC] Specify `shell` format to shell commands
-
11:00 AM Revision b9465614 (git): mkmf.rb: Refactor splitting configure_args and remove duplicate code
-
11:00 AM Revision cd7e14da (git): Pass options for extensions via `CONFIGURE_ARGS`
-
10:15 AM Misc #16671: BASERUBY version policy
- What we often tend to write frequently are safe navigation operator and indented here-docs.
So I'll be happy it were 2.3 or later. -
04:48 AM Misc #16671: BASERUBY version policy
- How about the Ruby version provided by the stable Ubuntu release?
* https://packages.ubuntu.com/search?keywords=ruby
* bionic (18.04LTS): 2.5.1, standard EOL date is 2023/04
* focal (20.04LTS): 2.7, standard EOL date is 2025/04
... -
08:53 AM Revision bdd35045 (git): Fix typos [ci skip]
-
08:49 AM Feature #19300: Move public methods from Kernel to Object
- Useless history talk. I once asked matz why Kernel exists. If I remember correctly, matz said the following.
* In the beginning, there was a usage distinction of putting global function-like methods (exit, eval, etc.) in Kernel and me... - 07:02 AM Revision 1be669d0 (git): Update bundled gems list at 2023-01-06
-
06:37 AM Revision dcf63b58 (git): [ruby/psych] Strip trailing spaces [ci skip]
- https://github.com/ruby/psych/commit/e07b16ad8b
-
06:33 AM Revision f877805a (git): [ruby/psych] Add msys2 dependencies for windows
- https://github.com/ruby/psych/commit/9a3816d903
-
05:30 AM Bug #19275 (Closed): Bundled gems extensions are not installed with 3.2.0 release tarball
-
05:27 AM Bug #19307 (Closed): Fix `OpenSSL::X509::CertificateError: invalid digest` on CentOS 9 / RHEL 9
- https://github.com/ruby/spec/pull/990 has been merged. I'll close this.
-
03:13 AM Revision dd0b4017 (git): Ensure newline at EOF [ci skip]
- Cf. https://github.com/ruby/ruby/pull/7069
-
01:49 AM Revision 6c618cb7 (git): Use a different name for megamorphic setivar exits
- We should differentiate between set and get for megamorphic exits. This
patch fixes the megamorphic exit name in gen_setinstancevariable so that
we can tell the difference between megamorphic get / set sites -
12:53 AM Feature #18814: Ractor: add method to query incoming message queue size
- I heard from @ko1 in person that _he_ doesn't need this feature to implement his ractor pool. From what I understand he would have a single ruby-level Queue instance for all incoming messages and instead of pushing those messages to eac...
-
12:22 AM Bug #19262 (Closed): Segmentation fault on RubyVM::AbstractSyntaxTree.node_id_for_backtrace_location
- Applied in changeset commit:git|979dd02e2f0a70f3f30d47c6115780d8fac6147e.
----------
Check if the argument is Thread::Backtrace::Location object
[Bug #19262] -
12:22 AM Revision 979dd02e (git): Check if the argument is Thread::Backtrace::Location object
- [Bug #19262]