Skip to content

Commit 6890415

Browse files
authored
Merge branch 'release-5.0' into wasmi
2 parents f00b184 + 8e95936 commit 6890415

File tree

17 files changed

+5572
-4917
lines changed

17 files changed

+5572
-4917
lines changed

.github/workflows/build.yml

+9-5
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ jobs:
4646
- build: linux-x64
4747
os: ubuntu-20.04
4848
artifact_name: 'wasmer-linux-amd64'
49-
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/15.x/llvm-linux-amd64.tar.xz'
49+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz'
5050
cross_compilation_artifact_name: 'cross_compiled_from_linux'
5151
use_sccache: false
5252
use_llvm: true
5353
build_wasm: true
5454
- build: macos-x64
5555
os: macos-12
56-
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/15.x/llvm-darwin-amd64.tar.xz'
56+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz'
5757
artifact_name: 'wasmer-darwin-amd64'
5858
cross_compilation_artifact_name: 'cross_compiled_from_mac'
5959
use_sccache: false
@@ -66,18 +66,19 @@ jobs:
6666
use_sccache: false
6767
use_llvm: false
6868
build_wasm: false
69+
# [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly.
70+
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz'
6971
- build: windows-x64
7072
os: windows-2019
7173
artifact_name: 'wasmer-windows-amd64'
72-
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/15.x/llvm-windows-amd64.tar.xz'
74+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz'
7375
cross_compilation_artifact_name: 'cross_compiled_from_win'
7476
use_sccache: false
7577
use_llvm: true
7678
build_wasm: false
7779
- build: linux-musl-x64
7880
os: ubuntu-latest
7981
artifact_name: 'wasmer-linux-musl-amd64'
80-
#llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/15.x/llvm-linux-amd64.tar.xz'
8182
container: alpine:latest
8283
use_sccache: false
8384
use_llvm: false
@@ -113,13 +114,16 @@ jobs:
113114
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
114115
env:
115116
LLVM_DIR: .llvm
117+
- name: Install MSVC dev-cmd (Windows)
118+
uses: ilammy/msvc-dev-cmd@v1
119+
if: ${{ matrix.metadata.build == 'windows-x64' }}
116120
- name: Configure LLVM (Windows)
117121
# The Custom Windows build does not contains llvm-config.exe, so need to setup manualy here
118122
if: matrix.build == 'windows-x64' && matrix.llvm_url
119123
shell: bash
120124
run: |
121125
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
122-
echo LLVM_SYS_150_PREFIX="${LLVM_DIR}" >> $GITHUB_ENV
126+
echo LLVM_SYS_180_PREFIX="${LLVM_DIR}" >> $GITHUB_ENV
123127
echo LLVM_ENABLE=1 >> $GITHUB_ENV
124128
env:
125129
LLVM_DIR: .llvm

.github/workflows/test.yaml

