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
{{ message }}
This repository was archived by the owner on Aug 17, 2022. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 17, 2022. It is now read-only.
My question is related to Record type. Am I right considering Record as an analog of structs in high-level languages? If so, lets consider simple example of such struct and function that use it:
How could signature of generated foo look like (keeping in mind, that Wasm supports 5 basic types)? Record.lower unlike string.lower_memory only just unwraps values on a stack. It doesn't write this type in Wasm memory anyhow and so on. So, this signature could look like fn foo(arg_0: String, arg_1: String) -> (String, String) {...}, but this behaviour is hard to obtain on languages like Rust/C++.
not completely sure I understand this question.
there will be an Interface Types analog for record types. It has not been completely nailed down, but the IT type signature for your function will be allowed to mention record types directly:
(type $s (record
($a string)
($b string))
(func foo (param $arg (type $s)) (result (type $s)))
Hope this helps
Would it be able to use the record types directly from core-wasm, or just at the IT layer?
Because I interpret this question as being about "how do core wasm and IT match up?"
My understanding of that would be that it is going to be ABI-dependent, so the toolchain that generates the function will also be responsible for passing that information up to the IT adapters. But that's just my model of how the tools will interact here.
Activity
[-]Q: Passing records in function types[/-][+]Q: Using records in function signatures[/+]fgmccabe commentedon Jul 13, 2020
not completely sure I understand this question.
there will be an Interface Types analog for record types. It has not been completely nailed down, but the IT type signature for your function will be allowed to mention record types directly:
(type $s (record
($a string)
($b string))
(func foo (param $arg (type $s)) (result (type $s)))
Hope this helps
jgravelle-google commentedon Jul 13, 2020
Would it be able to use the record types directly from core-wasm, or just at the IT layer?
Because I interpret this question as being about "how do core wasm and IT match up?"
My understanding of that would be that it is going to be ABI-dependent, so the toolchain that generates the function will also be responsible for passing that information up to the IT adapters. But that's just my model of how the tools will interact here.
mikevoronov commentedon Jul 13, 2020
@jgravelle-google yes, exactly, thank you for clarifying.