diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 08fe9a06f13..d493f7e8b28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,21 +44,69 @@ jobs: matrix: include: - build: linux-x64 - os: ubuntu-20.04 + os: ubuntu-22.04 artifact_name: 'wasmer-linux-amd64' llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz' cross_compilation_artifact_name: 'cross_compiled_from_linux' use_sccache: false use_llvm: true build_wasm: true + - build: linux-x64-v8 + os: ubuntu-22.04 + artifact_name: 'wasmer-v8-linux-amd64' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz' + cross_compilation_artifact_name: 'cross_compiled_from_linux' + use_sccache: false + use_llvm: true + build_wasm: true + - build: linux-x64-wamr + os: ubuntu-22.04 + artifact_name: 'wasmer-wamr-linux-amd64' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz' + cross_compilation_artifact_name: 'cross_compiled_from_linux' + use_sccache: false + use_llvm: true + build_wasm: true + - build: linux-x64-wasmi + os: ubuntu-22.04 + artifact_name: 'wasmer-wasmi-linux-amd64' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz' + cross_compilation_artifact_name: 'cross_compiled_from_linux' + use_sccache: false + use_llvm: true + build_wasm: true - build: macos-x64 - os: macos-12 + os: macos-13 llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz' artifact_name: 'wasmer-darwin-amd64' cross_compilation_artifact_name: 'cross_compiled_from_mac' use_sccache: false use_llvm: true build_wasm: false + - build: macos-x64-v8 + os: macos-13 + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz' + artifact_name: 'wasmer-v8-darwin-amd64' + cross_compilation_artifact_name: 'cross_compiled_from_mac' + use_sccache: false + use_llvm: true + build_wasm: false + - build: macos-x64-wamr + os: macos-13 + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz' + artifact_name: 'wasmer-wamr-darwin-amd64' + cross_compilation_artifact_name: 'cross_compiled_from_mac' + use_sccache: false + use_llvm: true + build_wasm: false + - build: macos-x64-wasmi + os: macos-13 + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz' + artifact_name: 'wasmer-wasmi-darwin-amd64' + cross_compilation_artifact_name: 'cross_compiled_from_mac' + use_sccache: false + use_llvm: true + build_wasm: false - build: macos-arm64 os: macos-14 target: aarch64-apple-darwin @@ -67,15 +115,66 @@ jobs: use_llvm: false build_wasm: false # [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly. - # llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz' + - build: macos-arm64-v8 + os: macos-14 + target: aarch64-apple-darwin + artifact_name: 'wasmer-v8-darwin-arm64' + use_sccache: false + use_llvm: false + build_wasm: false + # [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly. + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz' + - build: macos-arm64-wamr + os: macos-14 + target: aarch64-apple-darwin + artifact_name: 'wasmer-wamr-darwin-arm64' + use_sccache: false + use_llvm: false + build_wasm: false + # [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly. + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz' + - build: macos-arm64-wasmi + os: macos-14 + target: aarch64-apple-darwin + artifact_name: 'wasmer-wasmi-darwin-arm64' + use_sccache: false + use_llvm: false + build_wasm: false + # [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly. + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz' - build: windows-x64 - os: windows-2019 + os: windows-2022 artifact_name: 'wasmer-windows-amd64' llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz' cross_compilation_artifact_name: 'cross_compiled_from_win' use_sccache: false use_llvm: true build_wasm: false + - build: windows-x64-v8 + os: windows-2022 + artifact_name: 'wasmer-v8-windows-amd64' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz' + cross_compilation_artifact_name: 'cross_compiled_from_win' + use_sccache: false + use_llvm: true + build_wasm: false + - build: windows-x64-wamr + os: windows-2022 + artifact_name: 'wasmer-wamr-windows-amd64' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz' + cross_compilation_artifact_name: 'cross_compiled_from_win' + use_sccache: false + use_llvm: true + build_wasm: false + - build: windows-x64-wasmi + os: windows-2022 + artifact_name: 'wasmer-wasmi-windows-amd64' + llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz' + cross_compilation_artifact_name: 'cross_compiled_from_win' + use_sccache: false + use_llvm: true + build_wasm: false - build: linux-musl-x64 os: ubuntu-latest artifact_name: 'wasmer-linux-musl-amd64' @@ -93,6 +192,37 @@ jobs: - name: Set up base deps on musl if: matrix.build == 'linux-musl-x64' run: ./scripts/alpine-linux-install-deps.sh + - name: Install Linux tools + if: startsWith(matrix.build, 'linux-x64') + run: | + sudo apt install mold ninja-build + - name: Install Linux musl tools + if: startsWith(matrix.build, 'linux-musl') + run: | + apk add mold cmake ninja bash curl make llvm18 llvm18-dev clang18 lld clang18-static + - name: Install `ninja` on macOS + if: startsWith(matrix.build, 'macos-') + shell: bash + run: | + brew install ninja gcc + - name: Install `ninja` on Windows + if: startsWith(matrix.build, 'windows-') + shell: bash + run: | + choco install ninja + - name: Delete unwanted link to stop it from interfering (Windows) + if: startsWith(matrix.build, 'windows-') + shell: bash + run: rm /usr/bin/link.exe + - name: Install standard header files on macOS + if: startsWith(matrix.build, 'macos-') + shell: bash + run: | + sudo xcode-select -s /Library/Developer/CommandLineTools + echo "CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include" >> $GITHUB_ENV + - name: Install MSVC dev-cmd (Windows) + uses: ilammy/msvc-dev-cmd@v1 + if: startsWith(matrix.build, 'windows-') - name: Install Rust uses: dtolnay/rust-toolchain@stable with: @@ -114,12 +244,9 @@ jobs: echo "${LLVM_DIR}/bin" >> $GITHUB_PATH env: LLVM_DIR: .llvm - - name: Install MSVC dev-cmd (Windows) - uses: ilammy/msvc-dev-cmd@v1 - if: ${{ matrix.metadata.build == 'windows-x64' }} - name: Configure LLVM (Windows) # The Custom Windows build does not contains llvm-config.exe, so need to setup manualy here - if: matrix.build == 'windows-x64' && matrix.llvm_url + if: startsWith(matrix.build, 'windows-x64') && matrix.llvm_url shell: bash run: | LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }} @@ -133,7 +260,7 @@ jobs: # using gnu-tar is a workaround for https://github.com/actions/cache/issues/403 brew install gnu-tar echo PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH" >> $GITHUB_ENV - if: matrix.os == 'macos-12' + if: startsWith(matrix.os, 'macos') - uses: actions/cache@v2 with: path: | @@ -203,6 +330,23 @@ jobs: make build-wasmer env: ENABLE_LLVM: 1 + - name: Build Wasmer with v8 backend with mold + if: ${{ endsWith(matrix.build, 'v8') && startsWith(matrix.build, 'linux-x64') }} + run: | + RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold" make build-wasmer-v8 + - name: Build Wasmer with v8 backend + if: ${{ endsWith(matrix.build, 'v8') && !startsWith(matrix.build, 'linux-x64') }} + run: | + echo $LIBCLANG_STATIC_PATH + make build-wasmer-v8 + - name: Build Wasmer with wamr backend + if: endsWith(matrix.build, 'wamr') + run: | + make build-wasmer-wamr + - name: Build Wasmer with wasmi backend + if: endsWith(matrix.build, 'wasmi') + run: | + make build-wasmer-wasmi - name: Build Wasmer binary without LLVM if: matrix.use_llvm != true shell: bash @@ -217,7 +361,7 @@ jobs: if: matrix.build != 'linux-musl-x64' uses: dtolnay/rust-toolchain@master with: - toolchain: "nightly-2023-10-05" + toolchain: "nightly-2024-07-05" target: ${{ matrix.target }} components: "rust-src" - name: Build Minimal Wasmer Headless @@ -235,7 +379,7 @@ jobs: echo "incremental = false" >> Cargo.toml echo "codegen-units = 1" >> Cargo.toml echo "rpath = false" >> Cargo.toml - rustup override set nightly-2023-10-05 + rustup override set nightly-2024-07-05 make build-wasmer-headless-minimal rustup override unset - name: Dist @@ -509,7 +653,8 @@ jobs: retention-days: 2 release: - needs: [setup, build, linux_aarch64, windows_gnu, linux_riscv64] + # needs: [setup, build, linux_aarch64, windows_gnu, linux_riscv64] + needs: [setup, build, windows_gnu] runs-on: ubuntu-latest if: needs.setup.outputs.DOING_RELEASE == '1' || github.event.inputs.release != '' steps: @@ -545,6 +690,33 @@ jobs: asset_path: artifacts/wasmer-windows-amd64/wasmer.tar.gz asset_name: wasmer-windows-amd64.tar.gz asset_content_type: application/gzip + - name: Upload Release Asset Windows With v8 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-v8-windows-amd64/wasmer.tar.gz + asset_name: wasmer-v8-windows-amd64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Windows With wamr + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-wamr-windows-amd64/wasmer.tar.gz + asset_name: wasmer-wamr-windows-amd64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Windows With wasmi + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-wasmi-windows-amd64/wasmer.tar.gz + asset_name: wasmer-wasmi-windows-amd64.tar.gz + asset_content_type: application/gzip - name: Upload Release Asset Linux amd64 uses: actions/upload-release-asset@v1 env: @@ -554,24 +726,51 @@ jobs: asset_path: artifacts/wasmer-linux-amd64/wasmer.tar.gz asset_name: wasmer-linux-amd64.tar.gz asset_content_type: application/gzip - - name: Upload Release Asset Linux aarch64 + - name: Upload Release Asset Linux amd64 With v8 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-v8-linux-amd64/wasmer.tar.gz + asset_name: wasmer-v8-linux-amd64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Linux amd64 With wamr uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: artifacts/wasmer-linux-aarch64/wasmer.tar.gz - asset_name: wasmer-linux-aarch64.tar.gz + asset_path: artifacts/wasmer-wamr-linux-amd64/wasmer.tar.gz + asset_name: wasmer-wamr-linux-amd64.tar.gz asset_content_type: application/gzip - - name: Upload Release Asset Linux riscv64 + - name: Upload Release Asset Linux amd64 with wasmi uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: artifacts/wasmer-linux-riscv64/wasmer.tar.gz - asset_name: wasmer-linux-riscv64.tar.gz + asset_path: artifacts/wasmer-wasmi-linux-amd64/wasmer.tar.gz + asset_name: wasmer-wasmi-linux-amd64.tar.gz asset_content_type: application/gzip + # - name: Upload Release Asset Linux aarch64 + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: artifacts/wasmer-linux-aarch64/wasmer.tar.gz + # asset_name: wasmer-linux-aarch64.tar.gz + # asset_content_type: application/gzip + # - name: Upload Release Asset Linux riscv64 + # uses: actions/upload-release-asset@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # upload_url: ${{ steps.create_release.outputs.upload_url }} + # asset_path: artifacts/wasmer-linux-riscv64/wasmer.tar.gz + # asset_name: wasmer-linux-riscv64.tar.gz + # asset_content_type: application/gzip - name: Upload Release Asset Windows gnu64 uses: actions/upload-release-asset@v1 env: @@ -600,6 +799,33 @@ jobs: asset_path: artifacts/wasmer-darwin-amd64/wasmer.tar.gz asset_name: wasmer-darwin-amd64.tar.gz asset_content_type: application/gzip + - name: Upload Release Asset Mac amd64 With v8 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-v8-darwin-amd64/wasmer.tar.gz + asset_name: wasmer-v8-darwin-amd64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Mac amd64 With wamr + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-wamr-darwin-amd64/wasmer.tar.gz + asset_name: wasmer-wamr-darwin-amd64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Mac amd64 With wasmi + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-wasmi-darwin-amd64/wasmer.tar.gz + asset_name: wasmer-wasmi-darwin-amd64.tar.gz + asset_content_type: application/gzip - name: Upload Release Asset Mac arm64 uses: actions/upload-release-asset@v1 env: @@ -609,3 +835,30 @@ jobs: asset_path: artifacts/wasmer-darwin-arm64/wasmer.tar.gz asset_name: wasmer-darwin-arm64.tar.gz asset_content_type: application/gzip + - name: Upload Release Asset Mac arm64 With v8 + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-v8-darwin-arm64/wasmer.tar.gz + asset_name: wasmer-v8-darwin-arm64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Mac arm64 With wamr + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-wamr-darwin-arm64/wasmer.tar.gz + asset_name: wasmer-wamr-darwin-arm64.tar.gz + asset_content_type: application/gzip + - name: Upload Release Asset Mac arm64 With wasmi + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: artifacts/wasmer-wasmi-darwin-arm64/wasmer.tar.gz + asset_name: wasmer-wasmi-darwin-arm64.tar.gz + asset_content_type: application/gzip diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 1e719a5b531..112367d6beb 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -507,7 +507,7 @@ jobs: }, { - build: macos-arm64, + build: macos-arm, os: macos-14, target: aarch64-apple-darwin, exe: '', @@ -522,6 +522,11 @@ jobs: # For now, disable LLVM in `windows-x64.` # llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz' }, + { + build: windows-gnu, + target: x86_64-pc-windows-gnu, + os: ubuntu-22.04, + }, { build: linux-musl, target: x86_64-unknown-linux-musl, @@ -673,7 +678,7 @@ jobs: CARGO_TARGET: ${{ matrix.metadata.target }} - name: Test C-API shell: bash - if: ${{ matrix.build-what.key == 'capi' && !(matrix.metadata.build == 'linux-musl' || matrix.metadata.build == 'macos-arm' || matrix.metadata.build == 'windows-gnu') }} + if: ${{ matrix.build-what.key == 'capi' && !(matrix.metadata.build == 'linux-musl' || matrix.metadata.build == 'windows-gnu') }} run: make test-capi-ci env: TARGET: ${{ matrix.metadata.target }} @@ -682,7 +687,7 @@ jobs: # C-API tests were disabled for linux-musl and macos-arm (we can't run them) - name: Test C-API integration shell: bash - if: ${{ matrix.build-what.key == 'capi' && !(matrix.metadata.build == 'linux-musl' || matrix.metadata.build == 'macos-arm' || matrix.metadata.build == 'windows-gnu') }} + if: ${{ matrix.build-what.key == 'capi' && !(matrix.metadata.build == 'linux-musl' || matrix.metadata.build == 'windows-gnu') }} run: export WASMER_DIR=`pwd`/package && make test-stage-7-capi-integration-tests env: TARGET: ${{ matrix.metadata.target }} @@ -754,7 +759,7 @@ jobs: }, { - build: macos-arm64, + build: macos-arm, os: macos-14, target: aarch64-apple-darwin, exe: '', @@ -885,7 +890,7 @@ jobs: os: macos-12 target: x86_64-apple-darwin # we only build the integration-test CLI, we don't run tests - - build: macos-arm64 + - build: macos-arm os: macos-12 target: aarch64-apple-darwin, - build: linux-musl @@ -955,7 +960,7 @@ jobs: path: package/cache/wasmercache2 - uses: actions/download-artifact@v4 with: - name: capi-macos-arm64 + name: capi-macos-arm path: package/cache/wasmercache3 - uses: actions/download-artifact@v4 with: @@ -994,9 +999,9 @@ jobs: name: capi-linux-musl path: download_link - uses: actions/download-artifact@v4 - if: ${{ matrix.build == 'macos-arm64' }} + if: ${{ matrix.build == 'macos-arm' }} with: - name: capi-macos-arm64 + name: capi-macos-arm path: download_link - uses: actions/download-artifact@v4 if: ${{ matrix.build == 'macos-x64' }} @@ -1020,19 +1025,23 @@ jobs: shell: bash run: | make untar-wasmer - - name: Test integration CLI - if: false # matrix.build != 'macos-arm' - shell: bash - run: | - export WASMER_PATH=`pwd`/target/${{ matrix.target }}/release/wasmer${{ matrix.exe }} - export WASMER_DIR=`pwd`/package && make test-integration-cli-ci - env: - TARGET: ${{ matrix.target }} - TARGET_DIR: target/${{ matrix.target }}/release - CARGO_TARGET: ${{ matrix.target }} - WAPM_DEV_TOKEN: ${{ secrets.WAPM_DEV_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - + + # Removed in favour of freestanding integration tests + # + # - name: Test integration CLI + # if: false # matrix.build != 'macos-arm' + # shell: bash + # run: | + # export WASMER_PATH=`pwd`/target/${{ matrix.target }}/release/wasmer${{ matrix.exe }} + # export WASMER_DIR=`pwd`/package && make test-integration-cli-ci + # env: + # TARGET: ${{ matrix.target }} + # TARGET_DIR: target/${{ matrix.target }}/release + # CARGO_TARGET: ${{ matrix.target }} + # WAPM_DEV_TOKEN: ${{ secrets.WAPM_DEV_TOKEN }} + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # ---- # Note (xdoardo on 2024/10/07): # --- diff --git a/.github/workflows/wasmer-integration-tests.yaml b/.github/workflows/wasmer-integration-tests.yaml index 8a079aed71d..8cbf068de8f 100644 --- a/.github/workflows/wasmer-integration-tests.yaml +++ b/.github/workflows/wasmer-integration-tests.yaml @@ -48,4 +48,4 @@ jobs: wasmer login ${{ secrets.WAPM_PROD_TOKEN }} &&\ wasmer config set registry.url https://registry.wasmer.wtf/graphql &&\ wasmer login ${{ secrets.WAPM_DEV_TOKEN }} &&\ - cargo test --no-fail-fast" \ No newline at end of file + cargo test --no-fail-fast" diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f57062ecb2..2de2bc94fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,39 @@ Looking for changes that affect our C API? See the [C API Changelog](lib/c-api/C ## **Unreleased** +## 5.0.0-rc.1 - 21/10/2024 + +This is a release candidate as we are preparing for the final release of 5.0 + +## Added + + - [#5154](https://github.com/wasmerio/wasmer/pull/5154) Add build steps for interpreter backends + - [#5138](https://github.com/wasmerio/wasmer/pull/5138) Experimental: Add support for v8 + - [#5129](https://github.com/wasmerio/wasmer/pull/5129) Experimental: Add support for WASMI + - [#4515](https://github.com/wasmerio/wasmer/pull/4515) Experimental: Add interpreter support for Wasmer + +## Changed + + - [#5158](https://github.com/wasmerio/wasmer/pull/5158) path_create_directory shouldn't behave recursively + - [#5156](https://github.com/wasmerio/wasmer/pull/5156) Resolve double-free error in c-api + - [#5149](https://github.com/wasmerio/wasmer/pull/5149) Merge 5.0 release candidate into main + - [#5148](https://github.com/wasmerio/wasmer/pull/5148) Remove deprecated methods and types + - [#5147](https://github.com/wasmerio/wasmer/pull/5147) Feat(compiler/llvm): Replace runtime assertions (in debug mode) with errors + - [#5146](https://github.com/wasmerio/wasmer/pull/5146) feat(api/build/v8): Use blob to build v8 + - [#5142](https://github.com/wasmerio/wasmer/pull/5142) Upgrade `rkyv` + - [#5098](https://github.com/wasmerio/wasmer/pull/5098) `js::module`: leave warning comment on the `Send` impl + - [#5139](https://github.com/wasmerio/wasmer/pull/5139) deps: Update corosensei + - [#5136](https://github.com/wasmerio/wasmer/pull/5136) Replace v3 usage of download-artifact + - [#5135](https://github.com/wasmerio/wasmer/pull/5135) Use upload/download artifact v4 + +## Fixed + + - [#4834](https://github.com/wasmerio/wasmer/pull/4834) Fix `path_open` trailing slash edge case + - [#4821](https://github.com/wasmerio/wasmer/pull/4821) Fix `path_open` sometimes ignoring trailing slash + - [#5137](https://github.com/wasmerio/wasmer/pull/5137) Trying to fix js build + + + ## 4.4.0 - 04/10/2024 This release adds support for object size estimation, adds better proxy support, improves executable spawning, and contains various bug fixes. diff --git a/Cargo.lock b/Cargo.lock index d647c659be5..af1a36a1a31 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -597,20 +597,20 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cbindgen" -version = "0.24.5" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b922faaf31122819ec80c4047cc684c6979a087366c069611e33649bf98e18d" +checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb" dependencies = [ "heck 0.4.1", - "indexmap 1.9.3", + "indexmap 2.6.0", "log 0.4.22", "proc-macro2", "quote", "serde", "serde_json", - "syn 1.0.109", + "syn 2.0.79", "tempfile", - "toml 0.5.11", + "toml 0.8.19", ] [[package]] @@ -2957,7 +2957,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if 1.0.0", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -3184,7 +3184,7 @@ dependencies = [ [[package]] name = "macro-wasmer-universal-test" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "proc-macro2", "quote", @@ -6494,7 +6494,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "virtual-fs" -version = "0.17.0" +version = "0.18.0" dependencies = [ "anyhow", "async-trait", @@ -6526,7 +6526,7 @@ dependencies = [ [[package]] name = "virtual-mio" -version = "0.4.0" +version = "0.5.0" dependencies = [ "async-trait", "bytes 1.7.2", @@ -6541,7 +6541,7 @@ dependencies = [ [[package]] name = "virtual-net" -version = "0.9.0" +version = "0.10.0" dependencies = [ "anyhow", "async-trait", @@ -6644,7 +6644,7 @@ dependencies = [ [[package]] name = "wai-bindgen-wasmer" -version = "0.28.0" +version = "0.29.0" dependencies = [ "anyhow", "async-trait", @@ -6729,7 +6729,7 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-test-generator" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "glob", "gumdrop", @@ -6919,7 +6919,7 @@ dependencies = [ [[package]] name = "wasmer" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "bindgen", @@ -6989,7 +6989,7 @@ dependencies = [ [[package]] name = "wasmer-argus" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "async-trait", @@ -7030,7 +7030,7 @@ dependencies = [ [[package]] name = "wasmer-c-api" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "cbindgen", "cfg-if 1.0.0", @@ -7061,7 +7061,7 @@ dependencies = [ [[package]] name = "wasmer-c-api-test-runner" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "cc", "regex", @@ -7071,7 +7071,7 @@ dependencies = [ [[package]] name = "wasmer-cache" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "blake3", "clap", @@ -7089,7 +7089,7 @@ dependencies = [ [[package]] name = "wasmer-capi-examples-runner" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "cc", "regex", @@ -7099,7 +7099,7 @@ dependencies = [ [[package]] name = "wasmer-cli" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "assert_cmd 2.0.16", @@ -7197,7 +7197,7 @@ dependencies = [ [[package]] name = "wasmer-compiler" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "backtrace", "bytes 1.7.2", @@ -7229,7 +7229,7 @@ dependencies = [ [[package]] name = "wasmer-compiler-cli" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "bytesize", @@ -7250,7 +7250,7 @@ dependencies = [ [[package]] name = "wasmer-compiler-cranelift" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -7270,7 +7270,7 @@ dependencies = [ [[package]] name = "wasmer-compiler-llvm" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "byteorder", "cc", @@ -7292,7 +7292,7 @@ dependencies = [ [[package]] name = "wasmer-compiler-singlepass" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "byteorder", "dynasm", @@ -7355,7 +7355,7 @@ dependencies = [ [[package]] name = "wasmer-derive" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "compiletest_rs", "proc-macro-error", @@ -7367,7 +7367,7 @@ dependencies = [ [[package]] name = "wasmer-emscripten" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "byteorder", "getrandom", @@ -7409,7 +7409,7 @@ dependencies = [ [[package]] name = "wasmer-integration-tests-cli" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "assert_cmd 2.0.16", @@ -7438,11 +7438,11 @@ dependencies = [ [[package]] name = "wasmer-integration-tests-ios" -version = "4.4.0" +version = "5.0.0-rc.1" [[package]] name = "wasmer-journal" -version = "0.10.0" +version = "0.11.0" dependencies = [ "anyhow", "async-trait", @@ -7469,7 +7469,7 @@ dependencies = [ [[package]] name = "wasmer-middlewares" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "wasmer", "wasmer-types", @@ -7478,7 +7478,7 @@ dependencies = [ [[package]] name = "wasmer-object" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "object 0.29.0", "thiserror", @@ -7498,7 +7498,7 @@ dependencies = [ [[package]] name = "wasmer-registry" -version = "5.20.0" +version = "5.21.0" dependencies = [ "anyhow", "async-tungstenite", @@ -7560,7 +7560,7 @@ dependencies = [ [[package]] name = "wasmer-sys-utils" -version = "0.28.0" +version = "0.29.0" dependencies = [ "libc", "region", @@ -7574,7 +7574,7 @@ dependencies = [ [[package]] name = "wasmer-types" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "bytecheck 0.6.12", "enum-iterator", @@ -7596,7 +7596,7 @@ dependencies = [ [[package]] name = "wasmer-vm" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "backtrace", "cc", @@ -7625,7 +7625,7 @@ dependencies = [ [[package]] name = "wasmer-wasix" -version = "0.28.0" +version = "0.29.0" dependencies = [ "ahash 0.8.11", "anyhow", @@ -7711,7 +7711,7 @@ dependencies = [ [[package]] name = "wasmer-wasix-types" -version = "0.28.0" +version = "0.29.0" dependencies = [ "anyhow", "bitflags 1.3.2", @@ -7734,7 +7734,7 @@ dependencies = [ [[package]] name = "wasmer-wasm-interface" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "bincode", "either", @@ -7746,7 +7746,7 @@ dependencies = [ [[package]] name = "wasmer-wast" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "futures 0.3.31", @@ -7763,7 +7763,7 @@ dependencies = [ [[package]] name = "wasmer-workspace" -version = "4.4.0" +version = "5.0.0-rc.1" dependencies = [ "anyhow", "build-deps", diff --git a/Cargo.toml b/Cargo.toml index 845f00f316e..d8f9d4ac0b9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,20 +12,20 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer = { version = "=4.4.0", path = "lib/api", default-features = false } -wasmer-compiler = { version = "=4.4.0", path = "lib/compiler", features = [ +wasmer = { version = "=5.0.0-rc.1", path = "lib/api", default-features = false } +wasmer-compiler = { version = "=5.0.0-rc.1", path = "lib/compiler", features = [ "compiler", ], optional = true } -wasmer-compiler-cranelift = { version = "=4.4.0", path = "lib/compiler-cranelift", optional = true } -wasmer-compiler-singlepass = { version = "=4.4.0", path = "lib/compiler-singlepass", optional = true } -wasmer-compiler-llvm = { version = "=4.4.0", path = "lib/compiler-llvm", optional = true } -wasmer-emscripten = { version = "=4.4.0", path = "lib/emscripten", optional = true } +wasmer-compiler-cranelift = { version = "=5.0.0-rc.1", path = "lib/compiler-cranelift", optional = true } +wasmer-compiler-singlepass = { version = "=5.0.0-rc.1", path = "lib/compiler-singlepass", optional = true } +wasmer-compiler-llvm = { version = "=5.0.0-rc.1", path = "lib/compiler-llvm", optional = true } +wasmer-emscripten = { version = "=5.0.0-rc.1", path = "lib/emscripten", optional = true } wasmer-wasix = { path = "lib/wasix", optional = true } -wasmer-wast = { version = "=4.4.0", path = "tests/lib/wast", optional = true } -wasi-test-generator = { version = "=4.4.0", path = "tests/wasi-wast", optional = true } -wasmer-cache = { version = "=4.4.0", path = "lib/cache", optional = true } -wasmer-types = { version = "=4.4.0", path = "lib/types" } -wasmer-middlewares = { version = "=4.4.0", path = "lib/middlewares", optional = true } +wasmer-wast = { version = "=5.0.0-rc.1", path = "tests/lib/wast", optional = true } +wasi-test-generator = { version = "=5.0.0-rc.1", path = "tests/wasi-wast", optional = true } +wasmer-cache = { version = "=5.0.0-rc.1", path = "lib/cache", optional = true } +wasmer-types = { version = "=5.0.0-rc.1", path = "lib/types" } +wasmer-middlewares = { version = "=5.0.0-rc.1", path = "lib/middlewares", optional = true } # Third party dependencies cfg-if = "1.0" @@ -89,7 +89,7 @@ homepage = "https://wasmer.io/" license = "MIT" repository = "https://github.com/wasmerio/wasmer" rust-version = "1.74" -version = "4.4.0" +version = "5.0.0-rc.1" [workspace.dependencies] # Repo-local crates @@ -133,7 +133,7 @@ glob = "0.3" rustc_version = "0.4" [dev-dependencies] -wasmer = { version = "=4.4.0", path = "lib/api", features = [ +wasmer = { version = "=5.0.0-rc.1", path = "lib/api", features = [ "compiler", "singlepass", "sys", diff --git a/lib/api/Cargo.toml b/lib/api/Cargo.toml index 65d3f600a6c..59173c75ca7 100644 --- a/lib/api/Cargo.toml +++ b/lib/api/Cargo.toml @@ -51,15 +51,15 @@ loupe = { version = "0.1.3", optional = true, features = [ # Dependencies and Development Dependencies for `sys`. [target.'cfg(not(target_arch = "wasm32"))'.dependencies] # - Mandatory dependencies for `sys`. -wasmer-vm = { path = "../vm", version = "=4.4.0" } -wasmer-compiler = { path = "../compiler", version = "=4.4.0" } -wasmer-derive = { path = "../derive", version = "=4.4.0" } -wasmer-types = { path = "../types", version = "=4.4.0" } +wasmer-vm = { path = "../vm", version = "=5.0.0-rc.1" } +wasmer-compiler = { path = "../compiler", version = "=5.0.0-rc.1" } +wasmer-derive = { path = "../derive", version = "=5.0.0-rc.1" } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } target-lexicon = { version = "0.12.2", default-features = false } # - Optional dependencies for `sys`. -wasmer-compiler-singlepass = { path = "../compiler-singlepass", version = "=4.4.0", optional = true } -wasmer-compiler-cranelift = { path = "../compiler-cranelift", version = "=4.4.0", optional = true } -wasmer-compiler-llvm = { path = "../compiler-llvm", version = "=4.4.0", optional = true } +wasmer-compiler-singlepass = { path = "../compiler-singlepass", version = "=5.0.0-rc.1", optional = true } +wasmer-compiler-cranelift = { path = "../compiler-cranelift", version = "=5.0.0-rc.1", optional = true } +wasmer-compiler-llvm = { path = "../compiler-llvm", version = "=5.0.0-rc.1", optional = true } wasm-bindgen = { version = "0.2.74", optional = true } js-sys = { version = "0.3.51", optional = true } @@ -74,17 +74,17 @@ windows-sys = "0.59" wat = "1.0" tempfile = "3.6.0" anyhow = "1.0" -macro-wasmer-universal-test = { version = "4.4.0", path = "./macro-wasmer-universal-test" } +macro-wasmer-universal-test = { version = "5.0.0-rc.1", path = "./macro-wasmer-universal-test" } # Dependencies and Develoment Dependencies for `js`. [target.'cfg(target_arch = "wasm32")'.dependencies] # - Mandatory dependencies for `js`. -wasmer-types = { path = "../types", version = "=4.4.0", default-features = false, features = [ +wasmer-types = { path = "../types", version = "=5.0.0-rc.1", default-features = false, features = [ "std", ] } wasm-bindgen = "0.2.74" js-sys = "0.3.51" -wasmer-derive = { path = "../derive", version = "=4.4.0" } +wasmer-derive = { path = "../derive", version = "=5.0.0-rc.1" } # - Optional dependencies for `js`. wasmparser = { workspace = true, default-features = false, optional = true } hashbrown = { version = "0.11", optional = true } @@ -96,7 +96,7 @@ serde = { version = "1.0", features = ["derive"] } wat = "1.0" anyhow = "1.0" wasm-bindgen-test = "0.3.0" -macro-wasmer-universal-test = { version = "4.4.0", path = "./macro-wasmer-universal-test" } +macro-wasmer-universal-test = { version = "5.0.0-rc.1", path = "./macro-wasmer-universal-test" } # Specific to `js`. # diff --git a/lib/api/macro-wasmer-universal-test/Cargo.toml b/lib/api/macro-wasmer-universal-test/Cargo.toml index 2156a5c6b42..2a856b4eb82 100644 --- a/lib/api/macro-wasmer-universal-test/Cargo.toml +++ b/lib/api/macro-wasmer-universal-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "macro-wasmer-universal-test" -version = "4.4.0" +version = "5.0.0-rc.1" edition = "2021" license = "MIT" description = "Universal test macro for wasmer-test" diff --git a/lib/api/third_party/.gitignore b/lib/api/third_party/.gitignore new file mode 100644 index 00000000000..b2e7e790c55 --- /dev/null +++ b/lib/api/third_party/.gitignore @@ -0,0 +1 @@ +wamr diff --git a/lib/c-api/Cargo.toml b/lib/c-api/Cargo.toml index dad2b23e7b0..45632c7556d 100644 --- a/lib/c-api/Cargo.toml +++ b/lib/c-api/Cargo.toml @@ -24,17 +24,17 @@ crate-type = ["staticlib", "cdylib"] #"cdylib", "rlib", "staticlib"] [dependencies] # We rename `wasmer` to `wasmer-api` to avoid the conflict with this # library name (see `[lib]`). -wasmer-api = { version = "=4.4.0", path = "../api", default-features = false, package = "wasmer" } -wasmer-compiler = { version = "=4.4.0", path = "../compiler", optional = true } -wasmer-compiler-cranelift = { version = "=4.4.0", path = "../compiler-cranelift", optional = true } -wasmer-compiler-llvm = { version = "=4.4.0", path = "../compiler-llvm", optional = true } -wasmer-compiler-singlepass = { version = "=4.4.0", path = "../compiler-singlepass", optional = true } -wasmer-emscripten = { version = "=4.4.0", path = "../emscripten", optional = true } -wasmer-middlewares = { version = "=4.4.0", path = "../middlewares", optional = true } -wasmer-types = { version = "=4.4.0", path = "../types" } -wasmer-wasix = { path = "../wasix", version="=0.28.0", features = ["host-fs", "host-vnet"], optional = true } +wasmer-api = { version = "=5.0.0-rc.1", path = "../api", default-features = false, package = "wasmer" } +wasmer-compiler = { version = "=5.0.0-rc.1", path = "../compiler", optional = true } +wasmer-compiler-cranelift = { version = "=5.0.0-rc.1", path = "../compiler-cranelift", optional = true } +wasmer-compiler-llvm = { version = "=5.0.0-rc.1", path = "../compiler-llvm", optional = true } +wasmer-compiler-singlepass = { version = "=5.0.0-rc.1", path = "../compiler-singlepass", optional = true } +wasmer-emscripten = { version = "=5.0.0-rc.1", path = "../emscripten", optional = true } +wasmer-middlewares = { version = "=5.0.0-rc.1", path = "../middlewares", optional = true } +wasmer-types = { version = "=5.0.0-rc.1", path = "../types" } +wasmer-wasix = { path = "../wasix", version="=0.29.0", features = ["host-fs", "host-vnet"], optional = true } webc = { workspace = true, optional = true } -virtual-fs = { version = "0.17.0", path = "../virtual-fs", optional = true, default-features = false, features = ["static-fs"] } +virtual-fs = { version = "0.18.0", path = "../virtual-fs", optional = true, default-features = false, features = ["static-fs"] } enumset.workspace = true cfg-if = "1.0" lazy_static = "1.4" @@ -111,4 +111,4 @@ jit = ["compiler"] #emscripten = ["wasmer-emscripten"] [build-dependencies] -cbindgen = { version = "0.24", default-features = false } +cbindgen = { version = "0.27", default-features = false } diff --git a/lib/c-api/examples/wasmer-capi-examples-runner/Cargo.toml b/lib/c-api/examples/wasmer-capi-examples-runner/Cargo.toml index 7d57dcda0a9..96d7c9f8810 100644 --- a/lib/c-api/examples/wasmer-capi-examples-runner/Cargo.toml +++ b/lib/c-api/examples/wasmer-capi-examples-runner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-capi-examples-runner" -version = "4.4.0" +version = "5.0.0-rc.1" edition = "2021" license = "MIT" description = "wasmer-capi-examples-runner" diff --git a/lib/c-api/src/wasm_c_api/value.rs b/lib/c-api/src/wasm_c_api/value.rs index 3be2f2a340b..5a5a6e67561 100644 --- a/lib/c-api/src/wasm_c_api/value.rs +++ b/lib/c-api/src/wasm_c_api/value.rs @@ -156,11 +156,24 @@ pub unsafe extern "C" fn wasm_val_copy( }); otherwise ()); } +impl Drop for wasm_val_t { + fn drop(&mut self) { + let kind: Result = self.kind.try_into(); + match kind { + Ok(wasm_valkind_enum::WASM_EXTERNREF) | Ok(wasm_valkind_enum::WASM_FUNCREF) => unsafe { + if !self.of.wref.is_null() { + drop(Box::from_raw(self.of.wref)); + } + }, + _ => {} + } + } +} + #[no_mangle] -pub unsafe extern "C" fn wasm_val_delete(val: Option>) { - if let Some(val) = val { - // TODO: figure out where wasm_val is allocated first... - let _ = val; +pub unsafe extern "C" fn wasm_val_delete(val: *mut wasm_val_t) { + if !val.is_null() { + std::ptr::drop_in_place(val); } } diff --git a/lib/c-api/tests/wasmer-c-api-test-runner/Cargo.toml b/lib/c-api/tests/wasmer-c-api-test-runner/Cargo.toml index 3bce6d91005..64336f11f4c 100644 --- a/lib/c-api/tests/wasmer-c-api-test-runner/Cargo.toml +++ b/lib/c-api/tests/wasmer-c-api-test-runner/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-c-api-test-runner" -version = "4.4.0" +version = "5.0.0-rc.1" edition = "2021" license = "MIT" description = "wasmer-c-api-test-runner" diff --git a/lib/cache/Cargo.toml b/lib/cache/Cargo.toml index 37d553879b9..9c696e59033 100644 --- a/lib/cache/Cargo.toml +++ b/lib/cache/Cargo.toml @@ -13,7 +13,7 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer = { path = "../api", version = "=4.4.0", default-features = false } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false } hex = "0.4" thiserror = "1" blake3 = "1.0" @@ -26,8 +26,8 @@ clap_derive = { version = "=4.4.7" } clap_lex = { version = "=0.6.0" } tempfile = "3.6.0" rand = "0.8.3" -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = ["sys", "cranelift"] } -wasmer-compiler-singlepass = { path = "../compiler-singlepass", version = "=4.4.0" } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["sys", "cranelift"] } +wasmer-compiler-singlepass = { path = "../compiler-singlepass", version = "=5.0.0-rc.1" } [features] default = ["filesystem"] diff --git a/lib/cli-compiler/Cargo.toml b/lib/cli-compiler/Cargo.toml index b540288180d..e71ab7d8e27 100644 --- a/lib/cli-compiler/Cargo.toml +++ b/lib/cli-compiler/Cargo.toml @@ -20,8 +20,8 @@ path = "src/bin/wasmer_compiler.rs" doc = false [dependencies] -wasmer-compiler = { version = "=4.4.0", path = "../compiler", features = ["compiler"] } -wasmer-types = { version = "=4.4.0", path = "../types" } +wasmer-compiler = { version = "=5.0.0-rc.1", path = "../compiler", features = ["compiler"] } +wasmer-types = { version = "=5.0.0-rc.1", path = "../types" } is-terminal = "0.4.7" colored = "2.0" anyhow = "1.0" @@ -36,13 +36,13 @@ log = { version = "0.4", optional = true } target-lexicon = { version = "0.12", features = ["std"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -wasmer-compiler-singlepass = { version = "=4.4.0", path = "../compiler-singlepass", optional = true } -wasmer-compiler-cranelift = { version = "=4.4.0", path = "../compiler-cranelift", optional = true } +wasmer-compiler-singlepass = { version = "=5.0.0-rc.1", path = "../compiler-singlepass", optional = true } +wasmer-compiler-cranelift = { version = "=5.0.0-rc.1", path = "../compiler-cranelift", optional = true } clap = { version = "4.4.0", features = ["derive", "env"] } [target.'cfg(target_arch = "wasm32")'.dependencies] -wasmer-compiler-singlepass = { version = "=4.4.0", path = "../compiler-singlepass", optional = true, default-features = false, features = ["wasm"] } -wasmer-compiler-cranelift = { version = "=4.4.0", path = "../compiler-cranelift", optional = true, default-features = false, features = ["wasm"] } +wasmer-compiler-singlepass = { version = "=5.0.0-rc.1", path = "../compiler-singlepass", optional = true, default-features = false, features = ["wasm"] } +wasmer-compiler-cranelift = { version = "=5.0.0-rc.1", path = "../compiler-cranelift", optional = true, default-features = false, features = ["wasm"] } # NOTE: Must use different features for clap because the "color" feature does not # work on wasi, due to the anstream dependency not compiling. clap = { version = "4.4.0", default-features = false, features = [ diff --git a/lib/cli/Cargo.toml b/lib/cli/Cargo.toml index 331cd56a514..47541ff02fa 100644 --- a/lib/cli/Cargo.toml +++ b/lib/cli/Cargo.toml @@ -111,18 +111,18 @@ enable-serde = [ [dependencies] # Repo-local dependencies. -wasmer = { version = "=4.4.0", path = "../api", default-features = false } -wasmer-compiler = { version = "=4.4.0", path = "../compiler", features = [ +wasmer = { version = "=5.0.0-rc.1", path = "../api", default-features = false } +wasmer-compiler = { version = "=5.0.0-rc.1", path = "../compiler", features = [ "compiler", ], optional = true } -wasmer-compiler-cranelift = { version = "=4.4.0", path = "../compiler-cranelift", optional = true } -wasmer-compiler-singlepass = { version = "=4.4.0", path = "../compiler-singlepass", optional = true } -wasmer-compiler-llvm = { version = "=4.4.0", path = "../compiler-llvm", optional = true } -wasmer-emscripten = { version = "=4.4.0", path = "../emscripten" } +wasmer-compiler-cranelift = { version = "=5.0.0-rc.1", path = "../compiler-cranelift", optional = true } +wasmer-compiler-singlepass = { version = "=5.0.0-rc.1", path = "../compiler-singlepass", optional = true } +wasmer-compiler-llvm = { version = "=5.0.0-rc.1", path = "../compiler-llvm", optional = true } +wasmer-emscripten = { version = "=5.0.0-rc.1", path = "../emscripten" } wasmer-package = { version = "=0.1.0", path = "../package" } -wasmer-vm = { version = "=4.4.0", path = "../vm", optional = true } -wasmer-wasix = { path = "../wasix", version = "=0.28.0", features = [ +wasmer-vm = { version = "=5.0.0-rc.1", path = "../vm", optional = true } +wasmer-wasix = { path = "../wasix", version = "=0.29.0", features = [ "logging", "webc_runner_rt_wcgi", "webc_runner_rt_dcgi", @@ -131,20 +131,20 @@ wasmer-wasix = { path = "../wasix", version = "=0.28.0", features = [ "host-fs", "ctrlc", ] } -wasmer-wast = { version = "=4.4.0", path = "../../tests/lib/wast", optional = true } -wasmer-types = { version = "=4.4.0", path = "../types", features = [ +wasmer-wast = { version = "=5.0.0-rc.1", path = "../../tests/lib/wast", optional = true } +wasmer-types = { version = "=5.0.0-rc.1", path = "../types", features = [ "enable-serde", ] } -wasmer-registry = { version = "=5.20.0", path = "../registry", features = [ +wasmer-registry = { version = "=5.21.0", path = "../registry", features = [ "build-package", "clap", ] } -wasmer-object = { version = "=4.4.0", path = "../object", optional = true } -virtual-fs = { version = "0.17.0", path = "../virtual-fs", default-features = false, features = [ +wasmer-object = { version = "=5.0.0-rc.1", path = "../object", optional = true } +virtual-fs = { version = "0.18.0", path = "../virtual-fs", default-features = false, features = [ "host-fs", ] } -virtual-net = { version = "0.9.0", path = "../virtual-net" } -virtual-mio = { version = "0.4.0", path = "../virtual-io" } +virtual-net = { version = "0.10.0", path = "../virtual-net" } +virtual-mio = { version = "0.5.0", path = "../virtual-io" } # Wasmer-owned dependencies. diff --git a/lib/compiler-cranelift/Cargo.toml b/lib/compiler-cranelift/Cargo.toml index 81c128f205b..19c04ee925a 100644 --- a/lib/compiler-cranelift/Cargo.toml +++ b/lib/compiler-cranelift/Cargo.toml @@ -14,11 +14,11 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer-compiler = { path = "../compiler", version = "=4.4.0", features = [ +wasmer-compiler = { path = "../compiler", version = "=5.0.0-rc.1", features = [ "translator", "compiler", ], default-features = false } -wasmer-types = { path = "../types", version = "=4.4.0", default-features = false, features = [ +wasmer-types = { path = "../types", version = "=5.0.0-rc.1", default-features = false, features = [ "std", ] } cranelift-entity = { version = "=0.110.2", default-features = false } diff --git a/lib/compiler-llvm/Cargo.toml b/lib/compiler-llvm/Cargo.toml index 07deac0c973..c172303a0d4 100644 --- a/lib/compiler-llvm/Cargo.toml +++ b/lib/compiler-llvm/Cargo.toml @@ -14,12 +14,11 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer-compiler = { path = "../compiler", version = "=4.4.0", features = [ - "translator", - "compiler", +wasmer-compiler = { path = "../compiler", version = "=5.0.0-rc.1", features = [ + "translator", "compiler" ] } -wasmer-vm = { path = "../vm", version = "=4.4.0" } -wasmer-types = { path = "../types", version = "=4.4.0" } +wasmer-vm = { path = "../vm", version = "=5.0.0-rc.1" } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } target-lexicon = { version = "0.12.2", default-features = false } smallvec = "1.6" object = { version = "0.30.3", default-features = false, features = ["read"] } diff --git a/lib/compiler-singlepass/Cargo.toml b/lib/compiler-singlepass/Cargo.toml index 528c510af8d..499e31747a7 100644 --- a/lib/compiler-singlepass/Cargo.toml +++ b/lib/compiler-singlepass/Cargo.toml @@ -14,8 +14,8 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer-compiler = { path = "../compiler", version = "=4.4.0", features = ["translator", "compiler"], default-features = false } -wasmer-types = { path = "../types", version = "=4.4.0", default-features = false, features = ["std"] } +wasmer-compiler = { path = "../compiler", version = "=5.0.0-rc.1", features = ["translator", "compiler"], default-features = false } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1", default-features = false, features = ["std"] } hashbrown = { version = "0.11", optional = true } gimli = { workspace = true, optional = true } enumset.workspace = true diff --git a/lib/compiler/Cargo.toml b/lib/compiler/Cargo.toml index a5561f4334c..f5d68578125 100644 --- a/lib/compiler/Cargo.toml +++ b/lib/compiler/Cargo.toml @@ -13,8 +13,8 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer-types = { path = "../types", version = "=4.4.0", default-features = false } -wasmer-object = { path = "../object", version = "=4.4.0", optional = true } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1", default-features = false } +wasmer-object = { path = "../object", version = "=5.0.0-rc.1", optional = true } wasmparser = { workspace = true, optional = true, default-features = false } enumset.workspace = true hashbrown = { version = "0.11", optional = true } @@ -45,7 +45,7 @@ shared-buffer = { workspace = true } libc.workspace = true [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -wasmer-vm = { path = "../vm", version = "=4.4.0" } +wasmer-vm = { path = "../vm", version = "=5.0.0-rc.1" } region = { version = "3.0" } [target.'cfg(target_os = "windows")'.dependencies] diff --git a/lib/emscripten/Cargo.toml b/lib/emscripten/Cargo.toml index c0b8cf4dca2..57dcd953937 100644 --- a/lib/emscripten/Cargo.toml +++ b/lib/emscripten/Cargo.toml @@ -18,8 +18,8 @@ lazy_static = "1.4" libc = { workspace = true, default-features = true } log = "0.4" time = { version = "0.3", features = ["std", "formatting"] } -wasmer = { path = "../api", version = "=4.4.0", default-features = false } -wasmer-types = { path = "../types", version = "=4.4.0" } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } [target.'cfg(windows)'.dependencies] getrandom = "0.2" diff --git a/lib/journal/Cargo.toml b/lib/journal/Cargo.toml index 57da03c541a..7dcfc81a2ab 100644 --- a/lib/journal/Cargo.toml +++ b/lib/journal/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-journal" -version = "0.10.0" +version = "0.11.0" description = "Journaling functionality used by Wasmer to save and restore WASM state" authors.workspace = true edition.workspace = true @@ -14,14 +14,14 @@ default = ["log-file", "wasmer/sys"] log-file = ["shared-buffer"] [dependencies] -wasmer = { default-features = false, path = "../api", version = "=4.4.0" } -wasmer-wasix-types = { path = "../wasi-types", version = "0.28.0", features = [ +wasmer = { default-features = false, path = "../api", version = "=5.0.0-rc.1" } +wasmer-wasix-types = { path = "../wasi-types", version = "0.29.0", features = [ "enable-serde", ] } -virtual-net = { path = "../virtual-net", version = "0.9.0", default-features = false, features = [ +virtual-net = { path = "../virtual-net", version = "0.10.0", default-features = false, features = [ "rkyv", ] } -virtual-fs = { path = "../virtual-fs", version = "0.17.0", default-features = false } +virtual-fs = { path = "../virtual-fs", version = "0.18.0", default-features = false } shared-buffer = { workspace = true, optional = true } base64.workspace = true rkyv = { workspace = true } diff --git a/lib/middlewares/Cargo.toml b/lib/middlewares/Cargo.toml index 3e66a888b4f..1256a88a314 100644 --- a/lib/middlewares/Cargo.toml +++ b/lib/middlewares/Cargo.toml @@ -13,12 +13,12 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = ["compiler"] } -wasmer-types = { path = "../types", version = "=4.4.0" } -wasmer-vm = { path = "../vm", version = "=4.4.0" } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["compiler"] } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } +wasmer-vm = { path = "../vm", version = "=5.0.0-rc.1" } [dev-dependencies] -wasmer = { path = "../api", version = "=4.4.0", features = ["compiler"] } +wasmer = { path = "../api", version = "=5.0.0-rc.1", features = ["compiler"] } [badges] maintenance = { status = "actively-developed" } diff --git a/lib/object/Cargo.toml b/lib/object/Cargo.toml index befb66441bd..5500d84dc61 100644 --- a/lib/object/Cargo.toml +++ b/lib/object/Cargo.toml @@ -13,7 +13,7 @@ rust-version.workspace = true version.workspace = true [dependencies] -wasmer-types = { path = "../types", version = "=4.4.0" } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } object = { version = "0.29.0", default-features = false, features = ["write"] } thiserror = "1.0" diff --git a/lib/registry/Cargo.toml b/lib/registry/Cargo.toml index 2df12235a63..6c38ce52377 100644 --- a/lib/registry/Cargo.toml +++ b/lib/registry/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-registry" -version = "5.20.0" +version = "5.21.0" description = "Crate to interact with the wasmer registry, download packages, etc." authors.workspace = true edition.workspace = true @@ -74,7 +74,7 @@ toml.workspace = true tracing = "0.1.40" url = "2.5.0" wasmer-config = { version = "0.9.0", path = "../config" } -wasmer-wasm-interface = { version = "4.4.0", path = "../wasm-interface", optional = true } +wasmer-wasm-interface = { version = "5.0.0-rc.1", path = "../wasm-interface", optional = true } wasmparser = { workspace = true, optional = true } whoami = "1.2.3" webc.workspace = true diff --git a/lib/swift/Cargo.toml b/lib/swift/Cargo.toml index 9d37efbf4c0..844ed275407 100644 --- a/lib/swift/Cargo.toml +++ b/lib/swift/Cargo.toml @@ -13,10 +13,10 @@ name = "wasmer_swift" thiserror = "1" tokio = { version = "1.28.1", features = [ "rt" ], default-features = false } uniffi = "0.27" -virtual-fs = { path = "../virtual-fs", version = "0.17.0", default-features = false, features = [ +virtual-fs = { path = "../virtual-fs", version = "0.18.0", default-features = false, features = [ "webc-fs", ] } -wasmer = { version = "4.4.0", path = "../api", default-features = false, features = [ +wasmer = { version = "5.0.0-rc.1", path = "../api", default-features = false, features = [ "wamr", "std", ] } diff --git a/lib/sys-utils/Cargo.toml b/lib/sys-utils/Cargo.toml index 5b147cb2fad..fee84c1620d 100644 --- a/lib/sys-utils/Cargo.toml +++ b/lib/sys-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-sys-utils" -version = "0.28.0" +version = "0.29.0" description = "Wasmer utilities for a sys environment." categories = ["wasm"] keywords = ["wasm", "webassembly"] @@ -12,9 +12,9 @@ repository.workspace = true rust-version.workspace = true [dependencies] -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = ["sys", "compiler"] } -wasmer-vm = { path = "../vm", version = "=4.4.0" } -wasmer-types = { path = "../types", version = "=4.4.0" } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["sys", "compiler"] } +wasmer-vm = { path = "../vm", version = "=5.0.0-rc.1" } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } region = { version = "3.0" } tracing = "0.1.37" @@ -23,7 +23,7 @@ libc.workspace = true [dev-dependencies] wasmer-wasix.workspace = true -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = ["sys", "compiler", "cranelift"] } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["sys", "compiler", "cranelift"] } tracing-subscriber = { version = "0.3.16", features = ["fmt"] } tracing = "0.1.37" diff --git a/lib/virtual-fs/Cargo.toml b/lib/virtual-fs/Cargo.toml index 9799ecdcad0..9c49c4ccdd6 100644 --- a/lib/virtual-fs/Cargo.toml +++ b/lib/virtual-fs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "virtual-fs" -version = "0.17.0" +version = "0.18.0" description = "Wasmer Virtual FileSystem" authors.workspace = true edition.workspace = true diff --git a/lib/virtual-io/Cargo.toml b/lib/virtual-io/Cargo.toml index 119fca4e4ce..b071a6277c4 100644 --- a/lib/virtual-io/Cargo.toml +++ b/lib/virtual-io/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "virtual-mio" -version = "0.4.0" +version = "0.5.0" description = "Wasmer Virtual IO Engine powered by mio" authors.workspace = true edition.workspace = true diff --git a/lib/virtual-net/Cargo.toml b/lib/virtual-net/Cargo.toml index e5deec6e66f..d4bdd69448e 100644 --- a/lib/virtual-net/Cargo.toml +++ b/lib/virtual-net/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "virtual-net" -version = "0.9.0" +version = "0.10.0" description = "Wasmer Virtual Networking" authors.workspace = true edition.workspace = true @@ -23,7 +23,7 @@ libc = { workspace = true, optional = true } mio = { workspace = true, optional = true } socket2 = { workspace = true, optional = true } derivative = { version = "^2" } -virtual-mio = { path = "../virtual-io", version = "0.4.0", default-features = false } +virtual-mio = { path = "../virtual-io", version = "0.5.0", default-features = false } bincode = { version = "1.3" } serde = { version = "1.0", default-features = false, features = ["derive"] } pin-project-lite = "0.2.9" diff --git a/lib/vm/Cargo.toml b/lib/vm/Cargo.toml index f8e7f6b0b91..ce20b731af2 100644 --- a/lib/vm/Cargo.toml +++ b/lib/vm/Cargo.toml @@ -15,7 +15,7 @@ version.workspace = true [dependencies] memoffset.workspace = true dashmap.workspace = true -wasmer-types = { path = "../types", version = "=4.4.0" } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } libc.workspace = true indexmap = { workspace = true } thiserror = "1.0" diff --git a/lib/wai-bindgen-wasmer/Cargo.toml b/lib/wai-bindgen-wasmer/Cargo.toml index bf20d712c03..f9e4f159e7a 100644 --- a/lib/wai-bindgen-wasmer/Cargo.toml +++ b/lib/wai-bindgen-wasmer/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "wai-bindgen-wasmer" description = "Generate WAI glue for a Rust Wasmer host" -version = "0.28.0" +version = "0.29.0" categories = ["wasm", "os"] keywords = ["wasm", "webassembly", "wasi", "sandbox", "ABI"] readme = "README.md" @@ -20,7 +20,7 @@ once_cell = "1.13" thiserror = "1.0" tracing-lib = { version = "0.1.26", optional = true, package = "tracing" } wai-bindgen-wasmer-impl = { version = "0.2.2" } -wasmer = { version = "=4.4.0", path = "../api", default-features = false } +wasmer = { version = "=5.0.0-rc.1", path = "../api", default-features = false } [features] # Enables generated code to emit events via the `tracing` crate whenever wasm is diff --git a/lib/wasi-types/Cargo.toml b/lib/wasi-types/Cargo.toml index 325d4d5e5e5..99413a1c9db 100644 --- a/lib/wasi-types/Cargo.toml +++ b/lib/wasi-types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-wasix-types" -version = "0.28.0" +version = "0.29.0" description = "WASI and WASIX types for Wasmer WebAssembly runtime" categories = ["wasm", "os"] keywords = ["wasm", "webassembly", "wasi", "sandbox", "ABI"] @@ -15,9 +15,9 @@ rust-version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -wasmer = { default-features = false, path = "../api", version = "=4.4.0" } -wasmer-types = { path = "../types", version = "=4.4.0" } -wasmer-derive = { path = "../derive", version = "=4.4.0" } +wasmer = { default-features = false, path = "../api", version = "=5.0.0-rc.1" } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1" } +wasmer-derive = { path = "../derive", version = "=5.0.0-rc.1" } wai-bindgen-gen-rust = "0.2.1" wai-bindgen-rust = { version = "0.2.1", default-features = false, features = ["macros"] } wai-bindgen-gen-rust-wasm = "0.2.1" diff --git a/lib/wasix/Cargo.toml b/lib/wasix/Cargo.toml index c4e10068fc6..f318344c2a4 100644 --- a/lib/wasix/Cargo.toml +++ b/lib/wasix/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-wasix" -version = "0.28.0" +version = "0.29.0" description = "WASI and WASIX implementation library for Wasmer WebAssembly runtime" categories = ["wasm", "os"] keywords = ["wasm", "webassembly", "wasi", "sandbox", "ABI"] @@ -13,23 +13,14 @@ repository.workspace = true rust-version.workspace = true [dependencies] -wasmer-wasix-types = { path = "../wasi-types", version = "0.28.0", features = [ - "enable-serde", -] } -wasmer-types = { path = "../types", version = "=4.4.0", default-features = false } -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = [ - "wat", - "js-serializable-module", -] } -virtual-mio = { path = "../virtual-io", version = "0.4.0", default-features = false } -virtual-fs = { path = "../virtual-fs", version = "0.17.0", default-features = false, features = [ - "webc-fs", -] } -virtual-net = { path = "../virtual-net", version = "0.9.0", default-features = false, features = [ - "rkyv", -] } -wasmer-journal = { path = "../journal", version = "0.10.0", default-features = false } -wasmer-emscripten = { path = "../emscripten", version = "=4.4.0", optional = true } +wasmer-wasix-types = { path = "../wasi-types", version = "0.29.0", features = [ "enable-serde" ] } +wasmer-types = { path = "../types", version = "=5.0.0-rc.1", default-features = false } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["wat", "js-serializable-module"] } +virtual-mio = { path = "../virtual-io", version = "0.5.0", default-features = false } +virtual-fs = { path = "../virtual-fs", version = "0.18.0", default-features = false, features = ["webc-fs"] } +virtual-net = { path = "../virtual-net", version = "0.10.0", default-features = false, features = ["rkyv"] } +wasmer-journal = { path = "../journal", version = "0.11.0", default-features = false } +wasmer-emscripten = { path = "../emscripten", version = "=5.0.0-rc.1", optional = true } wasmer-config = { version = "0.9.0", path = "../config" } http.workspace = true @@ -152,15 +143,8 @@ windows-sys = { version = "0.59", features = [ terminal_size = { version = "0.3.0" } [dev-dependencies] -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = [ - "wat", - "js-serializable-module", -] } -tokio = { workspace = true, features = [ - "sync", - "macros", - "rt", -], default-features = false } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["wat", "js-serializable-module"] } +tokio = { workspace = true, features = [ "sync", "macros", "rt" ], default-features = false } pretty_assertions.workspace = true tracing-test = "0.2.4" wasm-bindgen-test = "0.3.0" @@ -171,11 +155,7 @@ tracing-wasm = "0.2" [target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies] tracing-subscriber = { version = "^0.3" } -wasmer = { path = "../api", version = "=4.4.0", default-features = false, features = [ - "wat", - "js-serializable-module", - "cranelift", -] } +wasmer = { path = "../api", version = "=5.0.0-rc.1", default-features = false, features = ["wat", "js-serializable-module", "cranelift"] } [features] default = ["sys-default"] diff --git a/lib/wasix/src/syscalls/wasi/path_create_directory.rs b/lib/wasix/src/syscalls/wasi/path_create_directory.rs index 99944f7992c..fe07a65b40a 100644 --- a/lib/wasix/src/syscalls/wasi/path_create_directory.rs +++ b/lib/wasix/src/syscalls/wasi/path_create_directory.rs @@ -82,7 +82,7 @@ pub(crate) fn path_create_directory_internal( let mut cur_dir_inode = working_dir.inode; let mut created_directory = false; - for comp in &path_vec { + for (comp_idx, comp) in path_vec.iter().enumerate() { let processing_cur_dir_inode = cur_dir_inode.clone(); let mut guard = processing_cur_dir_inode.write(); match guard.deref_mut() { @@ -122,6 +122,10 @@ pub(crate) fn path_create_directory_internal( return Err(Errno::Notdir); } } else { + if comp_idx != path_vec.len() - 1 { + return Err(Errno::Noent); + } + created_directory = true; state.fs_create_dir(&adjusted_path)?; } diff --git a/scripts/update-version.py b/scripts/update-version.py index b86faf44ab2..0767737b49d 100644 --- a/scripts/update-version.py +++ b/scripts/update-version.py @@ -1,7 +1,7 @@ #!/usr/bin/python -PREVIOUS_VERSION='4.3.7' -NEXT_VERSION='4.4.0' +PREVIOUS_VERSION='4.4.0' +NEXT_VERSION='5.0.0-rc.1' import os import re diff --git a/scripts/windows-installer/wasmer.iss b/scripts/windows-installer/wasmer.iss index c59320d5529..79d129967ff 100644 --- a/scripts/windows-installer/wasmer.iss +++ b/scripts/windows-installer/wasmer.iss @@ -1,6 +1,6 @@ [Setup] AppName=Wasmer -AppVersion=4.4.0 +AppVersion=5.0.0-rc.1 DefaultDirName={pf}\Wasmer DefaultGroupName=Wasmer Compression=lzma2 diff --git a/tests/integration/cli/Cargo.toml b/tests/integration/cli/Cargo.toml index 75e305596e6..18c238bf2c2 100644 --- a/tests/integration/cli/Cargo.toml +++ b/tests/integration/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-integration-tests-cli" -version = "4.4.0" +version = "5.0.0-rc.1" authors = ["Wasmer Engineering Team "] description = "CLI integration tests" repository = "https://github.com/wasmerio/wasmer" diff --git a/tests/integration/ios/Cargo.toml b/tests/integration/ios/Cargo.toml index 5b6d03fb55d..38339b06ae0 100644 --- a/tests/integration/ios/Cargo.toml +++ b/tests/integration/ios/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-integration-tests-ios" -version = "4.4.0" +version = "5.0.0-rc.1" authors = ["Wasmer Engineering Team "] description = "iOS integration tests" repository = "https://github.com/wasmerio/wasmer" diff --git a/tests/lib/wast/Cargo.toml b/tests/lib/wast/Cargo.toml index 1728df86dfc..39169305246 100644 --- a/tests/lib/wast/Cargo.toml +++ b/tests/lib/wast/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasmer-wast" -version = "4.4.0" +version = "5.0.0-rc.1" authors = ["Wasmer Engineering Team "] description = "wast testing support for wasmer" license = "MIT OR Apache-2.0 WITH LLVM-exception" @@ -11,10 +11,10 @@ readme = "README.md" edition = "2018" [dependencies] -wasmer-types = { path = "../../../lib/types", version="=4.4.0" } -wasmer-wasix = { path = "../../../lib/wasix", version="=0.28.0" } -wasmer = { path = "../../../lib/api", version = "=4.4.0", default-features = false } -virtual-fs = { path = "../../../lib/virtual-fs", version = "0.17.0" } +wasmer-types = { path = "../../../lib/types", version="=5.0.0-rc.1" } +wasmer-wasix = { path = "../../../lib/wasix", version="=0.29.0" } +wasmer = { path = "../../../lib/api", version = "=5.0.0-rc.1", default-features = false } +virtual-fs = { path = "../../../lib/virtual-fs", version = "0.18.0" } anyhow = "1.0" wast = "216.0.0" diff --git a/tests/wasi-fyi/fs_create_dir-non_existent.rs b/tests/wasi-fyi/fs_create_dir-non_existent.rs new file mode 100644 index 00000000000..278c96909a6 --- /dev/null +++ b/tests/wasi-fyi/fs_create_dir-non_existent.rs @@ -0,0 +1,5 @@ +use std::fs; + +fn main() { + assert!(fs::create_dir("/fyi/fs_create_dir-non_existent.dir/not-exist/new-directory").is_err()); +} diff --git a/tests/wasi-fyi/test_fs/fyi/fs_create_dir-non_existent.rs/.ignore b/tests/wasi-fyi/test_fs/fyi/fs_create_dir-non_existent.rs/.ignore new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/wasi-wast/Cargo.toml b/tests/wasi-wast/Cargo.toml index 6cc2d1bbaab..9848e2b63c8 100644 --- a/tests/wasi-wast/Cargo.toml +++ b/tests/wasi-wast/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "wasi-test-generator" -version = "4.4.0" +version = "5.0.0-rc.1" description = "Tests for our WASI implementation" license = "MIT" authors = ["Wasmer Engineering Team "] diff --git a/tests/wasmer-argus/Cargo.toml b/tests/wasmer-argus/Cargo.toml index a7db128d63e..92150278856 100644 --- a/tests/wasmer-argus/Cargo.toml +++ b/tests/wasmer-argus/Cargo.toml @@ -24,7 +24,7 @@ clap = {version = "4.4.11", features = ["derive", "string"]} tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } serde = { version = "1.0.197", features = ["derive"] } serde_json = "1.0.114" -wasmer = { version = "4.4.0", path = "../../lib/api", features = ["engine", "core", "singlepass", "cranelift", "llvm"], optional = true } +wasmer = { version = "5.0.0-rc.1", path = "../../lib/api", features = ["engine", "core", "singlepass", "cranelift", "llvm"], optional = true } derive_more = "0.99.17" webc.workspace = true async-trait = "0.1.77"