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

Use stable Rust on CI to test the x64 backend #2766

Merged
merged 9 commits into from
Mar 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 5 additions & 14 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ jobs:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update stable && rustup default stable
- run: |
set -e
curl -L https://github.com/rust-lang-nursery/mdBook/releases/download/v0.4.4/mdbook-v0.4.4-x86_64-unknown-linux-gnu.tar.gz | tar xzf -
Expand All @@ -73,11 +74,9 @@ jobs:
- uses: actions/checkout@v2
with:
submodules: true
# Note that we use nightly Rust for the doc_cfg feature (enabled via `nightlydoc` above)
# This version is an older nightly for the new x64 backend (see below)
- uses: ./.github/actions/install-rust
with:
toolchain: nightly-2020-12-26
toolchain: nightly
- run: cargo doc --no-deps --all --exclude wasmtime-cli --exclude test-programs --exclude cranelift-codegen-meta
- run: cargo doc --package cranelift-codegen-meta --document-private-items
- uses: actions/upload-artifact@v1
Expand Down Expand Up @@ -178,6 +177,7 @@ jobs:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update stable && rustup default stable
- name: Test `peepmatic`
run: |
cargo test \
Expand Down Expand Up @@ -321,10 +321,7 @@ jobs:
RUST_BACKTRACE: 1

# Perform all tests (debug mode) for `wasmtime` with the experimental x64
# backend. This runs on an older nightly of Rust (because of issues with
# unifying Cargo features on stable) on Ubuntu such that it's new enough
# to build Wasmtime, but old enough where the -Z options being used
# haven't been stabilized yet.
# backend.
test_x64:
name: Test x64 new backend
runs-on: ubuntu-latest
Expand All @@ -334,7 +331,7 @@ jobs:
submodules: true
- uses: ./.github/actions/install-rust
with:
toolchain: nightly-2020-12-26
toolchain: stable
- uses: ./.github/actions/define-llvm-env

# Install wasm32 targets in order to build various tests throughout the
Expand All @@ -345,7 +342,6 @@ jobs:
# Run the x64 CI script.
- run: ./ci/run-experimental-x64-ci.sh
env:
CARGO_VERSION: "+nightly-2020-12-26"
RUST_BACKTRACE: 1

# Perform tests on the new x64 backend on Windows as well.
Expand All @@ -357,8 +353,6 @@ jobs:
with:
submodules: true
- uses: ./.github/actions/install-rust
with:
toolchain: nightly-2020-11-29
- uses: ./.github/actions/define-llvm-env

- name: Install libclang
Expand All @@ -378,7 +372,6 @@ jobs:
# Run the x64 CI script.
- run: ./ci/run-experimental-x64-ci.sh
env:
CARGO_VERSION: "+nightly-2020-11-29"
RUST_BACKTRACE: 1

# Build and test the wasi-nn module.
Expand All @@ -390,8 +383,6 @@ jobs:
with:
submodules: true
- uses: ./.github/actions/install-rust
with:
toolchain: nightly
- run: rustup target add wasm32-wasi
- uses: ./.github/actions/install-openvino
- run: ./ci/run-wasi-nn-example.sh
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ anyhow = "1.0.19"
opt-level = 0