+111-35
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ jobs:
6464
sudo apt install -y libtinfo5
6565
- name: Install LLVM (Linux)
6666
run: |
67-
curl --proto '=https' --tlsv1.2 -sSf https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz -L -o /opt/llvm.tar.xz
68-
mkdir -p /opt/llvm-15
69-
tar xf /opt/llvm.tar.xz --strip-components=1 -C /opt/llvm-15
70-
echo '/opt/llvm-15/bin' >> $GITHUB_PATH
71-
echo 'LLVM_SYS_150_PREFIX=/opt/llvm-15' >> $GITHUB_ENV
67+
curl --proto '=https' --tlsv1.2 -sSf https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz -L -o /opt/llvm.tar.xz
68+
mkdir -p /opt/llvm-18
69+
tar xf /opt/llvm.tar.xz --strip-components=1 -C /opt/llvm-18
70+
echo '/opt/llvm-18/bin' >> $GITHUB_PATH
71+
echo 'LLVM_SYS_180_PREFIX=/opt/llvm-18' >> $GITHUB_ENV
7272
- name: Cache
7373
uses: whywaita/actions-cache-s3@v2
7474
with:
@@ -135,6 +135,18 @@ jobs:
135135
- name: Install wasm-pack
136136
run: |
137137
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
138+
- name: Install LLVM 18
139+
run: |
140+
curl --proto '=https' --tlsv1.2 -sSf https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz -L -o llvm.tar.xz
141+
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
142+
mkdir ${LLVM_DIR}
143+
tar xf llvm.tar.xz --strip-components=1 -C ${LLVM_DIR}
144+
echo "ENABLE_LLVM=1" >> $GITHUB_ENV
145+
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
146+
echo "${LLVM_DIR}/usr/bin" >> $GITHUB_PATH
147+
echo "LLVM_SYS_180_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
148+
env:
149+
LLVM_DIR: .llvm
138150
- name: make test-wasi-fyi
139151
run: |
140152
make test-wasi-fyi
@@ -171,6 +183,18 @@ jobs:
171183
curl -L "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ env.WASI_SDK_VERSION }}/wasi-sdk-${{ env.WASI_SDK_VERSION }}.0-linux.tar.gz" -o wasi-sdk.tar.gz
172184
tar -xzf wasi-sdk.tar.gz
173185
cp -r wasi-sdk-${{ env.WASI_SDK_VERSION }}.0 ~/wasi-sdk
186+
- name: Install LLVM 18
187+
run: |
188+
curl --proto '=https' --tlsv1.2 -sSf https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz -L -o llvm.tar.xz
189+
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
190+
mkdir ${LLVM_DIR}
191+
tar xf llvm.tar.xz --strip-components=1 -C ${LLVM_DIR}
192+
echo "ENABLE_LLVM=1" >> $GITHUB_ENV
193+
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
194+
echo "${LLVM_DIR}/usr/bin" >> $GITHUB_PATH
195+
echo "LLVM_SYS_180_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
196+
env:
197+
LLVM_DIR: .llvm
174198
- name: Install wasm-opt
175199
run: |
176200
sudo apt-get install -y binaryen
@@ -264,6 +288,18 @@ jobs:
264288
toolchain: "nightly-2024-08-21"
265289
target: x86_64-unknown-linux-gnu
266290
- run: cargo install toml-cli # toml-cli is required to run `make test-build-docs-rs`
291+
- name: Install LLVM 18
292+
run: |
293+
curl --proto '=https' --tlsv1.2 -sSf https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz -L -o llvm.tar.xz
294+
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
295+
mkdir ${LLVM_DIR}
296+
tar xf llvm.tar.xz --strip-components=1 -C ${LLVM_DIR}
297+
echo "ENABLE_LLVM=1" >> $GITHUB_ENV
298+
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
299+
echo "${LLVM_DIR}/usr/bin" >> $GITHUB_PATH
300+
echo "LLVM_SYS_180_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
301+
env:
302+
LLVM_DIR: .llvm
267303
- name: make test-build-docs-rs-ci
268304
run: make test-build-docs-rs-ci
269305

