Thread overview | ||||||
---|---|---|---|---|---|---|
|
October 14, 2020 How do I make this function from module public? | ||||
---|---|---|---|---|
| ||||
I'm playing with wasm, I wrote a small module where I'd like to make the function available but wasm can't find this function. math.d >module math; >extern(C): >int mul(int a, int b) { return a * b;} wasm.d >public import math; >extern(C): // disable D mangling >void doSomething() { ... } // seems to be the required entry point >void _start() {} start.html: <html> <head> <script> (async() => { const response = await fetch('wasm.wasm'); const bytes = await response.arrayBuffer(); const { instance } = await WebAssembly.instantiate(bytes); const res = instance.exports.mul(2, 4); console.log('The answer is: ' + res); document.getElementById("result").innerHTML = "The result is: " + res; })(); </script> </head> <body> Test page <h1 id="result"></h1> </body> </html> the exported function fails to find 'mul' function, as I can see from the browser's console: >start.html:8 Uncaught (in promise) TypeError: instance.exports.mul is not a >function at start.html:8 can I make it public using D or do I have to import the wanted module with javascript? |
October 14, 2020 Re: How do I make this function from module public? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jack | I'm compiling with
> ldc2 -mtriple=wasm32-unknow-unknow-wasm -betterC wasm.d
|
October 14, 2020 Re: How do I make this function from module public? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jack | On Wednesday, 14 October 2020 at 01:46:11 UTC, Jack wrote:
>>extern(C):
>>int mul(int a, int b) { return a * b;}
mark it `export` as well
and then be sure you are compiling in this module as well, it must be included on the ldc command line along with wasm.d
|
October 14, 2020 Re: How do I make this function from module public? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Wednesday, 14 October 2020 at 01:55:13 UTC, Adam D. Ruppe wrote:
> On Wednesday, 14 October 2020 at 01:46:11 UTC, Jack wrote:
>>>extern(C):
>>>int mul(int a, int b) { return a * b;}
>
> mark it `export` as well
>
> and then be sure you are compiling in this module as well, it must be included on the ldc command line along with wasm.d
worked, thanks!
|
Copyright © 1999-2021 by the D Language Foundation