Files
hakorune/docs/papers/active/unified-lifecycle/abstract.md
Moe Charm fff9749f47 📚 Reorganize CLAUDE.md: slim down from 916 to 395 lines with proper doc links
- Keep essential information within 500 lines (now 395 lines)
- Maintain important syntax examples and development principles
- Move detailed information to appropriate docs files:
  - Development practices → docs/guides/development-practices.md
  - Testing guide → docs/guides/testing-guide.md
  - Claude issues → docs/tools/claude-issues.md
- Add proper links to all referenced documentation
- Balance between minimal entry point and practical usability
2025-08-31 06:22:48 +09:00

1.7 KiB
Raw Blame History

Abstract

We present Nyash, a box-centric language that unifies lifecycles of user-level classes and native plugins under a single contract. Boxes form an ownership forest (single strong edge + weak references), ensuring deterministic fini execution and enabling a semantics-preserving GC on/off switch (@must_drop/@gcable). A thin C ABI v0 allows plugins to be invoked identically from VM, JIT, AOT, and WASM; AOT uses static linking to eliminate PLT overhead. With a compact MIR (~26 ops) and ~4K LoC implementation, Nyash achieves equal I/O traces across all backends while delivering competitive performance. We show that this unified model simplifies FFI, preserves correctness, and enables box-local optimizations—something previous systems could not simultaneously guarantee.

日本語要約

Nyashは、ユーザーレベルのクラスとネイティブプラグインのライフサイクルを単一の契約で統一するBox中心の言語である。Boxは所有権の森単一の強エッジ弱参照を形成し、決定的なfini実行を保証し、意味論を保持するGCオン/オフ切り替え@must_drop/@gcable)を可能にする。薄いC ABI v0により、プラグインはVM、JIT、AOT、WASMから同一に呼び出され、AOTは静的リンクによりPLTオーバーヘッドを排除する。コンパクトなMIR〜26命令と〜4K LoCの実装で、Nyashは全バックエンドで等しいI/Oトレースを達成しつつ、競争力のある性能を提供する。この統一モデルがFFIを簡潔にし、正しさを保持し、Box局所最適化を可能にすることを示す—これは既存システムが同時に保証できなかった特性である。