release: v21.0.0 – Full Self‑Hosting (S1/S2/S3 complete)

- DoD met: S1/S2 determinism (const/compare/threeblock-collect), PRIMARY hv1 inline no-fallback, S3 (llvmlite+kernel) reps green
- Harness: v1→llvmlite direct, EXE links to libnyash_kernel.a
- Python LLVM builder fixes: cmp normalization, ret PHI synthesis, mir_call flat shape
- Using/alias polish (prod): modules-first; missing aliases added; duplicate using cleaned
- Docs: phase-21.0 COMPLETE; CurrentTask closed; release notes added
This commit is contained in:
nyash-codex
2025-11-06 16:59:34 +09:00
parent c40fdd95bc
commit e326e787a4
21 changed files with 311 additions and 100 deletions

View File

@ -2,20 +2,20 @@
// Responsibility: minimal extern/global call handling on Hako side.
// Scope (20.38準備): env.get / console.log のみCABI導線は後段で接続
using selfhost.vm.hakorune-vm.str_cast as StrCast
static box HakoruneExternProviderBox {
get(name, args) {
// name: string like "env.get" or "env.console.log"
if name == "env.get" {
if args == null { return null }
// args: single string key
using selfhost.vm.hakorune-vm.str_cast as StrCast
local key = StrCast.to_str(args)
return env.get(key)
}
if name == "env.console.log" || name == "nyash.console.log" || name == "print" {
// Accept single argument value → print as string
if args == null { print(""); return 0 }
using selfhost.vm.hakorune-vm.str_cast as StrCast
print(StrCast.to_str(args))
return 0
}