feat(phase72): Phase 72-C Step 2: JoinIR dev flags SSOT completion
Extended joinir_dev.rs with 11 remaining flag helpers (total 20 flags): - NYASH_JOINIR_LOWER_FROM_MIR, NYASH_JOINIR_LLVM_EXPERIMENT (2 NYASH flags) - HAKO_JOINIR_IF_TOPLEVEL, IF_TOPLEVEL_TRACE, IF_IN_LOOP_TRACE (3 if-related) - HAKO_JOINIR_NESTED_IF, PRINT_TOKENS_MAIN, ARRAY_FILTER_MAIN (3 ast_lowerer) - HAKO_JOINIR_READ_QUOTED, READ_QUOTED_IFMERGE (2 read_quoted) Updated src/mir/join_ir/mod.rs env_flag_is_1() dispatcher: - Routes all 16 known JoinIR dev flags to config::env::joinir_dev helpers - Maintains fallback for backward compatibility - Centralizes all body code ENV reads through SSOT layer Achievement: Complete SSOT consolidation for JoinIR development flags - Test side: joinir_env.rs (is_experiment_enabled, set_if_select_*) - Body code: config::env::joinir_dev.rs (20 flag helpers) - Dispatcher: env_flag_is_1() routes all reads to centralized layer 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
50
src/config/env/joinir_dev.rs
vendored
50
src/config/env/joinir_dev.rs
vendored
@ -48,3 +48,53 @@ pub fn snapshot_test_enabled() -> bool {
|
||||
pub fn input_mode() -> Option<String> {
|
||||
std::env::var("NYASH_JOINIR_INPUT").ok()
|
||||
}
|
||||
|
||||
/// NYASH_JOINIR_LOWER_FROM_MIR=1 - Enable lowering from MIR mode
|
||||
pub fn lower_from_mir_enabled() -> bool {
|
||||
env_bool("NYASH_JOINIR_LOWER_FROM_MIR")
|
||||
}
|
||||
|
||||
/// NYASH_JOINIR_LLVM_EXPERIMENT=1 - LLVM experimental mode
|
||||
pub fn llvm_experiment_enabled() -> bool {
|
||||
env_bool("NYASH_JOINIR_LLVM_EXPERIMENT")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_IF_TOPLEVEL=1 - Enable If-select for top-level if statements
|
||||
pub fn if_toplevel_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_IF_TOPLEVEL")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_IF_TOPLEVEL_TRACE=1 - Debug trace for top-level if
|
||||
pub fn if_toplevel_trace_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_IF_TOPLEVEL_TRACE")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_IF_IN_LOOP_TRACE=1 - Debug trace for if in loop
|
||||
pub fn if_in_loop_trace_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_IF_IN_LOOP_TRACE")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_NESTED_IF=1 - Enable nested if lowering
|
||||
pub fn nested_if_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_NESTED_IF")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_PRINT_TOKENS_MAIN=1 - Print tokens for main
|
||||
pub fn print_tokens_main_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_PRINT_TOKENS_MAIN")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_ARRAY_FILTER_MAIN=1 - Array filter main mode
|
||||
pub fn array_filter_main_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_ARRAY_FILTER_MAIN")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_READ_QUOTED=1 - Read quoted mode
|
||||
pub fn read_quoted_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_READ_QUOTED")
|
||||
}
|
||||
|
||||
/// HAKO_JOINIR_READ_QUOTED_IFMERGE=1 - Read quoted with if-merge
|
||||
pub fn read_quoted_ifmerge_enabled() -> bool {
|
||||
env_bool("HAKO_JOINIR_READ_QUOTED_IFMERGE")
|
||||
}
|
||||
|
||||
@ -102,8 +102,32 @@ impl JoinContId {
|
||||
pub type VarId = ValueId;
|
||||
|
||||
/// 環境変数フラグが "1" かチェックするヘルパー(JoinIR 実験経路用)
|
||||
/// Phase 72-C Step 2: SSOT統一 - すべてのリードを config::env::joinir_dev 経由に
|
||||
pub(crate) fn env_flag_is_1(name: &str) -> bool {
|
||||
std::env::var(name).ok().as_deref() == Some("1")
|
||||
use crate::config::env::joinir_dev;
|
||||
match name {
|
||||
"NYASH_JOINIR_LOWER_GENERIC" => joinir_dev::lower_generic_enabled(),
|
||||
"NYASH_JOINIR_MAINLINE_DEBUG" => joinir_dev::mainline_debug_enabled(),
|
||||
"NYASH_JOINIR_IF_MERGE" => joinir_dev::if_merge_enabled(),
|
||||
"NYASH_JOINIR_DEBUG" => joinir_dev::debug_enabled(),
|
||||
"NYASH_JOINIR_VM_BRIDGE" => joinir_dev::vm_bridge_enabled(),
|
||||
"NYASH_JOINIR_STRICT" => joinir_dev::strict_enabled(),
|
||||
"NYASH_JOINIR_SNAPSHOT_GENERATE" => joinir_dev::snapshot_generate_enabled(),
|
||||
"NYASH_JOINIR_SNAPSHOT_TEST" => joinir_dev::snapshot_test_enabled(),
|
||||
"NYASH_JOINIR_LOWER_FROM_MIR" => joinir_dev::lower_from_mir_enabled(),
|
||||
"NYASH_JOINIR_LLVM_EXPERIMENT" => joinir_dev::llvm_experiment_enabled(),
|
||||
"HAKO_JOINIR_IF_TOPLEVEL" => joinir_dev::if_toplevel_enabled(),
|
||||
"HAKO_JOINIR_IF_TOPLEVEL_TRACE" => joinir_dev::if_toplevel_trace_enabled(),
|
||||
"HAKO_JOINIR_IF_IN_LOOP_TRACE" => joinir_dev::if_in_loop_trace_enabled(),
|
||||
"HAKO_JOINIR_NESTED_IF" => joinir_dev::nested_if_enabled(),
|
||||
"HAKO_JOINIR_PRINT_TOKENS_MAIN" => joinir_dev::print_tokens_main_enabled(),
|
||||
"HAKO_JOINIR_ARRAY_FILTER_MAIN" => joinir_dev::array_filter_main_enabled(),
|
||||
"HAKO_JOINIR_READ_QUOTED" => joinir_dev::read_quoted_enabled(),
|
||||
"HAKO_JOINIR_READ_QUOTED_IFMERGE" => joinir_dev::read_quoted_ifmerge_enabled(),
|
||||
// Fallback for unknown flags (shouldn't happen in normal operation)
|
||||
// NYASH_JOINIR_EXPERIMENT is handled by test helpers, not body code
|
||||
_ => std::env::var(name).ok().as_deref() == Some("1"),
|
||||
}
|
||||
}
|
||||
|
||||
/// Phase 27.4-A: ループ header φ の意味を表す構造(Pinned/Carrier 分類)
|
||||
|
||||
Reference in New Issue
Block a user