Round 357: LLVM ext, Clang ext, GCC ext, Meson ext, CMake ext (20 commands)

ober

e5e8101855cd1fa1ac4b4e083d6e24506610c6d6

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 3eab17d..91f150e 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 357 — LLVM ext, Clang ext, GCC ext, Meson ext, CMake ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| llvm-dis | :orange_circle: | LLVM: disassemble bitcode |
+| llvm-as | :orange_circle: | LLVM: assemble IR |
+| llvm-link | :orange_circle: | LLVM: link bitcode files |
+| llvm-opt | :orange_circle: | LLVM: optimize bitcode |
+| clang-ast-dump | :orange_circle: | Clang: dump AST |
+| clang-tidy | :orange_circle: | Clang-Tidy: check code |
+| clang-check | :orange_circle: | Clang-Check: analyze code |
+| clang-query | :orange_circle: | Clang-Query: run matcher |
+| gcc-dump | :orange_circle: | GCC: compiler dump |
+| gcc-specs | :orange_circle: | GCC: compiler specs |
+| gcc-machine | :orange_circle: | GCC: target machine |
+| gcc-version | :orange_circle: | GCC: show version |
+| meson-setup | :orange_circle: | Meson: setup build |
+| meson-compile | :orange_circle: | Meson: compile project |
+| meson-test | :orange_circle: | Meson: run tests |
+| meson-install | :orange_circle: | Meson: install project |
+| cmake-gui | :orange_circle: | CMake: open GUI |
+| cmake-cache | :orange_circle: | CMake: show cache |
+| cmake-test | :orange_circle: | CMake: run CTest |
+| cmake-presets | :orange_circle: | CMake: list presets |
+
 ### Round 356 — Wasm ext, Wasmer ext, Wasmtime ext, WasmEdge ext, Emscripten ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index a4bed5b..aa20a65 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25857,3 +25857,47 @@
 (def (cmd-emscripten-ports app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Emscripten: listing available ports")))
+
+;;; Round 357 — GCC ext, Meson ext, CMake ext (batch 2)
+
+(def (cmd-gcc-machine app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCC: showing target machine")))
+
+(def (cmd-gcc-version app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCC: showing version")))
+
+(def (cmd-meson-setup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Meson build directory: "
+      (lambda (dir)
+        (echo-message! echo (str "Meson: setting up in " dir))))))
+
+(def (cmd-meson-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meson: compiling project")))
+
+(def (cmd-meson-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meson: running tests")))
+
+(def (cmd-meson-install app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meson: installing project")))
+
+(def (cmd-cmake-gui app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CMake: opening GUI configurator")))
+
+(def (cmd-cmake-cache app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CMake: showing cache variables")))
+
+(def (cmd-cmake-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CMake: running CTest")))
+
+(def (cmd-cmake-presets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CMake: listing presets")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index cd066b1..2c7e9f6 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -26592,3 +26592,59 @@
     (echo-read-string echo "Wasmtime compile module: "
       (lambda (mod)
         (echo-message! echo (str "Wasmtime: compiling " mod))))))
+
+;;; Round 357 — LLVM ext, Clang ext, GCC ext, Meson ext, CMake ext (batch 1)
+
+(def (cmd-llvm-dis app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "LLVM disassemble file: "
+      (lambda (file)
+        (echo-message! echo (str "LLVM: disassembling " file))))))
+
+(def (cmd-llvm-as app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "LLVM assemble file: "
+      (lambda (file)
+        (echo-message! echo (str "LLVM: assembling " file))))))
+
+(def (cmd-llvm-link app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LLVM: linking bitcode files")))
+
+(def (cmd-llvm-opt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "LLVM optimize file: "
+      (lambda (file)
+        (echo-message! echo (str "LLVM: optimizing " file))))))
+
+(def (cmd-clang-ast-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Clang AST dump file: "
+      (lambda (file)
+        (echo-message! echo (str "Clang: dumping AST for " file))))))
+
+(def (cmd-clang-tidy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Clang-Tidy file: "
+      (lambda (file)
+        (echo-message! echo (str "Clang-Tidy: checking " file))))))
+
+(def (cmd-clang-check app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Clang-Check file: "
+      (lambda (file)
+        (echo-message! echo (str "Clang-Check: analyzing " file))))))
+
+(def (cmd-clang-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Clang-Query matcher: "
+      (lambda (matcher)
+        (echo-message! echo (str "Clang-Query: running " matcher))))))
+
+(def (cmd-gcc-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCC: showing compiler dump")))
+
+(def (cmd-gcc-specs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCC: showing compiler specs")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index bd35b6e..d97c7d5 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8936,4 +8936,26 @@
   (register-command! 'emscripten-link cmd-emscripten-link)
   (register-command! 'emscripten-run cmd-emscripten-run)
   (register-command! 'emscripten-ports cmd-emscripten-ports)
+
+  ;; Round 357 — LLVM ext, Clang ext, GCC ext, Meson ext, CMake ext
+  (register-command! 'llvm-dis cmd-llvm-dis)
+  (register-command! 'llvm-as cmd-llvm-as)
+  (register-command! 'llvm-link cmd-llvm-link)
+  (register-command! 'llvm-opt cmd-llvm-opt)
+  (register-command! 'clang-ast-dump cmd-clang-ast-dump)
+  (register-command! 'clang-tidy cmd-clang-tidy)
+  (register-command! 'clang-check cmd-clang-check)
+  (register-command! 'clang-query cmd-clang-query)
+  (register-command! 'gcc-dump cmd-gcc-dump)
+  (register-command! 'gcc-specs cmd-gcc-specs)
+  (register-command! 'gcc-machine cmd-gcc-machine)
+  (register-command! 'gcc-version cmd-gcc-version)
+  (register-command! 'meson-setup cmd-meson-setup)
+  (register-command! 'meson-compile cmd-meson-compile)
+  (register-command! 'meson-test cmd-meson-test)
+  (register-command! 'meson-install cmd-meson-install)
+  (register-command! 'cmake-gui cmd-cmake-gui)
+  (register-command! 'cmake-cache cmd-cmake-cache)
+  (register-command! 'cmake-test cmd-cmake-test)
+  (register-command! 'cmake-presets cmd-cmake-presets)
 )