pyvm: split op handlers into ops_core/ops_box/ops_ctrl; add ops_flow + intrinsic; delegate vm.py without behavior change

net-plugin: modularize constants (consts.rs) and sockets (sockets.rs); remove legacy commented socket code; fix unused imports
mir: move instruction unit tests to tests/mir_instruction_unit.rs (file lean-up); no semantic changes
runner/pyvm: ensure using pre-strip; misc docs updates

Build: cargo build ok; legacy cfg warnings remain as before
This commit is contained in:
Selfhosting Dev
2025-09-21 08:53:00 +09:00
parent ee17cfd979
commit c8063c9e41
247 changed files with 10187 additions and 23124 deletions

View File

@ -252,8 +252,17 @@ impl StringBox {
}
/// Get string length
///
/// Env gate: NYASH_STR_CP=1 → count Unicode scalar values (chars),
/// otherwise use UTF-8 byte length (legacy/default).
pub fn length(&self) -> Box<dyn NyashBox> {
Box::new(IntegerBox::new(self.value.len() as i64))
let use_cp = std::env::var("NYASH_STR_CP").ok().as_deref() == Some("1");
let n = if use_cp {
self.value.chars().count() as i64
} else {
self.value.len() as i64
};
Box::new(IntegerBox::new(n))
}
/// Convert string to integer (parse as i64)