There is a NO_FILESYSTEM option that removes those MEMFS etc filesystem
bits. printf should still work without the filesystem, but nothing else IO
related. Let me know if that option helps, it is new and not much tested.

- Alon


On Thu, Sep 11, 2014 at 1:44 PM, Floh <[email protected]> wrote:

> Hi,
>
> I've been looking through one of my small demos in debug mode (no
> optimizations, no minify) looking for stuff which bloats the executable
> size.
>
> First I found a few strange modules before the asm.js block:
>
> MEMFS, IDBFS, NODEFS, SOCKFS, and FS (and think the former 4 are all
> pulled in by FS). The thing is, my code doesn't use any of emscripten's FS
> emulation, also no fopen/fclose or C++ stream IO (only printf and sprintf
> functions). Does it make sense trying to untangle these FS dependencies and
> get rid of some of them?
>
> The other big block of "useless" code I found was a lot of C++ IO
> streambuf iterator code in the asm.js block, and I have no clue what causes
> this code to be included. I'm not using C++ style IO (<< and >>) or include
> any C++ IO headers directly. I'm seeing that the <iterator> header has
> classes which look like the mangled names (see below), but I'm not seeing
> any code using those (definitely not in my code). I'm not using std
> containers or strings, I *do* use std::lower_bound, std::binary_search and
> std::sort from <algorithm>, chrono::high_resolution_clock, std::function,
> but that's about it.
>
> I'd be thankful for every idea where to start with trying to get rid of
> this C++ IO stuff.
>
> Here are some of the mangled function names:
>
>
> __ZNSt3__19money_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIwEERNS_10unique_ptrIwPFvPvEEERPwSM_
>
> __ZNSt3__19money_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE8__do_getERS4_S4_bRKNS_6localeEjRjRbRKNS_5ctypeIcEERNS_10unique_ptrIcPFvPvEEERPcSM_
>
> __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc
>
> __ZNKSt3__18time_getIcNS_19istreambuf_iteratorIcNS_11char_traitsIcEEEEE6do_getES4_S4_RNS_8ios_baseERjP2tmcc
>
> __ZNKSt3__18time_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE3getES4_S4_RNS_8ios_baseERjP2tmPKwSC_
>
> One of those even calls a sscanf function:
>
>
> __ZNKSt3__17num_getIwNS_19istreambuf_iteratorIwNS_11char_traitsIwEEEEE6do_getES4_S4_RNS_8ios_baseERjRPv
>
> this calls: __ZNSt3__110__sscanf_lEPKcP15__locale_structS1_z
>
> Cheers & Thanks,
> -Floh.
>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to