# Nyash Kernel **Minimal runtime kernel for Nyash language - Plugin-First Architecture** Generated: 2025-09-24 Architecture: Phase 2.4 NyRT→NyKernel Revolution Complete ## Overview The Nyash Kernel (`nyash_kernel`) is the minimal runtime core that replaced the legacy NyRT system. This represents a **42% reduction** in runtime complexity by moving from VM-dependent architecture to a unified Plugin-First system. ## Architecture Revolution ### ✅ **From NyRT to NyKernel** (Phase 2.4 Complete) **Before (Legacy NyRT)**: - Mixed VM/Plugin dependencies - `with_legacy_vm_args` scattered throughout codebase - 58% essential + 42% deletable functions - Complex shim layer for LLVM integration **After (NyKernel)**: - Pure Plugin-First architecture - Zero legacy VM dependencies - Only essential kernel functions remain - Clean C ABI for LLVM integration ### 🏗️ **Core Components** #### Essential Kernel Functions (58% - Kept) - **GC Management**: Safepoints, write barriers, memory management - **Handle Registry**: Object handle management for AOT/JIT - **Plugin Host**: Unified plugin loading and method resolution - **Process Entry**: Main entry point and runtime initialization #### Removed Shim Functions (42% - Deleted) - `with_legacy_vm_args` - 11 locations completely removed - Legacy VM argument processing - String/Box operation shims - VM-specific encoding functions ## Build Output ``` Target: libnyash_kernel.a (static library) Status: Clean build (0 errors, 0 warnings) Integration: LLVM + VM unified ``` ## Implementation Details ### Deleted Legacy Functions | File | Locations | Status | |------|-----------|---------| | `encode.rs` | 1 | ✅ Removed | | `birth.rs` | 1 | ✅ Removed | | `future.rs` | 2 | ✅ Removed | | `invoke.rs` | 6 | ✅ Removed | | `invoke_core.rs` | 1 | ✅ Removed | | **Total** | **11** | **✅ Complete** | ### Plugin-First Integration All Box operations now route through the unified plugin system: ```rust // Before: VM-dependent with_legacy_vm_args(|args| { ... }) // After: Plugin-First let host = get_global_plugin_host().read()?; host.create_box(type_name, &args)? ``` ### 🔥 **ExternCall Print修正** (codex技術力) **Phase 2.4で解決した重大問題**: LLVM EXEで`print()`出力されない #### 問題の詳細 - **症状**: VM実行は正常、LLVM EXEは無音 - **根本原因**: `src/llvm_py/instructions/externcall.py`の引数変換バグ - **技術詳細**: 文字列ハンドル→ポインタ変換後にnull上書き #### 修正内容 ```python # src/llvm_py/instructions/externcall.py:152-154 else: # used_string_h2p was true: keep the resolved pointer (do not null it) pass ``` #### 検証結果 ```bash /tmp/direct_python_test_fixed # 出力: # 🎉 ExternCall print修正テスト! # codex先生の名前解決修正確認 # Result: 0 ``` ## Usage ### For LLVM Backend ```bash # Build with LLVM integration cargo build --release -p nyash_kernel # Output: crates/nyash_kernel/target/release/libnyash_kernel.a ``` ### For VM Backend ```bash # Runtime integration (automatic) ./target/release/nyash program.nyash ``` ## Design Philosophy **"Everything is Plugin"** - The kernel provides only the essential infrastructure for plugin management, leaving all Box implementations to the plugin system. ### Core Principles 1. **Minimal Surface**: Only GC, handles, plugins, and process entry 2. **Plugin-First**: All Box operations through unified plugin host 3. **C ABI Clean**: Stable interface for LLVM/VM integration 4. **Zero Legacy**: Complete removal of VM-dependent code paths ## ChatGPT5 × codex × Claude Collaboration This kernel represents a historic achievement in AI-assisted architecture design: - **Design**: ChatGPT5 Pro architectural analysis (42% reduction strategy) - **Implementation**: Claude systematic implementation (11 locations) - **Debugging**: codex root cause analysis (ExternCall print fix) - **Result**: 100% successful architecture revolution + critical bug resolution ## Integration The Nyash Kernel integrates seamlessly with: - **LLVM Backend**: Static linking via libnyash_kernel.a - **VM Backend**: Dynamic plugin loading - **Build System**: tools/build_llvm.sh integration complete --- *Part of Phase 15 Nyash Self-hosting Revolution* *Documentation: [ChatGPT5 NyRT→NyKernel Design](../../docs/development/roadmap/phases/phase-15/chatgpt5-nyrt-kernel-design.md)*