Skip to content

Update stdsimd #58579

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

Closed
wants to merge 1 commit into from
Closed

Update stdsimd #58579

wants to merge 1 commit into from

Conversation

taiki-e
Copy link
Member

@taiki-e taiki-e commented Feb 19, 2019

r? @gnzlbg

@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:09fa544d:start=1550596811992231198,finish=1550596813592030955,duration=1599799757
$ 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
---
[01:07:00]  Documenting core v0.0.0 (/checkout/src/libcore)
[01:07:03] error[E0432]: unresolved import `super::acle`
[01:07:03]   --> src/libcore/../stdsimd/crates/core_arch/src/aarch64/mod.rs:21:16
[01:07:03]    |
[01:07:03] 21 | pub use super::acle::*;
[01:07:03]    |                ^^^^ could not find `acle` in `super`
[01:07:03] error[E0432]: unresolved import `super::acle`
[01:07:03]   --> src/libcore/../stdsimd/crates/core_arch/src/arm/mod.rs:37:16
[01:07:03]    |
[01:07:03]    |
[01:07:03] 37 | pub use super::acle::*;
[01:07:03]    |                ^^^^ could not find `acle` in `super`
[01:07:11] error: Compilation failed, aborting rustdoc
[01:07:11] 
[01:07:12] error: Could not document `core`.
[01:07:12] 
[01:07:12] 
[01:07:12] Caused by:
[01:07:12]   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)
[01:07:12] 
[01:07:12] 
[01:07:12] 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"
[01:07:12] 
[01:07:12] 
[01:07:12] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap doc
[01:07:12] Build completed unsuccessfully in 0:05:45
[01:07:12] Build completed unsuccessfully in 0:05:45
[01:07:12] Makefile:18: recipe for target 'all' failed
[01:07:12] make: *** [all] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:13c4c7e7
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Tue Feb 19 18:27:36 UTC 2019

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

gnzlbg commented Feb 19, 2019

cc @japaric looks like there are some issues while building stdsimd docs. Could you take a look?

@japaric
Copy link
Member

japaric commented Feb 19, 2019

@gnzlbg it's easy to fix the build failure; what's going to be tricky is showing the right API under arch::arm and arch::aarch64 when building the docs using the "dox" pseudo feature.

The problem is that the whole acle module is reexported from both arm and aarch64 but the contents of acle are architecture specific. The "dox" feature is a trick to render the API docs for all architectures with a single cargo doc invocation; if we follow it to the letter for acle we'll end up showing ARM specific ACLE API under the aarch64 module and vice versa.

To show the right API with the "dox" feature we would have to add something like this to arm/mod.rs and aarch64/mod.rs.

// arm/mod.rs

#[cfg(not(dox))] // <- ADD
pub use super::acle::*;

// ADD
#[cfg(dox)]
pub use super::acle::{dmb, dsb, /* plus dozens of other funcions */};

Basically re-export the right thing in each module, which is going to be a lot of work to do correctly and maintain.

@gnzlbg
Copy link
Contributor

gnzlbg commented Feb 20, 2019

@japaric Would splitting the acle module in, say, acle_common, acle_arm, and acle_aarch fix this ? Where acle_arm and acle_aarch re-export acle_common, but also add arm/aarch64 specific APIs ?

@Centril
Copy link
Contributor

Centril commented Feb 21, 2019

@gnzlbg it's easy to fix the build failure; what's going to be tricky is showing the right API under arch::arm and arch::aarch64 when building the docs using the "dox" pseudo feature.

I think the priority for now should be to unblock transitioning libstd to 2018 so that we can finish the transitions.

@gnzlbg
Copy link
Contributor

gnzlbg commented Feb 21, 2019

Due to a new major feature landing on stdsimd this week (unfortunate timing), the library does not build in tree anymore (happens pretty much all the time anyways).

What @taiki-e is doing is IMO the best way to proceed.

Let's get stdsimd in Rust2015 mode building in tree again, which is not trivial (@taiki-e do you mind if I take over doing this?).

Once that is merged, the Rust2018 PR for libstd can be updated, and we can just focus on solving Rust2018 related issues there. @taiki-e has already sent a PR fixing some of this, so I'm sure they will be able to nail all other issues in no time once we are there.

@taiki-e
Copy link
Member Author

taiki-e commented Feb 21, 2019

@gnzlbg

(@taiki-e do you mind if I take over doing this?)

No, go ahead.

@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:078e3928:start=1550927821310640266,finish=1550927822688746675,duration=1378106409
$ 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:38]  Documenting core v0.0.0 (/checkout/src/libcore)
[00:57:41] error[E0432]: unresolved import `super::acle`
[00:57:41]   --> src/libcore/../stdsimd/crates/core_arch/src/aarch64/mod.rs:21:16
[00:57:41]    |
[00:57:41] 21 | pub use super::acle::*;
[00:57:41]    |                ^^^^ could not find `acle` in `super`
[00:57:41] error[E0432]: unresolved import `crate::core_arch::acle`
[00:57:41]   --> src/libcore/../stdsimd/crates/core_arch/src/arm/mod.rs:37:27
[00:57:41]    |
[00:57:41]    |
[00:57:41] 37 | pub use crate::core_arch::acle::*;
[00:57:41]    |                           ^^^^ could not find `acle` in `core_arch`
Sat, 23 Feb 2019 14:15:04 GMT
travis_time:end:016f37e0:start=1550931303749143003,finish=1550931303913504790,duration=164361787
The command "date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
" exited with 0.

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)

@taiki-e taiki-e closed this Feb 23, 2019
@gnzlbg
Copy link
Contributor

gnzlbg commented Feb 23, 2019

@taiki-e i've sent a PR for the update #58675 . I'm not sure if those changes are enough for it to work, but I'll iterate back and forth until that gets merged.

@taiki-e
Copy link
Member Author

taiki-e commented Feb 23, 2019

@gnzlbg Thanks!

@taiki-e taiki-e deleted the stdsimd branch February 23, 2019 17:26
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.

5 participants