Round 356: Wasm ext, Wasmer ext, Wasmtime ext, WasmEdge ext, Emscripten ext (20 commands)

ober

3c7a3695613fcf4eb37306648975c1885679452b

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 2e78803..3eab17d 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 356 — Wasm ext, Wasmer ext, Wasmtime ext, WasmEdge ext, Emscripten ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| wasm-validate | :orange_circle: | Wasm: validate module |
+| wasm-objdump | :orange_circle: | Wasm: dump module |
+| wasm-strip | :orange_circle: | Wasm: strip module |
+| wasm-decompile | :orange_circle: | Wasm: decompile module |
+| wasmer-run | :orange_circle: | Wasmer: run module |
+| wasmer-compile | :orange_circle: | Wasmer: compile module |
+| wasmer-inspect | :orange_circle: | Wasmer: inspect module |
+| wasmer-create-exe | :orange_circle: | Wasmer: create executable |
+| wasmtime-run | :orange_circle: | Wasmtime: run module |
+| wasmtime-compile | :orange_circle: | Wasmtime: compile module |
+| wasmtime-explore | :orange_circle: | Wasmtime: explore module |
+| wasmtime-settings | :orange_circle: | Wasmtime: show settings |
+| wasmedge-run | :orange_circle: | WasmEdge: run module |
+| wasmedge-compile | :orange_circle: | WasmEdge: compile module |
+| wasmedge-version | :orange_circle: | WasmEdge: show version |
+| wasmedge-plugins | :orange_circle: | WasmEdge: list plugins |
+| emscripten-compile | :orange_circle: | Emscripten: compile file |
+| emscripten-link | :orange_circle: | Emscripten: link output |
+| emscripten-run | :orange_circle: | Emscripten: run file |
+| emscripten-ports | :orange_circle: | Emscripten: list ports |
+
 ### Round 355 — Dagger ext, Earthly ext, Mise ext, Asdf ext, Direnv ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index d31c002..a4bed5b 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25805,3 +25805,55 @@
 (def (cmd-direnv-edit app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Direnv: editing .envrc")))
+
+;;; Round 356 — Wasmtime ext, WasmEdge ext, Emscripten ext (batch 2)
+
+(def (cmd-wasmtime-explore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmtime explore module: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmtime: exploring " mod))))))
+
+(def (cmd-wasmtime-settings app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Wasmtime: showing settings")))
+
+(def (cmd-wasmedge-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "WasmEdge run module: "
+      (lambda (mod)
+        (echo-message! echo (str "WasmEdge: running " mod))))))
+
+(def (cmd-wasmedge-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "WasmEdge compile module: "
+      (lambda (mod)
+        (echo-message! echo (str "WasmEdge: compiling " mod))))))
+
+(def (cmd-wasmedge-version app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "WasmEdge: showing version")))
+
+(def (cmd-wasmedge-plugins app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "WasmEdge: listing plugins")))
+
+(def (cmd-emscripten-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Emscripten compile file: "
+      (lambda (file)
+        (echo-message! echo (str "Emscripten: compiling " file))))))
+
+(def (cmd-emscripten-link app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Emscripten: linking output")))
+
+(def (cmd-emscripten-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Emscripten run file: "
+      (lambda (file)
+        (echo-message! echo (str "Emscripten: running " file))))))
+
+(def (cmd-emscripten-ports app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Emscripten: listing available ports")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 1b155a1..cd066b1 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -26530,3 +26530,65 @@
     (echo-read-string echo "Mise use tool@version: "
       (lambda (tool)
         (echo-message! echo (str "Mise: using " tool))))))
+
+;;; Round 356 — Wasm ext, Wasmer ext, Wasmtime ext, WasmEdge ext, Emscripten ext (batch 1)
+
+(def (cmd-wasm-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasm validate file: "
+      (lambda (file)
+        (echo-message! echo (str "Wasm: validating " file))))))
+
+(def (cmd-wasm-objdump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasm objdump file: "
+      (lambda (file)
+        (echo-message! echo (str "Wasm: dumping " file))))))
+
+(def (cmd-wasm-strip app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasm strip file: "
+      (lambda (file)
+        (echo-message! echo (str "Wasm: stripping " file))))))
+
+(def (cmd-wasm-decompile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasm decompile file: "
+      (lambda (file)
+        (echo-message! echo (str "Wasm: decompiling " file))))))
+
+(def (cmd-wasmer-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmer run module: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmer: running " mod))))))
+
+(def (cmd-wasmer-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmer compile module: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmer: compiling " mod))))))
+
+(def (cmd-wasmer-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmer inspect module: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmer: inspecting " mod))))))
+
+(def (cmd-wasmer-create-exe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmer create exe from: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmer: creating executable from " mod))))))
+
+(def (cmd-wasmtime-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmtime run module: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmtime: running " mod))))))
+
+(def (cmd-wasmtime-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Wasmtime compile module: "
+      (lambda (mod)
+        (echo-message! echo (str "Wasmtime: compiling " mod))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 65a16ad..bd35b6e 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8914,4 +8914,26 @@
   (register-command! 'direnv-deny cmd-direnv-deny)
   (register-command! 'direnv-status cmd-direnv-status)
   (register-command! 'direnv-edit cmd-direnv-edit)
+
+  ;; Round 356 — Wasm ext, Wasmer ext, Wasmtime ext, WasmEdge ext, Emscripten ext
+  (register-command! 'wasm-validate cmd-wasm-validate)
+  (register-command! 'wasm-objdump cmd-wasm-objdump)
+  (register-command! 'wasm-strip cmd-wasm-strip)
+  (register-command! 'wasm-decompile cmd-wasm-decompile)
+  (register-command! 'wasmer-run cmd-wasmer-run)
+  (register-command! 'wasmer-compile cmd-wasmer-compile)
+  (register-command! 'wasmer-inspect cmd-wasmer-inspect)
+  (register-command! 'wasmer-create-exe cmd-wasmer-create-exe)
+  (register-command! 'wasmtime-run cmd-wasmtime-run)
+  (register-command! 'wasmtime-compile cmd-wasmtime-compile)
+  (register-command! 'wasmtime-explore cmd-wasmtime-explore)
+  (register-command! 'wasmtime-settings cmd-wasmtime-settings)
+  (register-command! 'wasmedge-run cmd-wasmedge-run)
+  (register-command! 'wasmedge-compile cmd-wasmedge-compile)
+  (register-command! 'wasmedge-version cmd-wasmedge-version)
+  (register-command! 'wasmedge-plugins cmd-wasmedge-plugins)
+  (register-command! 'emscripten-compile cmd-emscripten-compile)
+  (register-command! 'emscripten-link cmd-emscripten-link)
+  (register-command! 'emscripten-run cmd-emscripten-run)
+  (register-command! 'emscripten-ports cmd-emscripten-ports)
 )