Thank you for the info and prompt response.

I'll go ahead and manually remove the asm.js file before distributing my 
build, and I'll check again to see if the file is no longer emitted when 
homebrew catches up with 1.37.21 
<https://github.com/kripken/emscripten/releases/tag/1.37.21>.

On Tuesday, September 5, 2017 at 1:31:33 PM UTC-4, Alon Zakai wrote:
>
> Yeah, I think we only started removing the temporary .asm.js file 
> recently. I verified current incoming does not emit it.
>
> On Tue, Sep 5, 2017 at 9:13 AM, Jukka Jylänki <juj...@gmail.com 
> <javascript:>> wrote:
>
>> The .asm.js file is not needed when building wasm, and it should not
>> be getting emitted (see
>> https://github.com/kripken/emscripten/pull/4807). Also, --separate-asm
>> should never be passed when targeting wasm (see
>> https://github.com/kripken/emscripten/issues/4909). Feel free to
>> delete .asm.js file when doing a wasm only build, if it for some
>> reason is haunting around.
>>
>> 2017-09-05 18:52 GMT+03:00 Jonathan Marston <marsto...@gmail.com 
>> <javascript:>>:
>> > Note, compiling on a Mac using the versions provided through homebrew, 
>> which
>> > are currently
>> >
>> > emscripten 1.37.18
>> >
>> > binaryen 37
>> >
>> >
>> > On Tuesday, September 5, 2017 at 11:50:36 AM UTC-4, Jonathan Marston 
>> wrote:
>> >>
>> >> I have an emscripten project where I compile FFMPEG to run inside a 
>> worker
>> >> thread for encoding microphone PCM samples. I compile two separate 
>> versions
>> >> with BINARYEN=1 and 0 to create separate outputs for asm.js and 
>> WebAssembly.
>> >> I do my own browser support tests to decide which one to use. Here is 
>> the
>> >> snippet from my Makefile that uses the two separate build flags.
>> >>
>> >> ===========
>> >>
>> >> CFLAGS = -v -O3 \
>> >> -I./dist/include \
>> >> -s OUTLINING_LIMIT=10000 \
>> >> -s TOTAL_MEMORY=16777216 \
>> >> -s NO_EXIT_RUNTIME=1 \
>> >> -s EXPORTED_FUNCTIONS="['_main', '_init' . . . . . . ]" \
>> >> --pre-js pre.js \
>> >> --post-js post.js
>> >>
>> >> ifeq ($(FORMAT), wasm)
>> >> FORMATFLAGS = -s BINARYEN=1 -s BINARYEN_TRAP_MODE="'clamp'"
>> >> else
>> >> FORMATFLAGS = -s BINARYEN=0 --memory-init-file 1
>> >> endif
>> >>
>> >> program: prepare
>> >> $(CC) $(CFLAGS) $(FORMATFLAGS) $(SOURCES) -o $(TARGET) $(LDFLAGS)
>> >> $(LDLIBS)
>> >>
>> >> =========
>> >>
>> >> invoked separately
>> >>
>> >> emmake make FORMAT=wasm
>> >> emmake make FORMAT=asmjs
>> >>
>> >> ==========
>> >>
>> >> The asmjs build produces two files. (I'm not using the --separate-asm
>> >> optimization because that doesn't work when loading in a web worker.)
>> >>
>> >> pcm-encoder-asmjs.js    1.0MB
>> >> pcm-encoder-asmjs.mem   202KB
>> >>
>> >> The WebAssembly build produces three files
>> >>
>> >> pcm-encoder-wasm.js     167KB
>> >> pcm-encoder-asmjs.wasm  693KB
>> >> pcm-encoder-wasm.asm.js 1.9MB
>> >>
>> >> Is this separate asm.js file necessary? Why is it so large compared to 
>> the
>> >> asmjs build? Is there any way to optimize the WebAssembly build using
>> >> current stable emscripten compiler so I don't need the file or can 
>> shrink it
>> >> down?
>> >>
>> >> The details were not clear to me after reading the documentation here,
>> >> https://github.com/kripken/emscripten/wiki/WebAssembly
>> >>
>> >> "WebAssembly code is prepared somewhat differently than asm.js. asm.js 
>> can
>> >> be bundled inside the main JS file, while as mentioned earlier 
>> WebAssembly
>> >> is a binary file on the side, so you will have more than one file to
>> >> distribute."
>> >>
>> >> I understand that the pcm-encoder-wasm.js file is necessary for 
>> properly
>> >> loading the wasm file, but it's not clear to me what purpose the 
>> separate
>> >> asm.js file serves or if it can be optimized.
>> >>
>> >> Is this just a temporary artifact while we are using the asm2wasm until
>> >> the new LLVM backend is being developed?
>> >>
>> >> Any tips on optimizing the build output are greatly appreciated
>> >>
>> >> Jon Marston
>> >
>> > --
>>
>
>

-- 
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 emscripten-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to