diff --git a/nac3artiq/demo/demo.py b/nac3artiq/demo/demo.py index 5a0de8c71..aa135757c 100644 --- a/nac3artiq/demo/demo.py +++ b/nac3artiq/demo/demo.py @@ -1,10 +1,4 @@ from min_artiq import * -from numpy import int32, int64 - - -@extern -def output_int(x: int32): - ... @nac3 diff --git a/nac3artiq/src/lib.rs b/nac3artiq/src/lib.rs index bf5aad1d7..d6ed943fa 100644 --- a/nac3artiq/src/lib.rs +++ b/nac3artiq/src/lib.rs @@ -65,6 +65,7 @@ pub struct PrimitivePythonId { uint32: u64, uint64: u64, float: u64, + float64: u64, bool: u64, list: u64, tuple: u64, @@ -397,6 +398,7 @@ impl Nac3 { uint64: get_attr_id(numpy_mod, "uint64"), bool: get_attr_id(builtins_mod, "bool"), float: get_attr_id(builtins_mod, "float"), + float64: get_attr_id(numpy_mod, "float64"), list: get_attr_id(builtins_mod, "list"), tuple: get_attr_id(builtins_mod, "tuple"), exception: get_attr_id(builtins_mod, "Exception"), diff --git a/nac3artiq/src/symbol_resolver.rs b/nac3artiq/src/symbol_resolver.rs index 609de2c36..a581ef840 100644 --- a/nac3artiq/src/symbol_resolver.rs +++ b/nac3artiq/src/symbol_resolver.rs @@ -302,6 +302,8 @@ impl InnerResolver { Ok(Ok((primitives.bool, true))) } else if ty_id == self.primitive_ids.float { Ok(Ok((primitives.float, true))) + } else if ty_id == self.primitive_ids.float64 { + Ok(Ok((primitives.float, true))) } else if ty_id == self.primitive_ids.exception { Ok(Ok((primitives.exception, true))) } else if ty_id == self.primitive_ids.list { @@ -755,7 +757,7 @@ impl InnerResolver { format!("{} is not in the range of bool", obj)))?; self.id_to_primitive.write().insert(id, PrimitiveValue::Bool(val)); Ok(Some(ctx.ctx.bool_type().const_int(val as u64, false).into())) - } else if ty_id == self.primitive_ids.float { + } else if ty_id == self.primitive_ids.float || ty_id == self.primitive_ids.float64 { let val: f64 = obj.extract().map_err(|_| super::CompileError::new_err( format!("{} is not in the range of float64", obj)))?; self.id_to_primitive.write().insert(id, PrimitiveValue::F64(val)); @@ -985,7 +987,7 @@ impl InnerResolver { } else if ty_id == self.primitive_ids.bool { let val: bool = obj.extract()?; Ok(SymbolValue::Bool(val)) - } else if ty_id == self.primitive_ids.float { + } else if ty_id == self.primitive_ids.float || ty_id == self.primitive_ids.float64 { let val: f64 = obj.extract()?; Ok(SymbolValue::Double(val)) } else if ty_id == self.primitive_ids.tuple {