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:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user