Skip to content

Merge from upstream #24

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 547 commits into from
Sep 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
547 commits
Select commit Hold shift + click to select a range
75c995b
Bias register allocator to reuse first operand
maximecb May 18, 2022
99cfbdc
Fix bug with asm.comment()
maximecb May 19, 2022
564f950
Make assembler methods public, sketch gen_dup with new backend
maximecb May 19, 2022
1b2ee62
Implement target-specific insn splitting with Kevin. Add tests.
maximecb May 19, 2022
151cc55
Fix issue with load, gen_dup
maximecb May 19, 2022
872940e
Add test with register reuse
maximecb May 19, 2022
0032b02
Add gen_dupn
maximecb May 24, 2022
a88fc48
Add CCall IR insn, implement gen_swap()
maximecb May 24, 2022
efb45ac
Load GC Value operands into registers
maximecb May 24, 2022
7c83a90
Implement gc offset logic
maximecb May 25, 2022
04e2cce
Change codegen.rs to use backend Assembler directly
maximecb Jun 6, 2022
39dd8b2
Add test for lea and ret. Fix codegen for lea and ret.
maximecb Jun 6, 2022
a1b8c94
* Arm64 Beginnings (https://github.com/Shopify/ruby/pull/291)
maximecb Jun 15, 2022
3133540
Progress on codegen.rs port
maximecb Jun 7, 2022
e221342
Remove x86_64 dependency in core.rs
maximecb Jun 7, 2022
26ba0a4
RET A64 instructions (https://github.com/Shopify/ruby/pull/294)
kddnewton Jun 7, 2022
03ed503
Have Assembler::compile() return a list of GC offsets
maximecb Jun 7, 2022
c2fdec9
First pass at porting gen_entry_prologue()
maximecb Jun 7, 2022
71770ce
Map comments in backend
maximecb Jun 8, 2022
b63f8bb
LDUR (https://github.com/Shopify/ruby/pull/295)
kddnewton Jun 7, 2022
77383b3
Add conditional jumps
maximecb Jun 8, 2022
ea9abe5
Add cpush and cpop IR instructions
maximecb Jun 8, 2022
d75c346
Port gen_leave_exit(), add support for labels to backend
maximecb Jun 9, 2022
0000984
Port over putnil, putobject, and gen_leave()
maximecb Jun 9, 2022
1daa594
MOVK, MOVZ, BR (https://github.com/Shopify/ruby/pull/296)
kddnewton Jun 8, 2022
c10e018
LDADDAL, STUR, BL (https://github.com/Shopify/ruby/pull/299)
kddnewton Jun 13, 2022
27fcab9
Get side exits working, get miniruby to boot with threshold=1
maximecb Jun 14, 2022
e72dab3
Add atomic counter increment instruction
maximecb Jun 14, 2022
9d18e6c
Port gen_code_for_exit_from_stub()
maximecb Jun 14, 2022
4dbc1e1
Port bitwise not, gen_check_ints()
maximecb Jun 14, 2022
e743e3b
Remove unused code, add backend asm test
maximecb Jun 14, 2022
ae9bcfe
Add assert
maximecb Jun 15, 2022
401521c
Rename transform_insns to forward_pass
maximecb Jun 15, 2022
59b818e
Add support for using InsnOut as memory operand base
maximecb Jun 15, 2022
1923842
Move backend tests to their own file
maximecb Jun 15, 2022
abea8c8
Add stores to one of the tests
maximecb Jun 15, 2022
40ac79a
Add bitwise and to x86 backend
maximecb Jun 15, 2022
b8fc990
Get rid of temporary context methods
maximecb Jun 15, 2022
4932a6e
Fix small bug in x86_split
maximecb Jun 16, 2022
084d4bb
Implement X86Reg::sub_reg() method
maximecb Jun 16, 2022
67de662
Add Opnd.rm_num_bits() method
maximecb Jun 16, 2022
eb4c7b4
AND/ANDS for A64 (https://github.com/Shopify/ruby/pull/300)
kddnewton Jun 16, 2022
57e64f7
Make sure allocated reg size in bits matches insn out size
maximecb Jun 20, 2022
27dd43b
TST, CMP, AND/ANDS with registers (https://github.com/Shopify/ruby/pu…
kddnewton Jun 17, 2022
c5ae526
Port gen_putself, log what can't be compiled in --yjit-dump-insns
maximecb Jun 20, 2022
4c7d708
Port over gen_putspecialobject
maximecb Jun 20, 2022
b89d878
Port getlocal_WC0
maximecb Jun 20, 2022
00ad14f
Port gen_full_cfunc_return
maximecb Jun 20, 2022
d0204e5
Port guard_two_fixnums
maximecb Jun 20, 2022
8bb7421
Port topn, adjuststack, most of opt_plus
maximecb Jun 20, 2022
24db233
Add jo insn and test for jo
maximecb Jun 20, 2022
4254174
Port over setn
maximecb Jun 20, 2022
2eba6ae
Port over get_branch_target()
maximecb Jun 21, 2022
4c0a440
Port over duphash and newarray
maximecb Jun 21, 2022
f1b1881
Fix backend transform bug, add test
maximecb Jun 21, 2022
0a96a39
Delete dbg!() calls
XrXr Jun 21, 2022
d916328
Conscise IR disassembly (https://github.com/Shopify/ruby/pull/302)
XrXr Jun 21, 2022
b272c57
LSL, LSR, B.cond (https://github.com/Shopify/ruby/pull/303)
kddnewton Jun 22, 2022
7a9b581
Arm64 progress (https://github.com/Shopify/ruby/pull/304)
kddnewton Jul 5, 2022
aab53e2
Add test for direct jump to a code pointer
maximecb Jul 6, 2022
65019ed
Get codegen for deferred compilation working
maximecb Jul 7, 2022
580f269
Get started on branchunless port
maximecb Jul 7, 2022
ab2fa6e
Add a backend test with a load of a GC'd VALUE
maximecb Jul 7, 2022
0551115
Add #[must_use] annotations to asm instructions
maximecb Jul 7, 2022
6773832
More Arm64 lowering/backend work (https://github.com/Shopify/ruby/pul…
kddnewton Jul 8, 2022
e1f3f03
Fix jumps (https://github.com/Shopify/ruby/pull/309)
kddnewton Jul 8, 2022
8864691
Better label refs (https://github.com/Shopify/ruby/pull/310)
kddnewton Jul 11, 2022
38c2fb8
Port YJIT New Backend Temp Checks to Cirrus (https://github.com/Shopi…
maximecb Jul 12, 2022
b45b29f
Port gen_getlocal()
maximecb Jul 12, 2022
86606e0
Port over setlocal_wc0
maximecb Jul 20, 2022
6e53827
Port over putstring
maximecb Jul 12, 2022
8d743e9
Fix compile errors on arm on the CI (https://github.com/Shopify/ruby/…
maximecb Jul 12, 2022
15c6aac
Encode MRS and MSR for AArch64 (https://github.com/Shopify/ruby/pull/…
kddnewton Jul 13, 2022
ac77d15
Assert that the # of bytes matches for label refs (https://github.com…
kddnewton Jul 14, 2022
159566f
Op::CPushAll and Op::CPopAll (https://github.com/Shopify/ruby/pull/317)
kddnewton Jul 14, 2022
5e83419
Exclude X0 (C_RET_REG) from allocatable registers on arm (https://git…
maximecb Jul 14, 2022
a1ea018
Add extra assertion in new_label for Kevin
maximecb Jul 14, 2022
6c50089
Port newhash, add tests for newhash, duphash
maximecb Jul 14, 2022
160e29b
Port print_str to new backend (https://github.com/Shopify/ruby/pull/318)
kddnewton Jul 15, 2022
34ec892
Fix comment typo
maximecb Jul 15, 2022
95e5c52
Fix bug with LeaLabel on x86, add CI test
maximecb Jul 15, 2022
7787ef2
Add --yjit-dump-insns test to Cirrus Arm workflow
maximecb Jul 15, 2022
c831989
Fix jumps (https://github.com/Shopify/ruby/pull/322)
kddnewton Jul 15, 2022
bf7277b
Update cirrus workflow
maximecb Jul 15, 2022
0da253e
Port print_int to the new backend (https://github.com/Shopify/ruby/pu…
kddnewton Jul 15, 2022
f9e24ca
Conditionals (https://github.com/Shopify/ruby/pull/323)
kddnewton Jul 15, 2022
e907aaa
ADR fixes for LeaLabel and calls
maximecb Jul 18, 2022
10d5003
AArch64 frames (https://github.com/Shopify/ruby/pull/324)
kddnewton Jul 19, 2022
fd97f8e
Use frame_setup() and frame_teardown()
maximecb Jul 19, 2022
db84d29
BLR instruction for AArch64 (https://github.com/Shopify/ruby/pull/325)
kddnewton Jul 19, 2022
f09fd03
Assert not the same register in AArch64
kddnewton Jul 19, 2022
b3cd7a9
Fix some of the codegen.rs tests (https://github.com/Shopify/ruby/pul…
noahgibbs Jul 19, 2022
c9484fe
Fix push/pop and frame setup/teardown with Kevin & Alan
maximecb Jul 19, 2022
4ae2c74
A lot of fixes coming from our pairing session (https://github.com/Sh…
kddnewton Jul 19, 2022
90137f5
Implement PosMarker instruction (https://github.com/Shopify/ruby/pull…
maximecb Jul 20, 2022
cbf7a7c
Fix dupn (https://github.com/Shopify/ruby/pull/330)
noahgibbs Jul 20, 2022
f5f58d8
Update disasm to work on ARM (https://github.com/Shopify/ruby/pull/331)
noahgibbs Jul 20, 2022
f833d75
Refactor YJIT branches to use PosMarker (https://github.com/Shopify/r…
maximecb Jul 20, 2022
8259813
Temporarily simplify code for emit_conditional_jump to fix a bug
maximecb Jul 20, 2022
8d2560f
Port over setlocal and getglobal
maximecb Jul 20, 2022
85872ee
Port over newrange
maximecb Jul 20, 2022
8605efd
Fix corrupted X29 causing segfault, thanks Alan!
maximecb Jul 21, 2022
b1dbc5f
Fix crash in newhash ccall
maximecb Jul 21, 2022
76b05ba
Better splitting for Op::Test on AArch64 (https://github.com/Shopify/…
kddnewton Jul 21, 2022
e9a2eff
Enable more btests in the CI workflows (https://github.com/Shopify/ru…
maximecb Jul 21, 2022
70e117d
Fixes (https://github.com/Shopify/ruby/pull/336)
kddnewton Jul 21, 2022
477c2df
Work on opt_lt, fix x86 backend bug in cmp()
maximecb Jul 21, 2022
e9f9b8f
Fix bug with opt_lt, csel on x86
maximecb Jul 22, 2022
b1ed4d9
Port and test duparray and splatarray (https://github.com/Shopify/rub…
noahgibbs Jul 22, 2022
7e22ec7
Clear the icache on arm
maximecb Jul 22, 2022
4024553
Add ifdef to clear cache
maximecb Jul 22, 2022
9630334
Enable more btests
maximecb Jul 22, 2022
f593b2c
Fixes for AArch64 (https://github.com/Shopify/ruby/pull/338)
kddnewton Jul 22, 2022
13e5b56
Fixes (https://github.com/Shopify/ruby/pull/340)
kddnewton Jul 22, 2022
133ad38
Fix CI workflows
maximecb Jul 22, 2022
813df1f
Add LiveReg IR instruction to fix stats leave exit code (https://gith…
XrXr Jul 22, 2022
e131b21
Test --yjit-stats in our CI workflows
maximecb Jul 22, 2022
8617bac
Fix IncrCounter on ARM
XrXr Jul 22, 2022
c9a947e
Port and test checkkeyword (https://github.com/Shopify/ruby/pull/339)
noahgibbs Jul 25, 2022
2d9b98f
Fix a bug in the x86 backend wrt large integer values, enable more tests
maximecb Jul 25, 2022
b2d255a
A64: Fix off by one in offset encoding for BL (https://github.com/Sho…
XrXr Jul 26, 2022
4b1ab00
Port the YJIT defined opcode; fix C_ARG_REGS (https://github.com/Shop…
noahgibbs Jul 27, 2022
6ab71a8
Port gen_checktype to the new IR assembler backend (https://github.co…
fresh-eggs Jul 27, 2022
869b0ba
Minor cleanups (https://github.com/Shopify/ruby/pull/345)
XrXr Jul 28, 2022
1446e22
Port setglobal to the new backend (https://github.com/Shopify/ruby/pu…
k0kubun Aug 1, 2022
a674b8d
Port class variable instructions (https://github.com/Shopify/ruby/pul…
k0kubun Aug 1, 2022
45da697
Push first pass at SSA IR sketch
maximecb Aug 1, 2022
16307ad
Port only ATTRSET of opt_send_without_block (https://github.com/Shopi…
k0kubun Aug 2, 2022
330c9e9
Port anytostring, intern, and toregexp (https://github.com/Shopify/ru…
k0kubun Aug 2, 2022
dea4238
Port gen_concatstring to new backend IR (https://github.com/Shopify/r…
fresh-eggs Aug 2, 2022
a75a6f7
Remove empty lines
maximecb Aug 2, 2022
0823260
Implement iterators and double-linked list for IR SSA
kddnewton Aug 2, 2022
ca68ccd
Fix C call reg alloc bug reported by Noah & Kokubun
maximecb Aug 2, 2022
9db2ca7
Add 1 more allocatable reg on arm
maximecb Aug 2, 2022
a95422a
Binary OR instruction for the IR (https://github.com/Shopify/ruby/pul…
kddnewton Aug 4, 2022
fe172aa
Convert getinstancevariable to new backend IR (https://github.com/Sh…
k0kubun Aug 4, 2022
24ddc07
Fix live_ranges idx calculation (https://github.com/Shopify/ruby/pull…
jhawthorn Aug 4, 2022
c91a44c
Fix forward_pass usage in arm backend following John's PR
maximecb Aug 4, 2022
4539c21
Port gen_send_cfunc to the new backend (https://github.com/Shopify/ru…
k0kubun Aug 4, 2022
ddee4d3
Opnd::Value fixes (https://github.com/Shopify/ruby/pull/354)
XrXr Aug 3, 2022
d63b3e4
Enable test_thread.rb on arm, now working
maximecb Aug 4, 2022
b024b18
Fix block invalidation with new backend. Enable more btests on x86 (h…
maximecb Aug 4, 2022
74527a7
Port send-only insns and write tests (https://github.com/Shopify/ruby…
k0kubun Aug 4, 2022
d131b41
Fix to float guard in jit_guard_known_klass to use the correct output…
noahgibbs Aug 5, 2022
e240372
Add Opnd::None error message to x86 backend as well
maximecb Aug 5, 2022
dcb6fc1
Port opt_mod to the new backend IR (https://github.com/Shopify/ruby/p…
k0kubun Aug 5, 2022
a55a3f8
Port opt_minus, opt_or, and opt_and to the new IR (https://github.com…
k0kubun Aug 5, 2022
7908eab
Port setivar to the new backend IR (https://github.com/Shopify/ruby/p…
k0kubun Aug 5, 2022
0a68091
x86 TEST should do a load for mem opnds first (https://github.com/Sho…
noahgibbs Aug 5, 2022
db22a56
Port gen_opt_str_freeze to new backend IR (https://github.com/Shopify…
fresh-eggs Aug 5, 2022
e06c86f
Port opt_str_uminus to new backend IR (https://github.com/Shopify/ru…
fresh-eggs Aug 5, 2022
2b85295
Port objtostring to the new backend (https://github.com/Shopify/ruby/…
k0kubun Aug 5, 2022
ffdd09e
Port opt_eq and opt_neq to the new backend (https://github.com/Shopif…
k0kubun Aug 5, 2022
2429635
Port send to the new backend and test it (https://github.com/Shopify/…
k0kubun Aug 5, 2022
8fffff5
More concise csel with Into
XrXr Aug 5, 2022
8278d72
Left and right shift for IR (https://github.com/Shopify/ruby/pull/374)
kddnewton Aug 5, 2022
46822ee
Enable btests now passing on arm (https://github.com/Shopify/ruby/pul…
maximecb Aug 5, 2022
726a451
Port invokebuiltin* insns to the new backend IR (https://github.com/S…
k0kubun Aug 8, 2022
a375784
Use new assembler to support global invalidation on A64
XrXr Aug 8, 2022
a5ea577
Update flags for data processing on ARM (https://github.com/Shopify/r…
kddnewton Aug 8, 2022
85d6d76
Enable test_insns.rb on arm
maximecb Aug 8, 2022
b8846dd
Load mem displacement when necessary on AArch64 (https://github.com/S…
kddnewton Aug 9, 2022
cd75065
Fix tests on yjit_backend_ir for AArch64 backend (https://github.com/…
kddnewton Aug 9, 2022
32d9eef
Enable test_literal.rb and test_ractor.rb on arm
maximecb Aug 9, 2022
668b99b
Port gen_send_iseq to the new backend IR (https://github.com/Shopify/…
k0kubun Aug 9, 2022
49c9f89
Port expandarray to the new backend IR (https://github.com/Shopify/ru…
k0kubun Aug 9, 2022
3f42028
Iterator (https://github.com/Shopify/ruby/pull/372)
kddnewton Aug 4, 2022
1cafb1a
Prefer asm.store over asm.mov (https://github.com/Shopify/ruby/pull/385)
k0kubun Aug 9, 2022
cad35fb
Try to run make -j in CI backend tests (https://github.com/Shopify/ru…
maximecb Aug 9, 2022
6b9cec7
Port cfunc lookup, plus simpler cfunc generators. (https://github.com…
noahgibbs Aug 10, 2022
8c45b8a
Update asm comments for gen_send_iseq
maximecb Aug 10, 2022
ca2afba
Port the remaining method types in opt_send_without_block (https://gi…
k0kubun Aug 10, 2022
e5969f8
Port invokesuper to the new backend IR (https://github.com/Shopify/ru…
k0kubun Aug 10, 2022
df84832
Port getblockparamproxy and getblockparam (https://github.com/Shopify…
k0kubun Aug 10, 2022
b54643d
Handle out of memory tests (https://github.com/Shopify/ruby/pull/393)
maximecb Aug 10, 2022
ee1697e
Port opt_aref and opt_aset to the new backend IR (https://github.com/…
k0kubun Aug 10, 2022
4d811d7
Fix code invalidation while OOM and OOM simulation (https://github.co…
XrXr Aug 10, 2022
7f4ab24
Op::Xor for backend IR (https://github.com/Shopify/ruby/pull/397)
kddnewton Aug 11, 2022
471de2a
Enable skipdata on Capstone to allow embedded data without early stop…
noahgibbs Aug 11, 2022
dca5e74
Fix test_rubyoptions.rb for arm64 (https://github.com/Shopify/ruby/pu…
k0kubun Aug 11, 2022
cb15886
Port opt_getinlinecache to the new backend (https://github.com/Shopif…
fresh-eggs Aug 11, 2022
c022a60
Fix bugs in gen_opt_getinlinecache
maximecb Aug 11, 2022
be730cd
AArch64 Ruby immediates (https://github.com/Shopify/ruby/pull/400)
kddnewton Aug 11, 2022
ff3f1d1
Optimize bitmask immediates (https://github.com/Shopify/ruby/pull/403)
kddnewton Aug 12, 2022
2f9df46
Use bindgen for old manual extern declarations (https://github.com/Sh…
XrXr Aug 15, 2022
5a76a15
YJIT: Implement concatarray in yjit (https://github.com/Shopify/ruby/…
wildmaples Aug 15, 2022
09c1211
Port jit_rb_str_concat to new backend, re-enable cfunc lookup (https:…
noahgibbs Aug 12, 2022
95dce1c
Temporarily disable rb_str_concat, add CI tests (https://github.com/S…
maximecb Aug 16, 2022
c38e911
Allow aarch64 to build YJIT
k0kubun Aug 16, 2022
1cf9f56
Fix issue with expandarray, add missing jl, enable tests (https://git…
maximecb Aug 17, 2022
b735eb5
Instruction builders for backend IR (https://github.com/Shopify/ruby/…
kddnewton Aug 17, 2022
d57a9f6
Build output operands explicitly (https://github.com/Shopify/ruby/pul…
kddnewton Aug 17, 2022
c70d147
Only check lowest bit for _Bool type (https://github.com/Shopify/ruby…
XrXr Aug 17, 2022
b00606e
Even more prep for instruction enum (https://github.com/Shopify/ruby/…
kddnewton Aug 17, 2022
e0e63b1
Fix a bus error on regenerate_branch (https://github.com/Shopify/ruby…
k0kubun Aug 17, 2022
a78bbef
Use VALUE for block_iseq (https://github.com/Shopify/ruby/pull/417)
k0kubun Aug 17, 2022
5114ddc
Avoid marking op_type on gen_defined (https://github.com/Shopify/ruby…
k0kubun Aug 18, 2022
3424595
Use VALUE for callinfos that are on the heap (https://github.com/Shop…
XrXr Aug 18, 2022
1c67e90
More work toward instruction enum (https://github.com/Shopify/ruby/pu…
kddnewton Aug 18, 2022
ea9ee31
A64 Linux reports aarach64 in RUBY_PLATFORM
XrXr Aug 18, 2022
f883aab
Instruction enum (https://github.com/Shopify/ruby/pull/423)
kddnewton Aug 18, 2022
d5fe9e1
Run test-all with RUBY_YJIT_ENABLE=1 on CI (https://github.com/Shopif…
k0kubun Aug 18, 2022
9328852
Better variable name, no must_use on ccall (https://github.com/Shopif…
kddnewton Aug 18, 2022
29bda0f
Use shorter syntax for the same pattern (https://github.com/Shopify/r…
XrXr Aug 18, 2022
93c5a5f
Fix and re-enable String to_s, << and unary plus (https://github.com/…
noahgibbs Aug 19, 2022
d433eb9
Run tests with --yjit-call-threshold=1 on arm64 (https://github.com/S…
k0kubun Aug 19, 2022
54c7bc6
Various AArch64 optimizations (https://github.com/Shopify/ruby/pull/433)
kddnewton Aug 23, 2022
def3ade
Add --yjit-dump-disasm to dump every compiled code (https://github.co…
k0kubun Aug 23, 2022
5ef048e
Update yjit.md
maximecb Aug 24, 2022
232e43f
Respect RUBY_TESTOPTS on test-all (https://github.com/Shopify/ruby/pu…
k0kubun Aug 25, 2022
4b7d388
Avoid randomizing the order of test-all on arm64 (https://github.com/…
k0kubun Aug 25, 2022
929a6a7
Remove ir_ssa.rs as we aren't using it and it's now outdated
maximecb Aug 26, 2022
44c6bcf
LDRH and STRH for AArch64 (https://github.com/Shopify/ruby/pull/438)
kddnewton Aug 26, 2022
c2e9253
Stop saying it's temp checks (https://github.com/Shopify/ruby/pull/441)
k0kubun Aug 26, 2022
29e0713
TBZ and TBNZ for AArch64 (https://github.com/Shopify/ruby/pull/434)
kddnewton Aug 26, 2022
46007b8
A64: Only clear icache when writing out new code (https://github.com/…
XrXr Aug 26, 2022
d694f32
Fixed width immediates (https://github.com/Shopify/ruby/pull/437)
kddnewton Aug 26, 2022
b5358a9
Update to ruby/mspec@37151a0
eregon Aug 29, 2022
1315c5a
Update to ruby/spec@b8a8240
eregon Aug 29, 2022
737402e
Skip a couple of chroot spec faillures
k0kubun Aug 29, 2022
ddca348
Check only symbol flag bits (#6301)
k0kubun Aug 30, 2022
d6acaa4
Undefine `ruby_debug_log` macro before the function definition
nobu Aug 30, 2022
b98653f
[rubygems/rubygems] Let `Dir.tmpdir` use the standard path
deivid-rodriguez Aug 30, 2022
497b5ee
Normalize the YJIT Cirrus workflow a little
k0kubun Aug 30, 2022
918a658
Run cargo test on Cirrus
k0kubun Aug 30, 2022
5dbc725
Skip linking rb_yjit_icache_invalidate on cargo test
k0kubun Aug 30, 2022
4a4daf0
Update .cirrus.yml
maximecb Aug 30, 2022
f4cdfff
* 2022-08-31 [ci skip]
matzbot Aug 30, 2022
221a523
Put a documentation about MJIT [ci skip]
k0kubun Aug 31, 2022
739380c
[ruby/net-protocol] Improve BufferedIO performance
byroot Aug 20, 2022
08c3d08
`ruby_init_setproctitle` declaration has moved to internal/missing.h
nobu Aug 31, 2022
dc66f72
Scripts under libexec may not be considered to be placed in bin
nobu Aug 31, 2022
22542a6
SCRIPTBINDIR is ok if it just exists [ci skip]
nobu Aug 31, 2022
9dc6065
Extract `update_coderange` macro
nobu Aug 30, 2022
576bdec
[Bug #18973] Promote US-ASCII to ASCII-8BIT when adding 8-bit char
nobu Aug 30, 2022
2b967cd
Let fake.rb allow newlines in expanded strings
nobu Aug 30, 2017
32a0591
Move macros from version.h to version.c
nobu Aug 30, 2017
be55b77
Better b.cond usage on AArch64 (#6305)
kddnewton Aug 31, 2022
036bb55
* 2022-09-01 [ci skip]
matzbot Aug 31, 2022
d41be1a
[DOC] Enhanced RDoc for Time (#6308)
BurdetteLamar Aug 31, 2022
811ca75
Remove -j option
nobu Aug 31, 2022
a0d2320
Add a document about YJIT's Rust version
k0kubun Sep 1, 2022
ce70cb6
It was a relative path [ci skip]
k0kubun Sep 1, 2022
941e9be
[ruby/reline] Remove loose operation in Dialog#render_each_dialog
Maumagnaguagno Feb 22, 2022
aded697
[rubygems/rubygems] Support non gnu libc arm-linux-eabi platforms
ntkme Aug 31, 2022
aa5c1a0
[rubygems/rubygems] Support non gnu libc arm-linux-eabi platforms
ntkme Aug 31, 2022
f229b36
Fix test fail with assert_ractor outside of ruby/ruby repo
hsbt Sep 1, 2022
59e8569
[ruby/reline] Support dumb terminal
nobu Sep 1, 2022
f3becd7
Ignore test libraries like assert_ractor from did_you_mean
hsbt Sep 1, 2022
4e2541b
Merge from upstream
chrisseaton Sep 1, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ skip_commits:
- doc/*
- '**/*.md'
- '**/*.rdoc'
- '**/.document'
environment:
ruby_version: "24-%Platform%"
zlib_version: "1.2.12"
Expand Down
71 changes: 70 additions & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ env:

task:
name: Arm64 Graviton2 / $CC
skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}')"
skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}', '.document')"
arm_container:
# We use the arm64 images at https://github.com/ruby/ruby-ci-image/pkgs/container/ruby-ci-image .
image: ghcr.io/ruby/ruby-ci-image:$CC
Expand Down Expand Up @@ -62,3 +62,72 @@ task:
make_test-tool_script: make test-tool
make_test-all_script: make test-all
make_test-spec_script: make test-spec

# The following is to test YJIT on ARM64 CPUs available on Cirrus CI
yjit_task:
name: Arm64 Graviton2 / $CC YJIT
auto_cancellation: $CIRRUS_BRANCH != 'master'
skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}')"
arm_container:
# We use the arm64 images at https://github.com/ruby/ruby-ci-image/pkgs/container/ruby-ci-image .
image: ghcr.io/ruby/ruby-ci-image:$CC
# Define the used cpu core in each matrix task. We can use total 16 cpu
# cores in entire matrix. [cpu] = [total cpu: 16] / [number of tasks]
cpu: 8
# We can request maximum 4 GB per cpu.
# [memory per task] = [memory per cpu: 4 GB] * [cpu]
memory: 32G
env:
CIRRUS_CLONE_DEPTH: 50
optflags: '-O1'
debugflags: '-ggdb3'
RUBY_PREFIX: /tmp/ruby-prefix
RUBY_DEBUG: ci rgengc
RUBY_TESTOPTS: >-
-q
--color=always
--tty=no
matrix:
CC: clang-12
CC: gcc-11
timeout_in: 90m
id_script: id
set_env_script:
# Set `GNUMAKEFLAGS`, because the flags are GNU make specific. Note using
# the `make` environment variable used in compilers.yml causes some rubygems
# tests to fail.
# https://github.com/rubygems/rubygems/issues/4921
- echo "GNUMAKEFLAGS=-s -j$((1 + $CIRRUS_CPU))" >> $CIRRUS_ENV
print_env_script:
- echo "GNUMAKEFLAGS=$GNUMAKEFLAGS"
# Arm containers are executed in AWS's EKS, and it's not yet supporting IPv6
# See https://github.com/aws/containers-roadmap/issues/835
disable_ipv6_script: sudo ./tool/disable_ipv6.sh
install_rust_script:
- sudo apt-get update -y
- sudo apt-get install -y curl
- "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"
autogen_script: ./autogen.sh
configure_script: >-
source $HOME/.cargo/env && ./configure -C
--enable-debug-env
--disable-install-doc
--with-ext=-test-/cxxanyargs,+
--prefix="$RUBY_PREFIX"
--enable-yjit=dev
make_miniruby_script: source $HOME/.cargo/env && make miniruby
make_bindgen_script: |
if [[ "$CC" = "clang-12" ]]; then
source $HOME/.cargo/env && make yjit-bindgen
else
echo "only running bindgen on clang image"
fi
boot_miniruby_script: RUST_BACKTRACE=1 ./miniruby --yjit-call-threshold=1 -e0
test_dump_insns_script: RUST_BACKTRACE=1 ./miniruby --yjit-call-threshold=1 --yjit-dump-insns -e0
output_stats_script: RUST_BACKTRACE=1 ./miniruby --yjit-call-threshold=1 --yjit-stats -e0
full_build_script: source $HOME/.cargo/env && make
cargo_test_script: source $HOME/.cargo/env && cd yjit && cargo test
make_test_script: source $HOME/.cargo/env && make test RUN_OPTS="--yjit-call-threshold=1 --yjit-verify-ctx"
make_test_all_script: source $HOME/.cargo/env && make test-all RUN_OPTS="--yjit-call-threshold=1" TESTOPTS="$RUBY_TESTOPTS"' --test-order=alpha --name=!/TestGCCompact/'
test_gc_compact_script: source $HOME/.cargo/env && make test-all RUN_OPTS="--yjit-call-threshold=1" TESTS="test/ruby/test_gc_compact.rb"
make_test_spec_script: source $HOME/.cargo/env && make test-spec RUN_OPTS="--yjit-call-threshold=1"
10 changes: 5 additions & 5 deletions .gdbinit
Original file line number Diff line number Diff line change
Expand Up @@ -544,13 +544,13 @@ end

define rp_class
printf "(struct RClass *) %p", (void*)$arg0
if ((struct RClass *)($arg0))->ptr.origin_ != $arg0
printf " -> %p", ((struct RClass *)($arg0))->ptr.origin_
if RCLASS_ORIGIN((struct RClass *)($arg0)) != $arg0
printf " -> %p", RCLASS_ORIGIN((struct RClass *)($arg0))
end
printf "\n"
rb_classname $arg0
print/x *(struct RClass *)($arg0)
print *((struct RClass *)($arg0))->ptr
print *RCLASS_EXT((struct RClass *)($arg0))
end
document rp_class
Print the content of a Class/Module.
Expand Down Expand Up @@ -979,8 +979,8 @@ end

define rb_ps_vm
print $ps_vm = (rb_vm_t*)$arg0
set $ps_thread_ln = $ps_vm->living_threads.n.next
set $ps_thread_ln_last = $ps_vm->living_threads.n.prev
set $ps_thread_ln = $ps_vm->ractor.main_ractor.threads.set.n.next
set $ps_thread_ln_last = $ps_vm->ractor.main_ractor.threads.set.n.prev
while 1
set $ps_thread_th = (rb_thread_t *)$ps_thread_ln
set $ps_thread = (VALUE)($ps_thread_th->self)
Expand Down
3 changes: 3 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ d7ffd3fea402239b16833cc434404a7af82d44f3
f28287d34c03f472ffe90ea262bdde9affd4b965
0d842fecb4f75ab3b1d4097ebdb8e88f51558041
4ba2c66761d6a293abdfba409241d31063cefd62

# Make benchmark indentation consistent
fc4acf8cae82e5196186d3278d831f2438479d91
12 changes: 6 additions & 6 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# Code owners will be automatically tagged as reviewers when a pull request is opened

# YJIT sources and tests
yjit* @maximecb @xrxr @tenderlove
yjit/* @maximecb @xrxr @tenderlove
doc/yjit/* @maximecb @xrxr @tenderlove
bootstraptest/test_yjit* @maximecb @xrxr @tenderlove
test/ruby/test_yjit* @maximecb @xrxr @tenderlove
.github/workflows/yjit* @maximecb @xrxr @tenderlove
yjit* @maximecb @xrxr @tenderlove @k0kubun
yjit/* @maximecb @xrxr @tenderlove @k0kubun
doc/yjit/* @maximecb @xrxr @tenderlove @k0kubun
bootstraptest/test_yjit* @maximecb @xrxr @tenderlove @k0kubun
test/ruby/test_yjit* @maximecb @xrxr @tenderlove @k0kubun
.github/workflows/yjit* @maximecb @xrxr @tenderlove @k0kubun
2 changes: 2 additions & 0 deletions .github/workflows/check_dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
schedule:
- cron: '0 12 * * 4'

Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down Expand Up @@ -147,6 +149,7 @@ jobs:
- { name: disable-dln, env: { append_configure: '--disable-dln' } }
- { name: enable-mkmf-verbose, env: { append_configure: '--enable-mkmf-verbose' } }
- { name: disable-rubygems, env: { append_configure: '--disable-rubygems' } }
- { name: RUBY_DEVEL, env: { append_configure: '--enable-devel' } }

- { name: OPT_THREADED_CODE=1, env: { cppflags: '-DOPT_THREADED_CODE=1' } }
- { name: OPT_THREADED_CODE=2, env: { cppflags: '-DOPT_THREADED_CODE=2' } }
Expand Down Expand Up @@ -254,6 +257,8 @@ jobs:
- run: make test-all TESTS='-- ruby -ext-'
if: ${{ matrix.entry.check }}
- run: make test-spec
env:
CHECK_LEAKS: true
if: ${{ matrix.entry.check }}
- run: make test-annocheck
if: ${{ matrix.entry.check && endsWith(matrix.entry.name, 'annocheck') }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/mingw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/mjit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/spec_guards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down Expand Up @@ -38,6 +40,8 @@ jobs:
- run: gem install webrick
- run: ruby ../mspec/bin/mspec
working-directory: spec/ruby
env:
CHECK_LEAKS: true
- uses: k0kubun/[email protected]
with:
payload: |
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand All @@ -19,10 +21,9 @@ jobs:
make:
strategy:
matrix:
test_task: ["check", "test-bundler-parallel", "test-bundled-gems"]
test_task: ["check", "test-syntax-suggest", "test-bundler-parallel", "test-bundled-gems"]
os:
- ubuntu-20.04
# - ubuntu-18.04
configure: ["", "cppflags=-DRUBY_DEBUG"]
include:
- test_task: "check"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down Expand Up @@ -105,6 +107,8 @@ jobs:
set | C:\msys64\usr\bin\sort > new.env
C:\msys64\usr\bin\comm -13 old.env new.env >> %GITHUB_ENV%
del *.env
- name: compiler version
run: cl
- name: link libraries
run: |
for %%I in (C:\vcpkg\installed\x64-windows\bin\*.dll) do (
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/yjit-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ on:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**.md'
- '**.rdoc'
- '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,9 @@ lcov*.info
/lib/ruby/[1-9]*.*
/lib/ruby/vendor_ruby

# /misc/
/misc/**/__pycache__

# /spec/bundler
/.rspec_status

Expand Down
Loading