You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<pclass="feature-desc">Comprehensive test coverage across all 17 languages. Every language frontend is validated end-to-end: lexer → parser → semantic → codegen → execution.</p>
@@ -218,11 +219,22 @@ The following are **not** claimed as universally compatible:
218
219
219
220
---
220
221
222
+
## Known Fixes (v0.5.x)
223
+
224
+
| Version | Fix |
225
+
|---------|-----|
226
+
| v0.5.1 | Documentation updates |
227
+
| v0.5.0 | WAT/WASM OOP object model: class lowering with linear-memory bump allocator, inheritance with C3 MRO, `super()` resolution, WAT execution tests |
228
+
| v0.5.0 | SemanticAnalyzer: plain assignments (`x = 5`) now correctly define the variable in scope rather than triggering a false `UNDEFINED_NAME` error (was a false-positive in some languages, e.g., French) |
229
+
| v0.5.0 | Augmented assignment (`x += 1`) now correctly reports `UNDEFINED_NAME` when the target variable has not been previously defined |
230
+
231
+
---
232
+
221
233
## Recommendation
222
234
223
235
When evaluating compatibility for a real codebase:
224
236
225
237
1. Start from this matrix
226
-
2. Run smoke tests: `python -m multilingualprogramming smoke --all`
227
-
3. Run focused tests: `python -m multilingualprogramming run yourprogram.ml --lang en`
238
+
2. Run smoke tests: `multilingual smoke --all`
239
+
3. Run focused tests: `multilingual run yourprogram.ml --lang en`
@@ -291,6 +291,81 @@ The WASM bridge handles errors at multiple levels:
291
291
292
292
---
293
293
294
+
## OOP Object Model in WAT (v0.5.0+)
295
+
296
+
Classes with instance attributes use a **linear-memory bump allocator** for object storage. Stateless classes (no `self.attr` assignments) use `f64.const 0` as the `self` value for backward compatibility.
Copy file name to clipboardExpand all lines: wasm/index.md
+39-5Lines changed: 39 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,8 +58,8 @@ The multilingual WASM backend provides 50–100x performance improvements for co
58
58
59
59
<divclass="card">
60
60
<spanclass="card-icon">🔧</span>
61
-
<h3>Cranelift Backend</h3>
62
-
<p>Uses the Cranelift compiler (Rust-based, part of Wasmtime) for native-speed code generation from the multilingual AST.</p>
61
+
<h3>WAT Code Generation</h3>
62
+
<p>Compiles the Core AST directly to WebAssembly Text (WAT) format. WAT is assembled to binary WASM and executed via wasmtime — no external Rust toolchain required.</p>
63
63
</div>
64
64
65
65
<divclass="card">
@@ -146,9 +146,9 @@ multilingual Source (.ml)
146
146
│ Core AST
147
147
▼
148
148
┌─────────────────┐
149
-
│ WASM Generator │ → Rust intermediate code
150
-
│ (wasm_generator.py) │ ↓
151
-
└─────────────────┘ Cranelift compiler
149
+
│ WAT Generator │ → WAT text (module.wat)
150
+
│ (wat_generator.py) │ ↓
151
+
└─────────────────┘ wabt / wat2wasm
152
152
↓
153
153
.wasm binary
154
154
│
@@ -184,6 +184,40 @@ multilingual Source (.ml)
184
184
185
185
---
186
186
187
+
## WAT Language Support
188
+
189
+
The WAT backend supports a rich subset of the multilingual language. Unsupported constructs emit stub comments and fall back to Python.
0 commit comments