Skip to content
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

run Miri tests on CI #411

Merged
merged 1 commit into from
Apr 6, 2024
Merged

run Miri tests on CI #411

merged 1 commit into from
Apr 6, 2024

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Apr 6, 2024

This is basically the portable-simd version of rust-lang/rust#123506. Miri supports all the intrinsics now (as far as I know) and this would let us catch regressions before they enter the tree, rather having to chase them when https://github.com/rust-lang/miri-test-libstd/ fails.

If you add/change an intrinsic in the future, there are several options -- do the Miri support together with the codegen support (which anyway has to land before anything can land here), or temporarily disable some tests under Miri, or temporarily disable Miri entirely. I'll leave that to you. I hope this will be fairly rare. :)

Just enabling Miri will likely be too slow, this takes ~45 minutes. I think I'll move the 4-lane tests to cfg(not(miri)), there's not really any point in testing many different lane counts as Miri implements those as just a loop anyway.

@RalfJung
Copy link
Member Author

RalfJung commented Apr 6, 2024

Looks like CI is broken on latest nightly. (Pinning the nightly instead of always using the latest would avoid that. Works pretty well for us in Miri. :)

@calebzulawski
Copy link
Member

Looks good to me, thanks! I think you're right, I should pin the nightly version.

@calebzulawski calebzulawski merged commit 48d411b into rust-lang:master Apr 6, 2024
5 of 67 checks passed
@RalfJung
Copy link
Member Author

RalfJung commented Apr 7, 2024

Just enabling Miri will likely be too slow, this takes ~45 minutes. I think I'll move the 4-lane tests to cfg(not(miri))

I had not done this part yet, so this will probably be by far the slowest CI job now. I just can't test that when CI is broken.

I think you're right, I should pin the nightly version.

FWIW in Miri we also have

  • a nightly cron job that checks whether CI still works with latest nightly, so that we do learn about breakage but it doesn't block developments. Failures are reported to Zulip.
  • if the nightly cron job fails, a ./miri rustc-pull sync PR is automatically created to import the latest changes from the rustc repo and update the pinned nightly.

@RalfJung RalfJung deleted the miri branch April 7, 2024 05:38
@RalfJung
Copy link
Member Author

RalfJung commented Apr 8, 2024

This probably just needs a rustc-pull to fix CI, as the renames have been already handled in the rustc repo.

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.

2 participants