[workspace]
resolver = '2'
members = [
"cranelift",
"crates/bench-api",
Expand Down
22 changes: 2 additions & 20 deletions ci/run-experimental-x64-ci.sh
Original file line number Diff line number Diff line change
@@ -1,24 +1,7 @@
#!/bin/bash

# Use the Nightly variant of the compiler to properly unify the
# experimental_x64 feature across all crates. Once the feature has stabilized
# and become the default, we can remove this.
CARGO_VERSION=${CARGO_VERSION:-"+nightly"}

# Some WASI tests seem to have an issue on Windows with symlinks if we run them
# with this particular invocation. It's unclear why (nightly toolchain?) but
# we're moving to the new backend by default soon enough, and all tests seem to
# work with the main test setup, so let's just work around this by skipping
# the tests for now.
MINGW_EXTRA=""
if [ `uname -o` == "Msys" ]; then
MINGW_EXTRA="-- --skip wasi_cap_std_sync"
fi

cargo $CARGO_VERSION \
cargo test \
--locked \
-Zfeatures=all -Zpackage-features \
test \
--features test-programs/test_programs \
--features experimental_x64 \
--all \
Expand All @@ -32,5 +15,4 @@ cargo $CARGO_VERSION \
--exclude peepmatic-runtime \
--exclude peepmatic-test \
--exclude peepmatic-souper \
--exclude lightbeam \
$MINGW_EXTRA
--exclude lightbeam
5 changes: 3 additions & 2 deletions cranelift/codegen/meta/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ repository = "https://github.com/bytecodealliance/wasmtime"
readme = "README.md"
edition = "2018"

[package.metadata.docs.rs]
rustdoc-args = [ "--document-private-items" ]
# FIXME(rust-lang/cargo#9300): uncomment once that lands
# [package.metadata.docs.rs]
# rustdoc-args = [ "--document-private-items" ]

[dependencies]
cranelift-codegen-shared = { path = "../shared", version = "0.72.0" }
Expand Down
1 change: 1 addition & 0 deletions cranelift/codegen/src/isa/x64/inst/args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,7 @@ pub(crate) enum InstructionSet {

/// Some SSE operations requiring 2 operands r/m and r.
#[derive(Clone, Copy, PartialEq)]
#[allow(dead_code)] // some variants here aren't used just yet
pub enum SseOpcode {
Addps,
Addpd,
Expand Down
1 change: 1 addition & 0 deletions cranelift/codegen/src/isa/x64/lower.rs
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ enum ExtSpec {
ZeroExtendTo32,
ZeroExtendTo64,
SignExtendTo32,
#[allow(dead_code)] // not used just yet but may be used in the future!
SignExtendTo64,
}

Expand Down
5 changes: 3 additions & 2 deletions cranelift/peepmatic/crates/automata/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ edition = "2018"
license = "Apache-2.0 WITH LLVM-exception"
description = "Finite-state transducer automata"

[package.metadata.docs.rs]
all-features = true
# FIXME(rust-lang/cargo#9300): uncomment once that lands
# [package.metadata.docs.rs]
# all-features = true

[dependencies]
serde = { version = "1.0.106", optional = true }
Expand Down
10 changes: 8 additions & 2 deletions crates/jit/src/unwind/systemv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,10 @@ impl UnwindRegistry {
let mut eh_frame = EhFrame(EndianVec::new(RunTimeEndian::default()));
table.write_eh_frame(&mut eh_frame).unwrap();

if cfg!(any(all(target_os = "linux", target_env = "gnu"), target_os = "freebsd")) {
if cfg!(any(
all(target_os = "linux", target_env = "gnu"),
target_os = "freebsd"
)) {
// libgcc expects a terminating "empty" length, so write a 0 length at the end of the table.
eh_frame.0.write_u32(0).unwrap();
}
Expand All @@ -101,7 +104,10 @@ impl UnwindRegistry {
}

unsafe fn register_frames(&mut self) {
if cfg!(any(all(target_os = "linux", target_env = "gnu"), target_os = "freebsd")) {
if cfg!(any(
all(target_os = "linux", target_env = "gnu"),
target_os = "freebsd"
)) {
// On gnu (libgcc), `__register_frame` will walk the FDEs until an entry of length 0
let ptr = self.frame_table.as_ptr();
__register_frame(ptr);
Expand Down
2 changes: 1 addition & 1 deletion crates/runtime/src/instance/allocator/pooling.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1618,7 +1618,7 @@ mod test {
}

#[cfg_attr(target_arch = "aarch64", ignore)] // https://github.com/bytecodealliance/wasmtime/pull/2518#issuecomment-747280133
#[cfg(all(unix, target_pointer_width = "64"))]
#[cfg(all(unix, target_pointer_width = "64", feature = "async"))]
#[test]
fn test_stack_zeroed() -> Result<()> {
let allocator = PoolingInstanceAllocator::new(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ pub fn main() {
0,
&mut output_buffer[..] as *mut [f32] as *mut u8,
(output_buffer.len() * 4).try_into().unwrap(),
);
)
.unwrap();
}
println!(
"Found results, sorted top 5: {:?}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ pub unsafe fn compute(context: GraphExecutionContext) -> Result<()> {
}
}

#[allow(improper_ctypes)]
pub mod wasi_ephemeral_nn {
use super::*;
#[link(wasm_import_module = "wasi_ephemeral_nn")]
Expand Down
5 changes: 3 additions & 2 deletions crates/wasmtime/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ repository = "https://github.com/bytecodealliance/wasmtime"
readme = "README.md"
edition = "2018"

[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "nightlydoc"]
# FIXME(rust-lang/cargo#9300): uncomment once that lands
# [package.metadata.docs.rs]
# rustdoc-args = ["--cfg", "nightlydoc"]

[dependencies]
wasmtime-runtime = { path = "../runtime", version = "0.25.0" }
Expand Down