Skip to content

ZJIT: Run against all tests #13950

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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

st0012
Copy link
Member

@st0012 st0012 commented Jul 18, 2025

  • make zjit-test-all now runs all test under /test, which includes several default gems' tests
  • Some additional exclusions have been added to /test/.excludes-zjit/
  • Since now zjit-test-all takes quite a while, I think we can run zjit-check instead of zjit-test on CI to get a faster feedback, even tho test_zjit.rb will be run twice (another time in zjit-test-all)

@st0012 st0012 force-pushed the zjit-expand-test-coverage branch 2 times, most recently from de1124a to a056a5a Compare July 18, 2025 17:07
@st0012 st0012 changed the title ZJIT: Test against all tests under /test ZJIT: Run against all tests Jul 18, 2025
@st0012 st0012 force-pushed the zjit-expand-test-coverage branch from a056a5a to 5fb6475 Compare July 18, 2025 17:18
@st0012 st0012 marked this pull request as ready for review July 18, 2025 17:28
@matzbot matzbot requested a review from a team July 18, 2025 17:28
@tekknolagi
Copy link
Contributor

Can you explain the YAML changes please? I'm not sure the current description clears it up for me. There are too many suites and commands for me to keep track of.

@st0012
Copy link
Member Author

st0012 commented Jul 18, 2025

zjit-test runs ZJIT's Rust tests. zjit-check runs both the Rust tests and test_zjit.rb.
So currently we have one job running ZJIT Rust tests, and let zjit-test-all run all Ruby tests, including test_zjit.rb.
After the change, one job will run both ZJIT Rust tests and test_zjit.rb, and zjit-test-all would still run test_zjit.rb but I think that's fine.

@st0012 st0012 force-pushed the zjit-expand-test-coverage branch from 5fb6475 to 3a555cf Compare July 19, 2025 22:01
@st0012 st0012 force-pushed the zjit-expand-test-coverage branch from 3a555cf to 688dbfc Compare July 21, 2025 14:19
@@ -102,6 +102,10 @@ fn gen_iseq_entry_point(iseq: IseqPtr) -> *const u8 {
let cb = ZJITState::get_code_block();
let code_ptr = gen_iseq_entry_point_body(cb, iseq);

// REMOVE ME
// Just to test if the crash is related to write barriers
unsafe { rb_gc_writebarrier_remember(iseq.into()) };
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was another one, too, somewhere else in this file

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think in that commit the other change is unrelated:

-    asm.cmp(val, Opnd::UImm(expected.into()));
+    asm.cmp(val, Opnd::Value(expected));

which has also been shipped in #13935

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I mean there was another call to remember

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked out back to the old commits, and the other 2 rb_gc_writebarrier_remember we added in pairing later became part of append_gc_offsets.
The other one in profile.rs was changed into rb_gc_writebarrier in #13935

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy