How can I use WebAssembly Reference Types with LDC?
kinke
noone at nowhere.com
Sat Sep 14 12:08:13 UTC 2024
On Saturday, 14 September 2024 at 08:28:02 UTC, TM wrote:
> In C/C++, you can access wasm's externref and funcref using:
> ```C++
> char __attribute__((address_space(10)))* //externref
> char __attribute__((address_space(20)))* //funcref
> ```
> Does D provide similar functionality?
Nope, there's currently no way to customize the address-space of
pointers. dcompute has 2-3 magic structs for expressing such
pointers.
Maybe this could by solved via some magic
```D
// magic struct requiring compiler support
struct __as_pointer(T, uint addressSpace) { T* ptr; alias this =
ptr; }
alias ExternRef(T) = __as_pointer!(T, 10);
alias FuncRef(T) = __as_pointer!(T, 20);
```
More information about the digitalmars-d-ldc
mailing list