2f54e64d27
feat(phase92): UnifiedBoxRegistry integration roadmap complete
...
Phase 92 完了: UnifiedBoxRegistry 統合の導線作り
**実装内容**:
- CoreServices::required_ids() 実装
- Phase 87 CoreBoxId の core_required (6個) を返す
- is_core_required() との整合性を型レベルで保証
- CoreInitError enum 追加
- MissingService, RegistryEmpty, InvalidServiceType
- Display + std::error::Error trait 実装
- PluginHost::with_core_from_registry() skeleton
- Phase 93 で実装予定(todo!() でプレースホルダー)
- initialize_runtime() 接続ポイント決定
- Ring0Context と UnifiedBoxRegistry を橋渡し
**Phase 87 整合性**:
- required_ids() が is_core_required() と完全一致
- テストで整合性を検証
**テスト結果**:
- 3件追加(全て合格)
- test_required_ids_consistency
- test_core_init_error_display
- test_with_core_from_registry_todo (should_panic)
- ビルド成功
- 既存テストに影響なし
**ドキュメント更新**:
- Section 9 追加(113行)
- ensure_initialized() 呼び出し場所決定(4箇所)
- Phase 93 実装計画明記
**次のステップ**: Phase 93 (with_core_from_registry 実装 & 起動パス統合)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-03 07:57:21 +09:00
3d253056bd
feat(phase91): PluginHost/CoreServices skeleton complete
...
Phase 91 完了: Ring1-Core 構造の明確化
**実装内容**:
- CoreServices 定義(6つの Service trait)
- StringService, IntegerService, BoolService
- ArrayService, MapService, ConsoleService
- PluginHost 構造体(Ring0 ⇔ CoreServices 橋渡し)
- NyashPlugin trait(プラグインシステム標準IF)
- PluginRegistry skeleton
**Phase 87 整合性**:
- CoreServices は core_required (6個) を完全カバー
- String, Integer, Bool, Array, Map, Console
- CoreBoxId との対応表をドキュメント化
**設計原則確立**:
- Ring1-Core 構造明確化
- core_required は必ず揃う(型レベル保証)
- Fail-Fast 設計(ensure_initialized)
- 既存影響ゼロ(新規ファイルのみ)
**テスト結果**:
- 5件追加(全て合格)
- ビルド成功
- 既存テストに影響なし
**次のステップ**: Phase 92 (UnifiedBoxRegistry との統合)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-03 07:43:08 +09:00
42b09b3c1c
feat(phase88): Ring0Context Skeleton implementation
...
Phase 88: OS API abstraction layer implementation
**Implementation**:
- Ring0Context module added (4 files)
- mod.rs: Public API, global initialization (OnceLock)
- traits.rs: MemApi, IoApi, TimeApi, LogApi trait definitions
- std_impls.rs: std-based default implementations
- errors.rs: IoError, TimeError type definitions
**Design Principles**:
- Ring0 knows nothing about Box
- Ring0 knows nothing about Nyash
- Pure OS API abstraction
**Global Initialization**:
- NyashRunner::new() initializes Ring0Context globally
- OnceLock ensures safe initialization (idempotent)
**Migration (2 paths)**:
- src/runner/selfhost.rs:27: eprintln! → ring0.log.error() (OOB strict)
- src/runner/selfhost.rs:177: eprintln! → ring0.log.error() (PyVM error)
**Tests**:
- 4 unit tests added (ring0 module)
- All tests passed
- Build successful (0 errors)
**Migration Status**:
- Migrated: 2/3,955 (0.05%)
- Remaining: 3,953 paths (Phase 89+)
**Files Changed**:
- src/runtime/ring0/mod.rs (new, 100 lines)
- src/runtime/ring0/traits.rs (new, 93 lines)
- src/runtime/ring0/std_impls.rs (new, 77 lines)
- src/runtime/ring0/errors.rs (new, 26 lines)
- src/runtime/mod.rs (Ring0Context export)
- src/runner/mod.rs (global initialization)
- src/runner/selfhost.rs (2 paths migrated)
- docs/development/current/main/ring0-inventory.md (Phase 88 status)
Phase 88 complete. Ready for Phase 89 (gradual migration).
🐱 ✨
2025-12-02 22:38:27 +09:00
8cd9729375
feat(runtime): Phase 87 CoreBoxId/CoreMethodId 箱化完了
...
ハードコード文字列から型安全な enum への箱化により、
Box名・メソッド名管理を完全にコンパイル時検証可能に。
主な実装:
- CoreBoxId enum 定義(19個)
- core_required: 6個(String, Integer, Bool, Array, Map, Console)
- core_optional: 9個(Float, Null, File, Path, Regex, Math, Time, Json, Toml)
- 特殊型: 4個(Function, Result, Method, Missing)
- CoreMethodId enum 定義(30個)
- 各 Box のメソッドを型安全に管理
- 引数数、戻り値型情報を統合
- is_reserved_type() を CoreBoxId ベースにリファクタリング
- infer_boxcall_return_type() を CoreMethodId ベースに改良(75行 → 25行、67%削減)
検証結果:
- テスト: ✅ 11/11 passed(新規追加)
- ビルド: ✅ 成功(0エラー)
- 型安全性: ✅ タイポ不可能
効果:
- SSOT 確立(src/runtime/core_box_ids.rs に一元化)
- コンパイル時検証(実行時エラー → コンパイルエラー)
- 保守性向上(変更箇所の一元化)
- IDE 支援(enum 補完可能)
ドキュメント:
- core_boxes_design.md 作成(Phase 87 完全仕様)
- Phase 85 README 更新(Phase 87 セクション追加)
Phase 15.5「Everything is Plugin」アーキテクチャ基盤完成
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 22:22:32 +09:00
f9d100ce01
chore: Phase 25.1 完了 - LoopForm v2/Stage1 CLI/環境変数削減 + Phase 26-D からの変更
...
Phase 25.1 完了成果:
- ✅ LoopForm v2 テスト・ドキュメント・コメント完備
- 4ケース(A/B/C/D)完全テストカバレッジ
- 最小再現ケース作成(SSAバグ調査用)
- SSOT文書作成(loopform_ssot.md)
- 全ソースに [LoopForm] コメントタグ追加
- ✅ Stage-1 CLI デバッグ環境構築
- stage1_cli.hako 実装
- stage1_bridge.rs ブリッジ実装
- デバッグツール作成(stage1_debug.sh/stage1_minimal.sh)
- アーキテクチャ改善提案文書
- ✅ 環境変数削減計画策定
- 25変数の完全調査・分類
- 6段階削減ロードマップ(25→5、80%削減)
- 即時削除可能変数特定(NYASH_CONFIG/NYASH_DEBUG)
Phase 26-D からの累積変更:
- PHI実装改善(ExitPhiBuilder/HeaderPhiBuilder等)
- MIRビルダーリファクタリング
- 型伝播・最適化パス改善
- その他約300ファイルの累積変更
🎯 技術的成果:
- SSAバグ根本原因特定(条件分岐内loop変数変更)
- Region+next_iパターン適用完了(UsingCollectorBox等)
- LoopFormパターン文書化・テスト化完了
- セルフホスティング基盤強化
Co-Authored-By: Claude <noreply@anthropic.com >
Co-Authored-By: ChatGPT <noreply@openai.com >
Co-Authored-By: Task Assistant <task@anthropic.com >
2025-11-21 06:25:17 +09:00
dd6876e1c6
Phase 20.12b: quick green + structural cleanup
...
- Deprecations: add warn-once for nyash.toml (runtime::deprecations); apply in plugin loader v2 (singletons/method_resolver)
- Child env + runner hygiene: unify Stage‑3/quiet/disable-fallback env in test/runner; expand LLVM noise filters
- Docs/branding: prefer and hako.toml in README.md/README.ja.md and smokes README
- VM: implement Map.clear in MIR interpreter (boxes_map)
- Stage‑B: gate bundle/alias/require smokes behind SMOKES_ENABLE_STAGEB; fix include cwd and resolve() call even for require-only cases
- Core‑Direct: gate rc boundary canary behind SMOKES_ENABLE_CORE_DIRECT
- Smokes: inject Stage‑3 and disable selfhost fallback for LLVM runs; filter using/* logs
- Quick profile: 168/168 PASS locally
This commit accelerates Phase 20.33 (80/20) by stabilizing quick suite, reducing noise, and gating heavy/experimental paths for speed.
2025-11-02 17:50:06 +09:00
47bd2d2ee2
Gate‑C(Core) OOB strict fail‑fast; String VM handler normalization; JSON lint Stage‑B root fixes via scanner field boxing and BinOp operand slotify; docs + smokes update
2025-11-01 18:45:26 +09:00
85084664c2
docs+runner+parser: SSOT+AST using finalized (legacy text inlining removed); provider verify reads nyash.toml; preflight warn hook; method-body guard removed; CURRENT_TASK updated for next JSON work
2025-09-26 00:27:02 +09:00
4ea3ca2685
docs/ci: selfhost bootstrap/exe-first workflows; add ny-llvmc scaffolding + JSON v0 schema validation; plan: unify to Nyash ABI v2 (no backwards compat)
2025-09-17 20:33:19 +09:00
adbb0201a9
chore(fmt): add legacy stubs and strip trailing whitespace to unblock cargo fmt
2025-09-17 07:43:07 +09:00
b8bdb867d8
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 >
2025-09-07 07:36:15 +09:00
294b45b9f4
Phase 12: extern registry + diagnostics, JIT host-bridge PoC by-slot, vtable Map.set + VT/PIC tracing, and tests
2025-09-03 05:56:57 +09:00
53d88157aa
Phase 12: 統一TypeBox ABI実装開始 - ChatGPT5による極小コアABI基盤構築
...
- TypeBox ABI雛形: メソッドスロット管理システム追加
- Type Registry: Array/Map/StringBoxの基本メソッド定義
- Host API: C ABI逆呼び出しシステム実装
- Phase 12ドキュメント整理: 設計文書統合・アーカイブ化
- MIR Builder: クリーンアップと分離実装完了
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-03 05:04:56 +09:00
11506cee3b
Phase 11-12: LLVM backend initial, semantics layer, plugin unification
...
Major changes:
- LLVM backend initial implementation (compiler.rs, llvm mode)
- Semantics layer integration in interpreter (operators.rs)
- Phase 12 plugin architecture revision (3-layer system)
- Builtin box removal preparation
- MIR instruction set documentation (26→Core-15 migration)
- Cross-backend testing infrastructure
- Await/nowait syntax support
New features:
- LLVM AOT compilation support (--backend llvm)
- Semantics layer for interpreter→VM flow
- Tri-backend smoke tests
- Plugin-only registry mode
Bug fixes:
- Interpreter plugin box arithmetic operations
- Branch test returns incorrect values
Documentation:
- Phase 12 README.md updated with new plugin architecture
- Removed obsolete NYIR proposals
- Added LLVM test programs documentation
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-01 23:44:34 +09:00
ddae7fe1fc
Phase 10_6b scheduler complete; 10_4 GC hooks + counting/strict tracing; 10_c minimal JIT path (i64/bool consts, binop/compare/return, hostcall opt-in); docs & examples; add Phase 10.7 roadmap (JIT branch wiring + minimal ABI).
2025-08-27 17:06:46 +09:00
61800a37a7
feat: Phase 10 reorganization + GC switchable runtime + VM improvements
...
## 📚 Documentation Updates
- Phase 10 reorganized with comprehensive README
- Cranelift JIT as main implementation
- NEW: Phase 10.4 GC Switchable Runtime (world's first\!)
- Phase 10.5 Self-hosting (parallel)
- Application migration tests
- Phase 11 created for LLVM AOT research (deferred)
- Moved phase10_aot_scaffolding.md → Phase 11
- Moved phase_10_x_llvm_backend_skeleton.md → Phase 11
- Master roadmap updated with GC runtime feature
- Ideas: GC switchable language concept documented
## 🚀 VM Implementation Progress (by ChatGPT5)
- src/backend/vm.rs: Enhanced VM execution
- src/backend/vm_instructions.rs: Instruction improvements
- src/runtime/type_meta.rs: NEW - Type metadata system
- src/boxes/buffer/mod.rs: Buffer optimizations
- src/runtime/mod.rs & plugin_ffi_common.rs: Runtime enhancements
## 🌟 Revolutionary Feature: GC Switchable Runtime
- Development mode: GC on (convenience)
- Production mode: GC off (performance)
- Technical feasibility confirmed by Codex GPT-5
- Implementation plan: After Cranelift JIT
## 📋 Phase 10 Structure
Phase 10.0: Cranelift JIT foundation
Phase 10.1-10.3: JIT implementation & optimization
Phase 10.4: GC Switchable Runtime ← NEW\!
Phase 10.5: Self-hosting (String/Array/Map in Nyash)
Phase 10.9: Application migration tests
🤖 ChatGPT5 says: Ready for Phase 10\! どきどきにゃ!
2025-08-27 01:03:55 +09:00
edf5ccfcb4
Docs: Add phase_9_79b_3_vm_vtable_thunks_and_pic.md\n- Plan to formalize TypeMeta+Thunk and upgrade PIC to poly\n- Diagnostics, risks, milestones, exit criteria, and Phase 10 readiness
2025-08-27 00:03:48 +09:00
22212aa314
refactor: Major interpreter modularization and P2PBox enhancements
...
Major Interpreter Refactoring:
- Split core.rs (373 lines removed) into focused modules
- Split expressions/calls.rs (460 lines removed) into cleaner structure
- Added new modules: calls.rs, errors.rs, eval.rs, methods_dispatch.rs, state.rs
- Improved separation of concerns across interpreter components
P2PBox Enhancements:
- Added on_once() for one-time event handlers
- Added off() for handler deregistration
- Implemented handler flags with AtomicBool for thread-safe management
- Added loopback testing cache (last_from, last_intent_name)
- Improved Arc-based state sharing for transport and handlers
Plugin Loader Unification (In Progress):
- Created plugin_loader_unified.rs skeleton
- Created plugin_ffi_common.rs for shared FFI utilities
- Migration plan documented (2400 lines → 1100 lines target)
MIR & VM Improvements:
- Enhanced modularized MIR builder structure
- Added BoxCall dispatch improvements
- Better separation in builder modules
Documentation Updates:
- Added Phase 9.79a unified box dispatch plan
- Created plugin loader migration plan
- Updated CURRENT_TASK.md with latest progress
All tests passing (180 tests) - ready for next phase of refactoring
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-26 19:13:57 +09:00
f2761004d3
feat: Add parallel HTTP server E2E tests and enhance plugin system
...
- Add e2e_plugin_net_additional.rs with parallel server tests
- Fix test to properly handle request objects (no double accept)
- Add comprehensive net-plugin documentation
- Implement debug tracing for method calls
- Enhance plugin lifecycle documentation
- Improve error handling in plugin loader
- Add leak tracking infrastructure (for future use)
- Update language spec with latest plugin features
This enhances test coverage for concurrent HTTP servers and improves
the overall plugin system documentation and debugging capabilities.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-22 05:01:11 +09:00
41361a2f50
🚀 feat: Phase 9.78b Step 1&2完了 - ChatGPT5による実装
...
ChatGPT5が実装したPhase 9.78b Step 1&2の統合
## 🎯 実装内容
1. Phase 9.78b Step 1: BoxDeclarationをcore::modelへ移動
- src/core/mod.rs, model.rs 新規作成
- BoxDeclarationを純粋データモデルとして分離
2. Phase 9.78b Step 2: NyashRuntime骨組み作成
- src/runtime/nyash_runtime.rs 追加
- 統一Box管理の基盤
3. ビルドエラー修正
- Arc重複インポート修正
- as_str() → as_ref() 変更
- parent_name.to_string() 型変換
- インポートパス調整
## 📊 ビルド結果
- ✅ フルビルド成功 (47.34秒)
- ✅ ユニットテスト: 145/145成功
- ✅ 統合テスト: 16/16成功
- ✅ WASMビルド成功 (1.9MB)
- ❌ MIRテスト: 1失敗 (ref_new命令)
## 🚀 次のステップ
- Phase 9.78b Step 3: BoxFactory dyn化
- Codexの設計に基づく段階的実装継続
2025-08-20 18:57:10 +09:00
18d26ed130
feat: Phase 9.78a complete - Unified BoxFactory Architecture foundation
...
- Add complete BoxFactory trait and UnifiedBoxRegistry infrastructure
- Implement BuiltinBoxFactory with 20+ Box types (basic, container, utility, I/O, native/WASM)
- Add PluginBoxFactory integration with v2 plugin system
- Create UserDefinedBoxFactory stub for future InstanceBox integration
- Add global unified registry with priority ordering (builtin > user > plugin)
- Support for all existing Box creation patterns with declarative registration
- Ready for migration from 600+ line match statement to clean Factory pattern
Technical improvements:
- Eliminate 600+ line match statement complexity
- Enable unified Box creation interface: registry.create_box(name, args)
- Support birth/fini lifecycle across all Box types
- Maintain WASM compatibility with conditional compilation
- Thread-safe with Arc<Mutex> pattern
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-19 16:43:13 +09:00
52c8ce1f7b
feat: Implement nyash.toml v2 plugin system with PluginLoaderV2
...
- Add plugin_loader_v2.rs with nyash.toml v2 support
- Create PluginBoxV2 as temporary wrapper for v2 plugins
- Update runner.rs to use v2 loader instead of legacy BID registry
- Update box_registry.rs to work with v2 plugin system
- Support single FFI entry point (nyash_plugin_invoke) + optional init
- Integrate with existing BoxFactoryRegistry for seamless Box creation
- All compilation errors resolved, ready for testing
2025-08-19 05:16:40 +09:00
806aece8ad
refactor: Begin migration to nyash.toml v2 plugin system
...
- Rename legacy plugin files to *_legacy.rs for protection
- Comment out old plugin loader and Host VTable dependencies
- Add temporary stub for create_plugin_box during migration
- Fix doc comment placement in io_methods.rs
- Prepare for v2 plugin system with single FFI entry point
2025-08-19 05:05:21 +09:00
5f6f946179
feat: 汎用プラグインBox生成システム実装とnyash.toml v2対応準備
...
- GenericPluginBoxを実装し、任意のプラグインBoxを動的に生成可能に
- FileBox決め打ちコードを削除(設計思想違反の解消)
- CURRENT_TASK.mdを更新し、nyash.toml v2対応の必要性を明確化
- 問題: プラグインテスターとNyash本体が古い単一Box型形式のまま
次のステップ:
1. nyash.tomlをv2形式(マルチBox型)に更新
2. プラグインテスターをv2対応に
3. Nyash本体のレジストリをv2対応に
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-19 03:48:44 +09:00
a0e3c0dc75
feat(phase-9.75g-0): Complete BID-FFI Day 4 - Plugin system infrastructure
...
✨ **完成機能**:
- PluginBox透過的プロキシシステム
- BoxFactoryRegistry(ビルトイン↔プラグイン切り替え)
- libloading動的ライブラリローダー
- プラグインシステム統合テスト(14個)
🎯 **Day 4完了**:
- nyash.toml設定パーサー実装
- FFI境界を越えたBox操作
- 完全透過的置き換えシステム
- BID-1プロトコル基盤
🔥 **全テスト通過**: プラグインシステム完全動作確認
次回: Day 5 - 実際のFileBoxプラグインライブラリ作成
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-17 22:52:17 +09:00
d4dfe3071d
feat(phase-9.75g-0): Implement Day 4 plugin system infrastructure (80% complete)
...
Core plugin system components implemented:
- nyash.toml parser for plugin configuration
- BoxFactoryRegistry for unified Box creation management
- PluginBox proxy for FFI boundary abstraction
- Runtime module integration
Key features:
- Simple TOML parsing without external dependencies
- Transparent Box switching (builtin ↔ plugin)
- Everything is Box philosophy maintained
- Thread-safe design with RwLock
Remaining Day 4 tasks:
- FileBox FFI interface definition
- Dynamic plugin loading with libloading
- Plugin FileBox integration tests
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-17 22:44:16 +09:00