Commit Graph

6 Commits

Author SHA1 Message Date
0269fc2ed4 Reduce build warnings 2025-12-28 01:34:46 +09:00
e986e279b4 refactor(repl): Quiet Mode 方針整合 - REPL 専用フラグに統一
方針整合修正(commit 1cec724ce の改善):
- NYASH_QUIET_INTERNAL_LOGS 撤去(環境変数スパロー防止)
- src/runner/repl/repl_runner.rs: quiet_internal_logs フラグ追加、環境変数操作削除
- src/mir/mod.rs: set_quiet_internal_logs() 公開 API 追加
- src/mir/builder/compilation_context.rs: quiet_internal_logs フラグ追加
- src/mir/builder/decls.rs: 環境変数直読み → context フラグ参照

アーキテクチャ:
   REPL 専用フラグで制御(file mode 無影響保証)
   ReplRunnerBox → MirCompiler → CompilationContext の明確な伝播経路
   crate::config::env::cli_verbose() 既存 SSOT を活用

ルール遵守:
   環境変数スパロー防止ポリシー(AGENTS.md 5.3)
   隠しトグル禁止(新規環境変数なし)
   既存の verbose 制御(NYASH_CLI_VERBOSE)に統一

機能保持:
   REPL 通常モード: 内部ログ抑制(clean output)
   REPL verbose モード: デバッグログ表示(--verbose)
   File mode 既定挙動: 不変(quiet_internal_logs 常に false)

Test results:
   REPL quiet/verbose 動作確認
   File mode regression: 154/154 pass(既定挙動不変)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-25 14:42:16 +09:00
f740e6542f feat(phase285): Complete weak reference implementation (VM + LLVM harness)
Phase 285LLVM-1.1 to 1.4 + weak reference infrastructure:

**LLVM Harness** (Phase 285LLVM-1.x):
- 285LLVM-1.1: User Box registration & debug output
- 285LLVM-1.2: WeakRef basic operations (identity deferred)
- 285LLVM-1.3: InstanceBox field access (getField/setField)
- 285LLVM-1.4: print Handle resolution (type tag propagation)

**VM Runtime** (nyash_kernel):
- FFI functions: nyrt_weak_new, nyrt_weak_to_strong, nyrt_weak_drop
  (crates/nyash_kernel/src/lib.rs: +209 lines)
- WeakRef plugin invoke support
  (crates/nyash_kernel/src/plugin/invoke.rs: +250 lines)
- weak_handles.rs: WeakRef handle registry (NEW)

**LLVM Python Backend**:
- WeakRef instruction lowering (weak.py: NEW)
- Entry point integration (entry.py: +93 lines)
- Instruction lowering (instruction_lower.py: +13 lines)
- LLVM harness runner script (tools/run_llvm_harness.sh: NEW)

**MIR & Runtime**:
- WeakRef emission & validation
- MIR JSON export for weak instructions
- Environment variable support (NYASH_WEAK_*, HAKO_WEAK_*)

**Documentation**:
- CLAUDE.md: Phase 285 completion notes
- LANGUAGE_REFERENCE_2025.md: Weak reference syntax
- 10-Now.md & 30-Backlog.md: Phase 285 status updates

Total: +864 lines, 24 files changed

SSOT: docs/reference/language/lifecycle.md
Related: Phase 285W-Syntax-0, Phase 285W-Syntax-0.1
2025-12-25 00:11:34 +09:00
845ae70cb7 chore: Remove unused imports in normalized_shadow modules
Cleaned up unused imports after Phase 143 execution fix (5e662eaaf).

**Priority files (Phase 143)**:
- if_as_last_join_k.rs: removed ValueId, BTreeMap
- loop_true_break_once.rs: added #[cfg(test)] for test-only imports
- post_if_post_k.rs: removed ValueId, BTreeMap
- normalized_helpers.rs: added #[cfg(test)] for Span

**Additional cleanup**:
- contract_checks.rs: removed BasicBlockId
- joinir/mod.rs: removed Info struct re-exports (functions kept)
- patterns/mod.rs: removed Info struct re-exports (functions kept)
- ast_feature_extractor.rs: removed EscapeSkipPatternInfo
- plan_box.rs: added #[cfg(test)] for PlanKind

**Verification**:
- 0 unused import warnings (was 20+)
- All 69 normalized_shadow tests pass
- Clean build with --release

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-19 08:36:45 +09:00
e404746612 refactor(mir): Phase 139-P3-B - RoutingDecision を enum 対応 + レガシー削除
- RoutingDecision の missing_caps を Vec<CapabilityTag> に変更(型安全化)
- error_tags は to_tag() メソッドで自動生成
- 全 callsite を enum variant に修正
- capability_tags モジュール(文字列定数群)を完全削除
- 全テスト PASS(型安全性向上を確認)
- フォーマット適用
2025-12-16 07:02:14 +09:00
ceb7baffb5 feat(mir): Phase 136 Step 7/7 - CompilationContext extraction
**Step 7/7 Complete**: Extract compilation-related fields into CompilationContext

**抽出したフィールド** (15個):
- compilation_context: Box compilation context
- current_static_box: Current static box name
- user_defined_boxes: User-defined box registry
- reserved_value_ids: Reserved ValueIds for PHI
- fn_body_ast: Function body AST for capture analysis
- weak_fields_by_box: Weak field registry
- property_getters_by_box: Property getter registry
- field_origin_class: Field origin tracking
- field_origin_by_box: Class-level field origin
- static_method_index: Static method index
- method_tail_index: Method tail index (fast lookup)
- method_tail_index_source_len: Source size snapshot
- type_registry: Type registry (TypeRegistryBox)
- current_slot_registry: Function scope SlotRegistry
- plugin_method_sigs: Plugin method signatures

**新規ファイル**:
- src/mir/builder/compilation_context.rs (435 lines)
  - CompilationContext struct with 15 fields
  - Helper methods for all compilation operations
  - Comprehensive tests (13 test cases)

**MirBuilder 統合**:
- Added comp_ctx: CompilationContext field
- Marked 15 legacy fields as #[deprecated]
- CompilationContext::with_plugin_sigs() initialization

**テスト結果**:
-  cargo build --release (469 warnings - deprecated)
-  cargo test --release --lib (1029/1033 PASS)
-  phase135_trim_mir_verify.sh (PASS)

**影響範囲**:
- 12 files use comp_ctx fields (87 total usages)
- 36 deprecated fields in builder.rs (ready for Phase 2 cleanup)

**Phase 136 Status**:  7/7 Context Boxes Complete!
- TypeContext, CoreContext, ScopeContext (Steps 1-3)
- BindingContext, VariableContext, MetadataContext (Steps 4-6)
- CompilationContext (Step 7) - NOW COMPLETE

**Next Phase**: Legacy field deletion (Phase 2)
- Remove #[deprecated] fields from builder.rs
- Migrate all code to ctx accessors
- Reduce deprecation warnings from 469 → 0

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 22:12:33 +09:00