diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92309448..8ea2b055 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,9 +79,14 @@ jobs: python -m pip install --upgrade pip python -m pip install maturin pytest numpy hypothesis - - name: Build extension in release mode + - name: Build wheel working-directory: bindings/python - run: maturin develop --release + run: maturin build --release --out dist + + - name: Install wheel + shell: bash + working-directory: bindings/python + run: python -m pip install --find-links dist --force-reinstall wickra - name: Run Python tests working-directory: bindings/python @@ -168,9 +173,13 @@ jobs: python -m pip install --upgrade pip python -m pip install maturin numpy pandas talipp finta - - name: Build Wickra extension + - name: Build Wickra wheel working-directory: bindings/python - run: maturin develop --release + run: maturin build --release --out dist + + - name: Install Wickra wheel + working-directory: bindings/python + run: python -m pip install --find-links dist --force-reinstall wickra - name: Run cross-library benchmark working-directory: bindings/python diff --git a/bindings/wasm/Cargo.toml b/bindings/wasm/Cargo.toml index fc39c75e..d7c4d6ce 100644 --- a/bindings/wasm/Cargo.toml +++ b/bindings/wasm/Cargo.toml @@ -35,4 +35,16 @@ default = [] panic-hook = ["dep:console_error_panic_hook"] [package.metadata.wasm-pack.profile.release] -wasm-opt = ['-O3', '--enable-bulk-memory'] +# The wasm-opt that ships with wasm-pack is older than the WebAssembly +# features rustc enables by default (reference-types, multivalue, +# bulk-memory, sign-extension, mutable-globals, …). Listing them all keeps +# wasm-opt happy without requiring a binaryen upgrade in CI. +wasm-opt = [ + '-O3', + '--enable-bulk-memory', + '--enable-mutable-globals', + '--enable-nontrapping-float-to-int', + '--enable-sign-ext', + '--enable-reference-types', + '--enable-multivalue', +]