@@ -409,36 +445,41 @@ jobs:
409445
build: linux-x64,
410446
os: ubuntu-22.04,
411447
target: x86_64-unknown-linux-gnu,
412-
llvm_url: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz'
413-
},
414-
{
415-
build: linux-musl,
416-
target: x86_64-unknown-linux-musl,
417-
os: ubuntu-22.04,
418-
container: 'alpine:latest'
448+
exe: '',
449+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz'
419450
},
420451
{
421452
build: macos-x64,
422453
os: macos-12,
423454
target: x86_64-apple-darwin,
424-
llvm_url: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang+llvm-15.0.7-x86_64-apple-darwin21.0.tar.xz'
455+
exe: '',
456+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz'
457+
425458
},
426459
{
427-
build: macos-arm,
428-
os: macos-12,
460+
build: macos-arm64,
461+
os: macos-14,
429462
target: aarch64-apple-darwin,
463+
exe: '',
464+
# [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly.
465+
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz'
430466
},
431467
{
432468
build: windows-x64,
433-
os: windows-2019,
469+
os: windows-2022,
434470
target: x86_64-pc-windows-msvc,
435-
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/15.x/llvm-windows-amd64.tar.xz'
471+
exe: '.exe',
472+
# For now, disable LLVM in `windows-x64.`
473+
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz'
436474
},
437475
{
438-
build: windows-gnu,
439-
target: x86_64-pc-windows-gnu,
476+
build: linux-musl,
477+
target: x86_64-unknown-linux-musl,
440478
os: ubuntu-22.04,
479+
exe: '',
480+
container: 'alpine:latest'
441481
}
482+
442483
]
443484
container: ${{ matrix.metadata.container }}
444485
env:
@@ -469,6 +510,13 @@ jobs:
469510
target: ${{ matrix.metadata.target }}
470511
- name: Install Nextest
471512
uses: taiki-e/install-action@nextest
513+
- name: Install MSVC dev-cmd (Windows)
514+
uses: ilammy/msvc-dev-cmd@v1
515+
if: ${{ matrix.metadata.build == 'windows-x64' }}
516+
- name: Delete unwanted link to stop it from interfering (Windows)
517+
shell: bash
518+
run: rm /usr/bin/link.exe
519+
if: ${{ matrix.metadata.build == 'windows-x64' }}
472520
- name: Install Windows-GNU linker
473521
if: ${{ matrix.metadata.build == 'windows-gnu' }}
474522
shell: bash
@@ -506,8 +554,8 @@ jobs:
506554
run: |
507555
brew install llvm
508556
- name: Install LLVM
509-
if: matrix.metadata.llvm_url
510557
shell: bash
558+
if: matrix.metadata.llvm_url
511559
run: |
512560
curl --proto '=https' --tlsv1.2 -sSf ${{ matrix.metadata.llvm_url }} -L -o llvm.tar.xz
513561
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
@@ -516,9 +564,14 @@ jobs:
516564
echo "ENABLE_LLVM=1" >> $GITHUB_ENV
517565
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
518566
echo "${LLVM_DIR}/usr/bin" >> $GITHUB_PATH
519-
echo "LLVM_SYS_150_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
567+
echo "LLVM_SYS_180_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
520568
env:
521569
LLVM_DIR: .llvm
570+
- name: Add `brew` libs to `RUSTFLAGS`
571+
if: matrix.metadata.os == 'macos-14'
572+
shell: bash
573+
run: |
574+
echo "RUSTFLAGS=-L/opt/homebrew/lib" >> $GITHUB_ENV
522575
- name: Setup Rust target
523576
shell: bash
524577
run: |
@@ -640,27 +693,31 @@ jobs:
640693
os: ubuntu-22.04,
641694
target: x86_64-unknown-linux-gnu,
642695
exe: '',
643-
llvm_url: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz'
696+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz'
644697
},
645698
{
646699
build: macos-x64,
647700
os: macos-12,
648701
target: x86_64-apple-darwin,
649702
exe: '',
650-
llvm_url: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang+llvm-15.0.7-x86_64-apple-darwin21.0.tar.xz'
703+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-amd64.tar.xz'
704+
651705
},
652706
{
653707
build: macos-arm64,
654708
os: macos-14,
655709
target: aarch64-apple-darwin,
656710
exe: '',
711+
# [todo] xdoardo: Reinstate when the code we generate for aarch64 is working correctly.
712+
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-darwin-aarch64.tar.xz'
657713
},
658714
{
659715
build: windows-x64,
660-
os: windows-2019,
716+
os: windows-2022,
661717
target: x86_64-pc-windows-msvc,
662718
exe: '.exe',
663-
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/15.x/llvm-windows-amd64.tar.xz'
719+
# For now, disable LLVM in `windows-x64.`
720+
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz'
664721
},
665722
{
666723
build: linux-musl,
@@ -685,6 +742,14 @@ jobs:
685742
- name: Set up base deps on musl
686743
if: matrix.metadata.build == 'linux-musl'
687744
run: ./scripts/alpine-linux-install-deps.sh
745+
- name: Install MSVC dev-cmd (Windows)
746+
uses: ilammy/msvc-dev-cmd@v1
747+
if: ${{ matrix.metadata.build == 'windows-x64' }}
748+
- name: Delete unwanted link to stop it from interfering (Windows)
749+
shell: bash
750+
run: rm /usr/bin/link.exe
751+
if: ${{ matrix.metadata.build == 'windows-x64' }}
752+
688753
- name: Set up dependencies for Mac OS
689754
run: |
690755
brew install automake
@@ -704,17 +769,24 @@ jobs:
704769
run: |
705770
brew install llvm
706771
- name: Install LLVM
707-
if: matrix.metadata.llvm_url
708772
shell: bash
773+
if: matrix.metadata.llvm_url
709774
run: |
710775
curl --proto '=https' --tlsv1.2 -sSf ${{ matrix.metadata.llvm_url }} -L -o llvm.tar.xz
711776
LLVM_DIR=$(pwd)/${{ env.LLVM_DIR }}
712777
mkdir ${LLVM_DIR}
713778
tar xf llvm.tar.xz --strip-components=1 -C ${LLVM_DIR}
714779
echo "${LLVM_DIR}/bin" >> $GITHUB_PATH
715-
echo "LLVM_SYS_120_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
780+
echo "${LLVM_DIR}/usr/bin" >> $GITHUB_PATH
781+
echo "LLVM_SYS_180_PREFIX=${LLVM_DIR}" >> $GITHUB_ENV
782+
echo "ENABLE_LLVM=1" >> $GITHUB_ENV
716783
env:
717784
LLVM_DIR: .llvm
785+
- name: Add `brew` libs to `RUSTFLAGS`
786+
if: matrix.metadata.os == 'macos-14'
787+
shell: bash
788+
run: |
789+
echo "RUSTFLAGS=-L/opt/homebrew/lib" >> $GITHUB_ENV
718790
- name: Setup Rust target
719791
shell: bash
720792
run: |
@@ -739,12 +811,14 @@ jobs:
739811
aws-s3-bucket-endpoint: false
740812
aws-s3-force-path-style: true
741813
- name: ${{ matrix.stage.description }}
814+
shell: bash
742815
run: make ${{ matrix.stage.make }}
743816
env:
744817
TARGET: ${{ matrix.metadata.target }}
745818
TARGET_DIR: target/${{ matrix.metadata.target }}/release
746819
CARGO_TARGET: ${{ matrix.metadata.target }}
747820

821+
748822
test_integration_cli:
749823
name: CLI integration tests on ${{ matrix.build }}
750824
runs-on: ${{ matrix.os }}
@@ -756,13 +830,12 @@ jobs:
756830
- build: linux-x64
757831
os: ubuntu-22.04
758832
target: x86_64-unknown-linux-gnu
759-
llvm_url: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz'
833+
llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-linux-amd64.tar.xz'
760834
- build: macos-x64
761835
os: macos-12
762836
target: x86_64-apple-darwin
763-
llvm_url: 'https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang+llvm-15.0.7-x86_64-apple-darwin21.0.tar.xz'
764837
# we only build the integration-test CLI, we don't run tests
765-
- build: macos-arm
838+
- build: macos-arm64
766839
os: macos-12
767840
target: aarch64-apple-darwin,
768841
- build: linux-musl
@@ -772,6 +845,9 @@ jobs:
772845
- build: windows-x64
773846
os: windows-2019
774847
target: x86_64-pc-windows-msvc
848+
# For now, disable LLVM in `windows-x64.`
849+
# llvm_url: 'https://github.com/wasmerio/llvm-custom-builds/releases/download/18.x/llvm-windows-amd64.tar.xz'
850+
775851
container: ${{ matrix.container }}
776852
env:
777853
SCCACHE_AZURE_BLOB_CONTAINER: wasmerstoragesccacheblob
@@ -825,11 +901,11 @@ jobs:
825901
path: package/cache/wasmercache1
826902
- uses: actions/download-artifact@v3
827903
with:
828-
name: capi-windows-gnu
904+
name: capi-windows-x64
829905
path: package/cache/wasmercache2
830906
- uses: actions/download-artifact@v3
831907
with:
832-
name: capi-macos-arm
908+
name: capi-macos-arm64
833909
path: package/cache/wasmercache3
834910
- uses: actions/download-artifact@v3
835911
with:
@@ -860,17 +936,17 @@ jobs:
860936
- uses: actions/download-artifact@v3
861937
if: ${{ matrix.build == 'windows-x64' }}
862938
with:
863-
name: capi-windows-gnu
939+
name: capi-windows-x64
864940
path: download_link
865941
- uses: actions/download-artifact@v3
866942
if: ${{ matrix.build == 'linux-musl' }}
867943
with:
868944
name: capi-linux-musl
869945
path: download_link
870946
- uses: actions/download-artifact@v3
871-
if: ${{ matrix.build == 'macos-arm' }}
947+
if: ${{ matrix.build == 'macos-arm64' }}
872948
with:
873-
name: capi-macos-arm
949+
name: capi-macos-arm64
874950
path: download_link
875951
- uses: actions/download-artifact@v3
876952
if: ${{ matrix.build == 'macos-x64' }}

0 commit comments

Comments
 (0)