-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Turn stdarch
into a Josh subtree
#141899
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
Turn stdarch
into a Josh subtree
#141899
Conversation
This is to combat the spurious CI failures in emulated run. Also helps with updatability and compatibility - it will work even if Intel changes the link
This commit fixes an issue where simd shift intrinsic in LLVM are undefined behavior if the shift amount is larger than the bit width of the lane. While in WebAssembly the corresponding instructions are defined as masking out the upper bits we need to represent that explicitly in LLVM IR to ensure that the semantics remain defined. cc rust-lang#137941
I have no idea what would be going on here. Maybe you can replicate it with The problems I had with builtins were that (1) it didn't like that compiler-builtins was showing up in the graph both via crates.io and via a local path, and (2) that it was a cyclic dependency because Unfortunately I don't think this applies here, but maybe it's worth testing with |
It's not necessarily different, the new thing is that we now have a bootstrap test that tests "core_arch" from outside of the library workspace, which causes the issue. Thanks for the hints, I'll investigate. |
I also don't understand why it can't find the package on crates.io, when it clearly exists there (https://crates.io/crates/rustc-std-workspace-alloc). |
From the rla snip it looks like it's run with |
I haven't been able to reproduce this locally, even via doing the same thing as This might take a while to debug, and once stdarch is actually in-tree, we might potentially want to change how it interacts with the library workspace anyway, similar to compiler-builtins. @Amanieu Would you mind if this PR only ported stdarch to a subtree, and the bootstrap integration was kept for a follow-up PR? |
Yes I'm happy to defer that to a later PR. |
Ok, removed the last commit for now. @bors r=Amanieu |
@bors p=5 |
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
@bors retry Seems like short-ice might be flaky on Windows? |
cc @dpaoliello |
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing bc4376f (parent) -> 1e83852 (this PR) Test differencesNo test diffs found Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 1e838527f18cd24c81547ce6fbef6815032a80a7 --output-dir test-dashboard And then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
In a similar vein as #141229, this PR makes the
stdarch
repository a Josh subtree (it was previously a submodule). The initial commit ofstdarch
upon this is based is5a7342fc16b208b1b16624e886937ed8509a6506
, which is the previous commit SHA of thestdarch
submodule. The sync was performed according to https://hackmd.io/7pOuxnkdQDaL1Y1FQr65xg.This was decided in rust-lang/stdarch#1655.
Test pull PR on my fork: Kobzol/stdarch#1
Test push PR on my fork: Kobzol#59
I plan to use the same Rust (miri-inspired) tooling that we use for
rustc-dev-guide
to enable pulls/pushes on stdarch.Note that this repository currently doesn't have any stdarch-specific tests, so before that, the subtree should only be modified through this repository only when dealing with changes that contain "cyclical dependencies" between stdarch and rustc. The long term vision is to integrate stdarch into rust-lang/rust completely.
CC @Amanieu
try-job: aarch64-apple
try-job: aarch64-gnu
try-job:
x86_64-msvc-*
try-job: x86_64-gnu
try-job: x86_64-gnu-aux