Open
Description
I'm having some trouble switching to wasi preview 2.
For example, the following interface:
package wasi:random@0.2.0;
interface random {
get-random-bytes: func(len: u64) -> list<u8>;
}
The function signature is func (u64) -> (list<u8>)
But its lower type is core func (i64, i32) -> ()
, which is very difficult to use.
If I want to convert it to core type (array (mut u8))
, a very long glue code is required.
I hope to add a GC mode canon option that can make the lower type similar to core func (i64) -> (array u8)
.
For complex nested types, getting the specified data requires very complex pointer algebra, whereas if using array it only requires multiple array.get
.
I think this helps simplify the use of some external interfaces, such as:
package wasi:filesystem@0.2.0;
interface preopens {
get-directories: func() -> list<tuple<descriptor, string>>;
}
Metadata
Assignees
Labels
No labels