Re: How do I make this function from module public?

2020-10-14 Thread Jack via Digitalmars-d-learn
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!


Re: How do I make this function from module public?

2020-10-13 Thread Adam D. Ruppe via Digitalmars-d-learn

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


Re: How do I make this function from module public?

2020-10-13 Thread Jack via Digitalmars-d-learn

I'm compiling with


ldc2 -mtriple=wasm32-unknow-unknow-wasm -betterC wasm.d


How do I make this function from module public?

2020-10-13 Thread Jack via Digitalmars-d-learn
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:


  

(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;
  })();

  
  
Test page

  


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?