You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
get_function is too liberal at the moment in what it accepts. Pointer sizes should at least be checked, but it should probably be even more strict with exactly the right types.
get_function should tell you what went wrong, that is, if the function does not exist or which types did not match up.
The return type becoming the first argument when calling Roto from Rust is confusing and we should work around that. We can make wrapper functions that make that unnecessary.
Similarly, we should have a way to return complex values to Roto. This probably involves figuring out how that works with extern "C" functions in Rust and making sure our cranelift-generated code does that correctly.
Compiling a script should just be one function call (not parse, typecheck, lower & codegen separately).
Roto functions need a lifetime associated with the module so that they cannot live longer than the module. This can currently cause some unsoundness.
Either internally or externally, we should not transmute results from Roto directly to Option and Result, but to a custom Verdict type with #[repr(C)]. I'm leaning towards doing this externally, and providing methods to convert a Verdict into a Result or Option.
big-overhaul
branch needs to be merged.get_function
is too liberal at the moment in what it accepts. Pointer sizes should at least be checked, but it should probably be even more strict with exactly the right types.get_function
should tell you what went wrong, that is, if the function does not exist or which types did not match up.extern "C"
functions in Rust and making sure our cranelift-generated code does that correctly.Option
andResult
, but to a customVerdict
type with#[repr(C)]
. I'm leaning towards doing this externally, and providing methods to convert aVerdict
into aResult
orOption
.StructArgument
)StructArgument
)u32
.The text was updated successfully, but these errors were encountered: