Project

General

Profile

Activity

From 08/23/2022 to 08/29/2022

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 unuse... 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 ag...
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 `_` pr...
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.
...
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 ...
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 prohibitivel...
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 pu...
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 ...
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
manual...
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...
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 aft...
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 <[email protected]> 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 regist...
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, R...
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 an...
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
...
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
* I...
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...
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)
[email protected] (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 asse...
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...
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
* Fi...
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
...
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 Cheval...
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-B...
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 ge...
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 <[email protected]...
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 <[email protected]....
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)
[email protected] (Zack Deveau)
03:47 PM Revision db22a560 (git): Port gen_opt_str_freeze to new backend IR (https://github.com/Shopify/ruby/pull/366)
[email protected] (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...
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 cl...
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'...
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 an...
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 pa...
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
...
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 <m...
[email protected] (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...
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
...
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)
[email protected] (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.
...
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 ad...
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
`./m...
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 shifte...
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, branchun...
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 remai...
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
...
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 AArch6...
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
* ...
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 <[email protected]> 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 thi...
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 ...
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 instructio...
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...
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 u...
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 por...
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 en...
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
* R...
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 transf...
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 a... 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...
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/Ran... 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...
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... 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 d...
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
```
J...
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.... 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),
> Ret...
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 (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 happe...
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 intro...
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... 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 wheneve... 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:
> > Yet this exception is show...
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 MJI...
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)`...
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 ...
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` ...
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...
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` part... 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 aga...
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:
>
> I enjoy writing something like this in ruby on rails:
>
> ```ruby
> co...
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-...
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 Act...
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 co...
nobu (Nobuyoshi Nakada)
12:29 AM Revision ace2eee5 (git): [Bug #18963] Separate string contents by here document terminator
nobu (Nobuyoshi Nakada)

08/27/2022

10:47 PM Revision 111b69e8 (git): Pass wait: false to avoid a timeout
k0kubun (Takashi Kokubun)
10:13 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
> I also tend to do `**(options || {})` and I don’t write hard-to-read code like `**({id: id, name: name} if id.prese... LevLukomskyi (Lev Lukomskyi)
03:16 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
It seems that `foo(*arguments)` will call `arguments.to_a` rather than `arguments.to_ary`. However, I also noticed `f... ioquatix (Samuel Williams)
12:21 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-19:
> > Both @sawa and I have provided better options than your examples...
austin (Austin Ziegler)
09:48 PM Revision 83375f47 (git): Avoid leaving a period alone [ci skip]
k0kubun (Takashi Kokubun)
09:42 PM Revision a797ded8 (git): typos
spaette
07:05 PM Revision 95d2d792 (git): Try to prevent the failure of FileUtils.rm_rf
k0kubun (Takashi Kokubun)
05:22 PM Revision 458d49a0 (git): Ignore rm -rf failure
http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker/4213386
It's failing with:
rm: cannot remove '/tmp/ruby/v3/bui...
k0kubun (Takashi Kokubun)
05:04 PM Revision 4de09574 (git): * 2022-08-28 [ci skip]
git[bot]
05:04 PM Revision 381d8e43 (git): [rubygems/rubygems] Bundler: make to_lock consistent between Gem::Dependency and Bundler::Dependency
https://github.com/rubygems/rubygems/commit/971d57cf5a Aleksandr Varnin
04:34 PM Feature #16122: Data: simple immutable value object
Disregard that, looked in the wrong place.
~~Hmm, folks, working on implementation on the weekend, I am a bit confus...
zverok (Victor Shepelev)
03:21 PM Feature #18951: Object#with to set and restore attributes around a block
> But WITH is also SQL keyword and was recently added to ActiveRecord
It was added to `ActiveRecord::Relation`, w...
byroot (Jean Boussier)
03:14 PM Feature #18951: Object#with to set and restore attributes around a block
There are similar methods (`with_*`) across various popular gems. For example `I18n.with_locale(locale)`. But `WITH` ... retro (Josef Šimánek)
03:06 PM Feature #18951: Object#with to set and restore attributes around a block
> sole with feels vague a little, to me.
Well, the argument is that it's not alone, since it is used with at list ...
byroot (Jean Boussier)
02:58 PM Feature #18951: Object#with to set and restore attributes around a block
I think this would be nice to have, indeed spelling it out manually is quite verbose and then we tend to have lots of... Eregon (Benoit Daloze)
02:37 PM Feature #18951: Object#with to set and restore attributes around a block
I agree with the concept, but wonder about these names.
The meaning of `with_something_enabled` is obvious, but sole...
nobu (Nobuyoshi Nakada)
02:16 PM Bug #10820: Win32 Registry Delete uses ANSI instead of Wide APIs
headius (Charles Nutter) wrote in #note-10:
> Late to the party, but why was `RegQueryInfoKey` also update to use `W...
nobu (Nobuyoshi Nakada)
01:16 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
I think those issues are revealing real problems which are worth investigating and fixing.
For instance if files are...
Eregon (Benoit Daloze)
11:40 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
deivid (David Rodríguez) wrote in #note-13:
> Yet this exception is showing the error when trying to remove the root...
mame (Yusuke Endoh)
11:24 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Alright, I guess it makes sense to leave things as they are.
One question I have is: I though we had removed an `e...
deivid (David Rodríguez)
11:18 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
We faced another problem on Linux.
A rubygems test uses `FileUtils.rm_rf` in `teardown`. But it randomly fails for...
mame (Yusuke Endoh)
11:16 AM Feature #13626: Add String#byteslice!
I think the underlying issue is we want a string append method which does not change the receiver's encoding (and ins... Eregon (Benoit Daloze)
07:05 AM Feature #13626: Add String#byteslice!
> I hope I have not demanded anything
Yes, sorry, not what I meant, it's one of these words that has similar meani...
byroot (Jean Boussier)
06:30 AM Feature #13626: Add String#byteslice!
Just to clarify I hope I have not demanded anything. "But if you want to have a go at it, that would be awesome" was ... ioquatix (Samuel Williams)
11:12 AM Feature #18408: Allow pattern match to set instance variables
Right, and I agree with matz that modifying ivars as the match is evaluated is problematic, I would even say it's uns... Eregon (Benoit Daloze)
03:18 AM Feature #18408: Allow pattern match to set instance variables
@eregon I understand what you're saying, but my statement was based on the premise "if you don't want ivars to change... Dan0042 (Daniel DeLorme)
09:04 AM Feature #18980: `it` as a default block parameter
I also avoid using solo `_1` as I have to search for `_2` when I see `_1` in a block. It's not because of a feeling c... hanazuki (Kasumi Hanazuki)
06:35 AM Revision 13d2225c (git): Try rm -rf instead of FileUtils.rm_rf
FileUtils.rm_rf started to randomly fail on http://ci.rvm.jp/results/trunk-mjit@phosphorus-docker
since around https:...
k0kubun (Takashi Kokubun)
03:56 AM Revision f97af5cd (git): * 2022-08-27 [ci skip]
git[bot]
03:54 AM Revision fe4dd18d (git): [DOC] Fix a typo [ci skip]
nobu (Nobuyoshi Nakada)

08/26/2022

11:36 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
> because it’s (1) wasteful
It wastes what? I don't understand this argument
> (2) noisy
This I can understa...
LevLukomskyi (Lev Lukomskyi)
09:16 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-17:
> @austin your latest example has 110 symbols, the condition should ...
austin (Austin Ziegler)
08:43 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
Currently:
```ruby
"xyz".sub(/y/, nil) #=> TypeError: no implicit conversion of nil into String
def nil.to_hash; {} ...
LevLukomskyi (Lev Lukomskyi)
02:52 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
> > Currently, nobody is using `**nil` because it throws an error because `nil.to_hash` is not defined. So I don't se... Dan0042 (Daniel DeLorme)
12:15 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-14:
> @austin, your example is a perfect example of "overengineering".
...
austin (Austin Ziegler)
11:32 PM Feature #18980: `it` as a default block parameter
If we are considering an alternative to `_1`, I'm going to vote again for `@` (bare at sign) (originally proposed in ... jeremyevans0 (Jeremy Evans)
10:46 PM Feature #18980: `it` as a default block parameter
> This is a good argument, I think it would be good to add to the issue description.
I'm glad it made sense to you. ...
k0kubun (Takashi Kokubun)
03:48 PM Feature #18980: `it` as a default block parameter
> innocuous word
I misused `innocuous` here. I want to mean a "common word", and it's hard to notice because it's ...
Eregon (Benoit Daloze)
03:45 PM Feature #18980: `it` as a default block parameter
k0kubun (Takashi Kokubun) wrote in #note-8:
> What do you mean? I thought we were talking about `_1`, not `_`. If th...
Eregon (Benoit Daloze)
02:41 PM Feature #18980: `it` as a default block parameter
> I regularly use _1, _2, maybe it's question of habit and getting used to it?
Matz also made that argument in the R...
k0kubun (Takashi Kokubun)
12:43 PM Feature #18980: `it` as a default block parameter
I regularly use `_1`, `_2`, maybe it's question of habit and getting used to it?
`_1` seems already used in many gems...
Eregon (Benoit Daloze)
10:31 AM Feature #18980 (Closed): `it` as a default block parameter
## Problem
Numbered parameters (`_1`, `_2`, ...) look like unused local variables and I don't feel motivated to use ...
k0kubun (Takashi Kokubun)
07:08 PM Feature #16122: Data: simple immutable value object
austin (Austin Ziegler) wrote in #note-55:
> Why not `Data.defclass` or `Data.deftype` or even `Data.defshape`?
B...
Eregon (Benoit Daloze)
04:53 PM Feature #16122: Data: simple immutable value object
Eregon (Benoit Daloze) wrote in #note-54:
> I like `Data.define` as well, we are "defining a new subclass of Data".
...
austin (Austin Ziegler)
10:22 AM Feature #16122: Data: simple immutable value object
I like `Data.define` as well, we are "defining a new subclass of Data".
`def` makes me thing to "define a method" si...
Eregon (Benoit Daloze)
07:01 PM Feature #18408: Allow pattern match to set instance variables
Dan0042 (Daniel DeLorme) wrote in #note-20:
> But if you don't want ivars to change during match, this *can* be fixe...
Eregon (Benoit Daloze)
05:31 PM Feature #18408: Allow pattern match to set instance variables
> it is intentional. Unsuccessful matches remain the assignment result from the internal matches
I think everyone ...
Dan0042 (Daniel DeLorme)
03:14 PM Feature #18965: Further Thread::Queue improvements
> Why not exception: false which seems more standard and established
So after working more on using a SizedQueue i...
byroot (Jean Boussier)
01:01 PM Bug #18899: Inconsistent argument handling in IO#set_encoding
I ran my test against your branch, and it addresses this issue. I hope it can be incorporated soon. Thanks! javanthropus (Jeremy Bopp)
08:17 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Another observation is: could we opt-out of this strict behavior only on Windows, given how picky it is about deletin... deivid (David Rodríguez)
07:16 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
In my opinion, this is ok. I also encountered some issues in RubyGems test suite when I first enabled this behavior t... deivid (David Rodríguez)
05:34 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
I also encountered a possibly related `Errno::EACCES` error on Windows (mingw) of GitHub Actions.
```
Errno::EACC...
koic (Koichi ITO)
04:08 AM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Unfortunately, this change affected mkmf on Appveyor (Windows).
https://ci.appveyor.com/project/ruby/ruby/builds/4...
mame (Yusuke Endoh)
06:00 AM Revision d6f21b30 (git): Convert catch_except_t to stdbool
catch_excep_t is a field that exists for MJIT. In the process of
rewriting MJIT in Ruby, I added API to convert 1/0 o...
k0kubun (Takashi Kokubun)
04:12 AM Misc #18977: DevMeeting-2022-09-22
* [Feature #18784] `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions (mame)
* I changed FileUtils....
mame (Yusuke Endoh)
03:15 AM Revision 098a3cfa (git): Fixed typo
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 1cbee173 (git): Sync examples and cli from syntax_suggest
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 3a2bc849 (git): Added test-syntax-suggest to CI
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 5e4d1f99 (git): Skip examples to need installed ruby exe
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 8dfc077f (git): Added syntax_suggest cli and resolve failing exapmle with it
hsbt (Hiroshi SHIBATA)
03:15 AM Revision bd1b1eeb (git): ruby-prof is now optional
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 9c2af0a1 (git): added test-syntax-suggest and prepare tasks
hsbt (Hiroshi SHIBATA)
03:15 AM Revision 0d9f4ea0 (git): Import spec examples from ruby/syntax_suggest
hsbt (Hiroshi SHIBATA)
12:57 AM Revision 3504be1b (git): [ruby/irb] Require RDoc in `input-method.rb` again in a limited scope.
RDoc is implemented as soft dependency in IRB. See how the rdoc is required in
the files. I reverted the commit below...
Jun Aruga

08/25/2022

10:48 PM Feature #16122: Data: simple immutable value object
`Data.new` aside, `Data.def` and `Data.define` are my current top-2 preferences. I'd be happy with either of these at... k0kubun (Takashi Kokubun)
08:02 PM Feature #16122 (Assigned): Data: simple immutable value object
k0kubun (Takashi Kokubun)
01:34 PM Feature #16122: Data: simple immutable value object
1. I slightly regretted to make `Struct.new` to create a subclass, not an instance. So this time I didn't choose `new... matz (Yukihiro Matsumoto)
11:25 AM Feature #16122: Data: simple immutable value object
@matz Thanks for the decisions!
A few questions:
1. I am a bit concerned about using `def`, which is strongly a...
zverok (Victor Shepelev)
10:40 AM Feature #16122: Data: simple immutable value object
We are going to implement Data class in the following spec:
* `D = Data.def(:foo, :bar)` to define a data class (s...
matz (Yukihiro Matsumoto)
10:32 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
@austin, your example is a perfect example of "overengineering".
We could argue about "clearness", although about ...
LevLukomskyi (Lev Lukomskyi)
03:13 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-10:
> ```ruby
> res = {
> some: 'value',
> }
> res.merge!(id: id, ...
austin (Austin Ziegler)
01:17 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
I'm not that much concerned about the performance but about readability. Your solution with `compact` is probably goo... LevLukomskyi (Lev Lukomskyi)
12:14 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-10:
> If use `compact!` as a different statement then you need to make a ...
sawa (Tsuyoshi Sawada)
11:36 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
> I meant to simply use compact! in a different statement, not in a chain.
If use `compact!` as a different statem...
LevLukomskyi (Lev Lukomskyi)
03:47 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-8:
> 2. => more specifically `.tap(&:compact!)` since `compact!` may retu...
sawa (Tsuyoshi Sawada)
08:36 PM Bug #18767 (Closed): IO.foreach hangs up when passes limit=0
Applied in changeset commit:git|21cac42385e1a116d287e155e461453b830640d2.
----------
Raise ArgumentError for IO.fore...
jeremyevans (Jeremy Evans)
09:53 AM Bug #18767: IO.foreach hangs up when passes limit=0
OK, let's make it raise exceptions for zero length.
Matz.
matz (Yukihiro Matsumoto)
08:36 PM Revision 21cac423 (git): Raise ArgumentError for IO.foreach with limit of 0
Makes behavior consistent with IO.readlines.
Fixes [Bug #18767]
jeremyevans (Jeremy Evans)
07:41 PM Bug #18797: Third argument to Regexp.new is a bit broken
matz (Yukihiro Matsumoto) wrote in #note-1:
> This is indeed an obsolete feature for long time. And the third argume...
jeremyevans0 (Jeremy Evans)
09:59 AM Bug #18797: Third argument to Regexp.new is a bit broken
This is indeed an obsolete feature for long time. And the third argument is ignored (IIRC).
Some (old) gems still us...
matz (Yukihiro Matsumoto)
06:37 PM Revision 881bc2a1 (git): Skip running a DRb test on MinGW
It hangs even after a retry
https://github.com/ruby/ruby/runs/7966439530?check_suite_focus=true
We contacted GitHub ...
k0kubun (Takashi Kokubun)
06:31 PM Revision af9fa16c (git): Make sure super is called and fix teardown
k0kubun (Takashi Kokubun)
06:11 PM Revision 52560a92 (git): Skip flaky mkmf tests on AppVeyor
It seems like TestMkmfTryConstant started to randomly fail, maybe
related to 96562a517d3373466ec306b5f821a41f4758d2a6...
k0kubun (Takashi Kokubun)
06:02 PM Revision 8706b74b (git): [DOC] Enhanced RDoc for Time (#6277)
Deletes the :include: files in doc/time, which became no longer workable when @nobu pointed out that some (but not al... burdettelamar (Burdette Lamar)
03:49 PM Revision b2d0f788 (git): Fix private methods reported as protected when called via Symbol#to_proc
Ref: bfa6a8ddc84fffe0aef5a0f91b417167e124dbbf
Ref: [Bug #18826]
byroot (Jean Boussier)
03:31 PM Feature #18979 (Open): Kernel#sprintf formatting BigDecimal without the loss of precision
Recently I stumbled upon a quirk with `Kernel#sprintf`'s `f` modifier behavior with `BigDecimal`. It seems to be not ... kstrukov (Kostiantyn Striukov)
03:08 PM Revision c2daa056 (git): * 2022-08-26 [ci skip]
git[bot]
03:07 PM Revision c069f504 (git): [DOC] Tell RDoc aliases of singleton class
Since RDoc C parser cannot capture aliases which are using an
expression other than a single variable as the class, u...
nobu (Nobuyoshi Nakada)
02:44 PM 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-12:
> Windows bash file 'top'
>
> ```bash
> {
> bindir=$(dirname "$0")
> exec...
nobu (Nobuyoshi Nakada)
02:39 PM Revision ad8774f8 (git): [rubygems/rubygems] Fix another regression for sorbet
Recently a changed was introduced to update the resolver platforms after
it has been created, in order to remove the ...
deivid (David Rodríguez)
01:41 PM Bug #18978 (Feedback): Unexpected behaviour in Time.utc and Time.local when 8 arguments are passed in
GitHub PR: https://github.com/ruby/ruby/pull/6281
Time.utc and Time.local produce inconsistent and unexpected beha...
peterzhu2118 (Peter Zhu)
12:39 PM Misc #18977 (Closed): DevMeeting-2022-09-22
# The next dev meeting
**Date: 2022/09/22 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/m...
mame (Yusuke Endoh)
12:38 PM Misc #18954 (Closed): DevMeeting-2022-08-18
mame (Yusuke Endoh)
12:37 PM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
We brielfly discussed this issue at the dev meeting. @naruse said it should behave like `String#<<` as follows. @nobu... mame (Yusuke Endoh)
09:55 AM Misc #18975: Propose Stan Lo (@st0012) as an IRB maintainer
Confirmed. Thank you for helping us @k0kubun and @st0012.
If you have any concern, please tell us here.
Matz.
matz (Yukihiro Matsumoto)
08:16 AM Misc #18975 (Feedback): Propose Stan Lo (@st0012) as an IRB maintainer
We discussed this at today's developers meeting. We recognize two different challenges here.
1. @st0012 and @k0kubun...
k0kubun (Takashi Kokubun)
09:46 AM Feature #18408 (Rejected): Allow pattern match to set instance variables
We have discussed with @ktsj about the issue, and concluded it is intentional. Unsuccessful matches remain the assign... matz (Yukihiro Matsumoto)
09:33 AM Feature #18821: Expose Pattern Matching interfaces in core classes
I agree with MatchData. And I think `deconstruct` for the class should be an alias to `captures` instead of `to_a`.
...
matz (Yukihiro Matsumoto)
05:35 AM Bug #18971: Enumerator::Lazy.take(0) leaks first element into next operation
Although not so elegant, I was thinking to add "precheck" to enumerators.
https://github.com/nobu/ruby/tree/lazy_take0
nobu (Nobuyoshi Nakada)
02:28 AM Misc #18976 (Closed): [ANN] blade.nagaokaut.ac.jp is down
The mail archive server named `blade.nagaokaut.ac.jp` is down now.
blade had some hardware issues. Prof. Hara trie...
hsbt (Hiroshi SHIBATA)

08/24/2022

11:14 PM Bug #18932 (Closed): Ruby 3.1 - Allow building with VS 2022
jeremyevans0 (Jeremy Evans)
10:42 PM Bug #18932: Ruby 3.1 - Allow building with VS 2022
I just built ruby_3_1 branch with VS 2022, and it built and passed all tests. So, no patches needed for Ruby 3.1. P... MSP-Greg (Greg L)
06:00 PM Bug #18932: Ruby 3.1 - Allow building with VS 2022
Yes. The Visual Studio bug has been fixed. I'll try a build see what's needed. MSP-Greg (Greg L)
05:10 PM Bug #18932: Ruby 3.1 - Allow building with VS 2022
Can you point out which commits are needed for backporting to allow Ruby 3.1 to work better with VS 2022? Then we co... jeremyevans0 (Jeremy Evans)
09:15 PM Revision f5f81bb7 (git): Update Module#instance_methods documentation for visibility changes/aliases
Requested by matz in comment on #18435. jeremyevans (Jeremy Evans)
09:03 PM Bug #18974: Wrong line number in the rescue iseq for the exception matching code
I've submitted a pull request to fix this issue: https://github.com/ruby/ruby/pull/6283 jeremyevans0 (Jeremy Evans)
10:22 AM Bug #18974 (Closed): Wrong line number in the rescue iseq for the exception matching code
Script for demonstration:
```
def foo
begin
raise 'error'
rescue => e
puts e.message
end
end
...
hurricup (Alexandr Evstigneev)
08:48 PM Misc #18975: Propose Stan Lo (@st0012) as an IRB maintainer
It'll be my honor to help the team maintain IRB. Thank you for nominating me for this important role. st0012 (Stan Lo)
08:39 PM Misc #18975 (Closed): Propose Stan Lo (@st0012) as an IRB maintainer
## Background
Looking at @aycabta 's GitHub activity, he's been inactive on the Internet for 6~7 months, which means...
k0kubun (Takashi Kokubun)
08:16 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
2. => more specifically `.tap(&:compact!)` since `compact!` may return `nil` if nothing changed.
3. there might be a...
LevLukomskyi (Lev Lukomskyi)
02:44 PM Feature #18959: Handle gracefully nil kwargs eg. **nil
LevLukomskyi (Lev Lukomskyi) wrote in #note-6:
> `compact` way looks good indeed, although:
> 1. it removes all `ni...
sawa (Tsuyoshi Sawada)
11:09 AM Feature #18959: Handle gracefully nil kwargs eg. **nil
`compact` way looks good indeed, although:
1. it removes all `nil`s from the hash, which might be undesired in some c...
LevLukomskyi (Lev Lukomskyi)
08:00 PM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
I am concerned about compatibility to change this. @naruse proposed to return an ASCII-8BIT string instead of raising... mame (Yusuke Endoh)
10:08 AM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
@nobu Looks good to me, could you commit it?
(ARG_UNUSED is not needed on `code` I think)
Eregon (Benoit Daloze)
01:13 AM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
Sorry, this.
```diff
diff --git a/enc/us_ascii.c b/enc/us_ascii.c
index 08f9072c435..9d854b12245 100644
--- a/enc...
nobu (Nobuyoshi Nakada)
01:05 AM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
```diff
diff --git a/regenc.c b/regenc.c
index 16d62fdf409..5cc3b778351 100644
--- a/regenc.c
+++ b/regenc.c
@@ -627,...
nobu (Nobuyoshi Nakada)
07:38 PM Bug #18931: Inconsistent handling of invalid codepoints in String#lstrip and String#rstrip
I submitted a pull request to always raise an exception for rstrip strings with broken coderange: https://github.com/... jeremyevans0 (Jeremy Evans)
07:14 PM Bug #18883 (Rejected): parse.y: trailing comma cannot coexist with star
After giving this some more thought, I am fairly sure this is not a bug, and I'm rejecting this. @zverok is correct,... jeremyevans0 (Jeremy Evans)
07:04 PM Bug #18908: Allow username and password to be extracted from the http_proxy variable on Windows
I agree that we should remove the restriction. I submitted a pull request for that: https://github.com/ruby/net-http... jeremyevans0 (Jeremy Evans)
05:54 PM Revision 28a34346 (git): Disable Ractor check on 32bit architectures
Ractor verification requires storing the ractor id in the top 32 bits of
the object header. Unfortunately 32 bit mac...
tenderlovemaking (Aaron Patterson)
05:43 PM Revision fa9f4d38 (git): * 2022-08-25 [ci skip]
git[bot]
05:42 PM Revision b4be3c00 (git): add --yjit-dump-iseqs param (https://github.com/Shopify/ruby/pull/332)
noahgibbs (Noah Gibbs)
05:08 PM Bug #18970: CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
The Ruby build linked to above had incorrect bash scripts. Fixed as of now. Sorry, bad day yesterday, too many inte... MSP-Greg (Greg L)
04:58 PM Bug #18945 (Closed): node_id is not initialized but it is used leading to UB
Pull requested merged at commit:c69ad738dc7c713df547a51607917ca78df6b793 jeremyevans0 (Jeremy Evans)
04:43 PM Bug #18780 (Closed): Incorrect binding receiver for C API rb_eval_string()
Fixed by commit:5bbba76489628f4509495ebf4ba0a7aad4c0b560 jeremyevans0 (Jeremy Evans)
08:59 AM Revision 0ad9cc16 (git): [rubygems/rubygems] Backport non-gnu libc on linux platform matching to Bundler
https://github.com/rubygems/rubygems/commit/703373b41f
Co-authored-by: Loic Nageleisen <[email protected]>
deivid (David Rodríguez)
08:45 AM Feature #18559: Allocation tracing: Objects created by the parser are attributed to Kernel.require
I had a quick chat with @ko1, he plans to try a better implementation after RubyKaigi (mid-september).
I'll hold o...
byroot (Jean Boussier)
01:36 AM Revision 314b76a5 (git): test/-ext-/eval/test_eval.rb: Prevent "assigned but unused variable"
mame (Yusuke Endoh)

08/23/2022

11:00 PM Bug #18937: Inconsistent definitions of Complex#<=> and Numeric#<=> with others
nobu (Nobuyoshi Nakada) wrote in #note-4:
> I agree that `Complex#<=>` should coerce the argument as well as other m...
msnm (Masahiro Nomoto)
10:37 PM Bug #18970: CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
@nobu & @Eregon
I just tried the prolog_script script branch. Wondering if the following example would be fine with...
MSP-Greg (Greg L)
04:52 PM Bug #18970: CRuby adds an invalid header to bin/bundle (and others) which makes it unusable in Bash on Windows
I also noticed `which rake` does not work on Ruby 2.5+, but it does work on Ruby < 2.5:
https://github.com/ruby/setup...
Eregon (Benoit Daloze)
10:20 PM Bug #18899: Inconsistent argument handling in IO#set_encoding
I think it is a bug. I submitted a pull request to fix it: https://github.com/ruby/ruby/pull/6280. Not sure if the ... jeremyevans0 (Jeremy Evans)
09:28 PM Revision feff6833 (git): * 2022-08-24 [ci skip]
git[bot]
09:27 PM Revision 60c900f4 (git): Add @k0kubun to CODEOWNERS for YJIT
maximecb (Maxime Chevalier-Boisvert)
05:50 PM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
I submitted a pull request to fix this: https://github.com/ruby/ruby/pull/6276 jeremyevans0 (Jeremy Evans)
02:54 PM Bug #18973: Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
I noticed https://github.com/ruby/ruby/blob/master/benchmark/app_aobench.rb seems to rely on this behavior.
But that...
Eregon (Benoit Daloze)
02:42 PM Bug #18973 (Closed): Kernel#sprintf: %c allows codepoints above 127 for 7-bits ASCII encoding
I've noticed the following behavior:
```ruby
sprintf("%c".encode("US-ASCII"), 128)
=> "\x80"
sprintf("%c".enc...
andrykonchin (Andrew Konchin)
03:49 PM Bug #18972 (Rejected): String#byteslice should return BINARY (aka ASCII-8BIT) Strings
Ok, I suppose your point of view make sense, and either way the backward compatibility concern is just too big.
Cl...
byroot (Jean Boussier)
01:44 PM Bug #18972: String#byteslice should return BINARY (aka ASCII-8BIT) Strings
I think the current behavior is better, `String#byteslice` is not only used for BINARY strings.
In fact for binary s...
Eregon (Benoit Daloze)
11:03 AM Bug #18972 (Rejected): String#byteslice should return BINARY (aka ASCII-8BIT) Strings
While working on implementing https://bugs.ruby-lang.org/issues/13626, I noticed `byteslice` assign the receiver enco... byroot (Jean Boussier)
03:32 PM Feature #13626: Add String#byteslice!
The PR is here in case someone feels like reviewing: https://github.com/ruby/ruby/pull/6275
As for the recently ra...
byroot (Jean Boussier)
01:56 PM Feature #13626: Add String#byteslice!
I think there is a misunderstand of what `byte*` methods are for.
`byte*` methods are for dealing with byte indice...
Eregon (Benoit Daloze)
01:48 PM Feature #13626: Add String#byteslice!
Why not simply `String#slice!` if the string encoding is BINARY?
```ruby
result = @read_buffer.slice!(size) # @read...
Eregon (Benoit Daloze)
10:09 AM Bug #18912: Build failure with Xcode 14 and macOS 13 (Ventura) Beta
`TestProcess#test_daemon_noclose` passed with `export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES` from https://github.co... hsbt (Hiroshi SHIBATA)
09:01 AM Revision 46c3a939 (git): [ruby/irb] Drop hard dependency on RDoc.
This has been introduced in https://github.com/ruby/irb/commit/026700499dfd,
but it seems that this is just be mistak...
Vít Ondruch
07:52 AM Revision 983115cf (git): [ruby/fileutils] FileUtils.rm* methods swallows only Errno::ENOENT when force is true
... instead of any StandardError.
To behave like the standard `rm` command, it should only ignore
exceptions about n...
mame (Yusuke Endoh)
07:52 AM Revision 96562a51 (git): [ruby/fileutils] Narrow the scope of ensure
The ensure in postorder_traverse was added for [Bug #6756].
The intention was to try to delete the parent directory i...
mame (Yusuke Endoh)
07:52 AM Revision 073f3b7e (git): [ruby/fileutils] Fix the test permission of "test_rm_rf"
The test was added for [Bug #6756]. The ticket insisted
`FileUtils.rm_rf` should delete an empty directory even if it...
mame (Yusuke Endoh)
06:44 AM Bug #18971: Enumerator::Lazy.take(0) leaks first element into next operation
You're right. I just tested again and apparently even 3.1.2p20 has this issue. Voileexperiments (Library Voile)
05:58 AM Bug #18971: Enumerator::Lazy.take(0) leaks first element into next operation
Are you sure this has been fixed? I tried with Ruby 2.7-3.1 and current master and did not get all `[]` results on a... jeremyevans0 (Jeremy Evans)
03:52 AM Bug #18971: Enumerator::Lazy.take(0) leaks first element into next operation
Upon more testing apparently this has been fixed in `3.0.2p107 (2021-07-07 revision 0db68f0233)`.
However I can't ...
Voileexperiments (Library Voile)
03:05 AM Bug #18971 (Closed): Enumerator::Lazy.take(0) leaks first element into next operation
These results with lazy enumerators are as expected:
``` ruby
(2..10).take(0).to_a # => []
(2..10).take(0).map(:...
Voileexperiments (Library Voile)
06:33 AM Revision 7c784f0a (git): [rubygems/rubygems] Bundler: avoid use of "can not" in spec literals
Signed-off-by: Takuya Noguchi <[email protected]>
https://github.com/rubygems/rubygems/commit/73b5cf9bd1
Takuya Noguchi
05:28 AM Revision 22a416a3 (git): [rubygems/rubygems] Bundler: update the link suggested on error with the new one
Also typo is fixed.
Signed-off-by: Takuya Noguchi <[email protected]>
https://github.com/rubygems/ru...
Takuya Noguchi
05:04 AM Revision 9f6fcfcd (git): Ubuntu 18.04 in GHA is deprecated from Aug 8,2022
https://github.com/actions/runner-images/issues/6002 hsbt (Hiroshi SHIBATA)
03:49 AM Revision 892fe9bb (git): omit all assertions at TestIO_Console#test_intr when running with FreeBSD
hsbt (Hiroshi SHIBATA)
03:00 AM Bug #18941: Endless loop with a memory leak in FileUtils::mkpath
https://github.com/ruby/ruby/commit/70f69f85395f5735429cd45136d7de2742f08b72 hsbt (Hiroshi SHIBATA)
02:59 AM Bug #18941 (Closed): Endless loop with a memory leak in FileUtils::mkpath
hsbt (Hiroshi SHIBATA)
02:28 AM Revision 545c2b00 (git): Fix an inconsistent include guard macro
I was thinking about making it internal/mjit.h, but didn't. k0kubun (Takashi Kokubun)
01:45 AM Revision c1ecc498 (git): Use rbs HEAD for https://github.com/ruby/rbs/pull/1090
hsbt (Hiroshi SHIBATA)
01:45 AM Revision f69244ce (git): Merge rubygems/bundler HEAD
Pick from https://github.com/rubygems/rubygems/commit/6b3a5a9ab0453463381a8164efb6298ea9eb776f hsbt (Hiroshi SHIBATA)
01:45 AM Revision 4790d0ac (git): [rubygems/rubygems] Fix conservative update downgrading top level gems
When `--conservative` is passed, explicit unlocks are set for top level
gems via `@unlock[:gems]`, so that only those...
deivid (David Rodríguez)
01:45 AM Revision c21c9a29 (git): [rubygems/rubygems] Refactor building metadata dependencies
https://github.com/rubygems/rubygems/commit/fa60f1fe43 deivid (David Rodríguez)
01:45 AM Revision a9509068 (git): [rubygems/rubygems] Make `compact_index_api_missing` server more strict
The compact index should not request any marshaled gemspecs whatsoever.
https://github.com/rubygems/rubygems/commit/...
deivid (David Rodríguez)
01:45 AM Revision 29c443fe (git): [rubygems/rubygems] Remove unnecessary mixin inclusion
It's already included by the parent.
https://github.com/rubygems/rubygems/commit/3ffe389c44
deivid (David Rodríguez)
01:45 AM Revision b30fc03e (git): [rubygems/rubygems] Centralize loading `Bundler::MatchPlatform` mixin
It's explicitly loaded when monkeypatching RubyGems, which we do very
early. So neither autoloading it, nor explicitl...
deivid (David Rodríguez)
12:04 AM Revision 6465a533 (git): [DOC] Remove extra page-dir prefix
nobu (Nobuyoshi Nakada)
 

Also available in: Atom