Skip to content

Update stdsimd #58675

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 1 commit into from
Feb 26, 2019
Merged

Update stdsimd #58675

merged 1 commit into from
Feb 26, 2019

Conversation

gnzlbg
Copy link
Contributor

@gnzlbg gnzlbg commented Feb 23, 2019

This updates stdsimd to a Rust2015 / Rust2018 compatible version. Once this is merged it should be possible to migrate libcore and libstd to Rust2018. Once that happens, we can just require the 2018 edition in stdsimd.

@rust-highfive
Copy link
Contributor

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive
Copy link
Contributor

⚠️ Warning ⚠️

  • These commits modify submodules.

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 23, 2019
@rust-highfive
Copy link
Contributor

r? @nikomatsakis

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive
Copy link
Contributor

⚠️ Warning ⚠️

  • These commits modify submodules.

@alexcrichton
Copy link
Member

@bors: r+ p=1

higher priority b/c this is likely to bounce a few times and it'd be good to weed that out

@bors
Copy link
Collaborator

bors commented Feb 23, 2019

📌 Commit 5490797732b3596908b1778e98fcb2e8ec0f483b has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 23, 2019
@gnzlbg gnzlbg mentioned this pull request Feb 23, 2019
@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 23, 2019

higher priority b/c this is likely to bounce a few times and it'd be good to weed that out

So I tried it locally, but not for arm / aarch64 / etc. and the recent ACLE changes might still need some ironing.

