From f63a2c449817b4f4f14b7af0b0d719b4f262b174 Mon Sep 17 00:00:00 2001 From: ram Date: Mon, 10 Feb 2025 07:21:52 +0000 Subject: [PATCH] Update based on feedback --- nac3artiq/src/codegen.rs | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/nac3artiq/src/codegen.rs b/nac3artiq/src/codegen.rs index 13bba16..dacfda9 100644 --- a/nac3artiq/src/codegen.rs +++ b/nac3artiq/src/codegen.rs @@ -41,7 +41,9 @@ use nac3core::{ numpy::unpack_ndarray_var_tys, DefinitionId, GenCall, }, - typecheck::typedef::{iter_type_vars, FunSignature, FuncArg, Type, TypeEnum, VarMap}, + typecheck::typedef::{ + iter_type_vars, FunSignature, FuncArg, Type, TypeEnum, TypeEnum::*, VarMap, + }, }; /// The parallelism mode within a block. @@ -392,8 +394,6 @@ fn gen_rpc_tag( buffer.push(b'k'); } - use nac3core::typecheck::typedef::TypeEnum::*; - let int32 = ctx.primitives.int32; let int64 = ctx.primitives.int64; let float = ctx.primitives.float; @@ -451,7 +451,7 @@ fn gen_rpc_tag( buffer.push(b'a'); buffer.push((ndarray_ndims & 0xFF) as u8); - gen_rpc_tag(ctx, ndarray_dtype, false, buffer)?; // Pass false for is_kwarg + gen_rpc_tag(ctx, ndarray_dtype, false, buffer)?; } _ => return Err(format!("Unsupported type: {:?}", ctx.unifier.stringify(ty))), } @@ -804,7 +804,7 @@ fn format_rpc_ret<'ctx>( Some(result) } -pub fn rpc_codegen_callback_fn<'ctx>( +fn rpc_codegen_callback_fn<'ctx>( ctx: &mut CodeGenContext<'ctx, '_>, obj: Option<(Type, ValueEnum<'ctx>)>, fun: (&FunSignature, DefinitionId), @@ -816,10 +816,6 @@ pub fn rpc_codegen_callback_fn<'ctx>( let int32 = ctx.ctx.i32_type(); let size_type = ctx.get_size_type(); let ptr_type = int8.ptr_type(AddressSpace::default()); - let tag_ptr_type = ctx - .ctx - .struct_type(&[ptr_type.into(), size_type.into()], false) - .ptr_type(AddressSpace::default()); let service_id = int32.const_int(fun.1 .0 as u64, false); // -- setup rpc tags let mut tag = Vec::new(); @@ -842,9 +838,8 @@ pub fn rpc_codegen_callback_fn<'ctx>( } else { let tag_len = tag.len(); let arr_ty = int8.array_type(tag_len as u32); - let tag_const = int8.const_array( - &tag.iter().map(|&b| int8.const_int(u64::from(b), false)).collect::>(), - ); + let tag_const = int8 + .const_array(&tag.iter().map(|&b| int8.const_int(u64::from(b), false)).collect_vec()); let arr_gv = ctx.module.add_global(arr_ty, None, &format!("{hash}.arr")); arr_gv.set_linkage(Linkage::Private); arr_gv.set_initializer(&tag_const); @@ -941,7 +936,7 @@ pub fn rpc_codegen_callback_fn<'ctx>( ctx, if is_async { "rpc_send_async" } else { "rpc_send" }, None, - &[service_id.into(), tag_ptr.into(), args_ptr.into()], + &[service_id.into(), tag_ptr.into(), arg_array.into()], Some("rpc.send"), None, );