Hi Alon,

Thank you for your suggestions, but I can't build asm.js with *incoming* 
(on Windows), only with *latest*.
Not sure what the problem is, since building wasm works fine.

When I compile my sample without `-s WASM=1`, simply as:
emcc t.cpp -std=c++14 -O3 -o index.html
I get the following error (after successfully building libcxx_noexcept.a, 
libcxxabi.bc, libc.bc, and dlmalloc.bc):
INFO:root:generating system library: dlmalloc.bc... (this will be cached in 
"C:\Users\boris\.emscripten_cache\asmjs\dlmalloc.bc" for subsequent builds)
INFO:root: - ok
Traceback (most recent call last):
  File "C:\Util\Emscripten\emscripten\incoming\\emcc", line 13, in <module>
    emcc.run()
  File "C:\Util\Emscripten\emscripten\incoming\emcc.py", line 1958, in run
    JSOptimizer.flush()
  File "C:\Util\Emscripten\emscripten\incoming\emcc.py", line 1854, in flush
    run_passes(chunks[0], title, just_split=False, just_concat=False)
  File "C:\Util\Emscripten\emscripten\incoming\emcc.py", line 1827, in 
run_passes
    final = shared.Building.js_optimizer(final, passes, debug_level >= 4, 
JSOptimizer.extra_info, just_split=just_split, just_concat=just_concat)
  File "C:\Util\Emscripten\emscripten\incoming\tools\shared.py", line 1828, 
in js_optimizer
    ret = js_optimizer.run(filename, passes, NODE_JS, debug, extra_info, 
just_split, just_concat)
  File "C:\Util\Emscripten\emscripten\incoming\tools\js_optimizer.py", line 
559, in run
    return temp_files.run_and_clean(lambda: run_on_js(filename, passes, 
js_engine, source_map, extra_info, just_split, just_concat))
  File "C:\Util\Emscripten\emscripten\incoming\tools\tempfiles.py", line 
78, in run_and_clean
    return func()
  File "C:\Util\Emscripten\emscripten\incoming\tools\js_optimizer.py", line 
559, in <lambda>
    return temp_files.run_and_clean(lambda: run_on_js(filename, passes, 
js_engine, source_map, extra_info, just_split, just_concat))
  File "C:\Util\Emscripten\emscripten\incoming\tools\js_optimizer.py", line 
451, in run_on_js
    filenames = pool.map(run_on_chunk, commands, chunksize=1)
  File 
"C:\Util\Emscripten\python\2.7.5.3_64bit\lib\multiprocessing\pool.py", line 
250, in map
    return self.map_async(func, iterable, chunksize).get()
  File 
"C:\Util\Emscripten\python\2.7.5.3_64bit\lib\multiprocessing\pool.py", line 
554, in get
    raise self._value
WindowsError: [Error 2] The system cannot find the file specified

Thank you for your help,
Boris

On Monday, January 2, 2017 at 6:20:39 PM UTC-7, Alon Zakai wrote:
>
> First thing I would check is that asm.js on incoming is the same as asm.js 
> from before, just to remove one possible difference.
>
> If that's not it, then try to build to wasm in imprecise mode, -s 
> BINARYEN_IMPRECISE=1. Some details and discussion here: 
> https://github.com/kripken/emscripten/issues/4625
>
> If that's not it, then it might be a libc difference. We build libc 
> differently for wasm for various reasons. Looking at profiles from asm.js 
> and wasm should show a noticeable difference if that's the case.
>
> On Mon, Jan 2, 2017 at 4:18 PM, Boris Sergeev <[email protected] 
> <javascript:>> wrote:
>
>> Happy New Year everybody!
>>
>> I've encountered some weirdness in *WebAssembly* vs. *asm.js* 
>> performance comparison and I'm wondering if I'm doing something wrong...
>>
>> 1. I've compiled some simple computationally intensive code (calculation 
>> of Pi to 10,000 digits with Rabinowitz & Wagon spigot algorithm) as x64 
>> with VS2015 Microsoft's compiler and Clang in Windows, then with Clang 4.0 
>> & libcpp in Ubuntu 14.04 (Windows 10 Ubuntu subsystem) and got very close 
>> results: about 6.7 seconds.
>>
>> 2. Then I compiled this code to *asm.js* with Emscripten latest and -O3 
>> flag and ran it in the latest released Chrome (8.7 sec) and Nightly (7 
>> sec). Impressively close to the native speed!
>>
>> 3. Finally, I installed Emscripten incoming, which uses Clang 3.9, and 
>> compiled my code:
>> emcc t.cpp -std=c++14 -O3 -s WASM=1 -o index.html
>> Running the resulting *WebAssembly* code in Nightly produced the 
>> following console output:
>> trying binaryen method: native-wasml
>> binaryen method succeeded.
>> and took almost 15 seconds.
>> In Canary, it took almost 17 seconds.
>>
>> The time was measured only for the Pi calculation:
>>
>> int main(int argc, char** argv)
>> {
>>     Stopwatch<> sw;
>>     Pi::calculate(10000);
>>     sw.stop();
>>     std::cout << sw.elapsed()/1.0e+6 << " seconds\n";
>> }
>>
>> So, any asm.js or wasm translation time shouldn't affect the numbers...
>>
>> What is wrong here???
>>
>> Thank you,
>> Boris
>>
>>
>

-- 
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