LDC wasm target: suppressing needless exports?

H. S. Teoh hsteoh at qfbox.info
Thu Feb 1 18:41:10 UTC 2024


Lately I've been playing around with targeting wasm using LDC's wasm
target.  (So far got enough of it working that I can write betterC-level
D code and have it work in the browser -- certainly a welcome change
from having to deal with Javascript's oddities and limitations. Plans
are on the way to getting a rudimentary minimal druntime running so that
I can start writing "real" D. :-P)

One thing I noticed, though, is that LDC seems to export all functions
(including private ones!) to the generated .wasm file's export section.
Meaning that they can be accessed from the JS side, etc..  Most of this
is actually unnecessary, though, since I only have about 2-3 functions
that actually need to be called from JS; everything else is internal D
code.  Is there a way to suppress this auto-exporting and only do it for
a few select functions?

It's mostly harmless, except that when I start using template functions
the size of the symbols explode and needlessly bloats up my .wasm
executable. Would be nice to trim off this fat.


T

-- 
Ignorance is bliss... until you suffer the consequences!


More information about the Digitalmars-d mailing list