Merge selfhosting-dev into main (Core-13 pure CI/tests + LLVM bridge) (#126)

* WIP: sync before merging origin/main

* fix: unify using/module + build CLI; add missing helper in runner; build passes; core smokes green; jit any.len string now returns 3

* Apply local changes after merging main; keep docs/phase-15 removed per main; add phase-15.1 docs and tests

* Remove legacy docs/phase-15/README.md to align with main

* integration: add Core-13 pure CI, tests, and minimal LLVM execute bridge (no docs) (#125)

Co-authored-by: Tomoaki <tomoaki@example.com>

---------

Co-authored-by: Selfhosting Dev <selfhost@example.invalid>
Co-authored-by: Tomoaki <tomoaki@example.com>
This commit is contained in:
moe-charm
2025-09-07 07:36:15 +09:00
committed by GitHub
parent 07350c5dd9
commit b8bdb867d8
70 changed files with 2010 additions and 57 deletions

37
docs/specs/aot_plan_v1.md Normal file
View File

@ -0,0 +1,37 @@
# AOT-Plan v1 Schema (Phase 15.1)
Status: draft-frozen for Phase 15.1 (extensions via `extensions` object only)
- version: string, must be "1"
- name: optional plan/module name
- functions: array of PlanFunction
- externs: optional array of extern identifiers (reserved; not required in 15.1)
- exports: optional array of export names (reserved)
- units: optional array of link units (reserved)
- extensions: optional object for forward-compatible keys
PlanFunction:
- name: string
- params: array of { name: string, type?: string } (informational in 15.1)
- return_type: optional string; one of: integer, float, bool, string, void (or omitted → Unknown)
- body: optional object with tagged `kind`
- kind = "const_return": { value: any-json (int/bool/float/string supported) }
- kind = "empty": returns default 0 with Unknown type (Phase 15.1 importer behavior)
Notes:
- 15.1 importer does not emit object code; it constructs MIR13 skeletons only.
- If `return_type` is omitted, importer uses Unknown to keep VM dynamic display.
- `extensions` is a free-form map; the importer ignores unknown keys.
Example:
```
{
"version": "1",
"name": "mini_project",
"functions": [
{ "name": "main", "return_type": "integer", "body": { "kind": "const_return", "value": 42 }},
{ "name": "greet", "return_type": "string", "body": { "kind": "const_return", "value": "hi" }}
]
}
```