In C/C++, you can access wasm's externref and funcref using:
char __attribute__((address_space(10)))* //externref
char __attribute__((address_space(20)))* //funcref
Does D provide similar functionality?
Thread overview |
---|
September 14 How can I use WebAssembly Reference Types with LDC? | ||||
---|---|---|---|---|
| ||||
In C/C++, you can access wasm's externref and funcref using:
Does D provide similar functionality? |
September 14 Re: How can I use WebAssembly Reference Types with LDC? | ||||
---|---|---|---|---|
| ||||
Posted in reply to TM | On Saturday, 14 September 2024 at 08:28:02 UTC, TM wrote: >In C/C++, you can access wasm's externref and funcref using:
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
|
September 14 Re: How can I use WebAssembly Reference Types with LDC? | ||||
---|---|---|---|---|
| ||||
Posted in reply to kinke | On Saturday, 14 September 2024 at 12:08:13 UTC, kinke wrote: >On Saturday, 14 September 2024 at 08:28:02 UTC, TM wrote: >In C/C++, you can access wasm's externref and funcref using:
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
Thank you for your response. Unfortunately, I was unable to generate wasm's externref using the method you suggested. It appears that dcompute cannot generate code targeting wasm. Sadly, it seems difficult to achieve this with the capabilities of the dlang. |
September 15 Re: How can I use WebAssembly Reference Types with LDC? | ||||
---|---|---|---|---|
| ||||
Posted in reply to TM | On 15/09/2024 5:05 AM, TM wrote:
> On Saturday, 14 September 2024 at 12:08:13 UTC, kinke wrote:
>> 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);
>> ```
>
> Thank you for your response. Unfortunately, I was unable to generate wasm's externref using the method you suggested. It appears that dcompute cannot generate code targeting wasm.
>
> Sadly, it seems difficult to achieve this with the capabilities of the dlang.
Indeed, what Martin is suggesting is that a compiler improvement is required.
There is no way to do what you want currently.
|