Commit c3f2222a59

Alex Rønne Petersen <alex@alexrp.com>
2025-04-02 23:47:37
std.zig.system: Make getExternalExecutor() less opinionated about Wasmtime.
Wasmtime supports both wasm32 and wasm64, and can run freestanding WASM binaries just fine (although the usefulness of the latter is fairly limited).
1 parent 11db7ea
Changed files (1)
lib
std
lib/std/zig/system.zig
@@ -125,6 +125,10 @@ pub fn getExternalExecutor(
         };
     }
 
+    if (options.allow_wasmtime and candidate.cpu.arch.isWasm()) {
+        return Executor{ .wasmtime = "wasmtime" };
+    }
+
     switch (candidate.os.tag) {
         .windows => {
             if (options.allow_wine) {
@@ -142,15 +146,6 @@ pub fn getExternalExecutor(
             }
             return bad_result;
         },
-        .wasi => {
-            if (options.allow_wasmtime) {
-                switch (candidate.ptrBitWidth()) {
-                    32 => return Executor{ .wasmtime = "wasmtime" },
-                    else => return bad_result,
-                }
-            }
-            return bad_result;
-        },
         .macos => {
             if (options.allow_darling) {
                 // This check can be loosened once darling adds a QEMU-based emulation