another attempt to make BVTON

This commit is contained in:
Kolby Heacock 2025-12-04 11:14:07 -07:00 committed by Ava Apples Affine
parent 333beba0bb
commit 6f16c2e084

View file

@ -16,7 +16,7 @@
*/ */
use organelle::{Fraction, Number, Numeric}; use organelle::{Float, Fraction, Number, Numeric};
use crate::hmap::QuickMap; use crate::hmap::QuickMap;
use crate::stackstack::StackStack; use crate::stackstack::StackStack;
@ -414,7 +414,9 @@ impl VM {
i::BVTON => access!(&instr.1[0], { i::BVTON => access!(&instr.1[0], {
if let Datum::ByteVector(sbv) = **access!(&instr.1[0]) { if let Datum::ByteVector(sbv) = **access!(&instr.1[0]) {
Datum::Number(Number::Fra(Fraction(f64::from_ne_bytes(sbv) as isize, 1))).into() let sf64 = f64::from_ne_bytes(sbv.try_into().unwrap());
Ok::<Datum::Number, Float>(Datum::Number(Number::Flt(Float(sf64))));
//Datum::Number(Number::Fra(Fraction(sf64 as isize, 1))).into()
} else { } else {
e!("illegal argument to BVTON instruction"); e!("illegal argument to BVTON instruction");
} }