diff --git a/.github/workflows/joule-code-conformance.yml b/.github/workflows/joule-code-conformance.yml index 099c4bc83..e0b149410 100644 --- a/.github/workflows/joule-code-conformance.yml +++ b/.github/workflows/joule-code-conformance.yml @@ -111,13 +111,13 @@ jobs: # Bootstrap rustup: the docker runner image ships no Rust, and # dtolnay/rust-toolchain cannot help — it calls `rustup`, which is absent. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Cache cargo @@ -241,14 +241,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: joule-moq-relay, every target @@ -312,14 +312,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: joule-moq-ingest, every target diff --git a/.github/workflows/joule-moq-remote.yml b/.github/workflows/joule-moq-remote.yml index b61601291..adf524b9b 100644 --- a/.github/workflows/joule-moq-remote.yml +++ b/.github/workflows/joule-moq-remote.yml @@ -72,14 +72,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # One test at a time: the sessions share the host with other jobs, and each takes a lock. diff --git a/.github/workflows/joule-moq-room.yml b/.github/workflows/joule-moq-room.yml index eaef01d1f..a91414949 100644 --- a/.github/workflows/joule-moq-room.yml +++ b/.github/workflows/joule-moq-room.yml @@ -92,14 +92,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: joule-moq-room, every target diff --git a/.github/workflows/jouleclaw-fabrics.yml b/.github/workflows/jouleclaw-fabrics.yml index 88403456c..f0a8f3281 100644 --- a/.github/workflows/jouleclaw-fabrics.yml +++ b/.github/workflows/jouleclaw-fabrics.yml @@ -39,7 +39,9 @@ on: jobs: metal: name: metal (macOS, Apple GPU) - # Metal is macOS-only, so this is the one runner that can build it. + # Metal is macOS-only, so this needs the `macos` label. That label is served + # by several hosts, not one, and they are not identically provisioned -- see + # the Metal toolchain step below. runs-on: macos timeout-minutes: 60 steps: @@ -51,6 +53,33 @@ jobs: - name: metal's error count may fall, never rise shell: bash run: python3 scripts/check-fabric-errors.py metal + # Xcode ships the Metal compiler as a separately downloadable component, + # and a macOS or Xcode upgrade uninstalls it: `xcodebuild -showComponent + # MetalToolchain` then reports `Status: uninstalled` and every `xcrun + # metal` fails with "missing Metal Toolchain". The step below would not + # merely be skipped -- check-metal-shaders.py reports every shader as not + # compiling, which reads as a code failure. + # + # Several hosts answer the `macos` label, so provisioning them by hand + # leaves whichever host was missed failing this job, and which host runs + # it is not predictable. Installing it here is idempotent and persists on + # the host, so the download happens once per host per Xcode version. + - name: Xcode's Metal toolchain component + shell: bash + run: | + set -euo pipefail + command -v xcodebuild >/dev/null 2>&1 || { + echo "::error::this runner has no full Xcode (xcode-select -p: $(xcode-select -p 2>&1)); the Metal compiler is not in the Command Line Tools" + exit 1 + } + export DEVELOPER_DIR="${DEVELOPER_DIR:-$(xcode-select -p)}" + if xcrun -sdk macosx metal --version >/dev/null 2>&1; then + echo "present on $(hostname -s): $(xcrun -sdk macosx metal --version 2>&1 | head -1)" + else + echo "absent on $(hostname -s); downloading it once for this Xcode" + xcodebuild -downloadComponent MetalToolchain + xcrun -sdk macosx metal --version + fi # compile_pipeline builds every shader at runtime, so an MSL error is # invisible to cargo. xcrun is the same frontend the runtime uses. - name: every Metal shader source must compile diff --git a/.github/workflows/jouleclaw-public-surface-documented.yml b/.github/workflows/jouleclaw-public-surface-documented.yml index d419ec24a..b94d6b6dd 100644 --- a/.github/workflows/jouleclaw-public-surface-documented.yml +++ b/.github/workflows/jouleclaw-public-surface-documented.yml @@ -59,13 +59,13 @@ jobs: # Bootstrap rustup: the docker runner image ships no Rust, and # dtolnay/rust-toolchain cannot help — it calls `rustup`, which is absent. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Cache cargo registry + target diff --git a/.github/workflows/repo-checks.yml b/.github/workflows/repo-checks.yml index c1a71cd09..bed5b018a 100644 --- a/.github/workflows/repo-checks.yml +++ b/.github/workflows/repo-checks.yml @@ -36,14 +36,14 @@ jobs: python-version: '3.11' # check-lockfiles.sh runs `cargo` against every lockfile. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # ── Every Cargo.lock is current ────────────────────────────────────────── diff --git a/.github/workflows/standards-build.yml b/.github/workflows/standards-build.yml index 771cbf05b..4d3b8eef1 100644 --- a/.github/workflows/standards-build.yml +++ b/.github/workflows/standards-build.yml @@ -406,7 +406,12 @@ jobs: echo "== $h ==" out="$(cargo kani -p joulespec-core --harness "$h" 2>&1)" echo "$out" | grep -E '^ \*\* |^VERIFICATION' - echo "$out" | grep -q '^VERIFICATION:- SUCCESSFUL' \ + # A here-string, not `echo | grep -q`: grep -q exits at the first + # match, echo then dies of SIGPIPE (141), and `set -o pipefail` + # turns a match into a failure. It is a race on how much of $out + # fits the pipe buffer, so it passed while this harness reported 15 + # properties and failed at 336. + grep -q '^VERIFICATION:- SUCCESSFUL' <<<"$out" \ || { echo "$h did not verify"; exit 1; } # "N of M cover properties satisfied". Both numbers are read with # their own expression rather than by splitting one capture, so @@ -434,7 +439,7 @@ jobs: echo "mutation applied: the scale is now computed in 64 bits" out="$(cargo kani -p joulespec-core --harness the_ratio_rule_is_total_over_every_input 2>&1 || true)" echo "$out" | grep -E '^ \*\* |^VERIFICATION' - echo "$out" | grep -q '^VERIFICATION:- FAILED' \ + grep -q '^VERIFICATION:- FAILED' <<<"$out" \ || { echo "the prover did not refute an overflowing ratio rule"; exit 1; } # The NVML backends sit behind features no workspace member enables diff --git a/.github/workflows/wai-app.yml b/.github/workflows/wai-app.yml index fd1ab2da1..930b6391e 100644 --- a/.github/workflows/wai-app.yml +++ b/.github/workflows/wai-app.yml @@ -93,14 +93,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-audit.yml b/.github/workflows/wai-audit.yml index 7f9aecf07..47c891c40 100644 --- a/.github/workflows/wai-audit.yml +++ b/.github/workflows/wai-audit.yml @@ -70,14 +70,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-breaking.yml b/.github/workflows/wai-breaking.yml index 8d4bc9951..20f29ce07 100644 --- a/.github/workflows/wai-breaking.yml +++ b/.github/workflows/wai-breaking.yml @@ -63,14 +63,14 @@ jobs: - uses: actions/checkout@v5 with: fetch-depth: 0 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" command -v python3 >/dev/null || { $SUDO apt-get update -qq; $SUDO apt-get install -y -qq python3; } echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -103,14 +103,14 @@ jobs: timeout-minutes: 90 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 with: diff --git a/.github/workflows/wai-byte-equality.yml b/.github/workflows/wai-byte-equality.yml index 4b42ac20a..9e8ec6a20 100644 --- a/.github/workflows/wai-byte-equality.yml +++ b/.github/workflows/wai-byte-equality.yml @@ -175,22 +175,22 @@ jobs: # unix: bootstrap rustup (docker image ships no Rust; macOS host has it but # launchd's PATH omits ~/.cargo/bin). Windows is a host executor with rustup # already present, and must use pwsh — its `bash` is the WSL stub. - - name: Install Rust 1.98.0 (unix) + - name: Install Rust 1.99.1 (unix) if: matrix.os != 'windows' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - name: Install Rust 1.98.0 (Windows) + - name: Install Rust 1.99.1 (Windows) if: matrix.os == 'windows' shell: pwsh run: | - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 - name: Decode fixtures, assert golden bytes working-directory: wai/byte-exact-conformance diff --git a/.github/workflows/wai-catalogue.yml b/.github/workflows/wai-catalogue.yml index 455bd4010..43f8c9ce6 100644 --- a/.github/workflows/wai-catalogue.yml +++ b/.github/workflows/wai-catalogue.yml @@ -96,14 +96,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" command -v python3 >/dev/null || { $SUDO apt-get update -qq; $SUDO apt-get install -y -qq python3; } echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-conformance.yml b/.github/workflows/wai-conformance.yml index ead55e12d..4979d269d 100644 --- a/.github/workflows/wai-conformance.yml +++ b/.github/workflows/wai-conformance.yml @@ -397,26 +397,26 @@ jobs: # is bootstrapped; the macOS `host` runner has it but launchd's PATH omits # ~/.cargo/bin. dtolnay/rust-toolchain is unusable — it calls a `rustup` # the docker image lacks. - - name: Install Rust 1.98.0 (unix) + - name: Install Rust 1.99.1 (unix) if: matrix.os != 'windows' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup component add --toolchain 1.98.0 clippy + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup component add --toolchain 1.99.1 clippy echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Windows: a host executor with rustup already installed. Only ensure the # pinned toolchain is present + default. pwsh, never bash (that is WSL here). - - name: Install Rust 1.98.0 (Windows) + - name: Install Rust 1.99.1 (Windows) if: matrix.os == 'windows' shell: pwsh run: | - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 - name: Build the cargo classes (pure Rust, no C codec chain) working-directory: wai/wai-rs @@ -594,7 +594,7 @@ jobs: done # The decode bench prints its machine line from bench_env; no other step builds it. cargo build --no-default-features --features neural_int,video_int,audio_int,world_int,splat_int --bin wai_decode_bench - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown cargo check --lib --target wasm32-unknown-unknown --no-default-features --features video_int,audio_int,splat_int,staged,http # The staged-measurement core is wasm32-clean: a browser computes the same figures. # Built, not only checked, so codegen and linking of the library run for wasm32. @@ -761,7 +761,7 @@ jobs: working-directory: wai/wai-rs run: | set -euo pipefail - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown cargo check --lib --target wasm32-unknown-unknown --no-default-features --features key_discovery,http # The corpus-verify loop is genuinely shell-specific (a helper that groups @@ -947,15 +947,15 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. @@ -1091,15 +1091,15 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. @@ -1188,14 +1188,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 @@ -2763,14 +2763,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: wai-rs, each feature list alone @@ -2841,22 +2841,22 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 (unix) + - name: Install Rust 1.99.1 (unix) if: matrix.os != 'windows' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - - name: Install Rust 1.98.0 (Windows) + - name: Install Rust 1.99.1 (Windows) if: matrix.os == 'windows' shell: pwsh run: | - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 - name: Integer rANS + int_synth + JPEG-AI mANS goldens (one machine → every machine) working-directory: wai/byte-exact-conformance @@ -2878,12 +2878,12 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Every one of these test files is `#![cfg(feature = "codecs")]`: built without @@ -2976,14 +2976,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # `rust_native_crypto` rather than the SDK's default openssl backend, so this diff --git a/.github/workflows/wai-energy-receipts.yml b/.github/workflows/wai-energy-receipts.yml index 5d7793d5b..0da877037 100644 --- a/.github/workflows/wai-energy-receipts.yml +++ b/.github/workflows/wai-energy-receipts.yml @@ -145,14 +145,14 @@ jobs: # The docker runners (linux / linux-arm64) ship no Rust, so rustup is # bootstrapped; the macOS host runner has it but launchd's PATH omits # ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # One feature set that compiles the wai-rs receipts that carry an diff --git a/.github/workflows/wai-examples.yml b/.github/workflows/wai-examples.yml index b7ea6a72b..b08a76614 100644 --- a/.github/workflows/wai-examples.yml +++ b/.github/workflows/wai-examples.yml @@ -73,14 +73,14 @@ jobs: timeout-minutes: 90 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" command -v python3 >/dev/null && command -v curl >/dev/null || { $SUDO apt-get update -qq; $SUDO apt-get install -y -qq python3 curl; } echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -147,6 +147,20 @@ jobs: set -euo pipefail test -x "$BROWSER_BIN" || { echo "::error::this runner has no browser at $BROWSER_BIN"; exit 1; } nice -n 10 bash wai/quickstart/test/run-examples.sh browser + # The apple example builds WaiFFI.xcframework, which cross-compiles each + # slice (wai-sink-swift/scripts/build-xcframework.sh names the set in its + # header). A target's std belongs to one toolchain, so the pin moving to + # 1.99.1 left this job with none of them, and the macos slice failed at + # x86_64-apple-darwin with E0463 "can't find crate for `core`". The step + # had been passing on targets a previous toolchain happened to have + # installed on the runner; naming them here is what makes it reproducible + # on a host that has never built this. The tvos slices' nightly is a + # separate toolchain and keeps its own targets, so it is not re-added. + - name: The targets the apple slices need + shell: bash + run: | + set -euo pipefail + rustup target add aarch64-apple-darwin x86_64-apple-darwin aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios - name: apple-app shell: bash run: nice -n 10 bash wai/quickstart/test/run-examples.sh apple @@ -159,14 +173,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: JDK 17 shell: bash diff --git a/.github/workflows/wai-fleet.yml b/.github/workflows/wai-fleet.yml index 70c6de2ef..47dc75f2f 100644 --- a/.github/workflows/wai-fleet.yml +++ b/.github/workflows/wai-fleet.yml @@ -69,14 +69,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-formal-verification.yml b/.github/workflows/wai-formal-verification.yml index 957e23457..27d53fc07 100644 --- a/.github/workflows/wai-formal-verification.yml +++ b/.github/workflows/wai-formal-verification.yml @@ -173,7 +173,7 @@ jobs: export PATH="$HOME/.cargo/bin:$PATH" if ! command -v rustup >/dev/null; then curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \ - | sh -s -- -y --profile minimal --default-toolchain 1.98.0 + | sh -s -- -y --profile minimal --default-toolchain 1.99.1 fi echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-http.yml b/.github/workflows/wai-http.yml index fdaff68d9..ca3e472e1 100644 --- a/.github/workflows/wai-http.yml +++ b/.github/workflows/wai-http.yml @@ -156,15 +156,15 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 if: startsWith(matrix.shard, 'patches') shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 @@ -212,14 +212,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 @@ -250,14 +250,14 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-python@v5 diff --git a/.github/workflows/wai-jpegai-e2e.yml b/.github/workflows/wai-jpegai-e2e.yml index e5aa29a23..0cf4c679f 100644 --- a/.github/workflows/wai-jpegai-e2e.yml +++ b/.github/workflows/wai-jpegai-e2e.yml @@ -172,14 +172,14 @@ jobs: steps: - uses: actions/checkout@v5 # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Fetch the JPEG-AI inputs and check each against the pinned manifest shell: bash diff --git a/.github/workflows/wai-key-proxy.yml b/.github/workflows/wai-key-proxy.yml index 5e627d37e..f77943341 100644 --- a/.github/workflows/wai-key-proxy.yml +++ b/.github/workflows/wai-key-proxy.yml @@ -58,14 +58,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-ledger.yml b/.github/workflows/wai-ledger.yml index db49e3509..d51c2ee73 100644 --- a/.github/workflows/wai-ledger.yml +++ b/.github/workflows/wai-ledger.yml @@ -62,14 +62,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-neural-e2e.yml b/.github/workflows/wai-neural-e2e.yml index 90df5ed2a..9da3c73ef 100644 --- a/.github/workflows/wai-neural-e2e.yml +++ b/.github/workflows/wai-neural-e2e.yml @@ -102,13 +102,13 @@ jobs: working-directory: wai run: python tools/wai_validate_synthetic.py --size 256 # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Each Rust decoder reproduces its reference end-to-end working-directory: wai/wai-rs diff --git a/.github/workflows/wai-neural-gates.yml b/.github/workflows/wai-neural-gates.yml index 2a2e9e343..9196d100d 100644 --- a/.github/workflows/wai-neural-gates.yml +++ b/.github/workflows/wai-neural-gates.yml @@ -130,13 +130,13 @@ jobs: steps: - uses: actions/checkout@v5 # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Prior-hash refusal, the strict replicate gate, and the int_mlicpp dispatch working-directory: wai/wai-rs diff --git a/.github/workflows/wai-ops-differential.yml b/.github/workflows/wai-ops-differential.yml index be49d420b..b1ee9755f 100644 --- a/.github/workflows/wai-ops-differential.yml +++ b/.github/workflows/wai-ops-differential.yml @@ -49,14 +49,14 @@ jobs: - uses: actions/checkout@v4 # The docker image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Through the operator set against the direct decode, random sets and payloads diff --git a/.github/workflows/wai-ops-gpu.yml b/.github/workflows/wai-ops-gpu.yml index c74252db1..c82bd6a30 100644 --- a/.github/workflows/wai-ops-gpu.yml +++ b/.github/workflows/wai-ops-gpu.yml @@ -114,15 +114,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-unknown-unknown target + - name: Install Rust 1.99.1 with the wasm32-unknown-unknown target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # This container offers no adapter. The device tests must say so and pass; under # WAI_OPS_GPU_REQUIRE=1 the same tests must fail. Were an adapter ever offered diff --git a/.github/workflows/wai-ops-npu.yml b/.github/workflows/wai-ops-npu.yml index 1185b69fa..5bb8d4d13 100644 --- a/.github/workflows/wai-ops-npu.yml +++ b/.github/workflows/wai-ops-npu.yml @@ -145,14 +145,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # This host has no such device. The device tests must say so and pass; under # WAI_OPS_NPU_REQUIRE=1 the same tests must fail. diff --git a/.github/workflows/wai-ops.yml b/.github/workflows/wai-ops.yml index 233414008..8b700c528 100644 --- a/.github/workflows/wai-ops.yml +++ b/.github/workflows/wai-ops.yml @@ -116,14 +116,14 @@ jobs: # The docker images ship no Rust; the macOS host has it, but launchd's PATH omits # ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Unit, goldens, step-8, verdict and doc tests, debug @@ -196,14 +196,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -250,14 +250,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-pack.yml b/.github/workflows/wai-pack.yml index 7387169de..45da421ec 100644 --- a/.github/workflows/wai-pack.yml +++ b/.github/workflows/wai-pack.yml @@ -101,15 +101,15 @@ jobs: # The docker runners ship no Rust, so rustup is bootstrapped; the macOS host has # it, but launchd's PATH omits ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup component add --toolchain 1.98.0 clippy + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup component add --toolchain 1.99.1 clippy echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # clippy::float_arithmetic is denied for the library and the CLI (Cargo.toml and @@ -240,14 +240,14 @@ jobs: working-directory: wai shell: bash run: python3 pack-conformance/pack_verify.py --jobs 2 pack-conformance - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The source readers differentially: seeded Y4M and WAV mutations, every verdict of # wai-pack (debug and release, both with overflow checks) equal to pack_verify.py's, @@ -371,14 +371,14 @@ jobs: runs-on: linux-arm64 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install cargo-deny shell: bash diff --git a/.github/workflows/wai-quantum-cli-release.yml b/.github/workflows/wai-quantum-cli-release.yml index 439a12cab..8c946bfdd 100644 --- a/.github/workflows/wai-quantum-cli-release.yml +++ b/.github/workflows/wai-quantum-cli-release.yml @@ -100,14 +100,14 @@ jobs: triple: aarch64-unknown-linux-musl steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0, the musl target and musl-gcc + - name: Install Rust 1.99.1, the musl target and musl-gcc shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add "${{ matrix.triple }}" SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" $SUDO apt-get update -qq diff --git a/.github/workflows/wai-quantum-cli.yml b/.github/workflows/wai-quantum-cli.yml index ba7c0d229..5a375a0f0 100644 --- a/.github/workflows/wai-quantum-cli.yml +++ b/.github/workflows/wai-quantum-cli.yml @@ -60,15 +60,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with clippy and the wasm32-wasip2 target + - name: Install Rust 1.99.1 with clippy and the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy, with and without submit shell: bash diff --git a/.github/workflows/wai-quantum-contract.yml b/.github/workflows/wai-quantum-contract.yml index fdd341f5d..61887f6e6 100644 --- a/.github/workflows/wai-quantum-contract.yml +++ b/.github/workflows/wai-quantum-contract.yml @@ -114,14 +114,14 @@ jobs: SEMVER_CHECKS: "0.51.0" steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Install cargo-semver-checks ${{ env.SEMVER_CHECKS }} shell: bash @@ -185,14 +185,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0, and uv + - name: Install Rust 1.99.1, and uv shell: bash run: | export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh echo "$HOME/.local/bin" >> "$GITHUB_PATH" echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-quantum-cuda.yml b/.github/workflows/wai-quantum-cuda.yml index 4a7fc37e2..2112f9b75 100644 --- a/.github/workflows/wai-quantum-cuda.yml +++ b/.github/workflows/wai-quantum-cuda.yml @@ -231,14 +231,14 @@ jobs: WAI_QUANTUM_CUDA_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No CUDA here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-desktop-release.yml b/.github/workflows/wai-quantum-desktop-release.yml index f06bdd7a7..abc054f56 100644 --- a/.github/workflows/wai-quantum-desktop-release.yml +++ b/.github/workflows/wai-quantum-desktop-release.yml @@ -202,14 +202,14 @@ jobs: SECRET_UPDATER_KEY_PASSWORD: ${{ secrets.WAI_QUANTUM_DESKTOP_UPDATER_KEY_PASSWORD }} steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 and the web view's libraries + - name: Install Rust 1.99.1 and the web view's libraries shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" $SUDO apt-get update -qq $SUDO apt-get install -y -qq libwebkit2gtk-4.1-dev libxdo-dev libayatana-appindicator3-dev librsvg2-dev file xdg-utils diff --git a/.github/workflows/wai-quantum-docs.yml b/.github/workflows/wai-quantum-docs.yml index d35cae060..d3a14adce 100644 --- a/.github/workflows/wai-quantum-docs.yml +++ b/.github/workflows/wai-quantum-docs.yml @@ -82,14 +82,14 @@ jobs: timeout-minutes: 180 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0, and uv + - name: Install Rust 1.99.1, and uv shell: bash run: | export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh echo "$HOME/.local/bin" >> "$GITHUB_PATH" echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -108,14 +108,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each test is # required by name to have run. diff --git a/.github/workflows/wai-quantum-editors.yml b/.github/workflows/wai-quantum-editors.yml index 5ceacfecc..f525d9918 100644 --- a/.github/workflows/wai-quantum-editors.yml +++ b/.github/workflows/wai-quantum-editors.yml @@ -82,15 +82,15 @@ jobs: image: catthehacker/ubuntu:act-24.04 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/wai-quantum-estimate.yml b/.github/workflows/wai-quantum-estimate.yml index 2cb2eb0a2..a2acfe92c 100644 --- a/.github/workflows/wai-quantum-estimate.yml +++ b/.github/workflows/wai-quantum-estimate.yml @@ -60,14 +60,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # module's tests are required by name to have run. diff --git a/.github/workflows/wai-quantum-formats.yml b/.github/workflows/wai-quantum-formats.yml index 89cc3e93d..1d780708a 100644 --- a/.github/workflows/wai-quantum-formats.yml +++ b/.github/workflows/wai-quantum-formats.yml @@ -63,14 +63,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # module's tests are required by name to have run. @@ -118,15 +118,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. - name: Install wasmtime 49.0.2 diff --git a/.github/workflows/wai-quantum-fpga.yml b/.github/workflows/wai-quantum-fpga.yml index 659d8a8c3..30e3aaab8 100644 --- a/.github/workflows/wai-quantum-fpga.yml +++ b/.github/workflows/wai-quantum-fpga.yml @@ -111,14 +111,14 @@ jobs: WAI_QUANTUM_FPGA_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No simulator here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-hip.yml b/.github/workflows/wai-quantum-hip.yml index 31d17c8b1..7ad0510ae 100644 --- a/.github/workflows/wai-quantum-hip.yml +++ b/.github/workflows/wai-quantum-hip.yml @@ -190,14 +190,14 @@ jobs: WAI_QUANTUM_HIP_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No HIP here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-js-release.yml b/.github/workflows/wai-quantum-js-release.yml index 6ba3d3e69..3639ed53f 100644 --- a/.github/workflows/wai-quantum-js-release.yml +++ b/.github/workflows/wai-quantum-js-release.yml @@ -51,14 +51,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: wasm-bindgen CLI 0.2.127 diff --git a/.github/workflows/wai-quantum-js.yml b/.github/workflows/wai-quantum-js.yml index b9e407d69..cf1f5126e 100644 --- a/.github/workflows/wai-quantum-js.yml +++ b/.github/workflows/wai-quantum-js.yml @@ -59,14 +59,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock; build.sh refuses another. diff --git a/.github/workflows/wai-quantum-lang.yml b/.github/workflows/wai-quantum-lang.yml index 2bda24f62..f8bce6d52 100644 --- a/.github/workflows/wai-quantum-lang.yml +++ b/.github/workflows/wai-quantum-lang.yml @@ -61,14 +61,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # module's tests are required by name to have run. @@ -105,15 +105,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. - name: Install wasmtime 49.0.2 diff --git a/.github/workflows/wai-quantum-metal.yml b/.github/workflows/wai-quantum-metal.yml index 2e33cfcad..c1ef295aa 100644 --- a/.github/workflows/wai-quantum-metal.yml +++ b/.github/workflows/wai-quantum-metal.yml @@ -131,14 +131,14 @@ jobs: WAI_QUANTUM_METAL_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No Metal here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-npu-cores.yml b/.github/workflows/wai-quantum-npu-cores.yml index 99842bbde..6624c28d4 100644 --- a/.github/workflows/wai-quantum-npu-cores.yml +++ b/.github/workflows/wai-quantum-npu-cores.yml @@ -134,14 +134,14 @@ jobs: WAI_QUANTUM_NPU_CORES_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No neural processor here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-npu.yml b/.github/workflows/wai-quantum-npu.yml index 21f8d8e76..00dd17056 100644 --- a/.github/workflows/wai-quantum-npu.yml +++ b/.github/workflows/wai-quantum-npu.yml @@ -99,14 +99,14 @@ jobs: WAI_QUANTUM_NPU_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No neural processor here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-opencl.yml b/.github/workflows/wai-quantum-opencl.yml index 026b12e40..0a1cbb964 100644 --- a/.github/workflows/wai-quantum-opencl.yml +++ b/.github/workflows/wai-quantum-opencl.yml @@ -287,14 +287,14 @@ jobs: WAI_QUANTUM_OPENCL_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No OpenCL here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-pulse.yml b/.github/workflows/wai-quantum-pulse.yml index c4021b295..90216aee7 100644 --- a/.github/workflows/wai-quantum-pulse.yml +++ b/.github/workflows/wai-quantum-pulse.yml @@ -57,14 +57,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so the # count is pinned and each test is required by name to have run and passed. @@ -131,14 +131,14 @@ jobs: steps: - uses: actions/checkout@v5 # launchd's PATH omits cargo on the macOS host runner. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: The pinned digests, in a debug build and a release build shell: bash @@ -161,15 +161,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. - name: Install wasmtime 49.0.2 diff --git a/.github/workflows/wai-quantum-py-release.yml b/.github/workflows/wai-quantum-py-release.yml index 270698c61..eca6086cb 100644 --- a/.github/workflows/wai-quantum-py-release.yml +++ b/.github/workflows/wai-quantum-py-release.yml @@ -113,14 +113,14 @@ jobs: triple: aarch64-unknown-linux-gnu steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 and uv + - name: Install Rust 1.99.1 and uv shell: bash run: | export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add "${{ matrix.triple }}" command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh echo "$HOME/.local/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-quantum-py.yml b/.github/workflows/wai-quantum-py.yml index 03416813c..eb25d4460 100644 --- a/.github/workflows/wai-quantum-py.yml +++ b/.github/workflows/wai-quantum-py.yml @@ -60,14 +60,14 @@ jobs: timeout-minutes: 90 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with clippy, and uv + - name: Install Rust 1.99.1 with clippy, and uv shell: bash run: | export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh command -v node >/dev/null 2>&1 || { echo "::error::no node on this runner: the widgets' front ends are tested with it"; exit 1; } echo "$HOME/.local/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-quantum-qec.yml b/.github/workflows/wai-quantum-qec.yml index 4357fbc2a..15a541e60 100644 --- a/.github/workflows/wai-quantum-qec.yml +++ b/.github/workflows/wai-quantum-qec.yml @@ -63,14 +63,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # new test is required by name to have run and passed. diff --git a/.github/workflows/wai-quantum-qpu.yml b/.github/workflows/wai-quantum-qpu.yml index 06f581c58..3cba4823d 100644 --- a/.github/workflows/wai-quantum-qpu.yml +++ b/.github/workflows/wai-quantum-qpu.yml @@ -60,14 +60,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests shell: bash diff --git a/.github/workflows/wai-quantum-registry.yml b/.github/workflows/wai-quantum-registry.yml index 63bf81343..183725779 100644 --- a/.github/workflows/wai-quantum-registry.yml +++ b/.github/workflows/wai-quantum-registry.yml @@ -62,14 +62,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # test is required by name to have run. @@ -129,15 +129,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. - name: Install wasmtime 49.0.2 diff --git a/.github/workflows/wai-quantum-service.yml b/.github/workflows/wai-quantum-service.yml index 0ad4982ed..5a6b1fae4 100644 --- a/.github/workflows/wai-quantum-service.yml +++ b/.github/workflows/wai-quantum-service.yml @@ -61,14 +61,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Tests and clippy shell: bash diff --git a/.github/workflows/wai-quantum-studio.yml b/.github/workflows/wai-quantum-studio.yml index b8a41dcd1..45abfe8c2 100644 --- a/.github/workflows/wai-quantum-studio.yml +++ b/.github/workflows/wai-quantum-studio.yml @@ -95,14 +95,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock. @@ -190,14 +190,14 @@ jobs: timeout-minutes: 90 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 and the web view's libraries + - name: Install Rust 1.99.1 and the web view's libraries shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" $SUDO apt-get update -qq $SUDO apt-get install -y -qq libwebkit2gtk-4.1-dev libxdo-dev libayatana-appindicator3-dev librsvg2-dev diff --git a/.github/workflows/wai-quantum-tensor-engine.yml b/.github/workflows/wai-quantum-tensor-engine.yml index 9cc9d22fe..015aaf1f8 100644 --- a/.github/workflows/wai-quantum-tensor-engine.yml +++ b/.github/workflows/wai-quantum-tensor-engine.yml @@ -132,14 +132,14 @@ jobs: WAI_QUANTUM_TENSOR_ENGINE_EXPECT: none steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: No kernel toolchain here, and the member says so shell: bash diff --git a/.github/workflows/wai-quantum-variational.yml b/.github/workflows/wai-quantum-variational.yml index f2d12a7d9..de42148bb 100644 --- a/.github/workflows/wai-quantum-variational.yml +++ b/.github/workflows/wai-quantum-variational.yml @@ -72,14 +72,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # new test is required by name to have run and passed. diff --git a/.github/workflows/wai-quantum-verdict.yml b/.github/workflows/wai-quantum-verdict.yml index 159e1d198..aaad31580 100644 --- a/.github/workflows/wai-quantum-verdict.yml +++ b/.github/workflows/wai-quantum-verdict.yml @@ -67,14 +67,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A module filter is satisfied by any one test of the module, so each # module's tests are required by name to have run. @@ -124,15 +124,15 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-wasip2 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # The release binary, pinned by version and SHA-256, rather than a build from source. - name: Install wasmtime 49.0.2 diff --git a/.github/workflows/wai-quantum-views.yml b/.github/workflows/wai-quantum-views.yml index d837d0f91..78bb89149 100644 --- a/.github/workflows/wai-quantum-views.yml +++ b/.github/workflows/wai-quantum-views.yml @@ -75,14 +75,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-node@v4 @@ -129,14 +129,14 @@ jobs: timeout-minutes: 75 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-node@v4 with: diff --git a/.github/workflows/wai-quantum-webgpu.yml b/.github/workflows/wai-quantum-webgpu.yml index dc9e9db84..1d6a685fd 100644 --- a/.github/workflows/wai-quantum-webgpu.yml +++ b/.github/workflows/wai-quantum-webgpu.yml @@ -97,16 +97,16 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 (wasm32 targets) and 1.97.0 + - name: Install Rust 1.99.1 (wasm32 targets) and 1.97.0 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal rustup toolchain install 1.97.0 --profile minimal - rustup default 1.98.0 - rustup target add --toolchain 1.98.0 wasm32-unknown-unknown wasm32-wasip2 + rustup default 1.99.1 + rustup target add --toolchain 1.99.1 wasm32-unknown-unknown wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: SPIR-V validator shell: bash @@ -176,14 +176,14 @@ jobs: WAI_QUANTUM_WEBGPU_EXPECT: swgpu-vulkan-10005 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: The Vulkan loader and a software Vulkan driver shell: bash diff --git a/.github/workflows/wai-release.yml b/.github/workflows/wai-release.yml index d5293a522..e34ef27e8 100644 --- a/.github/workflows/wai-release.yml +++ b/.github/workflows/wai-release.yml @@ -131,14 +131,14 @@ jobs: triple: aarch64-unknown-linux-musl steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0, the musl target and musl-gcc + - name: Install Rust 1.99.1, the musl target and musl-gcc shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add "${{ matrix.triple }}" SUDO=""; [ "$(id -u)" -ne 0 ] && SUDO="sudo" $SUDO apt-get update -qq diff --git a/.github/workflows/wai-sink-android.yml b/.github/workflows/wai-sink-android.yml index 542617414..39ed996e0 100644 --- a/.github/workflows/wai-sink-android.yml +++ b/.github/workflows/wai-sink-android.yml @@ -74,14 +74,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # A JDK 17, from the image's packages when the image has none. - name: JDK 17 diff --git a/.github/workflows/wai-sota-vectors.yml b/.github/workflows/wai-sota-vectors.yml index 331fcf66c..6b3a0832b 100644 --- a/.github/workflows/wai-sota-vectors.yml +++ b/.github/workflows/wai-sota-vectors.yml @@ -224,14 +224,14 @@ jobs: torchvision.ops.nms(torch.zeros(1, 4), torch.zeros(1), 0.5) PY # Bootstrap rustup: the docker runner image ships no Rust. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - name: Regenerate the int_hyper vectors (source photo → integer export → keyframe → clip) shell: bash diff --git a/.github/workflows/wai-studio.yml b/.github/workflows/wai-studio.yml index 28c0ff512..a6741cf05 100644 --- a/.github/workflows/wai-studio.yml +++ b/.github/workflows/wai-studio.yml @@ -95,14 +95,14 @@ jobs: timeout-minutes: 60 steps: - uses: actions/checkout@v5 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal --component clippy - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal --component clippy + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" - uses: actions/setup-node@v4 with: @@ -173,13 +173,13 @@ jobs: steps: - uses: actions/checkout@v5 # The floor's zstd is C, compiled for wasm32 by clang and archived by llvm-ar. - - name: Rust 1.98.0 with the wasm32 target, clang and llvm, wasm-bindgen CLI 0.2.127 + - name: Rust 1.99.1 with the wasm32 target, clang and llvm, wasm-bindgen CLI 0.2.127 shell: bash run: | set -euo pipefail apt-get update -qq apt-get install -y -qq --no-install-recommends curl ca-certificates build-essential pkg-config clang llvm python3 git > /dev/null - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 "$HOME/.cargo/bin/rustup" target add wasm32-unknown-unknown "$HOME/.cargo/bin/cargo" install --locked wasm-bindgen-cli --version 0.2.127 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" diff --git a/.github/workflows/wai-vector.yml b/.github/workflows/wai-vector.yml index 1db17d08f..eb7cad123 100644 --- a/.github/workflows/wai-vector.yml +++ b/.github/workflows/wai-vector.yml @@ -124,14 +124,14 @@ jobs: # The docker images ship no Rust; the macOS host has it, but launchd's PATH omits # ~/.cargo/bin. - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Debug builds check every arithmetic operation for overflow, so a bound the @@ -167,14 +167,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32-wasip2 target + - name: Install Rust 1.99.1 with the wasm32-wasip2 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-wasip2 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -221,14 +221,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -267,14 +267,14 @@ jobs: # The image ships no Rust. wasm32v1-none is the package's target: its # precompiled core and alloc are WebAssembly 1.0, which those of # wasm32-unknown-unknown are not (wasm/build-pkg.sh says why that decides it). - - name: Install Rust 1.98.0 with the wasm32v1-none and wasm32-unknown-unknown targets + - name: Install Rust 1.99.1 with the wasm32v1-none and wasm32-unknown-unknown targets shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32v1-none wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" @@ -338,14 +338,14 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install Rust 1.98.0 + - name: Install Rust 1.99.1 shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Every corpus vector and every file under fuzz/seeds/ as a seed, 2,000 diff --git a/.github/workflows/wai-web-reach.yml b/.github/workflows/wai-web-reach.yml index ef3e9360e..0b465c6a9 100644 --- a/.github/workflows/wai-web-reach.yml +++ b/.github/workflows/wai-web-reach.yml @@ -114,16 +114,16 @@ jobs: steps: - uses: actions/checkout@v5 # The docker runner image ships no Rust. - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target if: matrix.leg == 'tree' shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 - rustup target add wasm32-unknown-unknown --toolchain 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 + rustup target add wasm32-unknown-unknown --toolchain 1.99.1 echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock: the CLI and the crate # must match exactly. diff --git a/.github/workflows/wai-web-wasm.yml b/.github/workflows/wai-web-wasm.yml index 913ccc78b..208af83bf 100644 --- a/.github/workflows/wai-web-wasm.yml +++ b/.github/workflows/wai-web-wasm.yml @@ -109,14 +109,14 @@ jobs: steps: - uses: actions/checkout@v5 # The docker runner image ships no Rust. - - name: Install Rust 1.98.0 with the wasm32 target + - name: Install Rust 1.99.1 with the wasm32 target shell: bash run: | export PATH="$HOME/.cargo/bin:$PATH" command -v rustup >/dev/null 2>&1 || \ - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.98.0 - rustup toolchain install 1.98.0 --profile minimal - rustup default 1.98.0 + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.99.1 + rustup toolchain install 1.99.1 --profile minimal + rustup default 1.99.1 rustup target add wasm32-unknown-unknown echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" # Pinned to the wasm-bindgen version in wai-web/Cargo.lock: the CLI and the diff --git a/aac/aac-rs/crates/aac-core/src/analytics.rs b/aac/aac-rs/crates/aac-core/src/analytics.rs index 7cd4fcfd7..6619dfbed 100644 --- a/aac/aac-rs/crates/aac-core/src/analytics.rs +++ b/aac/aac-rs/crates/aac-core/src/analytics.rs @@ -277,6 +277,6 @@ mod tests { assert!(coverage.core_words_used >= 3); assert!(coverage.coverage_percent > 0.0); - assert!(!coverage.unused_words.is_empty()); + assert_ne!(coverage.unused_words, [] as [String; 0]); } } diff --git a/aac/aac-rs/crates/aac-core/src/finder.rs b/aac/aac-rs/crates/aac-core/src/finder.rs index aa704ee94..efbd25934 100644 --- a/aac/aac-rs/crates/aac-core/src/finder.rs +++ b/aac/aac-rs/crates/aac-core/src/finder.rs @@ -1333,7 +1333,10 @@ mod tests { assert_eq!(second.len(), 3); assert_eq!(second.presses.iter().map(|p| p.board).collect::>(), [w.home.id, w.needs.id, w.drinks.id]); // A word on no board is not found; one no press leads to has no way. - assert!(f.find("zorp", &[w.home.id], Reach::default()).is_empty()); + assert_eq!( + f.find("zorp", &[w.home.id], Reach::default()), + [] as [Found; 0] + ); let lonely = f.find("lonely", &[w.home.id], Reach::default()); assert_eq!(lonely.len(), 1); assert_eq!(lonely[0].way, None); @@ -1427,7 +1430,7 @@ mod tests { assert_eq!(got("wat"), [("I want water".into(), Match::Start)]); assert_eq!(got("ate"), [("I want water".into(), Match::Inside)]); // One letter is never found inside a word. - assert!(got("t").is_empty()); + assert_eq!(got("t"), [] as [(String, Match); 0]); } #[test] @@ -1459,7 +1462,7 @@ mod tests { } // A Hangul syllable is its jamo, so one still being typed is found. assert!(search_key("물").starts_with(&search_key("무"))); - assert!(!search_key("물").is_empty()); + assert_ne!(search_key("물"), ""); // Chinese is as written. assert_ne!(search_key("说"), search_key("說")); } diff --git a/aac/aac-rs/crates/aac-core/src/ja_inflect.rs b/aac/aac-rs/crates/aac-core/src/ja_inflect.rs index 022fd257c..cbd4fd233 100644 --- a/aac/aac-rs/crates/aac-core/src/ja_inflect.rs +++ b/aac/aac-rs/crates/aac-core/src/ja_inflect.rs @@ -546,6 +546,6 @@ mod tests { } // Never the word itself, and never a bare stem as a verb. assert!(!dictionary_forms("たべる", kinds).contains(&"たべる".to_string())); - assert!(dictionary_forms("いき", kinds).is_empty()); + assert_eq!(dictionary_forms("いき", kinds), [] as [String; 0]); } } diff --git a/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs b/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs index 98b3e6819..defbc2023 100644 --- a/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs +++ b/aac/aac-rs/crates/aac-core/src/keyboard/by_ear.rs @@ -388,7 +388,7 @@ mod tests { // Vietnamese: a vowel takes its five tones; a consonant none. assert_eq!(then_for("vi", "a").len(), 5); assert!(then_for("vi", "an").is_empty() || then_for("vi", "an").len() == 5); - assert!(then_for("en", "a").is_empty()); + assert_eq!(then_for("en", "a"), [] as [Item; 0]); // Kana: its small and voiced forms, then the katakana of each; // Ethiopic: the other orders. let form = |f: &str| Item::Form(f.into()); @@ -397,7 +397,7 @@ mod tests { // has a name. assert_eq!(then_for("sv", "e"), vec![form("é")]); assert_eq!(then_for("sv", "E"), vec![form("é")]); - assert!(then_for("sv", "a").is_empty()); + assert_eq!(then_for("sv", "a"), [] as [Item; 0]); assert!(letter_groups("fr", 5).last().unwrap().contains(&letter("'"))); assert!(!letter_groups("de", 5).last().unwrap().contains(&letter("'"))); assert_eq!(then_for("am", "ቀ").len(), 6 + 5); diff --git a/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs b/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs index 27d63e7d2..18e4e3e18 100644 --- a/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs +++ b/aac/aac-rs/crates/aac-core/src/keyboard/tests.rs @@ -33,7 +33,7 @@ fn places_of(page: &Page, action: &KeyAction) -> Vec<(u16, u16)> { fn every_row_covers_the_whole_grid() { for kb in all() { for page in &kb.pages { - assert!(!page.rows.is_empty()); + assert_ne!(page.rows, [] as [Vec; 0]); for (r, row) in page.rows.iter().enumerate() { let covered: u16 = row.iter().map(|k| k.span).sum(); assert_eq!( diff --git a/aac/aac-rs/crates/aac-core/src/obf.rs b/aac/aac-rs/crates/aac-core/src/obf.rs index f110a092e..5f8592e1a 100644 --- a/aac/aac-rs/crates/aac-core/src/obf.rs +++ b/aac/aac-rs/crates/aac-core/src/obf.rs @@ -2451,7 +2451,7 @@ mod tests { let v = to_obf_with(&sample_board(), &ObfExportOptions { sprites: sprites(), ..ObfExportOptions::default() }); assert_eq!(v["license"]["type"], "private"); let images = v["images"].as_array().unwrap(); - assert!(!images.is_empty()); + assert_ne!(images.as_slice(), [] as [Value; 0]); for img in images { let set = img["symbol"]["set"].as_str().unwrap(); let info = set_info(SymbolSet::ALL.into_iter().find(|s| s.as_str() == set).unwrap()); @@ -2487,7 +2487,10 @@ mod tests { assert!(bare["images"].as_array().unwrap().iter().all(|img| img.get("data").is_none() && img["width"].is_u64())); // Words only: no pictures. let none = to_obf_with(&sample_board(), &ObfExportOptions { symbol_set: None, ..ObfExportOptions::default() }); - assert!(none["images"].as_array().unwrap().is_empty()); + assert_eq!( + none["images"].as_array().unwrap().as_slice(), + [] as [Value; 0] + ); } #[test] @@ -2762,7 +2765,10 @@ mod tests { // Without the bytes, a recording is left out rather than named // where no other app can find it; the button speaks its words. let bare = to_obf(&board); - assert!(bare["sounds"].as_array().unwrap().is_empty()); + assert_eq!( + bare["sounds"].as_array().unwrap().as_slice(), + [] as [Value; 0] + ); assert!(button(&bare, "love").get("sound_id").is_none()); assert!(button(&bare, "Rex").get("image_id").is_none()); } diff --git a/aac/aac-rs/crates/aac-core/src/prediction.rs b/aac/aac-rs/crates/aac-core/src/prediction.rs index e2b484e59..d206532b8 100644 --- a/aac/aac-rs/crates/aac-core/src/prediction.rs +++ b/aac/aac-rs/crates/aac-core/src/prediction.rs @@ -1374,7 +1374,7 @@ mod tests { let ctx = CommunicationContext::now(); let preds = engine.predict("I", &ctx, 10); - assert!(!preds.is_empty()); + assert!(!preds.is_empty(), "a pinned phrase matching the partial predicts something"); assert_eq!(preds[0].source, PredictionSource::Pinned); } @@ -1383,8 +1383,8 @@ mod tests { let engine = PredictionEngine::new(); let ctx = CommunicationContext::now(); let preds = engine.predict("hello", &ctx, 10); - assert!(preds.is_empty()); - assert!(engine.predict_letters("hel", 5).is_empty()); + assert!(preds.is_empty(), "an engine with nothing in it predicts nothing: {preds:?}"); + assert_eq!(engine.predict_letters("hel", 5), [] as [LetterCandidate; 0]); } #[test] @@ -1485,7 +1485,7 @@ mod tests { .unwrap(); let mut engine = PredictionEngine::new(); engine.set_language("gu", None).unwrap(); - assert!(engine.language_status().notes.is_empty()); + assert_eq!(engine.language_status().notes, [] as [String; 0]); assert_eq!(engine.language_status_in(&index).notes, vec!["no source covers it yet".to_string()]); assert_eq!(PredictionLanguageStatus::from_index(&index, "gu").notes, engine.language_status_in(&index).notes); } diff --git a/aac/aac-rs/crates/aac-core/src/print/tests.rs b/aac/aac-rs/crates/aac-core/src/print/tests.rs index 3ec6d3c6d..b5a66449e 100644 --- a/aac/aac-rs/crates/aac-core/src/print/tests.rs +++ b/aac/aac-rs/crates/aac-core/src/print/tests.rs @@ -195,7 +195,7 @@ fn hidden_and_blank_cells_print_as_empty_places() { only_cat.cells.retain(|c| c.id == hidden); map.insert(id, only_cat); let plan = plan(&map, Some(id), Some(&[id]), PrintKind::Boards, PrintSettings::default(), Some(SymbolSet::Mulberry), None).unwrap(); - assert!(plan.symbol_sets.is_empty()); + assert_eq!(plan.symbol_sets, [] as [SymbolSet; 0]); assert!(!plan.pages.contains(&PageKind::Credits)); } @@ -206,7 +206,7 @@ fn one_board_prints_on_one_page_with_its_credits_at_the_foot() { assert_eq!(plan.pages.len(), 1); assert!(matches!(&plan.pages[0], PageKind::Board { board, part: 1, parts: 1, .. } if *board == home)); assert!(plan.credits_at_foot); - assert!(!plan.symbol_sets.is_empty()); + assert_ne!(plan.symbol_sets, [] as [SymbolSet; 0]); // Feelings is not printed: its link has no page. assert_eq!(plan.page_of(feelings), None); assert_eq!(plan.go_to(&CellAction::Navigate(feelings)), None); diff --git a/aac/aac-rs/crates/aac-core/src/symbols/mod.rs b/aac/aac-rs/crates/aac-core/src/symbols/mod.rs index 734b90dd1..44f7de8bd 100644 --- a/aac/aac-rs/crates/aac-core/src/symbols/mod.rs +++ b/aac/aac-rs/crates/aac-core/src/symbols/mod.rs @@ -485,7 +485,7 @@ mod tests { let mut count = 0; for (concept, sets) in concepts() { assert_eq!(normalize_concept(concept), concept, "index key {concept:?} is not normalised"); - assert!(!sets.is_empty()); + assert!(!sets.is_empty(), "index key {concept:?} maps to no set"); for (&set, id) in sets { let found = lookup(concept, set).unwrap(); assert_eq!((found.set, found.id, found.fallback), (set, id.as_str(), false)); @@ -591,7 +591,7 @@ mod tests { fn the_picker_finds_symbols_in_english_and_in_the_persons_language() { let dog = search_concepts("dog", "en-US", 10); assert_eq!(dog.first(), Some(&"dog"), "{dog:?}"); - assert!(search_concepts(" ", "en", 10).is_empty()); + assert_eq!(search_concepts(" ", "en", 10), [] as [&str; 0]); assert!(search_concepts("d", "en", 5).len() <= 5); assert!(search_concepts("e", "en", 1000).iter().all(|k| !k.contains(':')), "no actions or arrows"); // Spanish: "perro" finds the dog. @@ -687,7 +687,7 @@ mod tests { #[test] #[cfg(not(feature = "nc-symbols"))] fn a_build_without_the_optional_sets_knows_none() { - assert!(SymbolSet::NONCOMMERCIAL.is_empty()); + assert_eq!(SymbolSet::NONCOMMERCIAL.as_slice(), []); assert_eq!(SymbolSet::EVERY, SymbolSet::ALL); assert!(concepts().all(|(_, sets)| sets.keys().all(|s| SymbolSet::ALL.contains(s)))); for set in SymbolSet::ALL { diff --git a/aac/aac-rs/crates/aac-core/src/translations.rs b/aac/aac-rs/crates/aac-core/src/translations.rs index 96921be76..9dfb52957 100644 --- a/aac/aac-rs/crates/aac-core/src/translations.rs +++ b/aac/aac-rs/crates/aac-core/src/translations.rs @@ -208,7 +208,7 @@ mod tests { #[test] fn missing_word_returns_empty() { let missing = translations_for("xyznonexistent"); - assert!(missing.is_empty()); + assert!(missing.is_empty(), "an unknown word has no translations: {missing:?}"); } #[test] diff --git a/aac/aac-rs/crates/aac-core/src/usage.rs b/aac/aac-rs/crates/aac-core/src/usage.rs index dac427fe9..bd20174c3 100644 --- a/aac/aac-rs/crates/aac-core/src/usage.rs +++ b/aac/aac-rs/crates/aac-core/src/usage.rs @@ -326,7 +326,7 @@ mod tests { }) .collect(); let started = std::time::Instant::now(); - assert!(new_in(&long, long.clone()).is_empty()); + assert_eq!(new_in(&long, long.clone()), [] as [Selection; 0]); assert!(started.elapsed() < std::time::Duration::from_secs(2), "{:?}", started.elapsed()); let mut mine: Modelled = [("a".to_string(), 3), ("b".to_string(), 1)].into(); merge_modelled(&mut mine, &[("a".to_string(), 2), ("c".to_string(), 4)].into()); diff --git a/aac/aac-rs/crates/aac-core/src/wordsplit.rs b/aac/aac-rs/crates/aac-core/src/wordsplit.rs index 5d58cbc37..3ed105479 100644 --- a/aac/aac-rs/crates/aac-core/src/wordsplit.rs +++ b/aac/aac-rs/crates/aac-core/src/wordsplit.rs @@ -285,7 +285,7 @@ mod tests { assert_eq!(s.words, ["I", "want", "wat"]); assert!(s.open); assert!(!split_words("I want ", false).open); - assert!(split_words("", false).words.is_empty()); + assert_eq!(split_words("", false).words, [] as [String; 0]); } #[test] diff --git a/aac/aac-rs/crates/access-core/src/adaptation.rs b/aac/aac-rs/crates/access-core/src/adaptation.rs index 55335a878..8e0a2bace 100644 --- a/aac/aac-rs/crates/access-core/src/adaptation.rs +++ b/aac/aac-rs/crates/access-core/src/adaptation.rs @@ -271,7 +271,10 @@ mod tests { fn uniform_is_uniform() { let p = UniformPrior.probabilities(&opts(), &PriorContext::default()); assert_eq!(p, vec![1.0 / 3.0; 3]); - assert!(UniformPrior.probabilities(&[], &PriorContext::default()).is_empty()); + assert_eq!( + UniformPrior.probabilities(&[], &PriorContext::default()), + [] as [f64; 0] + ); } #[test] @@ -288,7 +291,7 @@ mod tests { fn normalize_handles_garbage() { assert_eq!(normalize(&[f64::NAN, -1.0, 0.0]), vec![1.0 / 3.0; 3]); assert_eq!(normalize(&[2.0, f64::INFINITY, 2.0]), vec![0.5, 0.0, 0.5]); - assert!(normalize(&[]).is_empty()); + assert_eq!(normalize(&[]), [] as [f64; 0]); } #[test] diff --git a/aac/aac-rs/crates/access-core/src/press_timing.rs b/aac/aac-rs/crates/access-core/src/press_timing.rs index 64478b15d..4ed3d2603 100644 --- a/aac/aac-rs/crates/access-core/src/press_timing.rs +++ b/aac/aac-rs/crates/access-core/src/press_timing.rs @@ -564,7 +564,7 @@ mod tests { m.complete_selection(); m.stage(&[900.0], true); m.abandon(); - assert!(m.staged().is_empty()); + assert_eq!(m.staged(), [] as [f64; 0]); for k in 0..3 { select(&mut m, 700.0 + f64::from(k)); } @@ -615,7 +615,7 @@ mod tests { fn nan_offsets_are_ignored() { let mut m = PressTimingModel::for_scan_interval(1000); m.stage(&[f64::NAN, f64::INFINITY], true); - assert!(m.staged().is_empty()); + assert_eq!(m.staged(), [] as [f64; 0]); m.learn_kept(&[f64::NAN]); assert_eq!(m.confirmed(), 0); } diff --git a/aac/aac-rs/crates/access-core/src/scan_order.rs b/aac/aac-rs/crates/access-core/src/scan_order.rs index b8099f5e8..5f6e87cf7 100644 --- a/aac/aac-rs/crates/access-core/src/scan_order.rs +++ b/aac/aac-rs/crates/access-core/src/scan_order.rs @@ -373,7 +373,7 @@ mod tests { } let o = ScanOrder::from_weights(mode, 4, 5, &w); assert!(o.is_fixed(), "{mode:?}"); - assert!(o.diff_from_fixed().is_empty()); + assert!(o.diff_from_fixed().is_empty(), "{mode:?} differs from fixed: {:?}", o.diff_from_fixed()); assert!(ScanOrder::from_weights(mode, 4, 5, &CellWeights::new()).is_fixed()); } // Blocks: on 4 × 4 all blocks are full, so a uniform prior is fixed; diff --git a/eoc/eoc-rs/rust-toolchain.toml b/eoc/eoc-rs/rust-toolchain.toml index b2647615d..4fc422dc2 100644 --- a/eoc/eoc-rs/rust-toolchain.toml +++ b/eoc/eoc-rs/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.98.0" +channel = "1.99.1" components = ["rustc", "cargo", "rust-std", "rustfmt", "clippy"] profile = "default" diff --git a/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs b/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs index 782eaf9f1..7a4842e09 100644 --- a/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs +++ b/jouleclaw/jouleclaw-rs/crates/jouleclaw-omni/src/inference/architecture/mochi.rs @@ -259,7 +259,7 @@ impl MochiPipeline { let mut latent_data = vec![0.0f32; latent_size]; // Simple pseudo-random initialization using golden ratio hash for i in 0..latent_size { - let hash = ((i as f32 * 1.618_034) % 1.0) * 2.0 - 1.0; + let hash = ((i as f32 * std::f32::consts::GOLDEN_RATIO) % 1.0) * 2.0 - 1.0; latent_data[i] = hash * 0.1; } let latent_f16: Vec = latent_data.iter().map(|&v| half::f16::from_f32(v)).collect(); diff --git a/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs b/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs index 440adbd92..79fa6cb9d 100644 --- a/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs +++ b/jouleclaw/jouleclaw-rs/crates/jouleclaw-outlier/src/lib.rs @@ -310,7 +310,7 @@ fn c_factor(n: usize) -> f64 { return 0.0; } let n_f = n as f64; - 2.0 * ((n_f - 1.0).ln() + 0.5772156649) - (2.0 * (n_f - 1.0) / n_f) + 2.0 * ((n_f - 1.0).ln() + std::f64::consts::EULER_GAMMA) - (2.0 * (n_f - 1.0) / n_f) } impl Scored for IsolationForest { diff --git a/openpay/crates/op-connect/src/account.rs b/openpay/crates/op-connect/src/account.rs index 405d07412..ecfa02863 100644 --- a/openpay/crates/op-connect/src/account.rs +++ b/openpay/crates/op-connect/src/account.rs @@ -217,6 +217,6 @@ mod tests { // currently-due yet either) so `is_active()` is true only when // requirements have been computed; on the bare struct it is true. assert!(a.is_active()); - assert!(a.capabilities.is_empty()); + assert!(a.capabilities.is_empty(), "a fresh account has no capabilities: {:?}", a.capabilities); } } diff --git a/openpay/crates/op-crypto-extra/src/htlc.rs b/openpay/crates/op-crypto-extra/src/htlc.rs index df90881e6..bf15ec692 100644 --- a/openpay/crates/op-crypto-extra/src/htlc.rs +++ b/openpay/crates/op-crypto-extra/src/htlc.rs @@ -218,7 +218,7 @@ mod tests { c.state = s; // Round-trip via serde to confirm enum variants serialize. let s_json = serde_json::to_string(&c.state).unwrap(); - assert!(!s_json.is_empty()); + assert_ne!(s_json, ""); } } } diff --git a/openpay/crates/op-crypto-extra/src/stable.rs b/openpay/crates/op-crypto-extra/src/stable.rs index 3c8f1d021..d7d9c237a 100644 --- a/openpay/crates/op-crypto-extra/src/stable.rs +++ b/openpay/crates/op-crypto-extra/src/stable.rs @@ -289,7 +289,7 @@ mod tests { Stablecoin::Eurc, Stablecoin::Fdusd, ] { - assert!(!s.symbol().is_empty()); + assert_ne!(s.symbol(), ""); } } diff --git a/openpay/crates/op-emv/src/stream.rs b/openpay/crates/op-emv/src/stream.rs index f4db661d3..26a03265d 100644 --- a/openpay/crates/op-emv/src/stream.rs +++ b/openpay/crates/op-emv/src/stream.rs @@ -333,7 +333,7 @@ mod tests { assert_eq!(children[0].tag.0, 0x84); assert_eq!(children[0].value, &[0xAA, 0xBB]); assert_eq!(children[1].tag.0, 0xA5); - assert!(children[1].value.is_empty()); + assert_eq!(children[1].value, []); } #[test] diff --git a/openpay/crates/op-iso20022/src/bah.rs b/openpay/crates/op-iso20022/src/bah.rs index 9f93eb7bc..cce3f499f 100644 --- a/openpay/crates/op-iso20022/src/bah.rs +++ b/openpay/crates/op-iso20022/src/bah.rs @@ -267,7 +267,7 @@ mod tests { PartyIdentification::AbaRoutingNumber("026009593".into()), "pacs.008.001.08", ); - assert!(!bah.business_message_id.is_empty()); + assert_ne!(bah.business_message_id, ""); assert_eq!(bah.message_definition_id, "pacs.008.001.08"); assert!(bah.validate().is_ok()); } diff --git a/openpay/crates/op-iso20022/src/statement.rs b/openpay/crates/op-iso20022/src/statement.rs index b6da7145c..a0f5bf618 100644 --- a/openpay/crates/op-iso20022/src/statement.rs +++ b/openpay/crates/op-iso20022/src/statement.rs @@ -196,7 +196,7 @@ mod tests { fn non_camt053_message_yields_no_entries() { // Any other kind flattens to nothing rather than erroring. let admi = Message::Admi002(Box::default()); - assert!(admi.camt053_entries().is_empty()); + assert_eq!(admi.camt053_entries(), [] as [StatementEntry; 0]); } #[test] diff --git a/openpay/crates/op-reconciliation/src/matcher.rs b/openpay/crates/op-reconciliation/src/matcher.rs index ab566da59..37eb33b28 100644 --- a/openpay/crates/op-reconciliation/src/matcher.rs +++ b/openpay/crates/op-reconciliation/src/matcher.rs @@ -283,7 +283,7 @@ mod tests { TOL, ); assert_eq!(o.matched, 1); - assert!(o.discrepancies.is_empty()); + assert_eq!(o.discrepancies, [] as [Discrepancy; 0]); } #[test] @@ -308,7 +308,7 @@ mod tests { fn out_of_window_ledger_tx_not_flagged() { // tx effective beyond the window end → not our concern. let o = match_lines(&[], &[posted("ORD-X", 10, 2_000_000)], W, TOL); - assert!(o.discrepancies.is_empty()); + assert_eq!(o.discrepancies, [] as [Discrepancy; 0]); } #[test] @@ -355,7 +355,7 @@ mod tests { TOL, ); assert_eq!(o.fuzzy_matched, 1); - assert!(o.discrepancies.is_empty()); + assert_eq!(o.discrepancies, [] as [Discrepancy; 0]); } #[test] diff --git a/openpay/crates/op-routing/src/lcr.rs b/openpay/crates/op-routing/src/lcr.rs index 95d89399d..aefa33075 100644 --- a/openpay/crates/op-routing/src/lcr.rs +++ b/openpay/crates/op-routing/src/lcr.rs @@ -264,6 +264,6 @@ mod tests { #[test] fn empty_pool_returns_empty() { let router = LeastCostRouter::new(); - assert!(router.select(&intent(10_000)).is_empty()); + assert_eq!(router.select(&intent(10_000)), [] as [Route; 0]); } } diff --git a/openpay/crates/op-screening/src/screener.rs b/openpay/crates/op-screening/src/screener.rs index a73cc79f8..2cbd6666d 100644 --- a/openpay/crates/op-screening/src/screener.rs +++ b/openpay/crates/op-screening/src/screener.rs @@ -249,7 +249,7 @@ mod tests { .await .expect("ok"); assert_eq!(r.decision, ScreenDecision::Clear); - assert!(r.hits.is_empty()); + assert_eq!(r.hits, [] as [MatchScore; 0]); } #[tokio::test] diff --git a/openpay/crates/op-settlement/src/batch.rs b/openpay/crates/op-settlement/src/batch.rs index f3906aa4e..5dca6a93e 100644 --- a/openpay/crates/op-settlement/src/batch.rs +++ b/openpay/crates/op-settlement/src/batch.rs @@ -328,7 +328,7 @@ mod tests { fn opens_in_open_status() { let b = Batch::open(Currency::USD, PayoutRail::AchNacha, 1_000); assert_eq!(b.status.code(), "open"); - assert!(b.entries.is_empty()); + assert_eq!(b.entries, [] as [BatchEntry; 0]); } #[test] diff --git a/openpay/crates/op-settlement/src/store.rs b/openpay/crates/op-settlement/src/store.rs index c58f83f30..a0ab7c975 100644 --- a/openpay/crates/op-settlement/src/store.rs +++ b/openpay/crates/op-settlement/src/store.rs @@ -222,6 +222,6 @@ mod tests { Ok(()) }) .unwrap(); - assert!(store.list_open().unwrap().is_empty()); + assert_eq!(store.list_open().unwrap(), [] as [Batch; 0]); } } diff --git a/openpay/crates/op-tax/src/nexus.rs b/openpay/crates/op-tax/src/nexus.rs index 59f3ee8d3..18ad909bd 100644 --- a/openpay/crates/op-tax/src/nexus.rs +++ b/openpay/crates/op-tax/src/nexus.rs @@ -323,6 +323,6 @@ mod tests { let mut m = NexusMonitor::new(); // No thresholds configured. let events = m.record(&tx("WA", 1_000_000)); - assert!(events.is_empty()); + assert_eq!(events, [] as [NexusEvent; 0]); } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index b2647615d..4fc422dc2 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.98.0" +channel = "1.99.1" components = ["rustc", "cargo", "rust-std", "rustfmt", "clippy"] profile = "default" diff --git a/smart-byte/smart-byte-rs/Cargo.lock b/smart-byte/smart-byte-rs/Cargo.lock index 9a37b24bd..7ac35d21c 100644 --- a/smart-byte/smart-byte-rs/Cargo.lock +++ b/smart-byte/smart-byte-rs/Cargo.lock @@ -256,13 +256,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 2.0.117", + "syn 3.0.9", ] [[package]] @@ -6469,6 +6469,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn-mid" version = "0.5.4" diff --git a/wai/wai-quantum/src/engine/synth/kak.rs b/wai/wai-quantum/src/engine/synth/kak.rs index 1778f20d4..ec8b9744d 100644 --- a/wai/wai-quantum/src/engine/synth/kak.rs +++ b/wai/wai-quantum/src/engine/synth/kak.rs @@ -210,7 +210,7 @@ pub fn kak(u: &M4) -> Result { let off = |m: &[[f64; 4]; 4]| (0..4).flat_map(|r| (0..4).map(move |c| (r, c))).filter(|(r, c)| r != c).map(|(r, c)| m[r][c].abs()).fold(0.0, f64::max); let mut chosen = None; // Mixing weights with nothing in common, tried in turn. - for c in [0.577_350_269_189_625_8, 1.618_033_988_749_895, 0.317, 2.5, 0.123_456_789, 4.669_201_609] { + for c in [0.577_350_269_189_625_8, std::f64::consts::GOLDEN_RATIO, 0.317, 2.5, 0.123_456_789, 4.669_201_609] { let s: [[f64; 4]; 4] = std::array::from_fn(|r| std::array::from_fn(|k| re[r][k] + c * im[r][k])); let p = jacobi(s); let (dr, di) = (similar(&re, &p), similar(&im, &p));