@rust-highfive
Copy link
Contributor

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:004b2493:start=1550942339849994916,finish=1550942340792632538,duration=942637622
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[00:57:45]  Documenting core v0.0.0 (/checkout/src/libcore)
[00:57:48] error[E0432]: unresolved import `super::acle`
[00:57:48]   --> src/libcore/../stdsimd/crates/core_arch/src/aarch64/mod.rs:21:16
[00:57:48]    |
[00:57:48] 21 | pub use super::acle::*;
[00:57:48]    |                ^^^^ could not find `acle` in `super`
[00:57:48] error[E0432]: unresolved import `crate::core_arch::acle`
[00:57:48]   --> src/libcore/../stdsimd/crates/core_arch/src/arm/mod.rs:37:27
[00:57:48]    |
[00:57:48]    |
[00:57:48] 37 | pub use crate::core_arch::acle::*;
[00:57:48]    |                           ^^^^ could not find `acle` in `core_arch`
[00:57:56] error: Compilation failed, aborting rustdoc
[00:57:56] 
[00:57:57] error: Could not document `core`.
[00:57:57] 
[00:57:57] 
[00:57:57] Caused by:
[00:57:57]   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustdoc --crate-name core src/libcore/lib.rs --color always --target x86_64-unknown-linux-gnu -o /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/doc --markdown-css rust.css --markdown-no-toc --generate-redirect-pages --index-page /checkout/src/doc/index.md -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/release/deps` (exit code: 1)
[00:57:57] 
[00:57:57] 
[00:57:57] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustdoc" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "-Z" "unstable-options" "-p" "core" "--" "--markdown-css" "rust.css" "--markdown-no-toc" "--generate-redirect-pages" "--index-page" "/checkout/src/doc/index.md"
[00:57:57] 
[00:57:57] 
[00:57:57] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap doc
[00:57:57] Build completed unsuccessfully in 0:05:48

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 23, 2019

So I can't reproduce this locally, I get a SIGSEV trying to build the docs.

@bors: r-

@bors
Copy link
Collaborator

bors commented Feb 23, 2019

@gnzlbg: 🔑 Insufficient privileges: Not in reviewers

@mati865
Copy link
Contributor

mati865 commented Feb 23, 2019

@gnzlbg you can try with Docker image that failed on Travis.
In the Rust checkout run:

# depending on system configuration it may require `sudo`
./src/ci/docker/run.sh x86_64-gnu-llvm-6.0 

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 23, 2019

Do they run on macos? (I have docker installed)

@mati865
Copy link
Contributor

mati865 commented Feb 24, 2019

I don't have Mac and I don't know how Docker works there (it allows running Linux via VM?).
If other Linux based Docker images work then this one should be good.

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 24, 2019

@QuietMisdreavus i've pushed a fix that might cause the aarch64 to contain docs of arm ACLE intrinsics and vice-versa, i don't know the best way to fix that.

Basically, the arm and aarch64 docs include the ACLE docs, where ACLE has some intrinsics that are only for arm, and some for aarch64, and some for both. When compiling all targets with --cfg dox, both modules include all of the acle module. AFAICT there is no way to state "this submodule should only include docs for items defined for target X". ACLE itself is a mess of cfgs for the different variants of arm and aarch64: https://github.com/rust-lang-nursery/stdsimd/tree/master/crates/core_arch/src/acle

One could manually import everything from acle manually into the arm and aarch64 submodules, but ACLE is such a mess that this is, at this moment, not really feasible. Maybe when ACLE is fully implemented, we can do this once.

cc @alexcrichton @Centril this should be ready2go

This was referenced Feb 24, 2019
@alexcrichton
Copy link
Member

@bors: r+

@bors
Copy link
Collaborator

bors commented Feb 25, 2019

📌 Commit 2cf6e91 has been approved by alexcrichton

@Centril
Copy link
Contributor

Centril commented Feb 25, 2019

Unblocks other work on edition migration; thus: @bors p=5

@bors
Copy link
Collaborator

bors commented Feb 25, 2019

⌛ Testing commit 2cf6e91 with merge fa56215...

bors added a commit that referenced this pull request Feb 25, 2019
Update stdsimd

This updates stdsimd to a Rust2015 / Rust2018 compatible version. Once this is merged it should be possible to migrate libcore and libstd to Rust2018. Once that happens, we can just require the 2018 edition in stdsimd.
@bors
Copy link
Collaborator

bors commented Feb 25, 2019

💔 Test failed - checks-travis

@rust-highfive
Copy link
Contributor

The job x86_64-gnu-tools of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[01:55:38] 
[01:55:38] failures:
[01:55:38] 
[01:55:38] ---- client_find_definitions stdout ----
[01:55:38] Sending: Object({"id": Number(0), "jsonrpc": String("2.0"), "method": String("initialize"), "params": Object({"capabilities": Object({}), "initializationOptions": Object({"settings": Object({"rust": Object({"racer_completion": Bool(false)})})}), "processId": Null, "rootPath": String("/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/rlsit/t5/simple_workspace"), "rootUri": Null})})
[01:55:38] Processing message: Object({"id": Number(0), "jsonrpc": String("2.0"), "result": Object({"capabilities": Object({"codeActionProvider": Bool(true), "codeLensProvider": Object({"resolveProvider": Bool(false)}), "completionProvider": Object({"resolveProvider": Bool(true), "triggerCharacters": Array([String("."), String(":")])}), "definitionProvider": Bool(true), "documentFormattingProvider": Bool(true), "documentHighlightProvider": Bool(true), "documentRangeFormattingProvider": Bool(false), "documentSymbolProvider": Bool(true), "executeCommandProvider": Object({"commands": Array([String("rls.applySuggestion-2324"), String("rls.deglobImports-2324")])}), "hoverProvider": Bool(true), "implementationProvider": Bool(true), "referencesProvider": Bool(true), "renameProvider": Bool(true), "textDocumentSync": Number(2), "workspaceSymbolProvider": Bool(true)})})})
[01:55:38] Processing message: Object({"jsonrpc": String("2.0"), "method": String("window/progress"), "params": Object({"id": String("progress_1"), "title": String("Building")})})
[01:55:38] Processing message: Object({"jsonrpc": String("2.0"), "method": String("window/progress"), "params": Object({"id": String("progress_1"), "message": String("bar"), "title": String("Building")})})
[01:55:38] Processing message: Object({"jsonrpc": String("2.0"), "method": String("window/progress"), "params": Object({"id": String("progress_1"), "message": String("bar cfg(test)"), "title": String("Building")})})
[01:55:38] Processing message: Object({"jsonrpc": String("2.0"), "method": String("window/progress"), "params": Object({"done": Bool(true), "id": String("progress_1"), "title": String("Building")})})
[01:55:38] Processing message: Object({"jsonrpc": String("2.0"), "method": String("window/progress"), "params": Object({"id": String("progress_0"), "title": String("Indexing")})})
[01:55:38] Processing message: Object({"jsonrpc": String("2.0"), "method": String("window/progress"), "params": Object({"done": Bool(true), "id": String("progress_0"), "title": String("Indexing")})})
[01:55:38] Processing message: Object({"id": Number(100), "jsonrpc": String("2.0"), "result": Array([])})
[01:55:38] Sending: Object({"id": Number(101), "jsonrpc": String("2.0"), "method": String("textDocument/definition"), "params": Object({"position": Object({"character": Number(1), "line": Number(1)}), "textDocument": Object({"uri": String("file:///checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/rlsit/t5/simple_workspace/src/main.rs")})})})
[01:55:38] Processing message: Object({"id": Number(101), "jsonrpc": String("2.0"), "result": Array([])})
[01:55:38] Sending: Object({"id": Number(102), "jsonrpc": String("2.0"), "method": String("textDocument/definition"), "params": Object({"position": Object({"character": Number(2), "line": Number(1)}), "textDocument": Object({"uri": String("file:///checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/rlsit/t5/simple_workspace/src/main.rs")})})})
---
[01:55:38] Sending: Object({"id": Number(1202), "jsonrpc": String("2.0"), "method": String("textDocument/definition"), "params": Object({"position": Object({"character": Number(2), "line": Number(12)}), "textDocument": Object({"uri": String("file:///checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/rlsit/t5/simple_workspace/src/main.rs")})})})
[01:55:38] Processing message: Object({"id": Number(1202), "jsonrpc": String("2.0"), "result": Array([])})
[01:55:38] Sending: Object({"id": Number(1203), "jsonrpc": String("2.0"), "method": String("textDocument/definition"), "params": Object({"position": Object({"character": Number(3), "line": Number(12)}), "textDocument": Object({"uri": String("file:///checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools/x86_64-unknown-linux-gnu/rlsit/t5/simple_workspace/src/main.rs")})})})
[01:55:38] Processing message: Object({"id": Number(1203), "jsonrpc": String("2.0"), "result": Array([])})
[01:55:38] Sending: Object({"id": Number(99999), "jsonrpc": String("2.0"), "method": String("shutdown"), "params": Null})
[01:55:38] Processing message: Object({"id": Number(99999), "jsonrpc": String("2.0"), "result": Null})
[01:55:38] Sending: Object({"jsonrpc": String("2.0"), "method": String("exit"), "params": Null})
[01:55:38] thread 'client_find_definitions' panicked at 'Got different amount of completions than expected: 24 vs. 25: [
[01:55:38]         1,
[01:55:38]         16,
[01:55:38]         [
[01:55:38]             Range {
---
travis_time:end:0ff0a2a8:start=1551126201421048682,finish=1551126201453381257,duration=32332575
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:09ba9f9c
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:049f56a0
travis_time:start:049f56a0
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:02f27fba
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 25, 2019
@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 26, 2019

@Centril something failed, I don't know what or why, but it appears spurious.

@QuietMisdreavus
Copy link
Member

[02:03:02] 12 command(s) did not execute successfully:
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/c-tips/index.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/collections/index.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/concurrency/index.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/interoperability/c-with-rust.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/peripherals/singletons.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/start/exceptions.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/start/hardware.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/start/panicking.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/start/qemu.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/start/registers.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/bootstrap/debug/rustdoc" "--test" "/checkout/src/doc/embedded-book/src/start/semihosting.md" "--test-args" ""
[02:03:02] 
[02:03:02]   - "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "test" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--manifest-path" "/checkout/src/tools/rls/Cargo.toml"

Looks like the embedded book and the RLS failed to pass tests? Not totally sure the connection, but the test output logs are farther up the log.

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 26, 2019

The raw logs are a pain to read:

[00:07:37] �[0m�[0m�[1m�[32m ...

And there are 305 occurences of error in the raw log. I went through most of them (so many its hard to tell if I missed any or not), and haven't found anything related to stdsimd =/

Looking for test result: FAIL reveals only 12 issues, but they also seem unrelated to stdsimd.

Does anybody have an idea about what's going on? Maybe this is just a spurious failure.

@mati865
Copy link
Contributor

mati865 commented Feb 26, 2019

embedded book fails all over the place like here:

[01:22:48] ---- /checkout/src/doc/embedded-book/src/c-tips/index.md - Tips_for_embedded_C_developers::Iterators_vs_Array_Access (line 183) stdout ----
[01:22:48] error[E0425]: cannot find function `process` in this scope
[01:22:48]  --> /checkout/src/doc/embedded-book/src/c-tips/index.md:186:5
[01:22:48]   |
[01:22:48] 5 |     process(*element);
[01:22:48]   |     ^^^^^^^ not found in this scope
[01:22:48] 
[01:22:48] thread '/checkout/src/doc/embedded-book/src/c-tips/index.md - Tips_for_embedded_C_developers::Iterators_vs_Array_Access (line 183)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:351:13
[01:22:48] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:22:48] 
[01:22:48] ---- /checkout/src/doc/embedded-book/src/c-tips/index.md - Tips_for_embedded_C_developers::Preprocessor::Compile_Time_Sizes_and_Computation (line 78) stdout ----
[01:22:48] error: incorrect close delimiter: `]`
[01:22:48]  --> /checkout/src/doc/embedded-book/src/c-tips/index.md:82:38
[01:22:48]   |
[01:22:48] 6 |     #[cfg(not(feature="use_more_ram")]
[01:22:48]   |      -   -                           ^ incorrect close delimiter
[01:22:48]   |      |   |
[01:22:48]   |      |   un-closed delimiter
[01:22:48]   |      close delimiter possibly meant for this
[01:22:48] 
[01:22:48] thread '/checkout/src/doc/embedded-book/src/c-tips/index.md - Tips_for_embedded_C_developers::Preprocessor::Compile_Time_Sizes_and_Computation (line 78)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:351:13
[01:22:48] 
[01:22:48] ---- /checkout/src/doc/embedded-book/src/c-tips/index.md - Tips_for_embedded_C_developers::Volatile_Access (line 262) stdout ----
[01:22:48] error[E0658]: The attribute `interrupt` is currently unknown to the compiler and may have meaning added to it in the future (see issue #29642)
[01:22:48]  --> /checkout/src/doc/embedded-book/src/c-tips/index.md:265:3
[01:22:48]   |
[01:22:48] 5 | #[interrupt]
[01:22:48]   |   ^^^^^^^^^
[01:22:48]   |
[01:22:48]   = help: add #![feature(custom_attribute)] to the crate attributes to enable
[01:22:48] 
[01:22:48] error[E0425]: cannot find function `run_task` in this scope
[01:22:48]   --> /checkout/src/doc/embedded-book/src/c-tips/index.md:280:9
[01:22:48]    |
[01:22:48] 20 |         run_task();
[01:22:48]    |         ^^^^^^^^ not found in this scope
[01:22:48] 
[01:22:48] thread '/checkout/src/doc/embedded-book/src/c-tips/index.md - Tips_for_embedded_C_developers::Volatile_Access (line 262)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:351:13
[01:22:48] 

I don't want to post RLS error here because it's huge and spurious.

Neither or them should be affected by this PR.

@gnzlbg
Copy link
Contributor Author

gnzlbg commented Feb 26, 2019

@Centril @alexcrichton can we give this another try ?

@alexcrichton
Copy link
Member

@bors: r+ delegate+

@bors
Copy link
Collaborator

bors commented Feb 26, 2019

✌️ @gnzlbg can now approve this pull request

@bors
Copy link
Collaborator

bors commented Feb 26, 2019

💡 This pull request was already approved, no need to approve it again.

  • This pull request previously failed. You should add more commits to fix the bug, or use retry to trigger a build again.
  • There's another pull request that is currently being tested, blocking this pull request: [beta] Prepare beta 1.34.0 #58747

@bors
Copy link
Collaborator

bors commented Feb 26, 2019

📌 Commit 2cf6e91 has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 26, 2019
@bors
Copy link
Collaborator

bors commented Feb 26, 2019

⌛ Testing commit 2cf6e91 with merge 02c4c28...

bors added a commit that referenced this pull request Feb 26, 2019
Update stdsimd

This updates stdsimd to a Rust2015 / Rust2018 compatible version. Once this is merged it should be possible to migrate libcore and libstd to Rust2018. Once that happens, we can just require the 2018 edition in stdsimd.
@bors
Copy link
Collaborator

bors commented Feb 26, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: alexcrichton
Pushing 02c4c28 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Feb 26, 2019
@bors bors merged commit 2cf6e91 into rust-lang:master Feb 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants