Files
hakorune/CHANGELOG.md
nyash-codex e326e787a4 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
2025-11-06 16:59:34 +09:00

2.9 KiB
Raw Blame History

Nyash Project Changelog (Work in progress)

This changelog tracks highlevel milestones while Core MIR and Phase 12 evolve. For detailed perfile history, see git log and docs under docs/development/roadmap/.

20250906

  • Core13 flip complete: code/tests enforce Core13 minimal kernel. Normalizations (Array/Ref→BoxCall, TypeCheck/Cast/Barrier/WeakRef unification) are ON by default via env (NYASH_MIR_CORE13=1). New tests validate normalization.
  • Docs synced: step50 marked done; DEV quickstart points to Core13 reference.

20250904

  • Phase 12.7A complete: peek, continue, ? operator, lambda, field type annotations. Language reference updated.
  • Phase 12.7B (basic) complete: parserlevel desugaring for |>, ?., ??, +=/-=/*=/=, .. behind NYASH_SYNTAX_SUGAR_LEVEL.
  • Docs: language reference and Phase 12.7 README updated to reflect basic completion; extensions tracked under gated plan.
  • MIR Core migration: previously enforcing Core15 during transition; superseded by 20250906 Core13 flip.

20250903

  • Nyash ABI TypeBox integration stabilized across core boxes; differential tests added; loader defaults adjusted (builtin + plugins).

Notes

  • Core13 is canonical minimal kernel. Historical Core15 notes remain under docs/development/roadmap/ for reference.
  • Phase 12.7B desugaring is gated by NYASH_SYNTAX_SUGAR_LEVEL; tokenizer additions are nonbreaking.

20250911 (Phase 15)

  • llvm: BoxCall arm cleanup — unreachable legacy block removed; arm now delegates solely to instructions::lower_boxcall.
  • llvm/docs: Documented LLVM lowering rules (StringBox i8* fast path, ExternCall ptr/handle selection, minimal fallback policy for string concat).
  • docs: Added ARCHITECTURE.md, LOWERING_LLVM.md, EXTERNCALL.md, PLUGIN_ABI.md.
  • nyrt: resolved plugin module duplication; build green.
  • builder: suppressed StringBox birth (constructed in LLVM path).

20251106 — Phase 21.0 (Full SelfHosting)

  • Full SelfHosting achieved (DoD met):
    • S1/S2 determinism: v1 emit for const/compare/threeblockcollect repeats 3× with identical normalized hash.
    • PRIMARY nofallback (hv1 inline): selfhost_v1 minimal OptionA/B reps PASS (rc=42).
    • S3 (llvmlite + Nyash Kernel link + run): ternary collect (rc=44) / map set→size (rc=1) PASS. Autoruns when LLVM18/llvmlite is present.
  • Harness/root changes:
    • ny_mir_builder.sh routes v1 JSON directly to llvmlite harness; EXE links against libnyash_kernel.a.
    • Python LLVM builder fixes: cmp field normalization (Lt/Le/… → < <= …), ret PHI synthesis (avoid ret=0), flat mir_call shape acceptance.
  • Using/alias polish (prod): modules mapping preferred; missing module aliases added (StrCast / MethodAliasPolicy). Duplicate using in VM extern_provider cleaned.
  • Docs: phase21.0 marked COMPLETE (Quick Verify updated). CURRENT_TASK closed.