Project

General

Profile

Activity

From 08/28/2022 to 09/03/2022

09/03/2022

06:01 PM Revision 13a59747 (git): * 2022-09-04 [ci skip]
git[bot]
05:17 PM Misc #18977: DevMeeting-2022-09-22
* [Feature #11689] Add methods allow us to get visibility from Method and UnboundMethod object. (eregon)
* I think we should re-add (undo revert) {Method,UnboundMethod}#{public?,private?,protected?} on master, see https://bugs.ruby-la...
Eregon (Benoit Daloze)
05:07 PM Revision 45004bba (git): fake.rb needs id.h
nobu (Nobuyoshi Nakada)
03:20 PM Bug #18994 (Closed): Range#last(n) returns empty for single-element Integer Range
`Range#last(n)` with a single-element of Integer returns an empty Array. It should return a one-element Array.
Interestingly, when the element is a String, `last(n)` returns a one-element Array, expectedly.
I have checked the behav...
masasakano (Masa Sakano)
02:58 PM Feature #18949: Deprecate and remove replicate and dummy encodings
PR for deprecating `Encoding#replicate` and the dummy `Encoding::UTF_16/32` encodings: https://github.com/ruby/ruby/pull/6322 Eregon (Benoit Daloze)
10:41 AM Feature #18949: Deprecate and remove replicate and dummy encodings
Here is the dev meeting log: https://github.com/ruby/dev-meeting-log/blob/master/DevMeeting-2022-08-18.md#feature-18949-deprecate-and-remove-replicate-and-dummy-encodings-eregon
> Conclusion: Just remove the dynamic UTF-16/32 endian d...
Eregon (Benoit Daloze)
02:47 PM Revision 0111dc5b (git): [DOC] Escape backqoute method not to be converted to smart quotes
nobu (Nobuyoshi Nakada)
02:26 PM Revision baf05010 (git): [DOC] Remove extra page-dir prefix to fix broken link
nobu (Nobuyoshi Nakada)
01:57 PM Misc #17591 (Closed): Test frameworks and REPLs do not show deprecation warnings by default
This is done, except for RSpec, which is tracked in https://github.com/rspec/rspec-core/issues/2867. Eregon (Benoit Daloze)
01:36 PM Revision fe865c52 (git): [DOC] Enhanced RDoc for Time (#6320)
Treats:
#yday
#dst?
#zone
#to_a
#strftime
burdettelamar (Burdette Lamar)
12:57 PM Revision 2767cb28 (git): Now fake.rb is needed to prepare sources
nobu (Nobuyoshi Nakada)
12:37 PM Revision a01271c1 (git): BOOTSTRAPRUBY needs fake.rb when cross-compiling
nobu (Nobuyoshi Nakada)
12:02 PM Revision 7b11247b (git): Fix potential target type confliction [ci skip]
nobu (Nobuyoshi Nakada)
10:25 AM Revision 7c67d0fd (git): Make sources by BASERUBY if available instead of miniruby
nobu (Nobuyoshi Nakada)
10:20 AM Revision 8f13d75a (git): Generate the prelude sources by common-srcs
nobu (Nobuyoshi Nakada)
10:20 AM Revision 6f5305e0 (git): Exclude LIBPATHENV wrapper from PREP
nobu (Nobuyoshi Nakada)
10:20 AM Revision 21a5da3c (git): Check if MSys shell can run a command with a drive letter
nobu (Nobuyoshi Nakada)
10:20 AM Revision d8f81ffd (git): builtin.c includes mini_builtin.c when cross-compiling
nobu (Nobuyoshi Nakada)
10:19 AM Revision 652a6248 (git): miniruby may not be built when cross-compiling
nobu (Nobuyoshi Nakada)
09:42 AM Revision c4f2f2ef (git): Reuse macros defined in Makefile.in
nobu (Nobuyoshi Nakada)
08:41 AM Feature #16122: Data: simple immutable value object
RubyBugs (A Nonymous) wrote in #note-58:
> We hope that a Ruby-native solution might address some of the same needs we have in the gem:
Can you please file a separate ticket to discuss `Data` extensions that don't exist in Struct? Ther...
k0kubun (Takashi Kokubun)
06:57 AM Bug #18992: Update versions of the default gems for Ruby 3.1
The pull request was merged. nagachika (Tomoyuki Chikanaga)
06:56 AM Revision 4d26cfb2 (git): revision up for https://github.com/ruby/ruby/pull/6125
nagachika (Tomoyuki Chikanaga)
06:54 AM Revision 4a9a38c3 (git): Bump typeprof version to 0.21.3
hsbt (Hiroshi SHIBATA)
06:54 AM Revision 5ae91c7f (git): Bump rbs version to 2.6.0+
hsbt (Hiroshi SHIBATA)
06:54 AM Revision eed5970b (git): Merge csv-3.2.5
hsbt (Hiroshi SHIBATA)
06:54 AM Revision cd0c2a67 (git): Merge csv-3.2.4
hsbt (Hiroshi SHIBATA)
06:54 AM Revision c69fffe6 (git): Merge csv-3.2.3
hsbt (Hiroshi SHIBATA)
06:54 AM Revision a9bf13a4 (git): Merge RubyGems-3.3.21 and Bundler-2.3.21
hsbt (Hiroshi SHIBATA)
06:54 AM Revision 522b75f1 (git): Merge RubyGems-3.3.20 and Bundler-2.3.20
hsbt (Hiroshi SHIBATA)
06:54 AM Revision 44c926f3 (git): Merge RubyGems-3.3.19 and Bundler-2.3.19
hsbt (Hiroshi SHIBATA)
06:54 AM Revision 09187833 (git): Merge RubyGems-3.3.18 and Bundler-2.3.18
hsbt (Hiroshi SHIBATA)
06:54 AM Revision 7ef68dd7 (git): Merge RubyGems-3.3.17 and Bundler-2.3.17
hsbt (Hiroshi SHIBATA)
06:54 AM Revision a01f5ad1 (git): Merge RubyGems-3.3.16 and Bundler-2.3.16
hsbt (Hiroshi SHIBATA)
06:54 AM Revision b9f6a09b (git): Merge RubyGems-3.3.15 and Bundler-2.3.15
hsbt (Hiroshi SHIBATA)
06:54 AM Revision d7862a5d (git): Merge RubyGems-3.3.14 and Bundler-2.3.14
hsbt (Hiroshi SHIBATA)
06:18 AM Bug #18739: Wrong mid-rule index
ruby_3_1 ffd3d83ea8ccf111061a0f03036e5a093bb03674 merged revision(s) 08b6aacc1a14440e0f1644a05238559c6c585e38. nagachika (Tomoyuki Chikanaga)
06:18 AM Revision ffd3d83e (git): merge revision(s) 08b6aacc1a14440e0f1644a05238559c6c585e38: [Backport #18739]
Fix the wrong index of the previous component [Bug #18739]
---
parse.y | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)
06:06 AM Bug #18435: Calling `protected` on ancestor method changes result of `instance_methods(false)`
ruby_3_1 5473c1064d5e82d706b554f2fe5a5b41900f6b14 merged revision(s) 8212aab81a77a2a91fb7c1681b4968171193b48f,209631a45f9682dedf718f4b4a140efe7d21a6fc. nagachika (Tomoyuki Chikanaga)
06:05 AM Revision 5473c106 (git): merge revision(s) 8212aab81a77a2a91fb7c1681b4968171193b48f,209631a45f9682dedf718f4b4a140efe7d21a6fc: [Backport #18435]
Make Object#method and Module#instance_method not skip ZSUPER methods
Based on https://github.com/jeremyevans/ruby/commit/c95e7e5329140f640b6497905485761f3336d967
Among other things, this fixes calling visibility method...
nagachika (Tomoyuki Chikanaga)
06:01 AM Revision bc5b9be1 (git): Move duplicate dependencies
nobu (Nobuyoshi Nakada)

09/02/2022

07:11 PM Revision c8c90e45 (git): Enhanced RDoc for Tim[DOC] (#6319)
burdettelamar (Burdette Lamar)
06:28 PM Revision 6bb2a43c (git): * 2022-09-03 [ci skip]
git[bot]
06:27 PM Revision 1b8a644b (git): [ruby/reline] Fix a typo [ci skip]
https://github.com/ruby/reline/commit/33bf80e757 nobu (Nobuyoshi Nakada)
06:18 PM Bug #18993 (Closed): Inconsistent Range#size for Float and Rational
The returned values of Range#size between Rational and Float and also with regard to `exclude_end` of true and false are inconsistent.
The example below highlights the difference. The first and second should return the same value. The...
masasakano (Masa Sakano)
03:01 PM Bug #17767: `Cloned ENV` inconsistently returns `ENV` or `self`
@Dan0042 It is not a "clone".
nobu (Nobuyoshi Nakada)
02:55 PM Bug #18970 (Third Party's Issue): CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
nobu (Nobuyoshi Nakada)
01:11 PM Revision 5044832f (git): `w_bigfixnum` is used only for large FIXNUM
nobu (Nobuyoshi Nakada)
10:18 AM Bug #18991: False LocalJumpError when branch coverage is enabled
Good catch, thank you for your report. I could recreate the issue without coverage.
```
RubyVM::InstructionSequence.compile_option = false
eval("1&.tap { break }") #=> break from proc-closure (LocalJumpError)
```
Here is my anal...
mame (Yusuke Endoh)
03:22 AM Bug #18991 (Closed): False LocalJumpError when branch coverage is enabled
Enabling branch coverage leads to a false LocalJumpError where it should not be raised.
```ruby
# test.rb
require "coverage"
Coverage.start(branches: true)
# Coverage.start(lines: true)
load "./test2.rb"
```
```ruby
# test...
qnighy (Masaki Hara)
07:09 AM Revision 0d2422cf (git): [ruby/reline] Workaround for padding width with Aracritty on macOS
https://github.com/ruby/reline/commit/fb4136c8a7 hsbt (Hiroshi SHIBATA)
07:09 AM Revision 7ff50ee3 (git): [ruby/reline] Added some of abstruct methods for cursor
https://github.com/ruby/reline/commit/f5fa30d595 hsbt (Hiroshi SHIBATA)
06:57 AM Revision f069bc79 (git): * append newline at EOF. [ci skip]
git[bot]
06:30 AM Revision 740d530b (git): Added doc about `test-syntax-suggest`
hsbt (Hiroshi SHIBATA)
06:25 AM Revision e7a8e3e9 (git): Added entries about test-bundler-parallel and BUNDLER_SPECS
hsbt (Hiroshi SHIBATA)
05:49 AM Revision 92d24762 (git): Adjust styles [ci skip]
nobu (Nobuyoshi Nakada)
05:33 AM Revision b5cf3564 (git): Consider Complex from Complex cases
The assertions that "an argument of a Complex constructor must not be
a Complex" may not hold for some Numeric objects.
nobu (Nobuyoshi Nakada)
05:33 AM Revision 9212d963 (git): [Bug #18937] Coerce non-real non-Numeric into Complex at comparisons
nobu (Nobuyoshi Nakada)
05:33 AM Revision a9b59e24 (git): Turn `f_zero_p` to `bool`
nobu (Nobuyoshi Nakada)
04:29 AM Bug #18992 (Closed): Update versions of the default gems for Ruby 3.1
This is a ticket for backport management.
https://github.com/ruby/ruby/pull/6125
Note: rbs-2.6.0+ is temporary for test fails with `Gem.use_gemdeps`. We should replace it with 2.6.1 or 2.7.0 after releasing a stable version.
hsbt (Hiroshi SHIBATA)
03:05 AM Revision e896b338 (git): Test --enable-yjit on aarch64 as well (#6313)
k0kubun (Takashi Kokubun)
03:05 AM Revision fb5fa84f (git): Remove workarounds for slow compilation on Cirrus (#6310)
Remove workarounds for slow compilation k0kubun (Takashi Kokubun)
02:14 AM Revision 9b48edd9 (git): Allow comparing against 64-bit immediates on x86 (#6314)
kddnewton (Kevin Newton)
12:36 AM Revision fc2d9fed (git): Use getblockparamproxy with branch
A common pattern when the block is an explicit parameter is to branch
based on the block parameter instead of using `block_given?`, for
example `block.call if block`.
This commit checks in the peephole optimizer for that case and uses t...
jhawthorn (John Hawthorn)

09/01/2022

11:02 PM Bug #18985: SEGV with YJIT on aarch64-linux
Thanks, I also confirm working it.
```
chkbuild@rubyci-ubuntu2004-arm:~$ ruby --jit -v -e "puts :foo"
ruby 3.2.0dev (2022-09-01T22:21:12Z master 3401e58f23) +YJIT [aarch64-linux]
foo
```
hsbt (Hiroshi SHIBATA)
08:40 PM Bug #18985: SEGV with YJIT on aarch64-linux
merged the fix. it should be working now. k0kubun (Takashi Kokubun)
08:38 PM Bug #18985 (Closed): SEGV with YJIT on aarch64-linux
Applied in changeset commit:git|064944c9029fae0552f120ea586f4f83ce206ec6.
----------
Stop using a callee-saved register for scratch0 on aarch64 (#6312)
[Bug #18985]
* Callee-save x22 for aarch64
* Just use a caller-saved register
* ...
k0kubun (Takashi Kokubun)
10:21 PM Revision 3401e58f (git): * expand tabs. [ci skip]
Tabs were expanded because the file did not have any tab indentation in unedited lines.
Please update your editor config, and use misc/expand_tabs.rb in the pre-commit hook.
git[bot]
10:20 PM Revision 1cc97412 (git): Remove rb_iseq_each
jhawthorn (John Hawthorn)
10:20 PM Revision 679ef345 (git): New constant caching insn: opt_getconstant_path
Previously YARV bytecode implemented constant caching by having a pair
of instructions, opt_getinlinecache and opt_setinlinecache, wrapping a
series of getconstant calls (with putobject providing supporting
arguments).
This commit repla...
jhawthorn (John Hawthorn)
09:59 PM Bug #18970: CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
> That behavior should be inherited from Cygwin.
Thanks, never saw a specific reference to that.
I'm ok to close, not sure about RubyInstaller2, probably better to have an issue there if there are issues with Bash bin files...
MSP-Greg (Greg L)
09:12 PM Revision 7064d259 (git): Update NEWS.md for YJIT
k0kubun (Takashi Kokubun)
08:38 PM Revision 064944c9 (git): Stop using a callee-saved register for scratch0 on aarch64 (#6312)
[Bug #18985]
* Callee-save x22 for aarch64
* Just use a caller-saved register
* Update yjit/src/backend/arm64/mod.rs
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmai...
k0kubun (Takashi Kokubun)
06:56 PM Revision 41911847 (git): * 2022-09-02 [ci skip]
git[bot]
06:55 PM Revision 4144abee (git): Let --yjit-dump-disasm=all dump ocb code as well (#6309)
* Let --yjit-dump-disasm=all dump ocb code as well
* Use an enum instead
* Add a None Option to DumpDisasm (#444)
* Add a None Option to DumpDisasm
* Update yjit/src/asm/mod.rs
Co-authored-by: Maxime Chevalier-Boisvert <maximecheval...
k0kubun (Takashi Kokubun)
04:09 PM Feature #16122: Data: simple immutable value object
**4. Conversion from and to Hash**
For example: a keyword arg constructor accepting `(**hsh)`, and a `#to_h` method
RubyBugs (A Nonymous)
04:04 PM Feature #16122: Data: simple immutable value object
**3. Keyword arg constructors**
Because a non-mutating copy-with-changes such as `#with` will need to take keyword arguments to indicate which values to change, it’s useful to provide a constructor form which also accepts keyword argu...
RubyBugs (A Nonymous)
04:00 PM Feature #16122: Data: simple immutable value object
**2. Highly optimized hash and eql?**
Because we use value objects in loops, profiling led us to the commits in our fork of tcrayford/values, which optimize these methods, so that using Value objects in Sets and as Hash keys will be a...
RubyBugs (A Nonymous)
03:58 PM Feature #16122: Data: simple immutable value object
@eregon This is great news!
At Panorama Education, we use maintain a fork of the tcrayford/values gem here for this purpose here: https://github.com/ms-ati/Values/tree/panoramaed-2.0.x
We hope that a Ruby-native solution might addr...
RubyBugs (A Nonymous)
03:06 PM Bug #18990 (Closed): Pattern matching unexpectedly raises "duplicated key name" error
I've found that sometimes, when matching nested patterns, I get an unexpected "duplicate key name" error but there's no duplicate key in any individual pattern. The "duplicated" key is actually in another pattern that's in scope, which I... zeke (Zeke Gabrielse)
01:57 PM Feature #18980: `it` as a default block parameter
@zverok Again, thank you very much, this is super informative. Dan0042 (Daniel DeLorme)
01:13 PM Feature #18980: `it` as a default block parameter
@Dan0042
```
$ egrep _1 {app,lib} -r --include \*.rb | wc -l
378
$ egrep '\{ *_1' {app,lib} -r --include \*.rb | wc -l
151
$ egrep '\{ *_1\.' {app,lib} -r --include \*.rb | wc -l
92
```
And even of those 92, not all are suitable for `{...
zverok (Victor Shepelev)
12:23 PM Feature #18980: `it` as a default block parameter
zverok (Victor Shepelev) wrote in #note-31:
> I am afraid I don't see a pattern that you hope to see (e.g., quoting #16120, that it would mostly be `{ _1.something(args) }`.
Thank you. It's surprising to me, but very enlightening. N...
Dan0042 (Daniel DeLorme)
12:16 AM Feature #18980: `it` as a default block parameter
> Now I'm almost giving it up because there are more people who dislike it than I expected.
Is it really a problem though? This proposal is basically about a new alias for an existing feature. I don't think it logically need to please...
byroot (Jean Boussier)
11:57 AM Revision 462a8be5 (git): VCS#revision_header: Make arguments optional
nobu (Nobuyoshi Nakada)
10:47 AM Revision f67ab7f3 (git): [ruby/did_you_mean] Fixed correction duplicates in VariableNameChecker
https://github.com/ruby/did_you_mean/commit/c3fc412f6f makketagg (Imir Kiyamov)
10:37 AM Feature #18951: Object#with to set and restore attributes around a block
Or maybe making the restore more explicit
``` ruby
obj.assign_attrs(foo: "bar") do
# do something
end.restore
```
``` ruby
obj.assign_attrs(foo: "bar") do |restorable|
# do something
ensure
restorable.restore
end
```
``` ruby
ob...
p8 (Petrik de Heus)
10:03 AM Bug #18981 (Closed): Backport bundle loader option to stable versions
hsbt (Hiroshi SHIBATA)
09:45 AM Revision 55b16009 (git): Update revision.h in packages using `VCS#revision_header`
nobu (Nobuyoshi Nakada)
09:37 AM Bug #18989 (Closed): Backport f229b36087f1b387d77af8f3fa50f9bffd2fd44e to ruby_3_1
This is a ticket for backport management.
f229b36087f1b387d77af8f3fa50f9bffd2fd44e should be backported into ruby_3_1.
nagachika (Tomoyuki Chikanaga)
09:01 AM Revision ee09f75a (git): Extract `VCS#revision_header`
nobu (Nobuyoshi Nakada)
09:01 AM Revision 762fca9b (git): Prefer `File` class methods to write a string
nobu (Nobuyoshi Nakada)
08:02 AM Revision f3becd73 (git): Ignore test libraries like assert_ractor from did_you_mean
hsbt (Hiroshi SHIBATA)
07:36 AM Revision 59e8569c (git): [ruby/reline] Support dumb terminal
The "dumb" terminal is considered only on MSys tty now. However, the
`TERM` feature has been used on many Unix-like systems for decades,
not MSys specific.
https://github.com/ruby/reline/commit/53fd51ab62
nobu (Nobuyoshi Nakada)
07:15 AM Revision f229b360 (git): Fix test fail with assert_ractor outside of ruby/ruby repo
Revert 806583c093ecc2d67830f0a8f0d94decf0ed71e5 hsbt (Hiroshi SHIBATA)
06:01 AM Revision aa5c1a04 (git): [rubygems/rubygems] Support non gnu libc arm-linux-eabi platforms
https://github.com/rubygems/rubygems/commit/fcf62799f2 ntkme (Natsuki Natsume)
06:01 AM Revision aded6971 (git): [rubygems/rubygems] Support non gnu libc arm-linux-eabi platforms
https://github.com/rubygems/rubygems/commit/394d7a6fc9 ntkme (Natsuki Natsume)
05:01 AM Revision 941e9be0 (git): [ruby/reline] Remove loose operation in Dialog#render_each_dialog
https://github.com/ruby/reline/commit/a6d1c917ce Maumagnaguagno (Mau Magnaguagno)
12:18 AM Revision ce70cb64 (git): It was a relative path [ci skip]
k0kubun (Takashi Kokubun)
12:16 AM Revision a0d2320f (git): Add a document about YJIT's Rust version
k0kubun (Takashi Kokubun)

08/31/2022

10:38 PM Feature #18980: `it` as a default block parameter
Now I'm almost giving `it` up because there are more people who dislike `it` than I expected. I thought compatibility was the only blocker of `it`, but it doesn't seem like the case.
However, even if `it` is not gonna make it, the probl...
k0kubun (Takashi Kokubun)
10:04 PM Feature #18980: `it` as a default block parameter
@Dan0042
> Out of curiosity, how many of those ~200 are used as the first token in the block (like { _1.foo }) vs. how many used in another way?
I am afraid I don't see a pattern that you hope to see (e.g., quoting #16120, that it...
zverok (Victor Shepelev)
08:53 PM Feature #18980: `it` as a default block parameter
Dan0042 (Daniel DeLorme) wrote in #note-29:
> I'm also one of those who didn't manage to get used to this syntax. I'll use it sometimes in IRB, or in code samples in this tracker, but never in any code I commit... it just feels unclean ...
austin (Austin Ziegler)
07:36 PM Feature #18980: `it` as a default block parameter
I'm also one of those who didn't manage to get used to this syntax. I'll use it sometimes in IRB, or in code samples in this tracker, but never in any code I commit... it just feels unclean for some reason.
So far I count k0kubun and...
Dan0042 (Daniel DeLorme)
10:09 PM Revision 811ca75f (git): Remove -j option
Close https://github.com/ruby/ruby/pull/6307
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
nobu (Nobuyoshi Nakada)
09:36 PM Revision d41be1ac (git): [DOC] Enhanced RDoc for Time (#6308)
More on timezones. burdettelamar (Burdette Lamar)
09:12 PM Feature #18951: Object#with to set and restore attributes around a block
Dan0042 (Daniel DeLorme) wrote in #note-10:
> Also really like the idea, also ambivalent about such a short and generic name.
> ...
- `#override_with`
- `#mut`
- `#mutate`
- `#borrow_with`
- `#with_restore`
- `#restore_do`
- `#ta...
austin (Austin Ziegler)
08:05 PM Feature #18951: Object#with to set and restore attributes around a block
Also really like the idea, also ambivalent about such a short and generic name.
I think it would be good if the name emphasized a bit more that the original values will be restored after the block. Something in the vein of `temporaril...
Dan0042 (Daniel DeLorme)
07:44 PM Revision 036bb559 (git): * 2022-09-01 [ci skip]
git[bot]
07:44 PM Revision be55b77c (git): Better b.cond usage on AArch64 (#6305)
* Better b.cond usage on AArch64
When we're lowering a conditional jump, we previously had a bit of
a complicated setup where we could emit a conditional jump to skip
over a jump that was the next instruction, and then write out the
des...
kddnewton (Kevin Newton)
05:38 PM Bug #17767: `Cloned ENV` inconsistently returns `ENV` or `self`
I realize I'm late, but instead of "pointing the user to use ENV.to_h" it would be more helpful to just have dup/clone be aliases of to_h. It's the obvious behavior that everyone using ENV.clone was expecting in the first place. Dan0042 (Daniel DeLorme)
04:05 PM Bug #18988 (Closed): Ripper cannot parse some code that has regexp named capture
Ripper does not seems to recognize regexp named capture defining new local variables, fails to parse some code.
~~~ruby
requie 'ripper'
# expect syntax ok, got syntax error
Ripper.sexp("/(?<a>)/ =~ ''; x = a **a, a if false")
# ...
tompng (tomoya ishida)
09:00 AM Revision 32a05915 (git): Move macros from version.h to version.c
Moved the contents of `ruby_description` and `ruby_copyright` which
are never used in the other places.
nobu (Nobuyoshi Nakada)
08:56 AM Revision 2b967cd4 (git): Let fake.rb allow newlines in expanded strings
nobu (Nobuyoshi Nakada)
08:28 AM Bug #18973 (Closed): Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
Applied in changeset commit:git|576bdec03f0d58847690a0607c788ada433ce60f.
----------
[Bug #18973] Promote US-ASCII to ASCII-8BIT when adding 8-bit char
nobu (Nobuyoshi Nakada)
08:27 AM Revision 576bdec0 (git): [Bug #18973] Promote US-ASCII to ASCII-8BIT when adding 8-bit char
nobu (Nobuyoshi Nakada)
08:27 AM Revision 9dc60653 (git): Extract `update_coderange` macro
Which restarts scanning the code range in unscanned part. nobu (Nobuyoshi Nakada)
07:28 AM Feature #18571: Removed the bundled sources from release package after Ruby 3.2
The current distributed package still contained libyaml and libffi sources.
We will remove them and introduce the instructions to download them when building ruby like `./configure --enable-download-source`.
hsbt (Hiroshi SHIBATA)
07:08 AM Bug #18970: CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
MSP-Greg (Greg L) wrote in #note-15:
> Interesting thing that I found is that MSYS2's `which` command considers a file to executable if it is an exe file or if it starts with a shebang (`#!`).
That behavior should be inherited from C...
nobu (Nobuyoshi Nakada)
06:31 AM Revision 22542a6f (git): SCRIPTBINDIR is ok if it just exists [ci skip]
nobu (Nobuyoshi Nakada)
06:31 AM Revision dc66f724 (git): Scripts under libexec may not be considered to be placed in bin
nobu (Nobuyoshi Nakada)
06:31 AM Revision 08c3d08a (git): `ruby_init_setproctitle` declaration has moved to internal/missing.h
nobu (Nobuyoshi Nakada)
04:58 AM Bug #18666 (Assigned): No rule to make target 'yaml/yaml.h', needed by 'api.o'
hsbt (Hiroshi SHIBATA)
04:58 AM Bug #18614 (Assigned): Error (busy loop) in TestGemCommandsSetupCommand#test_destdir_flag_does_not_try_to_write_to_the_default_gem_home
hsbt (Hiroshi SHIBATA)
04:49 AM Misc #18836 (Closed): DevMeeting-2022-07-21
hsbt (Hiroshi SHIBATA)
04:47 AM Bug #18058 (Assigned): 3.1.0-dev with MJIT enabled Zlib::BufError during `gem install`
hsbt (Hiroshi SHIBATA)
04:40 AM Misc #18976 (Assigned): [ANN] blade.nagaokaut.ac.jp is down
hsbt (Hiroshi SHIBATA)
03:37 AM Revision 739380c9 (git): [ruby/net-protocol] Improve BufferedIO performance
`BufferedIO` is a bit inefficient for reading large responses because
it use the classic `buffer.slice!` technique which cause a lot of
unnecessary string copying.
This is particularly visible on line based protocol when reading
line by...
byroot (Jean Boussier)
01:03 AM Misc #18987 (Closed): [ANN] Sunsetting svn.ruby-lang.org
svn.ruby-lang.org provides subversion write endpoint for stable maintainers and read endpoint for anonymous users. But Ruby 2.6 the last version, used subversion is EOL today.
I will shut down the subversion service of svn.ruby-lang.o...
hsbt (Hiroshi SHIBATA)
12:07 AM Revision 221a5236 (git): Put a documentation about MJIT [ci skip]
k0kubun (Takashi Kokubun)

08/30/2022

09:41 PM Bug #18985 (Assigned): SEGV with YJIT on aarch64-linux
It's AWS `c6g` instance with Ubuntu 20.04.5.
```
Linux rubyci-ubuntu2004-arm 5.13.0-1022-aws #24~20.04.1-Ubuntu SMP Thu Apr 7 22:14:11 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
```
And I build ruby with `ruby-build`. It's simply...
hsbt (Hiroshi SHIBATA)
03:56 PM Bug #18985: SEGV with YJIT on aarch64-linux
Hello @hsbt.
Can you provide more details as to which version of Linux and which CPU you are running? Are you running this on a Raspberry Pi, or is this on an AWS Graviton instance?
It might also be useful for us if you can try an ...
maximecb (Maxime Chevalier-Boisvert)
11:30 AM Bug #18985 (Closed): SEGV with YJIT on aarch64-linux
When we use `-e` option with YJIT, It's always crush on aarch64-linux.
```
$ ruby --jit -e "puts :foo"
/home/chkbuild/.rbenv/versions/3.2.0-dev/lib/ruby/3.2.0+2/aarch64-linux/rbconfig.rb:305: [BUG] Segmentation fault at 0x00000e80f9...
hsbt (Hiroshi SHIBATA)
09:22 PM Revision f4cdfff0 (git): * 2022-08-31 [ci skip]
git[bot]
09:21 PM Revision 4a4daf00 (git): Update .cirrus.yml
Maxime Chevalier-Boisvert
09:21 PM Revision 5dbc725f (git): Skip linking rb_yjit_icache_invalidate on cargo test
Co-authored-by: Kevin Newton <kddnewton@gmail.com> k0kubun (Takashi Kokubun)
09:21 PM Revision 918a6585 (git): Run cargo test on Cirrus
k0kubun (Takashi Kokubun)
09:21 PM Revision 497b5ee1 (git): Normalize the YJIT Cirrus workflow a little
k0kubun (Takashi Kokubun)
07:51 PM Feature #18986 (Open): Raises Exception for Range#last(n) with Float::INFINITY
When a (Numeric) argument is given to `Range#last(n)` for a Range with `Float::INFINITY`, it runs into an infinite loop (see a small code snippet below).
There is no use case for the feature as far as I can think of, and it is hard to d...
masasakano (Masa Sakano)
02:16 PM Feature #18980: `it` as a default block parameter
> One thing that this "design space analysis" keeps ignoring, ...
It doesn't (though I by no means consider it exhaustive or definitive, it is just "what I am thinking about when considering options"):
> ...
It doesn't mention `@` ...
zverok (Victor Shepelev)
01:38 PM Feature #18980: `it` as a default block parameter
zverok (Victor Shepelev) wrote in #note-26:
> My "design space analysis" was sourced by the same idea. I can say that I would NOT choose `it` (or any other name looking "regularly"), unless it would be a keyword (like `self`), having ...
ufuk (Ufuk Kayserilioglu)
11:27 AM Feature #18980: `it` as a default block parameter
> if you were able to design Ruby from the ground up, would you still use a syntax that you think is a name compromise and looks weird for newcomers?
My "design space analysis" was sourced by the same idea. I can say that I would NOT ...
zverok (Victor Shepelev)
08:25 AM Feature #18980: `it` as a default block parameter
> Say, I considered `yield_self` so wrong naming choice I spent the good part of that year fighting for its renaming, but at the same time I started to use it (and it DID make code better, as my colleagues agreed, you just needed to get ... k0kubun (Takashi Kokubun)
07:07 AM Feature #18980: `it` as a default block parameter
> It's interesting that "Numbered parameters (_1, _2, ...) look like unused local variables" doesn't seem to resonate with you.
It did initially, but let's say I got over it. There were several factors in play:
1. I am very concern...
zverok (Victor Shepelev)
10:45 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
I just removed the line pointed out by @Eregon, so I guess all the workarounds added around the `FileUtils.rm_rf` in RubyGems teardown method can now be removed too! deivid (David Rodríguez)
08:14 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
@mame I agree with your analysis, but I have to say from experience that realworld bugs hidden by this behavior are pretty hard to fix too. The warning in verbose mode sounds great, but perhaps we could also mention this in documentation... deivid (David Rodríguez)
07:37 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Here is a patch. Revert fa65d676ece93a1380b9e6564efa4b4566c7a44b and apply:
```diff
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index 4ba7d18..178db6e 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -1422,6 +1422,7 @...
mame (Yusuke Endoh)
09:46 AM Revision b98653f7 (git): [rubygems/rubygems] Let `Dir.tmpdir` use the standard path
We're not fully in control of this folder, even when running our own
tests, because MJIT creates some temp folders there when invoking GC.
This bite tests running in ruby-core when making the behavior of
`FileUtils.rm_rf` more strict, b...
deivid (David Rodríguez)
08:36 AM Feature #18982: Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
I don't think people want to exit from a `while item = queue.pop` loop because the queue would block. `for (;;) { if (errno != EAGAIN) break; ... }` is a C idiom (people often break from a loop on error, _except_ EAGAIN). shyouhei (Shyouhei Urabe)
12:42 AM Feature #18982: Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
shyouhei (Shyouhei Urabe) wrote in #note-4:
> +1 for avoiding exceptions but `nil` can be problematic? Because a closed queue would also return `nil` for `pop`. You cannot distinguish if a queue is closed or would just block.
We co...
jeremyevans0 (Jeremy Evans)
12:15 AM Feature #18982: Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
> but nil can be problematic?
This was discussed in #18774:
- `#pop` on closed queue already returns `nil` with no exception. `Queue.new.tap(&:close).pop # => nil`
- `nil` make sense because you can use it in a loop such as `...
byroot (Jean Boussier)
12:08 AM Feature #18982: Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
+1 for avoiding exceptions but `nil` can be problematic? Because a closed queue would also return `nil` for `pop`. You cannot distinguish if a queue is closed or would just block. shyouhei (Shyouhei Urabe)
02:23 AM Revision d6acaa4d (git): Undefine `ruby_debug_log` macro before the function definition
Fix up 27173e3735ff. nobu (Nobuyoshi Nakada)
01:13 AM Bug #18970: CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
@nobu
Sorry the above are what I thought would work best with the ruby-loco builds. All three builds (mingw, mswin, & ucrt) are now done that way. Interesting thing that I found is that MSYS2's `which` command considers a file to ex...
MSP-Greg (Greg L)
01:05 AM Revision ddca3482 (git): Check only symbol flag bits (#6301)
* Check only symbol flag bits
* Check all 4 bits
k0kubun (Takashi Kokubun)

08/29/2022

11:37 PM Feature #18980: `it` as a default block parameter
> Unused local variables are more like `_[a-z]\w+`, the number makes the variable "anonymous" so it can't be an unused local variable
> ...
It's interesting that "Numbered parameters (`_1`, `_2`, ...) look like unused local variables" d...
k0kubun (Takashi Kokubun)
11:53 AM Feature #18980: `it` as a default block parameter
> I forgot, is _ problematic in practice?
`_` is very widespread name to "I don't need that". TBH, till 5 min ago I thought it is processed specially in the case of parameter repetition:
```ruby
[[1, 2, 3], [4, 5, 6]].map { |i, _,...
zverok (Victor Shepelev)
11:03 AM Feature #18980: `it` as a default block parameter
The logical sigil for a single arguments would be `_` of course (given we have `_1`, `_2`, etc).
I forgot, is `_` problematic in practice?
The usage of it in irb/pry should not be an issue given the variable is explicitly declared th...
Eregon (Benoit Daloze)
08:05 AM Feature #18980: `it` as a default block parameter
My 5c: I came to (almost) peace with `_1`, and we use it extensively in the codebase, and find it quite convenient.
Choosing the designation for it is a hard choice, and after years of consideration, I believe that the current solutio...
zverok (Victor Shepelev)
04:55 PM Revision 737402e9 (git): Skip a couple of chroot spec faillures
I don't come up with a way to fix it right away. We'd need some
experiments on a pull request.
k0kubun (Takashi Kokubun)
04:18 PM Revision 1315c5aa (git): Update to ruby/spec@b8a8240
Eregon (Benoit Daloze)
04:18 PM Revision b5358a98 (git): Update to ruby/mspec@37151a0
Eregon (Benoit Daloze)
04:09 PM Revision d694f320 (git): Fixed width immediates (https://github.com/Shopify/ruby/pull/437)
There are a lot of times when encoding AArch64 instructions that we
need to represent an integer value with a custom fixed width. For
example, the offset for a B instruction is 26 bits, so we store an
i32 on the instruction struct and th...
kddnewton (Kevin Newton)
04:09 PM Revision 46007b88 (git): A64: Only clear icache when writing out new code (https://github.com/Shopify/ruby/pull/442)
Previously we cleared the cache for all the code in the system when we
flip memory protection, which was prohibitively expensive since the
operation is not constant time. Instead, only clear the cache for the
memory region of newly writt...
alanwu (Alan Wu)
04:09 PM Revision 29e0713a (git): TBZ and TBNZ for AArch64 (https://github.com/Shopify/ruby/pull/434)
kddnewton (Kevin Newton)
04:09 PM Revision c2e92538 (git): Stop saying it's temp checks (https://github.com/Shopify/ruby/pull/441)
k0kubun (Takashi Kokubun)
04:09 PM Revision 44c6bcff (git): LDRH and STRH for AArch64 (https://github.com/Shopify/ruby/pull/438)
kddnewton (Kevin Newton)
04:09 PM Revision 929a6a75 (git): Remove ir_ssa.rs as we aren't using it and it's now outdated
maximecb (Maxime Chevalier-Boisvert)
04:09 PM Revision 4b7d3884 (git): Avoid randomizing the order of test-all on arm64 (https://github.com/Shopify/ruby/pull/440)
for now k0kubun (Takashi Kokubun)
04:09 PM Revision 232e43fd (git): Respect RUBY_TESTOPTS on test-all (https://github.com/Shopify/ruby/pull/435)
* Respect RUBY_TESTOPTS on test-all
* Increase the Cirrus timeout
* Increase the CSV test timeout
k0kubun (Takashi Kokubun)
04:09 PM Revision 5ef048e5 (git): Update yjit.md
Add VMIL paper, update supported CPUs. Maxime Chevalier-Boisvert
04:09 PM Revision def3ade8 (git): Add --yjit-dump-disasm to dump every compiled code (https://github.com/Shopify/ruby/pull/430)
* Add --yjit-dump-disasm to dump every compiled code
* Just use get_option
* Carve out disasm_from_addr
* Avoid push_str with format!
* Share the logic through asm.compile
* This seems to negatively impact the compilation speed
k0kubun (Takashi Kokubun)
04:09 PM Revision 54c7bc67 (git): Various AArch64 optimizations (https://github.com/Shopify/ruby/pull/433)
* When we're storing an immediate 0 value at a memory address, we
can use STUR XZR, Xd instead of loading 0 into a register and
then storing that register.
* When we're moving 0 into an argument register, we can use
MOV Xd, XZR ins...
kddnewton (Kevin Newton)
04:09 PM Revision d433eb95 (git): Run tests with --yjit-call-threshold=1 on arm64 (https://github.com/Shopify/ruby/pull/426)
k0kubun (Takashi Kokubun)
04:09 PM Revision 93c5a5f0 (git): Fix and re-enable String to_s, << and unary plus (https://github.com/Shopify/ruby/pull/429)
noahgibbs (Noah Gibbs)
04:09 PM Revision 29bda0ff (git): Use shorter syntax for the same pattern (https://github.com/Shopify/ruby/pull/425)
alanwu (Alan Wu)
04:09 PM Revision 93288524 (git): Better variable name, no must_use on ccall (https://github.com/Shopify/ruby/pull/424)
kddnewton (Kevin Newton)
04:09 PM Revision d5fe9e1d (git): Run test-all with RUBY_YJIT_ENABLE=1 on CI (https://github.com/Shopify/ruby/pull/418)
k0kubun (Takashi Kokubun)
04:09 PM Revision f883aabc (git): Instruction enum (https://github.com/Shopify/ruby/pull/423)
* Remove references to explicit instruction parts
Previously we would reference individual instruction fields
manually. We can't do that with instructions that are enums, so
this commit removes those references. As a side effect, we can...
kddnewton (Kevin Newton)
04:09 PM Revision ea9ee317 (git): A64 Linux reports aarach64 in RUBY_PLATFORM
This should fix a version string test alanwu (Alan Wu)
04:09 PM Revision 1c67e90b (git): More work toward instruction enum (https://github.com/Shopify/ruby/pull/421)
* Operand iterators
There are a couple of times when we're dealing with instructions
that we need to iterate through their operands. At the moment this
is relatively easy because there's an opnds field and we can work
with it directly. ...
kddnewton (Kevin Newton)
04:09 PM Revision 34245957 (git): Use VALUE for callinfos that are on the heap (https://github.com/Shopify/ruby/pull/420)
Yet another case of `jit_mov_gc_ptr()` being yanked out during the
transition to the new backend, causing a crash after object movement.
The intresting wrinkle with this one is that not all callinfos are GC'ed
objects, so the old code ha...
alanwu (Alan Wu)
04:09 PM Revision 5114ddce (git): Avoid marking op_type on gen_defined (https://github.com/Shopify/ruby/pull/419)
k0kubun (Takashi Kokubun)
04:09 PM Revision a78bbef1 (git): Use VALUE for block_iseq (https://github.com/Shopify/ruby/pull/417)
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com> k0kubun (Takashi Kokubun)
04:09 PM Revision e0e63b1a (git): Fix a bus error on regenerate_branch (https://github.com/Shopify/ruby/pull/408)
* Fix a bus error on regenerate_branch
* Fix pad_size
k0kubun (Takashi Kokubun)
04:09 PM Revision b00606eb (git): Even more prep for instruction enum (https://github.com/Shopify/ruby/pull/413)
* Mutate in place for register allocation
Currently we allocate a new instruction every time when we're
doing register allocation by first splitting up the instruction
into its component parts, mapping the operands and the output, and
t...
kddnewton (Kevin Newton)
04:09 PM Revision c70d1471 (git): Only check lowest bit for _Bool type (https://github.com/Shopify/ruby/pull/412)
* Only check lowest bit for _Bool type
The `test AL, AL` got lost during porting and we were
generating `test RAX, RAX` instead. The upper bits of a `_Bool` return
type is unspecified and we were failing
`TestClass#test_singleton_class_...
alanwu (Alan Wu)
03:47 PM Revision d57a9f61 (git): Build output operands explicitly (https://github.com/Shopify/ruby/pull/411)
When we're pushing instructions onto the assembler, we previously
would iterate through the instruction's operands and then assign
the output operand to it through the push_insn function. This is
easy when all instructions have a vector ...
kddnewton (Kevin Newton)
03:47 PM Revision b735eb5e (git): Instruction builders for backend IR (https://github.com/Shopify/ruby/pull/410)
Currently we use macros to define the shape of each of the
instruction building methods. This works while all of the
instructions share the same fields, but is really hard to get
working when they're an enum with different shapes. This i...
kddnewton (Kevin Newton)
03:47 PM Revision 1cf9f56c (git): Fix issue with expandarray, add missing jl, enable tests (https://github.com/Shopify/ruby/pull/409)
Maxime Chevalier-Boisvert
03:47 PM Revision c38e9111 (git): Allow aarch64 to build YJIT
k0kubun (Takashi Kokubun)
03:47 PM Revision 95dce1cc (git): Temporarily disable rb_str_concat, add CI tests (https://github.com/Shopify/ruby/pull/407)
Make sure we can load the test-all runner and run test_yjit.rb Maxime Chevalier-Boisvert
03:47 PM Revision 09c12111 (git): Port jit_rb_str_concat to new backend, re-enable cfunc lookup (https://github.com/Shopify/ruby/pull/402)
Noah Gibbs (and/or Benchmark CI)
03:47 PM Revision 5a76a15a (git): YJIT: Implement concatarray in yjit (https://github.com/Shopify/ruby/pull/405)
* Create code generation func
* Make rb_vm_concat_array available to use in Rust
* Map opcode to code gen func
* Implement code gen for concatarray
* Add test for concatarray
* Use new asm backend
* Add comment to C func wrapper
wildmaples (Maple Ong)
03:47 PM Revision 2f9df466 (git): Use bindgen for old manual extern declarations (https://github.com/Shopify/ruby/pull/404)
We have a large extern block in cruby.rs leftover from the port. We can
use bindgen for it now and reserve the manual declaration for just a
handful of vm_insnhelper.c functions.
Fixup a few minor discrepencies bindgen found between the...
alanwu (Alan Wu)
03:47 PM Revision ff3f1d15 (git): Optimize bitmask immediates (https://github.com/Shopify/ruby/pull/403)
kddnewton (Kevin Newton)
03:47 PM Revision be730cda (git): AArch64 Ruby immediates (https://github.com/Shopify/ruby/pull/400)
kddnewton (Kevin Newton)
03:47 PM Revision c022a605 (git): Fix bugs in gen_opt_getinlinecache
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision cb15886e (git): Port opt_getinlinecache to the new backend (https://github.com/Shopify/ruby/pull/399)
zack.ref@gmail.com (Zack Deveau)
03:47 PM Revision dca5e74a (git): Fix test_rubyoptions.rb for arm64 (https://github.com/Shopify/ruby/pull/396)
k0kubun (Takashi Kokubun)
03:47 PM Revision 471de2ab (git): Enable skipdata on Capstone to allow embedded data without early stop to disasm (https://github.com/Shopify/ruby/pull/398)
noahgibbs (Noah Gibbs)
03:47 PM Revision 7f4ab24f (git): Op::Xor for backend IR (https://github.com/Shopify/ruby/pull/397)
kddnewton (Kevin Newton)
03:47 PM Revision 4d811d7a (git): Fix code invalidation while OOM and OOM simulation (https://github.com/Shopify/ruby/pull/395)
`YJIT.simulate_oom!` used to leave one byte of space in the code block,
so our test didn't expose a problem with asserting that the write
position is in bounds in `CodeBlock::set_pos`. We do the following when
patching code:
1. save cu...
alanwu (Alan Wu)
03:47 PM Revision ee1697ee (git): Port opt_aref and opt_aset to the new backend IR (https://github.com/Shopify/ruby/pull/387)
* Port opt_aref and opt_aset to the new backend IR
* Recompute memory operands
k0kubun (Takashi Kokubun)
03:47 PM Revision b54643d1 (git): Handle out of memory tests (https://github.com/Shopify/ruby/pull/393)
Maxime Chevalier-Boisvert
03:47 PM Revision df84832c (git): Port getblockparamproxy and getblockparam (https://github.com/Shopify/ruby/pull/394)
k0kubun (Takashi Kokubun)
03:47 PM Revision e5969f85 (git): Port invokesuper to the new backend IR (https://github.com/Shopify/ruby/pull/391)
k0kubun (Takashi Kokubun)
03:47 PM Revision ca2afba4 (git): Port the remaining method types in opt_send_without_block (https://github.com/Shopify/ruby/pull/390)
k0kubun (Takashi Kokubun)
03:47 PM Revision 8c45b8a9 (git): Update asm comments for gen_send_iseq
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 6b9cec78 (git): Port cfunc lookup, plus simpler cfunc generators. (https://github.com/Shopify/ruby/pull/388)
This port does *not* create invalidation regions to
ensure minimum invalidatable block sizes, and so it
does not port the to_s generator.
noahgibbs (Noah Gibbs)
03:47 PM Revision cad35fb2 (git): Try to run make -j in CI backend tests (https://github.com/Shopify/ruby/pull/386)
Maxime Chevalier-Boisvert
03:47 PM Revision 1cafb1a7 (git): Prefer asm.store over asm.mov (https://github.com/Shopify/ruby/pull/385)
* Prefer asm.store over asm.mov
* Reverse a couple of unsure changes
* Revert changes that don't work
k0kubun (Takashi Kokubun)
03:47 PM Revision 3f42028e (git): Iterator (https://github.com/Shopify/ruby/pull/372)
* Iterator
* Use the new iterator for the X86 backend split
* Use iterator for reg alloc, remove forward pass
* Fix up iterator usage on AArch64
* Update yjit/src/backend/ir.rs
Co-authored-by: Maxime Chevalier-Boisvert <maximecheval...
kddnewton (Kevin Newton)
03:47 PM Revision 49c9f893 (git): Port expandarray to the new backend IR (https://github.com/Shopify/ruby/pull/376)
* Port expandarray to the new backend IR
* More use of into()
* Break out live ranges
* Refactor the code further
* Reuse registers more
k0kubun (Takashi Kokubun)
03:47 PM Revision 668b99b4 (git): Port gen_send_iseq to the new backend IR (https://github.com/Shopify/ruby/pull/381)
* Port gen_send_iseq to the new backend IR
* Replace occurrences of 8 by SIZEOF_VALUE
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
k0kubun (Takashi Kokubun)
03:47 PM Revision 32d9eef5 (git): Enable test_literal.rb and test_ractor.rb on arm
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision cd750659 (git): Fix tests on yjit_backend_ir for AArch64 backend (https://github.com/Shopify/ruby/pull/383)
kddnewton (Kevin Newton)
03:47 PM Revision b8846dd2 (git): Load mem displacement when necessary on AArch64 (https://github.com/Shopify/ruby/pull/382)
* LDR instruction for AArch64
* Split loads in arm64_split when memory address displacements do not fit
kddnewton (Kevin Newton)
03:47 PM Revision 85d6d76e (git): Enable test_insns.rb on arm
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision a5ea577c (git): Update flags for data processing on ARM (https://github.com/Shopify/ruby/pull/380)
* Update flags for data processing on ARM
* Update yjit/src/backend/arm64/mod.rs
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
kddnewton (Kevin Newton)
03:47 PM Revision a3757842 (git): Use new assembler to support global invalidation on A64
Previously, we patched in an x64 JMP even on A64, which resulted in
invalid machine code. Use the new assembler to generate a jump instead.
Add an assert to make sure patches don't step on each other since it's
less clear cut on A64, wh...
alanwu (Alan Wu)
03:47 PM Revision 726a4519 (git): Port invokebuiltin* insns to the new backend IR (https://github.com/Shopify/ruby/pull/375)
* Port invokebuiltin* insns to the new backend IR
* Fix the C_ARG_OPNDS check boundary
k0kubun (Takashi Kokubun)
03:47 PM Revision 46822ee1 (git): Enable btests now passing on arm (https://github.com/Shopify/ruby/pull/378)
Maxime Chevalier-Boisvert
03:47 PM Revision 8278d722 (git): Left and right shift for IR (https://github.com/Shopify/ruby/pull/374)
* Left and right shift for IR
* Update yjit/src/backend/x86_64/mod.rs
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
kddnewton (Kevin Newton)
03:47 PM Revision 8fffff53 (git): More concise csel with Into
alanwu (Alan Wu)
03:47 PM Revision 2429635b (git): Port send to the new backend and test it (https://github.com/Shopify/ruby/pull/373)
k0kubun (Takashi Kokubun)
03:47 PM Revision ffdd09e2 (git): Port opt_eq and opt_neq to the new backend (https://github.com/Shopify/ruby/pull/371)
* Port opt_eq and opt_neq to the new backend
* Just use into() outside
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
* Use C_RET_OPND to share the register
* Revert "Use C_RET_OPND to share the register"
This reverts commi...
k0kubun (Takashi Kokubun)
03:47 PM Revision 2b85295d (git): Port objtostring to the new backend (https://github.com/Shopify/ruby/pull/369)
k0kubun (Takashi Kokubun)
03:47 PM Revision e06c86fa (git): Port opt_str_uminus to new backend IR (https://github.com/Shopify/ruby/pull/370)
zack.ref@gmail.com (Zack Deveau)
03:47 PM Revision db22a560 (git): Port gen_opt_str_freeze to new backend IR (https://github.com/Shopify/ruby/pull/366)
zack.ref@gmail.com (Zack Deveau)
03:47 PM Revision 0a680912 (git): x86 TEST should do a load for mem opnds first (https://github.com/Shopify/ruby/pull/368)
noahgibbs (Noah Gibbs)
03:47 PM Revision 7908eabf (git): Port setivar to the new backend IR (https://github.com/Shopify/ruby/pull/362)
* Port setivar to the new backend IR
* Add a few more setivar test cases
* Prefer const_ptr
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
k0kubun (Takashi Kokubun)
03:47 PM Revision a55a3f8a (git): Port opt_minus, opt_or, and opt_and to the new IR (https://github.com/Shopify/ruby/pull/364)
* Port opt_minus, opt_or, and opt_and to the new IR
* Fix the Op::Or issue with push_insn
* Prefer asm.store for clarity
k0kubun (Takashi Kokubun)
03:47 PM Revision dcb6fc16 (git): Port opt_mod to the new backend IR (https://github.com/Shopify/ruby/pull/363)
k0kubun (Takashi Kokubun)
03:47 PM Revision e2403726 (git): Add Opnd::None error message to x86 backend as well
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision d131b410 (git): Fix to float guard in jit_guard_known_klass to use the correct output operand. (https://github.com/Shopify/ruby/pull/365)
noahgibbs (Noah Gibbs)
03:47 PM Revision 74527a76 (git): Port send-only insns and write tests (https://github.com/Shopify/ruby/pull/360)
k0kubun (Takashi Kokubun)
03:47 PM Revision b024b18f (git): Fix block invalidation with new backend. Enable more btests on x86 (https://github.com/Shopify/ruby/pull/359)
Maxime Chevalier-Boisvert
03:47 PM Revision d63b3e43 (git): Enable test_thread.rb on arm, now working
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision ddee4d3a (git): Opnd::Value fixes (https://github.com/Shopify/ruby/pull/354)
* Fix asm.load(VALUE)
- `<VALUE as impl Into<Opnd>>` didn't track that the value is a value
- `Iterator::map` doesn't evaluate the closure you give it until you
call `collect`. Use a for loop instead so we put the gc offsets
into th...
alanwu (Alan Wu)
03:47 PM Revision 4539c213 (git): Port gen_send_cfunc to the new backend (https://github.com/Shopify/ruby/pull/357)
* Port gen_send_cfunc to the new backend
* Remove an obsoleted test
* Add more cfunc tests
* Use csel_e instead and more into()
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
* Add a missing lea for build_kwa...
k0kubun (Takashi Kokubun)
03:47 PM Revision c91a44cb (git): Fix forward_pass usage in arm backend following John's PR
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 24ddc07d (git): Fix live_ranges idx calculation (https://github.com/Shopify/ruby/pull/353)
forward_pass adjusts the indexes of our opnds to reflect the new
instructions as they are generated in the forward pass. However, we were
using the old live_ranges array, for which the new indexes are
incorrect.
This caused us to previo...
jhawthorn (John Hawthorn)
03:47 PM Revision fe172aac (git): Convert getinstancevariable to new backend IR (https://github.com/Shopify/ruby/pull/352)
* Convert getinstancevariable to new backend IR
* Support mem-based mem
* Use more into()
* Add tests for getivar
* Just load obj_opnd to a register
* Apply another into()
* Flip the nil-out condition
* Fix duplicated counts of si...
k0kubun (Takashi Kokubun)
03:47 PM Revision a95422a6 (git): Binary OR instruction for the IR (https://github.com/Shopify/ruby/pull/355)
kddnewton (Kevin Newton)
03:47 PM Revision 9db2ca72 (git): Add 1 more allocatable reg on arm
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision ca68ccda (git): Fix C call reg alloc bug reported by Noah & Kokubun
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 08232605 (git): Implement iterators and double-linked list for IR SSA
kddnewton (Kevin Newton)
03:47 PM Revision a75a6f7d (git): Remove empty lines
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision dea42385 (git): Port gen_concatstring to new backend IR (https://github.com/Shopify/ruby/pull/350)
* Port gen_concatstring to new backend IR
* Update yjit/src/codegen.rs
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
zack.ref@gmail.com (Zack Deveau)
03:47 PM Revision 330c9e98 (git): Port anytostring, intern, and toregexp (https://github.com/Shopify/ruby/pull/348)
* Port anytostring, intern, and toregexp
* Port getspecial to the new backend (#349)
PR: https://github.com/Shopify/ruby/pull/349
k0kubun (Takashi Kokubun)
03:47 PM Revision 16307adf (git): Port only ATTRSET of opt_send_without_block (https://github.com/Shopify/ruby/pull/351)
k0kubun (Takashi Kokubun)
03:47 PM Revision 45da6974 (git): Push first pass at SSA IR sketch
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision a674b8d8 (git): Port class variable instructions (https://github.com/Shopify/ruby/pull/346)
k0kubun (Takashi Kokubun)
03:47 PM Revision 1446e22a (git): Port setglobal to the new backend (https://github.com/Shopify/ruby/pull/347)
k0kubun (Takashi Kokubun)
03:47 PM Revision 869b0ba6 (git): Minor cleanups (https://github.com/Shopify/ruby/pull/345)
* Move allocation into Assembler::pos_marker
We wanted to do this to begin with but didn't because we were confused
about the lifetime parameter. It's actually talking about the lifetime
of the references that the closure captures. Sinc...
alanwu (Alan Wu)
03:47 PM Revision 6ab71a85 (git): Port gen_checktype to the new IR assembler backend (https://github.com/Shopify/ruby/pull/343)
zack.ref@gmail.com (Zack Deveau)
03:47 PM Revision 4b1ab009 (git): Port the YJIT defined opcode; fix C_ARG_REGS (https://github.com/Shopify/ruby/pull/342)
noahgibbs (Noah Gibbs)
03:47 PM Revision b2d255ad (git): A64: Fix off by one in offset encoding for BL (https://github.com/Shopify/ruby/pull/344)
* A64: Fix off by one in offset encoding for BL
It's relative to the address of the instruction not the end of it.
* A64: Fix off by one when encoding B
It's relative to the start of the instruction not the end.
* A64: Add some tests...
alanwu (Alan Wu)
03:47 PM Revision 2d9b98f9 (git): Fix a bug in the x86 backend wrt large integer values, enable more tests
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision c9a947e5 (git): Port and test checkkeyword (https://github.com/Shopify/ruby/pull/339)
noahgibbs (Noah Gibbs)
03:47 PM Revision 8617bac9 (git): Fix IncrCounter on ARM
The order of operands to LDADDAL were flipped and the destination
pointer was dereferenced instead of passed as an address.
alanwu (Alan Wu)
03:47 PM Revision e131b217 (git): Test --yjit-stats in our CI workflows
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 813df1f2 (git): Add LiveReg IR instruction to fix stats leave exit code (https://github.com/Shopify/ruby/pull/341)
It allows for reserving a specific register and prevents the register
allocator from clobbering it. Without this
`./miniruby --yjit-stats --yjit-callthreshold=1 -e0` was crashing because
the counter incrementing code was clobbering RAX i...
alanwu (Alan Wu)
03:47 PM Revision 133ad387 (git): Fix CI workflows
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 13e5b56a (git): Fixes (https://github.com/Shopify/ruby/pull/340)
* Fix conditional jumps to label
* Bitmask immediates cannot be u64::MAX
kddnewton (Kevin Newton)
03:47 PM Revision f593b2c6 (git): Fixes for AArch64 (https://github.com/Shopify/ruby/pull/338)
* Better splitting for Op::Add, Op::Sub, and Op::Cmp
* Split stores if the displacement is too large
* Use a shifted immediate argument
* Split all places where shifted immediates are used
* Add more tests to the cirrus workflow
kddnewton (Kevin Newton)
03:47 PM Revision 96303342 (git): Enable more btests
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 4024553d (git): Add ifdef to clear cache
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 7e22ec74 (git): Clear the icache on arm
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision b1ed4d9b (git): Port and test duparray and splatarray (https://github.com/Shopify/ruby/pull/337)
* Port duparray opcode
* Port and test splatarray
noahgibbs (Noah Gibbs)
03:47 PM Revision e9f9b8f4 (git): Fix bug with opt_lt, csel on x86
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 477c2df3 (git): Work on opt_lt, fix x86 backend bug in cmp()
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 70e117d5 (git): Fixes (https://github.com/Shopify/ruby/pull/336)
* Fix bitmask encoding to u32
* Fix splitting for Op::And to account for bitmask immediate
kddnewton (Kevin Newton)
03:47 PM Revision e9a2effd (git): Enable more btests in the CI workflows (https://github.com/Shopify/ruby/pull/334)
* Enable more btests in the CI workflows
* Update workflows
Maxime Chevalier-Boisvert
03:47 PM Revision 76b05ba9 (git): Better splitting for Op::Test on AArch64 (https://github.com/Shopify/ruby/pull/335)
kddnewton (Kevin Newton)
03:47 PM Revision b1dbc5f1 (git): Fix crash in newhash ccall
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 8605efdd (git): Fix corrupted X29 causing segfault, thanks Alan!
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 85872eec (git): Port over newrange
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 8d2560f1 (git): Port over setlocal and getglobal
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 8259813b (git): Temporarily simplify code for emit_conditional_jump to fix a bug
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision f833d75b (git): Refactor YJIT branches to use PosMarker (https://github.com/Shopify/ruby/pull/333)
* Refactor defer_compilation to use PosMarker
* Port gen_direct_jump() to use PosMarker
* Port gen_branch, branchunless
* Port over gen_jump()
* Port over branchif and branchnil
* Fix use od record_boundary_patch_point in jump_to_ne...
Maxime Chevalier-Boisvert
03:47 PM Revision f5f58d82 (git): Update disasm to work on ARM (https://github.com/Shopify/ruby/pull/331)
noahgibbs (Noah Gibbs)
03:47 PM Revision cbf7a7cd (git): Fix dupn (https://github.com/Shopify/ruby/pull/330)
* get_dupn was allocating and throwing away an Assembler object instead of using the one passed in
* Uncomment remaining tests in codegen.rs, which seem to work now
noahgibbs (Noah Gibbs)
03:47 PM Revision 90137f51 (git): Implement PosMarker instruction (https://github.com/Shopify/ruby/pull/328)
* Implement PosMarker instruction
* Implement PosMarker in the arm backend
* Make bindgen run only for clang image
* Fix if-else in cirrus CI file
* Add missing semicolon
* Try removing trailing semicolon
* Try to fix shell/YAML sy...
Maxime Chevalier-Boisvert
03:47 PM Revision 4ae2c744 (git): A lot of fixes coming from our pairing session (https://github.com/Shopify/ruby/pull/329)
* Move to/from SP on AArch64
* Consolidate loads and stores
* Implement LDR post-index and LDR pre-index for AArch64
* Implement STR post-index and STR pre-index for AArch64
* Module entrypoints for LDR pre/post -index and STR pre/po...
kddnewton (Kevin Newton)
03:47 PM Revision c9484fe0 (git): Fix push/pop and frame setup/teardown with Kevin & Alan
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision b3cd7a9c (git): Fix some of the codegen.rs tests (https://github.com/Shopify/ruby/pull/327)
noahgibbs (Noah Gibbs)
03:47 PM Revision f09fd032 (git): Assert not the same register in AArch64
kddnewton (Kevin Newton)
03:47 PM Revision db84d292 (git): BLR instruction for AArch64 (https://github.com/Shopify/ruby/pull/325)
kddnewton (Kevin Newton)
03:47 PM Revision fd97f8eb (git): Use frame_setup() and frame_teardown()
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 10d50031 (git): AArch64 frames (https://github.com/Shopify/ruby/pull/324)
kddnewton (Kevin Newton)
03:47 PM Revision e907aaa3 (git): ADR fixes for LeaLabel and calls
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision f9e24ca8 (git): Conditionals (https://github.com/Shopify/ruby/pull/323)
* CSEL on AArch64
* Implement various Op::CSel* instructions
kddnewton (Kevin Newton)
03:47 PM Revision 0da253e7 (git): Port print_int to the new backend (https://github.com/Shopify/ruby/pull/321)
* Port print_int to the new backend
* Tests for print_int and print_str
kddnewton (Kevin Newton)
03:47 PM Revision bf7277b5 (git): Update cirrus workflow
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision c8319891 (git): Fix jumps (https://github.com/Shopify/ruby/pull/322)
kddnewton (Kevin Newton)
03:47 PM Revision 7787ef29 (git): Add --yjit-dump-insns test to Cirrus Arm workflow
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 95e5c522 (git): Fix bug with LeaLabel on x86, add CI test
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 34ec8925 (git): Fix comment typo
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 160e29b9 (git): Port print_str to new backend (https://github.com/Shopify/ruby/pull/318)
* ADR and ADRP for AArch64
* Implement Op::Jbe on X86
* Lera instruction
* Op::BakeString
* LeaPC -> LeaLabel
* Port print_str to the new backend
* Port print_value to the new backend
* Port print_ptr to the new backend
* Write n...
kddnewton (Kevin Newton)
03:47 PM Revision 6c500895 (git): Port newhash, add tests for newhash, duphash
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision a1ea018f (git): Add extra assertion in new_label for Kevin
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 5e834195 (git): Exclude X0 (C_RET_REG) from allocatable registers on arm (https://github.com/Shopify/ruby/pull/319)
* Exclude X0 (C_RET_REG) from allocatable registers on arm
* Add another small test snippett
Maxime Chevalier-Boisvert
03:47 PM Revision 159566fe (git): Op::CPushAll and Op::CPopAll (https://github.com/Shopify/ruby/pull/317)
Instructions for pushing all caller-save registers and the flags so that
we can implement dump_insns.
kddnewton (Kevin Newton)
03:47 PM Revision ac77d151 (git): Assert that the # of bytes matches for label refs (https://github.com/Shopify/ruby/pull/316)
kddnewton (Kevin Newton)
03:47 PM Revision 15c6aacd (git): Encode MRS and MSR for AArch64 (https://github.com/Shopify/ruby/pull/315)
kddnewton (Kevin Newton)
03:47 PM Revision 8d743e96 (git): Fix compile errors on arm on the CI (https://github.com/Shopify/ruby/pull/313)
* Fix compile errors on arm on the CI
* Fix typo
Maxime Chevalier-Boisvert
03:47 PM Revision 6e538278 (git): Port over putstring
maximecb (Maxime Chevalier-Boisvert)
03:47 PM Revision 86606e01 (git): Port over setlocal_wc0
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision b45b29fd (git): Port gen_getlocal()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 38c2fb8a (git): Port YJIT New Backend Temp Checks to Cirrus (https://github.com/Shopify/ruby/pull/312)
Co-authored-by: Jean Boussier <jean.boussier@gmail.com> Maxime Chevalier-Boisvert
03:46 PM Revision 8864691b (git): Better label refs (https://github.com/Shopify/ruby/pull/310)
Previously we were using a `Box<dyn FnOnce>` to support patching the
code when jumping to labels. We needed to do this because some of the
closures that were being used to patch needed to capture local variables
(on both X86 and ARM it w...
kddnewton (Kevin Newton)
03:46 PM Revision e1f3f038 (git): Fix jumps (https://github.com/Shopify/ruby/pull/309)
* Jumps for A64 should be in # of instructions
* More splitting for Arm64
https://github.com/Shopify/ruby/pull/309
kddnewton (Kevin Newton)
03:46 PM Revision 6773832a (git): More Arm64 lowering/backend work (https://github.com/Shopify/ruby/pull/307)
* More Arm64 lowering/backend work
* We now have encoding support for the LDR instruction for loading a PC-relative memory location
* You can now call add/adds/sub/subs with signed immediates, which switches appropriately based on sign
...
kddnewton (Kevin Newton)
03:46 PM Revision 05511159 (git): Add #[must_use] annotations to asm instructions
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision ab2fa6eb (git): Add a backend test with a load of a GC'd VALUE
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 580f2695 (git): Get started on branchunless port
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 65019ed6 (git): Get codegen for deferred compilation working
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision aab53e28 (git): Add test for direct jump to a code pointer
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 7a9b581e (git): Arm64 progress (https://github.com/Shopify/ruby/pull/304)
* Get initial wiring up
* Split IncrCounter instruction
* Breakpoints in Arm64
* Support for ORR
* MOV instruction encodings
* Implement JmpOpnd and CRet
* Add ORN
* Add MVN
* PUSH, POP, CCALL for Arm64
* Some formatting and imp...
kddnewton (Kevin Newton)
03:46 PM Revision b272c57f (git): LSL, LSR, B.cond (https://github.com/Shopify/ruby/pull/303)
* LSL and LSR
* B.cond
* Move A64 files around to make more sense
* offset -> byte_offset for bcond
kddnewton (Kevin Newton)
03:46 PM Revision d9163280 (git): Conscise IR disassembly (https://github.com/Shopify/ruby/pull/302)
The output from `dbg!` was too verbose. For `test_jo` the output went
from 37 lines to 5 lines. The added index helps parsing InsnOut
indicies.
Samples:
```
test backend::tests::test_jo ... [src/backend/ir.rs:589] &self = Assembler
...
alanwu (Alan Wu)
03:46 PM Revision 0a96a391 (git): Delete dbg!() calls
alanwu (Alan Wu)
03:46 PM Revision f1b18814 (git): Fix backend transform bug, add test
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 4c0a440b (git): Port over duphash and newarray
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 2eba6aef (git): Port over get_branch_target()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 4254174c (git): Port over setn
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 24db233f (git): Add jo insn and test for jo
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 8bb7421d (git): Port topn, adjuststack, most of opt_plus
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision d0204e51 (git): Port guard_two_fixnums
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 00ad14f8 (git): Port gen_full_cfunc_return
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision b89d878e (git): Port getlocal_WC0
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 4c7d7080 (git): Port over gen_putspecialobject
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision c5ae5263 (git): Port gen_putself, log what can't be compiled in --yjit-dump-insns
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 27dd43bb (git): TST, CMP, AND/ANDS with registers (https://github.com/Shopify/ruby/pull/301)
* Add TST instruction and AND/ANDS entrypoints for immediates
* TST/AND/ANDS for registers
* CMP instruction
kddnewton (Kevin Newton)
03:46 PM Revision 57e64f70 (git): Make sure allocated reg size in bits matches insn out size
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision eb4c7b4e (git): AND/ANDS for A64 (https://github.com/Shopify/ruby/pull/300)
kddnewton (Kevin Newton)
03:46 PM Revision 67de662c (git): Add Opnd.rm_num_bits() method
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 084d4bb1 (git): Implement X86Reg::sub_reg() method
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 4932a6ef (git): Fix small bug in x86_split
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision b8fc9909 (git): Get rid of temporary context methods
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 40ac79ad (git): Add bitwise and to x86 backend
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision abea8c89 (git): Add stores to one of the tests
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 1923842b (git): Move backend tests to their own file
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 59b818ec (git): Add support for using InsnOut as memory operand base
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 401521ca (git): Rename transform_insns to forward_pass
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision ae9bcfec (git): Add assert
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision e743e3bf (git): Remove unused code, add backend asm test
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 4dbc1e1d (git): Port bitwise not, gen_check_ints()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 9d18e6c3 (git): Port gen_code_for_exit_from_stub()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision e72dab30 (git): Add atomic counter increment instruction
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 27fcab99 (git): Get side exits working, get miniruby to boot with threshold=1
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision c10e018e (git): LDADDAL, STUR, BL (https://github.com/Shopify/ruby/pull/299)
* LDADDAL instruction
* STUR
* BL instruction
* Remove num_bits from imm and uimm
* Tests for imm_fits_bits and uimm_fits_bits
* Reorder arguments to LDADDAL
kddnewton (Kevin Newton)
03:46 PM Revision 1daa5942 (git): MOVK, MOVZ, BR (https://github.com/Shopify/ruby/pull/296)
* MOVK instruction
* More tests for the A64 entrypoints
* Finish testing entrypoints
* MOVZ
* BR instruction
kddnewton (Kevin Newton)
03:46 PM Revision 0000984f (git): Port over putnil, putobject, and gen_leave()
* Remove x86-64 dependency from codegen.rs
* Port over putnil and putobject
* Port over gen_leave()
* Complete port of gen_leave()
* Fix bug in x86 instruction splitting
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision d75c346c (git): Port gen_leave_exit(), add support for labels to backend
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision ea9abe54 (git): Add cpush and cpop IR instructions
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 77383b39 (git): Add conditional jumps
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision b63f8bb4 (git): LDUR (https://github.com/Shopify/ruby/pull/295)
* LDUR
* Fix up immediate masking
* Consume operands directly
* Consistency and cleanup
* More consistency and entrypoints
* Cleaner syntax for masks
* Cleaner shifting for encodings
kddnewton (Kevin Newton)
03:46 PM Revision 71770cee (git): Map comments in backend
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision c2fdec93 (git): First pass at porting gen_entry_prologue()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 03ed5031 (git): Have Assembler::compile() return a list of GC offsets
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 26ba0a45 (git): RET A64 instructions (https://github.com/Shopify/ruby/pull/294)
kddnewton (Kevin Newton)
03:46 PM Revision e2213427 (git): Remove x86_64 dependency in core.rs
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 3133540b (git): Progress on codegen.rs port
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision a1b8c947 (git): * Arm64 Beginnings (https://github.com/Shopify/ruby/pull/291)
* Initial setup for aarch64
* ADDS and SUBS
* ADD and SUB for immediates
* Revert moved code
* Documentation
* Rename Arm64* to A64*
* Comments on shift types
* Share sig_imm_size and unsig_imm_size
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 39dd8b2d (git): Add test for lea and ret. Fix codegen for lea and ret.
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 04e2cced (git): Change codegen.rs to use backend Assembler directly
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 7c83a904 (git): Implement gc offset logic
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision efb45acb (git): Load GC Value operands into registers
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision a88fc48b (git): Add CCall IR insn, implement gen_swap()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 0032b020 (git): Add gen_dupn
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 872940e2 (git): Add test with register reuse
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 151cc55b (git): Fix issue with load, gen_dup
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 1b2ee621 (git): Implement target-specific insn splitting with Kevin. Add tests.
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 564f9503 (git): Make assembler methods public, sketch gen_dup with new backend
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 99cfbdca (git): Fix bug with asm.comment()
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 75c995b0 (git): Bias register allocator to reuse first operand
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision 369911d3 (git): Add dbg!() for Assembler. Fix regalloc issue.
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision a2aa2895 (git): Function to map from Opnd => X86Opnd
maximecb (Maxime Chevalier-Boisvert)
03:46 PM Revision e9cc17dc (git): Start work on platform-specific codegen
maximecb (Maxime Chevalier-Boisvert)
03:45 PM Revision 18dc379a (git): * 2022-08-30 [ci skip]
git[bot]
03:37 PM Revision a3d8e20c (git): Split insns (https://github.com/Shopify/ruby/pull/290)
* Split instructions if necessary
* Add a reusable transform_insns function
* Split out comments labels from transform_insns
* Refactor alloc_regs to use transform_insns
kddnewton (Kevin Newton)
03:37 PM Revision 2b7d4f27 (git): IR register allocation
PR: https://github.com/Shopify/ruby/pull/289 kddnewton (Kevin Newton)
03:37 PM Revision 7753b6b8 (git): Removed String opnd so that we can derive Copy for Opnd
maximecb (Maxime Chevalier-Boisvert)
03:37 PM Revision 5021f26b (git): Complete sketch for guard_object_is_heap
maximecb (Maxime Chevalier-Boisvert)
03:37 PM Revision 884cbaab (git): Change push insn macros
maximecb (Maxime Chevalier-Boisvert)
03:37 PM Revision 92e9d1e6 (git): Switch IR to use Option<Target>
maximecb (Maxime Chevalier-Boisvert)
03:37 PM Revision 96e5f9de (git): Add macro to define ops
maximecb (Maxime Chevalier-Boisvert)
03:37 PM Revision 909d2147 (git): Progress on IR sketch
maximecb (Maxime Chevalier-Boisvert)
03:37 PM Revision 2ffaa377 (git): WIP backend IR sketch
maximecb (Maxime Chevalier-Boisvert)
03:16 PM Bug #18981: Backport bundle loader option to stable versions
> I'm not sure mjit_worker.c changes are correct.
Looks good to me.
k0kubun (Takashi Kokubun)
09:29 AM Bug #18981: Backport bundle loader option to stable versions
Ruby 3.1 has passed all the tests with `make check`. Ruby 2.7 and Ruby 3.0 failed some tests like Socket. But these are not related to these changes.
hsbt (Hiroshi SHIBATA)
09:22 AM Bug #18981 (Closed): Backport bundle loader option to stable versions
https://github.com/ruby/ruby/pull/6193 is needed by macOS 13.0(Ventura).
I created the following patches.
* for Ruby 2.7: https://github.com/ruby/ruby/pull/6297
* for Ruby 3.0: https://github.com/ruby/ruby/pull/6298
* for Ruby 3....
hsbt (Hiroshi SHIBATA)
03:03 PM Misc #18984: Doc for Range#size for Float/Rational does not make sense
Please do not assign ruby-core, that sends too many emails. Eregon (Benoit Daloze)
02:39 PM Misc #18984 (Closed): Doc for Range#size for Float/Rational does not make sense
When `Range` consists of any Numeric, according to [Official docs for Ruby-3.1.2](https://ruby-doc.org/core-3.1.2/Range.html#method-i-size), `Range#size` should,
> Returns the count of elements in self if both begin and end values ar...
masasakano (Masa Sakano)
02:17 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-25:
> > You need to fail when someone passes you garbage (and `nil` is a garbage value in this case), or you need to ensure better default values (e.g., `{}`) at your call sites.
> ...
You do...
austin (Austin Ziegler)
12:40 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
> You need to fail when someone passes you garbage (and `nil` is a garbage value in this case), or you need to ensure better default values (e.g., `{}`) at your call sites.
When you pass `nil` you make less allocations, also you don't...
LevLukomskyi (Lev Lukomskyi)
02:11 PM Feature #18951: Object#with to set and restore attributes around a block
I really like Rails’ `with_options`:
```ruby
class Account < ActiveRecord::Base
with_options dependent: :destroy do |assoc|
assoc.has_many :customers
assoc.has_many :products
assoc.has_many :invoices
assoc.has_many :ex...
ngan (Ngan Pham)
12:31 PM Feature #18951: Object#with to set and restore attributes around a block
I feel like in the do/end form it's quite clear:
```ruby
obj.with(foo: "bar") do
# do something
end
```
Just like `5.times do` doesn't need to be named `exec_times` to be clear.
byroot (Jean Boussier)
12:08 PM Feature #18951: Object#with to set and restore attributes around a block
I'll add my 2 cents as well: I really really like the proposed idea and I would love to see it added to Ruby for 3.2.
However, I find `with` a little too generic as a name for the concept. Primarily, when I look at it, it doesn't tell...
ufuk (Ufuk Kayserilioglu)
02:10 PM Bug #18983 (Closed): Range#size for beginless Range is not nil.
`Range#size` should, according to [Official docs](https://ruby-doc.org/core-3.1.2/Range.html#method-i-size),
> Returns the count of elements in self if both begin and end values are numeric; otherwise, returns nil
but it doesn't wi...
masasakano (Masa Sakano)
01:36 PM Revision 4ee1a687 (git): Update to ruby/spec@d01709f
Eregon (Benoit Daloze)
01:32 PM Revision a319d3cf (git): Run specs with CHECK_LEAKS=true
* To ensure these issues are noticed early. Eregon (Benoit Daloze)
01:16 PM Misc #18977: DevMeeting-2022-09-22
- [Feature #18982] Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop (byroot)
- The existing exceptions (ThreadError) are a bit awkward to deal with.
- Queue is often used deep into th...
byroot (Jean Boussier)
12:58 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
I'd suggest having the warning for $VERBOSE=false too (and so no warning for $VERBOSE=nil).
When such an error happens it means something is going wrong, and I'd imagine it's a lot more helpful for anyone using `rm_rf` and getting a bug...
Eregon (Benoit Daloze)
12:02 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Thanks @mame, a warning in `$VERBOSE` mode is definitely better than nothing :)
Thanks @eregon! I originally introduced that because one maintainer was getting test failures on her system otherwise, and because I thought we completely...
deivid (David Rodríguez)
11:47 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Those temporary directories should be separate, but I guess the issue is this line which means other things might get stored in that test temp dir:
https://github.com/ruby/ruby/blob/7bdb999d0f28c7bb9d7a35ca775e405674527e5f/test/rubygems...
Eregon (Benoit Daloze)
11:39 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
I have talked with @matz about this issue. He said let's revert this change. Instead, it will print a warning whenever it fails to delete a file (only when `$VERBOSE = true`). I will create a patch. mame (Yusuke Endoh)
11:36 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
mame (Yusuke Endoh) wrote in #note-14:
> deivid (David Rodríguez) wrote in #note-13:
> ...
I think I have identified the mechanism. In short, my guess was correct.
* rubygems attempts to delete TMPDIR by `FileUtils.rm_rf`.
* `FileU...
mame (Yusuke Endoh)
11:23 AM Revision 4bc782ed (git): Revert "Chect what remains in TMPDIR"
This reverts commit 7bdb999d0f28c7bb9d7a35ca775e405674527e5f.
I think I confirmed the mechanism. GCC (invoked by MJIT) creates a
temporary file in TMPDIR, which prevents rm_rf from removing the
directory.
mame (Yusuke Endoh)
10:24 AM Feature #18982: Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
Sounds good :+1: Eregon (Benoit Daloze)
10:23 AM Feature #18982: Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
Proposed patch: https://github.com/ruby/ruby/pull/6299 byroot (Jean Boussier)
10:20 AM Feature #18982 (Closed): Add an `exception: false` argument for Queue#push, Queue#pop, SizedQueue#push and SizedQueue#pop
This replaces [Feature #18965]
Currently these methods raise in three occasions:
- `ThreadError(queue empty)` for `#pop` in `nonblock=true` mode, and the operation would block.
- `ThreadError(queue full)` for `SizedQueue#push`...
byroot (Jean Boussier)
10:21 AM Feature #18965 (Rejected): Further Thread::Queue improvements
Closing in favor of [Feature #18982], which propose `exception: false`. byroot (Jean Boussier)
05:42 AM Revision 78748a5d (git): Introduce `usage_analysis_clear`
S_H_ (Shun Hiraoka)
03:50 AM Revision 7bdb999d (git): Chect what remains in TMPDIR
I guess it has a shared library file created by MJIT, but I want to make
sure the fact.
mame (Yusuke Endoh)
12:52 AM Revision 41a275c8 (git): Support main branch for syntax_suggest
hsbt (Hiroshi SHIBATA)

08/28/2022

09:57 PM Revision 055fc7b1 (git): Fix comment in timev.rb
jeremyevans (Jeremy Evans)
09:49 PM Revision aecc3b12 (git): [DOC] Enhanced RDoc for Time (#6294)
burdettelamar (Burdette Lamar)
09:37 PM Feature #18980: `it` as a default block parameter
baweaver (Brandon Weaver) wrote in #note-17:
> I do not see a distinct enough difference to justify `@1`, and would reiterate previous arguments that even if it is technically illegal syntax it will still be confused for instance variab...
jeremyevans0 (Jeremy Evans)
09:35 PM Feature #18980: `it` as a default block parameter
> @1 syntax
In case it wasn't clear, the alternative that @jeremyevans0, @graywolf, and I talked about was not `@1` but `@`. They're different.
> ...
I discussed that at https://bugs.ruby-lang.org/issues/18980#note-8.
2+ args cases a...
k0kubun (Takashi Kokubun)
09:21 PM Feature #18980: `it` as a default block parameter
#### Aliasing
While I understand that `_1` is not necessarily clear and immediately obvious it has seen a lot of use. Even if we were to introduce `it` or any other syntax it would effectively be an alias so as to not break compatibilit...
baweaver (Brandon Weaver)
08:42 PM Feature #18980: `it` as a default block parameter
For your information, `@` was a candidate discussed and rejected when `@1` was changed to `_1`. I'm raising `it` partly because it hasn't been explicitly rejected. However, for the same reason discussed above, `@` is still a better compr... k0kubun (Takashi Kokubun)
04:42 PM Feature #18980: `it` as a default block parameter
jeremyevans0 (Jeremy Evans) wrote in #note-13:
> If we are considering an alternative to `_1`, I'm going to vote again for `@` (bare at sign) (originally proposed in https://bugs.ruby-lang.org/issues/4475#note-10). This is currently in...
graywolf (Gray Wolf)
03:33 PM Revision 5fcce23a (git): * 2022-08-29 [ci skip]
git[bot]
03:33 PM Revision 8799c912 (git): [rubygems/rubygems] Add platform :windows as a shortcut for all Windows platforms
https://github.com/rubygems/rubygems/commit/f3c49ad3f7 shields
03:14 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote:
>
> ...
Starting with Rails 6.1 you can do:
```ruby
content_tag(:div, 'Content', class: token_list('is-hero': hero, 'is-search-page': search_page))
```
p8 (Petrik de Heus)
05:15 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-22:
> > I also tend to do `**(options || {})` and I don’t write hard-to-read code like `**({id: id, name: name} if id.present?)`.
> ...
I disagree that it’s the same, but more to the point,...
austin (Austin Ziegler)
07:27 AM Revision 1486ffe0 (git): [DOC] Correct article of Ractor's introduction [ci skip]
Felix Yan
04:54 AM Revision 1d83302f (git): [Win32] Use `exit` instead of `type` [ci skip]
`exit` command ignores the rest arguments after an exit code, while
`type` command tries to read all as files.
nobu (Nobuyoshi Nakada)
03:48 AM Misc #18362: mswin builds & vs2022
This bug is fixed by "Microsoft(R) C/C++ Optimizing Compiler Version 19.33.31629 for x64".
And applied to GitHub Actions at runner-image 20220821.1.
nobu (Nobuyoshi Nakada)
02:12 AM Bug #18963 (Closed): Ripper.tokenize(code).join != code when heredoc and multiline string is on the same line
Applied in changeset commit:git|ace2eee544378eb03ea95b95c89434508325e8c8.
----------
[Bug #18963] Separate string contents by here document terminator
nobu (Nobuyoshi Nakada)
12:29 AM Revision ace2eee5 (git): [Bug #18963] Separate string contents by here document terminator
nobu (Nobuyoshi Nakada)
 

Also available in: Atom