|
8 | 8 | "language SDKs and we want one subdirectory of each, not a fast `bb ref`." |
9 | 9 | ], |
10 | 10 | "refs": { |
11 | | - "clojure": { "url": "https://github.com/clojure/clojure", "why": "the semantics we must match; clojure.lang is the dispatch reference" }, |
12 | | - "clojurescript": { "url": "https://github.com/clojure/clojurescript", "why": "the analyzer we plan to reuse, and a second dispatch strategy for the same semantics" }, |
13 | | - "ClojureWasm": { "url": "https://github.com/clojurewasm/ClojureWasm", "why": "sibling; read its doc/decisions and debt ledger for what went wrong" }, |
14 | | - "zwasm": { "url": "https://github.com/clojurewasm/zwasm", "why": "sibling; a Wasm engine written from scratch, including its JIT notes" }, |
15 | | - "clj.wasm": { "url": "https://github.com/kanaka/clj.wasm", "why": "earlier exploration of this exact question" }, |
16 | | - "tools.analyzer": { "url": "https://github.com/clojure/tools.analyzer", "why": "the retargetable analyzer; 0022 E defers the front-end choice to reading this, not recalling it" }, |
17 | | - "tools.analyzer.jvm": { "url": "https://github.com/clojure/tools.analyzer.jvm", "why": "what a complete tools.analyzer host layer actually costs, measured by example" }, |
18 | | - "teavm": { "url": "https://github.com/konsoletyper/teavm", "why": "a production JVM-hosted Java-to-WasmGC compiler; the third prior art for the emitter and object model" }, |
19 | | - |
20 | | - "wasmtime": { "url": "https://github.com/bytecodealliance/wasmtime", "large": true, "why": "the C API cljwit.host binds to (crates/c-api), and the reference Component Model implementation" }, |
21 | | - "component-model": { "url": "https://github.com/WebAssembly/component-model", "why": "the Canonical ABI we must emit by hand (S4); issue #525 is GC-in-ABI, still a pre-proposal" }, |
22 | | - "wit-bindgen": { "url": "https://github.com/bytecodealliance/wit-bindgen", "why": "how every other language binds WIT — no Clojure backend, so this is the shape to match, not to use" }, |
23 | | - "dart-sdk": { "url": "https://github.com/dart-lang/sdk", "large": true, "why": "dart2wasm: the closest prior art for lowering a GC'd object model onto WasmGC (pkg/dart2wasm)" }, |
24 | | - "kotlin": { "url": "https://github.com/JetBrains/kotlin", "large": true, "why": "Kotlin/Wasm: the second WasmGC backend built from scratch rather than via LLVM" } |
| 11 | + "clojure": { |
| 12 | + "url": "https://github.com/clojure/clojure", |
| 13 | + "why": "the semantics we must match; clojure.lang is the dispatch reference" |
| 14 | + }, |
| 15 | + "clojurescript": { |
| 16 | + "url": "https://github.com/clojure/clojurescript", |
| 17 | + "why": "the analyzer we plan to reuse, and a second dispatch strategy for the same semantics" |
| 18 | + }, |
| 19 | + "ClojureWasm": { |
| 20 | + "url": "https://github.com/clojurewasm/ClojureWasm", |
| 21 | + "why": "sibling; read its doc/decisions and debt ledger for what went wrong" |
| 22 | + }, |
| 23 | + "zwasm": { |
| 24 | + "url": "https://github.com/clojurewasm/zwasm", |
| 25 | + "why": "sibling; a Wasm engine written from scratch, including its JIT notes" |
| 26 | + }, |
| 27 | + "clj.wasm": { |
| 28 | + "url": "https://github.com/kanaka/clj.wasm", |
| 29 | + "why": "earlier exploration of this exact question" |
| 30 | + }, |
| 31 | + "tools.analyzer": { |
| 32 | + "url": "https://github.com/clojure/tools.analyzer", |
| 33 | + "why": "the retargetable analyzer; 0022 E defers the front-end choice to reading this, not recalling it" |
| 34 | + }, |
| 35 | + "tools.analyzer.jvm": { |
| 36 | + "url": "https://github.com/clojure/tools.analyzer.jvm", |
| 37 | + "why": "what a complete tools.analyzer host layer actually costs, measured by example" |
| 38 | + }, |
| 39 | + "teavm": { |
| 40 | + "url": "https://github.com/konsoletyper/teavm", |
| 41 | + "why": "a production JVM-hosted Java-to-WasmGC compiler; the third prior art for the emitter and object model" |
| 42 | + }, |
| 43 | + "wasmtime": { |
| 44 | + "url": "https://github.com/bytecodealliance/wasmtime", |
| 45 | + "large": true, |
| 46 | + "why": "the C API cljwit.host binds to (crates/c-api), and the reference Component Model implementation" |
| 47 | + }, |
| 48 | + "component-model": { |
| 49 | + "url": "https://github.com/WebAssembly/component-model", |
| 50 | + "why": "the Canonical ABI we must emit by hand (S4); issue #525 is GC-in-ABI, still a pre-proposal" |
| 51 | + }, |
| 52 | + "wit-bindgen": { |
| 53 | + "url": "https://github.com/bytecodealliance/wit-bindgen", |
| 54 | + "why": "how every other language binds WIT — no Clojure backend, so this is the shape to match, not to use" |
| 55 | + }, |
| 56 | + "dart-sdk": { |
| 57 | + "url": "https://github.com/dart-lang/sdk", |
| 58 | + "large": true, |
| 59 | + "why": "dart2wasm: the closest prior art for lowering a GC'd object model onto WasmGC (pkg/dart2wasm)" |
| 60 | + }, |
| 61 | + "kotlin": { |
| 62 | + "url": "https://github.com/JetBrains/kotlin", |
| 63 | + "large": true, |
| 64 | + "why": "Kotlin/Wasm: the second WasmGC backend built from scratch rather than via LLVM" |
| 65 | + }, |
| 66 | + "sample-wasi-http-kotlin": { |
| 67 | + "url": "https://github.com/Kotlin/sample-wasi-http-kotlin", |
| 68 | + "why": "the closest prior art to S4: a WasmGC module through embed/new to wasmtime (0030 cites its Makefile)" |
| 69 | + }, |
| 70 | + "kotlin-wit-bindgen": { |
| 71 | + "url": "https://github.com/Kotlin/wit-bindgen", |
| 72 | + "why": "Kotlin's wit-bindgen fork: how a GC'd language lowers strings to linear memory (0030 cites kotlin/src/lib.rs)" |
| 73 | + } |
25 | 74 | } |
26 | 75 | } |
0 commit comments