From 2c746eb739671c620d9d14f6544beffc4b1c7b7d Mon Sep 17 00:00:00 2001 From: Yota Toyama Date: Tue, 21 Jan 2025 08:48:57 +0900 Subject: [PATCH 1/4] Fix WASM/WASI target --- cmd/pen/src/compile_configuration.rs | 2 +- doc/docs/advanced-features/cross-compile.md | 2 +- features/commands/build.feature | 4 ++-- lib/app/src/module_compiler.rs | 2 +- packages/core/ffi/rust-toolchain.toml | 2 +- packages/http/ffi/rust-toolchain.toml | 2 +- packages/json/ffi/rust-toolchain.toml | 2 +- packages/os-sync/ffi/rust-toolchain.toml | 2 +- packages/os/ffi/application/rust-toolchain.toml | 2 +- packages/os/ffi/library/rust-toolchain.toml | 2 +- packages/prelude/ffi/rust-toolchain.toml | 2 +- packages/sql/ffi/rust-toolchain.toml | 2 +- rust-toolchain.toml | 2 +- tools/integration_test.sh | 2 +- 14 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cmd/pen/src/compile_configuration.rs b/cmd/pen/src/compile_configuration.rs index 86a711348b..1f3a77efff 100644 --- a/cmd/pen/src/compile_configuration.rs +++ b/cmd/pen/src/compile_configuration.rs @@ -4,7 +4,7 @@ pub const CROSS_COMPILE_TARGETS: &[&str] = &[ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ]; pub static COMPILE_CONFIGURATION: LazyLock> = diff --git a/doc/docs/advanced-features/cross-compile.md b/doc/docs/advanced-features/cross-compile.md index 47e7819739..44b6a57a0d 100644 --- a/doc/docs/advanced-features/cross-compile.md +++ b/doc/docs/advanced-features/cross-compile.md @@ -5,7 +5,7 @@ The language's compiler supports [cross compile](https://en.wikipedia.org/wiki/c For example, run the following command to compile a `wasm32` binary for the WASI platform. ```sh -pen build --target wasm32-wasi +pen build --target wasm32-wasip2 ``` Note that we currently support those targets via [Rust](https://www.rust-lang.org/)'s cross compiler toolchain. Please install a Rust compiler through [`rustup`](https://rust-lang.github.io/rustup/) to enable installation of toolchains for different targets. diff --git a/features/commands/build.feature b/features/commands/build.feature index c4d18d8aae..e95e14d791 100644 --- a/features/commands/build.feature +++ b/features/commands/build.feature @@ -64,7 +64,7 @@ Feature: Building packages | i686-unknown-linux-musl | | x86_64-unknown-linux-musl | | aarch64-unknown-linux-musl | - | wasm32-wasi | + | wasm32-wasip2 | Scenario Outline: Cross-build a library package Given a file named "pen.json" with: @@ -89,7 +89,7 @@ Feature: Building packages | i686-unknown-linux-musl | | x86_64-unknown-linux-musl | | aarch64-unknown-linux-musl | - | wasm32-wasi | + | wasm32-wasip2 | Scenario: Build an application package again Given a file named "pen.json" with: diff --git a/lib/app/src/module_compiler.rs b/lib/app/src/module_compiler.rs index 2e4163319e..418c20b6e4 100644 --- a/lib/app/src/module_compiler.rs +++ b/lib/app/src/module_compiler.rs @@ -246,7 +246,7 @@ mod tests { #[test] fn calculate() { for (triple, size) in [ - ("wasm32-wasi", 4), + ("wasm32-wasip2", 4), ("wasm64-wasi", 8), ("i386-unknown-linux-gnu", 4), ("x86_64-unknown-linux-gnu", 8), diff --git a/packages/core/ffi/rust-toolchain.toml b/packages/core/ffi/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/core/ffi/rust-toolchain.toml +++ b/packages/core/ffi/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/http/ffi/rust-toolchain.toml b/packages/http/ffi/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/http/ffi/rust-toolchain.toml +++ b/packages/http/ffi/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/json/ffi/rust-toolchain.toml b/packages/json/ffi/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/json/ffi/rust-toolchain.toml +++ b/packages/json/ffi/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/os-sync/ffi/rust-toolchain.toml b/packages/os-sync/ffi/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/os-sync/ffi/rust-toolchain.toml +++ b/packages/os-sync/ffi/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/os/ffi/application/rust-toolchain.toml b/packages/os/ffi/application/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/os/ffi/application/rust-toolchain.toml +++ b/packages/os/ffi/application/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/os/ffi/library/rust-toolchain.toml b/packages/os/ffi/library/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/os/ffi/library/rust-toolchain.toml +++ b/packages/os/ffi/library/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/prelude/ffi/rust-toolchain.toml b/packages/prelude/ffi/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/prelude/ffi/rust-toolchain.toml +++ b/packages/prelude/ffi/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/packages/sql/ffi/rust-toolchain.toml b/packages/sql/ffi/rust-toolchain.toml index d1c339c5ea..16a417ad51 100644 --- a/packages/sql/ffi/rust-toolchain.toml +++ b/packages/sql/ffi/rust-toolchain.toml @@ -4,5 +4,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 9166aac8f4..8326d0ccc8 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -5,5 +5,5 @@ targets = [ "i686-unknown-linux-musl", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", - "wasm32-wasi", + "wasm32-wasip2", ] diff --git a/tools/integration_test.sh b/tools/integration_test.sh index ff437793c4..bdabe53df2 100755 --- a/tools/integration_test.sh +++ b/tools/integration_test.sh @@ -10,7 +10,7 @@ for target in \ i686-unknown-linux-musl \ x86_64-unknown-linux-musl \ aarch64-unknown-linux-musl \ - wasm32-wasi; do + wasm32-wasip2; do rustup target add $target done From 1b0086ed4a9a5aab0e5e1681a04dee7471983b51 Mon Sep 17 00:00:00 2001 From: Yota Toyama Date: Tue, 21 Jan 2025 08:51:34 +0900 Subject: [PATCH 2/4] Fix --- cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/cspell.json b/cspell.json index a9bedab373..ea2e0e9fc4 100644 --- a/cspell.json +++ b/cspell.json @@ -93,6 +93,7 @@ "viewee", "wadler", "wasi", + "wasip2", "writability" ] } From 15ab28da03f724fdafa9c6f90f14a0d86c236ace Mon Sep 17 00:00:00 2001 From: Yota Toyama Date: Tue, 21 Jan 2025 08:57:02 +0900 Subject: [PATCH 3/4] Refactor --- lib/hir/src/analysis/type_equality_checker.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/hir/src/analysis/type_equality_checker.rs b/lib/hir/src/analysis/type_equality_checker.rs index c588cdf1d9..861a196734 100644 --- a/lib/hir/src/analysis/type_equality_checker.rs +++ b/lib/hir/src/analysis/type_equality_checker.rs @@ -21,8 +21,7 @@ fn check_canonical(one: &Type, other: &Type) -> bool { .arguments() .iter() .zip(other.arguments()) - .map(|(one, other)| check_canonical(one, other)) - .all(|ok| ok) + .all(|(one, other)| check_canonical(one, other)) && check_canonical(one.result(), other.result()) } (Type::List(one), Type::List(other)) => check_canonical(one.element(), other.element()), From 4d3f7158479c9a8ebdee6698c1cb4fa7fb8850d3 Mon Sep 17 00:00:00 2001 From: Yota Toyama Date: Tue, 21 Jan 2025 18:55:06 +0900 Subject: [PATCH 4/4] Fix --- packages/core/ffi/src/string/utf8.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/ffi/src/string/utf8.rs b/packages/core/ffi/src/string/utf8.rs index 584f2a6d3f..ced9f91626 100644 --- a/packages/core/ffi/src/string/utf8.rs +++ b/packages/core/ffi/src/string/utf8.rs @@ -131,7 +131,7 @@ fn get_utf8_byte_index(string: &str, index: usize) -> usize { .char_indices() .nth(index) .map(|(index, _)| index) - .unwrap_or_else(|| string.as_bytes().len()) + .unwrap_or_else(|| string.len()) } #[ffi::bindgen]