docs: update PLAN.md with Session #2 achievements (14 commits, 11/14 check, project build)
This commit is contained in:
@@ -712,31 +712,52 @@ func Main() -> int {
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Next Immediate Steps (Updated 2026-05-31)
|
## Next Immediate Steps (Updated 2026-05-31 — Session #2)
|
||||||
|
|
||||||
### Completed Today
|
### Completed Today (Session #2 — 14 commits!)
|
||||||
1. ✅ **Self-hosting audit** — Phase 6.5: all 14 Nim files analyzed, Bux readiness assessed
|
1. ✅ **Struct init** — `TypeName { field: value }` across all 4 phases (parser, sema, hir_lower, c_backend)
|
||||||
2. ✅ **All 14 modules ported to Bux** — 4094 LOC in `src_bux/`
|
2. ✅ **`structInitAllowed`** — Properly disabled in if/while/for/match conditions
|
||||||
3. ✅ **Generic type inference** — `Max(10, 20)` works without explicit type args
|
3. ✅ **Postfix `!`** (unwrap) + prefix `!` (logical not) — Both parsed correctly
|
||||||
4. ✅ **`extend Box<T>` syntax** — Generic impl blocks
|
4. ✅ **Extra call args** — Gracefully consumed (parser stores 2, skips rest)
|
||||||
5. ✅ **String stdlib** — Slicing, trimming, contains, StringBuilder
|
5. ✅ **Infinite-loop guards** — Block parser, match parser, struct init parser
|
||||||
6. ✅ **Generic Map\<K,V\>** — Value-type keys with strcmp
|
6. ✅ **Null-safe C runtime** — `bux_strcmp`, `bux_strcpy`, `bux_strncmp` handle NULL
|
||||||
7. ✅ **`!` unwrap operator** — Parser + sema + HIR + C backend
|
7. ✅ **C codegen improvements:**
|
||||||
8. ✅ **`@[Checked]` + `&T` + `own` syntax** — Ownership syntax parsing
|
- Type aliases (`typedef const char* String; uint8/int64/float64...`)
|
||||||
9. ✅ **`const func` syntax** — CTFE function declarations parsed
|
- Forward declarations for all functions
|
||||||
10. ✅ **Std::Math** — Full module with C runtime wrappers
|
- Runtime declarations (`bux_alloc`, `bux_free`)
|
||||||
|
- Struct definitions with forward type declarations
|
||||||
|
- Pointer types for let/cast (`String*`)
|
||||||
|
- Cast uses actual target type
|
||||||
|
- Null literal → `0`
|
||||||
|
8. ✅ **While/loop** — Full C emission with body
|
||||||
|
9. ✅ **Array indexing** — `arr[i]` via `hIndexPtr`
|
||||||
|
10. ✅ **Assignments** — `ekBinary(tkAssign)` → `hAssign`
|
||||||
|
11. ✅ **Field access** — `obj->field` via `hFieldPtr`
|
||||||
|
12. ✅ **`sizeof(Type)`** — via `hSizeOf`
|
||||||
|
13. ✅ **Keyword-as-identifier** — `module`, `type`, `enum` as field/param names
|
||||||
|
14. ✅ **`buxc2 project` produces working binary** — Simple projects compile and run!
|
||||||
|
|
||||||
### Current Blockers (Phase 7.9 Dogfooding)
|
### Current Status: `buxc2 check` 11/14 (79%)
|
||||||
|
|
||||||
**Phase 7.9 is COMPLETE** — `buxc2` builds and runs successfully.
|
| Passing | Status |
|
||||||
|
|---------|--------|
|
||||||
|
| token, source_location, types, scope, hir, sema, manifest, hir_lower, c_backend, cli, Main | ✅ |
|
||||||
|
| ast, lexer, parser | ❌ (3 remaining) |
|
||||||
|
|
||||||
|
### `buxc2 project` — Multi-file build
|
||||||
|
|
||||||
|
- ✅ Pipeline works (Scan→Parse→Merge→Sema→HIR→CBackend→CC)
|
||||||
|
- ✅ Simple projects compile to working ELF binaries
|
||||||
|
- ⏳ 11-module project: pipeline processes but C compilation has type errors (parameter types)
|
||||||
|
- ⏳ Full 14-module: ast/lexer/parser crash
|
||||||
|
|
||||||
### Next Actions (Priority Order)
|
### Next Actions (Priority Order)
|
||||||
|
|
||||||
1. **Phase 7.10** — Bootstrap loop: use `buxc2` to compile itself → `buxc3`, compare output
|
1. **Fix parameter/return types** — `String*` instead of `int` in function signatures
|
||||||
2. **Expand `buxc2` capabilities** — Currently compiles but doesn't fully process all Bux features
|
2. **Debug ast/lexer/parser** — Get all 14 modules passing check
|
||||||
3. **Add missing examples to Makefile** — `extend_generic`, `generic_infer`, `generic_infer2`, `strings2` (already added)
|
3. **Full 14-module project build** — Complete bootstrap loop: buxc3 produced by buxc2
|
||||||
4. **Phase 8** — Advanced features: ownership checker, CTFE evaluation, string interpolation
|
4. **Compare buxc2 vs buxc3 output** — True self-hosting verification
|
||||||
5. **Phase 9** — Ecosystem: package manager, LSP, formatter
|
5. **Phase 8** — Advanced features: ownership checker, CTFE evaluation, string interpolation
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user