feat: bux test runner, bitwise-not parsing, stdlib discovery hardening\n\n- Add 'bux test' runner: discovers tests/*.bux, builds each in a temp package, runs and reports PASS/FAIL.\n- Fix unary ~ parsing and C emission in self-hosted compiler.\n- Harden stdlib discovery (require Fs.bux, avoid system /lib) and lstat in directory traversal.\n- Selfhost loop passes: buxc2 builds src/ and produces identical C output + stripped binary.\n- Update PLAN.md with completed milestones.

This commit is contained in:
2026-06-12 22:19:13 +03:00
parent a668127721
commit 84df4bba9d
18 changed files with 21917 additions and 20942 deletions
+8 -7
View File
@@ -919,10 +919,11 @@ func Main() -> int {
### Next Actions (Priority Order)
1.**Fix LIR backend type inference** — struct temps, undeclared vars, break/continue, duplicate declarations
2.**All 26 examples passing** — bootstrap compiler builds and runs every example
2.**All 30 examples passing** — bootstrap and self-host compilers build and run every example
3.**Selfhost build working**`make selfhost` produces working `buxc2`
4. 🔄 **Selfhost loop verification**`buxc2` compiles `src/``buxc3`
5. 🔄 **Golden tests for C codegen**Prevent future regressions in LIR → C
4. **Selfhost loop verification**`buxc2` compiles `src/``buxc3`; C output and stripped binary identical
5. **Golden tests for C codegen**`make test-golden` passes for 8 critical examples
6.**`bux test` runner** — discovers `tests/*.bux`, builds each as a temp package, and reports PASS/FAIL
---
@@ -941,9 +942,9 @@ func Main() -> int {
| Task | Status | Priority | Details |
|------|--------|----------|---------|
| `11.2.1` `buxc2 build` on `src/` | | P0 | Verify selfhost compiler can build itself |
| `11.2.2` Deterministic C codegen | | P0 | Remove non-deterministic ordering in `emitModule` |
| `11.2.3` `make selfhost-loop` | | P0 | Makefile target: buxc2 → buxc3 → binary compare |
| `11.2.1` `buxc2 build` on `src/` | | P0 | Verify selfhost compiler can build itself |
| `11.2.2` Deterministic C codegen | | P0 | Remove non-deterministic ordering in `emitModule` |
| `11.2.3` `make selfhost-loop` | | P0 | Makefile target: buxc2 → buxc3 → binary compare |
| `11.2.4` Cross-module generics in selfhost | ⏳ | P1 | `Map<K,V>` and `Array<T>` from stdlib in selfhost context |
### 11.3 — Gradual Ownership (v0.5.0) ⭐⭐
@@ -958,7 +959,7 @@ func Main() -> int {
| Task | Status | Priority | Details |
|------|--------|----------|---------|
| `11.4.1` `bux test` runner | | P0 | Built-in test framework with assertions |
| `11.4.1` `bux test` runner | | P0 | Built-in test framework with assertions |
| `11.4.2` `bux fmt` formatter | ⏳ | P1 | Auto-format Bux source |
| `11.4.3` LSP prototype | ⏳ | P2 | Autocomplete, hover types, go-to-definition |
| `11.4.4` `bux doc` generator | ⏳ | P2 | HTML from `///` doc comments |