Hello all, I am currently in the process of attempting to compile a small test Nim code to WebAssembly and running it in a web page; the Webassembly program would contain only a lone export function ⟪reverse⟫, taking a string as input and outputting a reversed string.
<https://github.com/Ntsekees/test-wasm-1> I have succeeded achieving the same by compiling an equivalent code in C (⟪reverse.c⟫) using the Emscripten compiler ⟪emcc⟫, and it works seamlessly, but when I attempt to do the same with the Nim version, I'm finding myself unable to export the ⟪reverse⟫ function. When I pass the switch ⟪``-s EXPORTED_FUNCTIONS='["_reverse"]'`⟫ to emcc, I get an error whereby ⟪_reverse⟫ is undefined (same if I remove the leading underscore); if I don't pass the switch, the file compiles correctly, the WASM loads correctly in the web page but as expected the function ⟪reverse⟫ cannot be imported by the Javascript code. If I use ⟪`-Wl,--export-all``⟫ instead of ⟪EXPORTED_FUNCTIONS⟫, the compiler complains that ⟪main⟫ is undefined, even though I had set the switch ⟪noMain⟫ to ⟪off⟫… I have been suggested to use WASI-SDK instead of Emscripten, but I don't know how to use WASI as a backend for the Nim compiler. Has somebody an idea of how I could get the ⟪reverse⟫ function exported? If it can't be done with Emscripten (which would be surprising, since it works seamlessly with the C source file), does any of you know how I could use WASI as a backend instead of Emscripten? Thanking you in advance for any pointer, —Ntsékees.
