Re: asm.js very slow compile time

2017-08-13 Thread Александр Гурьянов
> Also, this bug report may be somehow remotely related: 
> https://github.com/kripken/emscripten/issues/5361
I don't think so, because in that bug undefined symbol is actually
used in runtime. But in my case undefined symbols never used in
runtime. But I think you right compiler does not understand that
symbol is not used and erro ont it.

> I don't think this would work natively either, but linker would error out at 
> link time on a missing symbol
You right again, compiler show this error, but as I said before I use
flag "-Wl,--unresolved-symbols=ignore-all" to avoid this error.

> You could try adding a single .cpp file to the build with that symbol defined

My project is big game, that have two parts: game and editor. Editor
is used by game devs, to make levels etc. Editor can be activated by
special in-game flag. But for gaming editor is not needed, and it is
hard task to compile it in web. So best solution is to drop editor's
*.cpp and compile with "-Wl,--unresolved-symbols=ignore-all". In that
case game works perfect, and it's much easier to compile.

Btw, I add implementation for s_editor, and now I have same error but
on next undefined symbol:
LinkError: import object field '__ZTI11EditorScene' is not a Number

Of course I can add mock implementation for all Editor's symbols, but
may be there is a better solution?

2017-08-12 21:34 GMT+07:00 Jukka Jylänki :
> Also, this bug report may be somehow remotely related:
> https://github.com/kripken/emscripten/issues/5361
>
>
> lauantai 12. elokuuta 2017 Jukka Jylänki  kirjoitti:
>>
>> I would expect unused imports to be optimized out. Perhaps this is a case
>> where the compiler is not able to eliminate some function that is
>> referencing the given object. I don't think this would work natively either,
>> but linker would error out at link time on a missing symbol (similar to what
>> you will get if linking with -s ERROR_ON_UNDEFINED_SYMBOLS=1 in Emscripten)
>>
>> You could try adding a single .cpp file to the build with that symbol
>> defined, or add a __EMSCRIPTEN__ specific path somewhere that defines it, or
>> hook into Wasm instantiation in the html file and add that entry in the
>> import object.
>>
>> torstai 10. elokuuta 2017 Александр Гурьянов 
>> kirjoitti:
>>>
>>> Chrome error:
>>> failed to asynchronously prepare wasm: LinkError: Import #3
>>> module="env" function="__ZN6Editor10s_instanceE" error: global import
>>> must be a number
>>> testing.html:160 LinkError: Import #3 module="env"
>>> function="__ZN6Editor10s_instanceE" error: global import must be a
>>> number
>>> at http://localhost/bin.js?timestamp=1502360564253:5659:23
>>> at 
>>> testing.html:161 LinkError: Import #3 module="env"
>>> function="__ZN6Editor10s_instanceE" error: global import must be a
>>> number
>>> at http://localhost/bin.js?timestamp=1502360564253:5659:23
>>> at 
>>> testing.html:1 Uncaught (in promise) abort({}) at Error
>>> at jsStackTrace
>>> (http://localhost/bin.js?timestamp=1502360564253:5206:12)
>>> at stackTrace
>>> (http://localhost/bin.js?timestamp=1502360564253:5220:11)
>>> at abort (http://localhost/bin.js?timestamp=1502360564253:15934:43)
>>> at http://localhost/bin.js?timestamp=1502360564253:5664:4
>>> at 
>>> If this abort() is unexpected, build with -s ASSERTIONS=1 which can
>>> give more information.
>>>
>>>
>>>
>>> 2017-08-10 17:32 GMT+07:00 Александр Гурьянов :
>>> > emcc (Emscripten gcc/clang-like replacement) 1.37.18 (commit
>>> > cb2260892ddc2c73aa40dbe0821f5a8ce3f79975)
>>> >
>>> > bin.js:
>>> >   function __ZN6Editor10s_instanceE() {
>>> >Module["printErr"]("missing function: _ZN6Editor10s_instanceE");
>>> >abort(-1);
>>> >   }
>>> > // ...
>>> >   getBinaryPromise().then((function(binary) {
>>> >return WebAssembly.instantiate(binary, info); // <-- HERE
>>> >   })).then((function(output) {
>>> >
>>> > I don't know how to look inside wasm, it's looks like binary file:
>>> > STACKTOP  envSTACK_MAX  env __ZN6Editor10s_instanceE  env
>>> >
>>> > c++:
>>> > class Editor {
>>> > private:
>>> > static Editor* s_instance;
>>> > public:
>>> > static Editor* getInstance() { return s_instance; }
>>> >
>>> > }
>>> >
>>> >
>>> > Yes it's a singleton pointer, but this class is not implemented, it
>>> > have many undefined references, including to s_instance:
>>> > 51: undefined reference to `Editor::s_instance'
>>> >
>>> > So I think problem in that place, but I don't want to implement it, it
>>> > never calls.
>>> >
>>> >
>>> > 2017-08-10 17:12 GMT+07:00 Jukka Jylänki :
>>> >> Is that on latest Emscripten 1.37.18? That looks like a new error that
>>> >> is not known. What does the generated code around that location look
>>> >> like? What should __ZN6Editor10s_instanceE be, is that a singleton
>>> >> pointer?
>>> >>
>>> >> 2017-08-10 6:55 GMT+03:00 Александр Гурьянов :
>>> >>> Update on compile time:
>>> >>> -O2 - ~60 sec
>>> >>> -O3 - ~7 sec
>>> >>>
>>> >>> Also I try to build project with WA

Re: asm.js very slow compile time

2017-08-12 Thread Jukka Jylänki
Also, this bug report may be somehow remotely related:
https://github.com/kripken/emscripten/issues/5361

lauantai 12. elokuuta 2017 Jukka Jylänki  kirjoitti:

> I would expect unused imports to be optimized out. Perhaps this is a case
> where the compiler is not able to eliminate some function that is
> referencing the given object. I don't think this would work natively
> either, but linker would error out at link time on a missing symbol
> (similar to what you will get if linking with -s
> ERROR_ON_UNDEFINED_SYMBOLS=1 in Emscripten)
>
> You could try adding a single .cpp file to the build with that symbol
> defined, or add a __EMSCRIPTEN__ specific path somewhere that defines it,
> or hook into Wasm instantiation in the html file and add that entry in the
> import object.
>
> torstai 10. elokuuta 2017 Александр Гурьянов  > kirjoitti:
>
>> Chrome error:
>> failed to asynchronously prepare wasm: LinkError: Import #3
>> module="env" function="__ZN6Editor10s_instanceE" error: global import
>> must be a number
>> testing.html:160 LinkError: Import #3 module="env"
>> function="__ZN6Editor10s_instanceE" error: global import must be a
>> number
>> at http://localhost/bin.js?timestamp=1502360564253:5659:23
>> at 
>> testing.html:161 LinkError: Import #3 module="env"
>> function="__ZN6Editor10s_instanceE" error: global import must be a
>> number
>> at http://localhost/bin.js?timestamp=1502360564253:5659:23
>> at 
>> testing.html:1 Uncaught (in promise) abort({}) at Error
>> at jsStackTrace (http://localhost/bin.js?times
>> tamp=1502360564253:5206:12)
>> at stackTrace (http://localhost/bin.js?times
>> tamp=1502360564253:5220:11)
>> at abort (http://localhost/bin.js?timestamp=1502360564253:15934:43)
>> at http://localhost/bin.js?timestamp=1502360564253:5664:4
>> at 
>> If this abort() is unexpected, build with -s ASSERTIONS=1 which can
>> give more information.
>>
>>
>>
>> 2017-08-10 17:32 GMT+07:00 Александр Гурьянов :
>> > emcc (Emscripten gcc/clang-like replacement) 1.37.18 (commit
>> > cb2260892ddc2c73aa40dbe0821f5a8ce3f79975)
>> >
>> > bin.js:
>> >   function __ZN6Editor10s_instanceE() {
>> >Module["printErr"]("missing function: _ZN6Editor10s_instanceE");
>> >abort(-1);
>> >   }
>> > // ...
>> >   getBinaryPromise().then((function(binary) {
>> >return WebAssembly.instantiate(binary, info); // <-- HERE
>> >   })).then((function(output) {
>> >
>> > I don't know how to look inside wasm, it's looks like binary file:
>> > STACKTOP  envSTACK_MAX  env __ZN6Editor10s_instanceE  env
>> >
>> > c++:
>> > class Editor {
>> > private:
>> > static Editor* s_instance;
>> > public:
>> > static Editor* getInstance() { return s_instance; }
>> >
>> > }
>> >
>> >
>> > Yes it's a singleton pointer, but this class is not implemented, it
>> > have many undefined references, including to s_instance:
>> > 51: undefined reference to `Editor::s_instance'
>> >
>> > So I think problem in that place, but I don't want to implement it, it
>> > never calls.
>> >
>> >
>> > 2017-08-10 17:12 GMT+07:00 Jukka Jylänki :
>> >> Is that on latest Emscripten 1.37.18? That looks like a new error that
>> >> is not known. What does the generated code around that location look
>> >> like? What should __ZN6Editor10s_instanceE be, is that a singleton
>> >> pointer?
>> >>
>> >> 2017-08-10 6:55 GMT+03:00 Александр Гурьянов :
>> >>> Update on compile time:
>> >>> -O2 - ~60 sec
>> >>> -O3 - ~7 sec
>> >>>
>> >>> Also I try to build project with WASM=1, and it built successfully,
>> >>> but I can't run it due this error:
>> >>> failed to asynchronously prepare wasm: LinkError: import object field
>> >>> '__ZN6Editor10s_instanceE' is not a Number  testing.html:161:40
>> >>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
>> >>> Number  testing.html:160:37
>> >>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
>> >>> Number  testing.html:161:40
>> >>>
>> >>> I have some unresovled symbols in project, but this symbols never
>> >>> calls from code. I also build native version with flag
>> >>> -Wl,--unresolved-symbols=ignore-all and it works fine, asm.js also
>> >>> works.
>> >>>
>> >>> 2017-08-09 19:36 GMT+07:00 Александр Гурьянов :
>>  The source is not public, but I think I can share result js if it's
>> useful.
>> 
>>  I will try to build WebAssembly and check.
>> 
>>  2017-08-09 19:04 GMT+07:00 Jukka Jylänki :
>> > This looks like a performance bug in the browser. It may be possible
>> > to reduce the compilation time, but without a test case it's not
>> > possible to know what might be wrong. Is the project public
>> somewhere?
>> >
>> > One known source of slow compilation times is if one has very large
>> > switch-case statements with tens of thousands of cases.
>> >
>> > Though FF 54 already supports WebAssembly. Do you have a WebAssembly
>> > build of the same, does that compile quickly on Firefox?
>> >

Re: asm.js very slow compile time

2017-08-12 Thread Jukka Jylänki
I would expect unused imports to be optimized out. Perhaps this is a case
where the compiler is not able to eliminate some function that is
referencing the given object. I don't think this would work natively
either, but linker would error out at link time on a missing symbol
(similar to what you will get if linking with -s
ERROR_ON_UNDEFINED_SYMBOLS=1 in Emscripten)

You could try adding a single .cpp file to the build with that symbol
defined, or add a __EMSCRIPTEN__ specific path somewhere that defines it,
or hook into Wasm instantiation in the html file and add that entry in the
import object.

torstai 10. elokuuta 2017 Александр Гурьянов 
kirjoitti:

> Chrome error:
> failed to asynchronously prepare wasm: LinkError: Import #3
> module="env" function="__ZN6Editor10s_instanceE" error: global import
> must be a number
> testing.html:160 LinkError: Import #3 module="env"
> function="__ZN6Editor10s_instanceE" error: global import must be a
> number
> at http://localhost/bin.js?timestamp=1502360564253:5659:23
> at 
> testing.html:161 LinkError: Import #3 module="env"
> function="__ZN6Editor10s_instanceE" error: global import must be a
> number
> at http://localhost/bin.js?timestamp=1502360564253:5659:23
> at 
> testing.html:1 Uncaught (in promise) abort({}) at Error
> at jsStackTrace (http://localhost/bin.js?timestamp=1502360564253:5206:
> 12)
> at stackTrace (http://localhost/bin.js?timestamp=1502360564253:5220:11
> )
> at abort (http://localhost/bin.js?timestamp=1502360564253:15934:43)
> at http://localhost/bin.js?timestamp=1502360564253:5664:4
> at 
> If this abort() is unexpected, build with -s ASSERTIONS=1 which can
> give more information.
>
>
>
> 2017-08-10 17:32 GMT+07:00 Александр Гурьянов  >:
> > emcc (Emscripten gcc/clang-like replacement) 1.37.18 (commit
> > cb2260892ddc2c73aa40dbe0821f5a8ce3f79975)
> >
> > bin.js:
> >   function __ZN6Editor10s_instanceE() {
> >Module["printErr"]("missing function: _ZN6Editor10s_instanceE");
> >abort(-1);
> >   }
> > // ...
> >   getBinaryPromise().then((function(binary) {
> >return WebAssembly.instantiate(binary, info); // <-- HERE
> >   })).then((function(output) {
> >
> > I don't know how to look inside wasm, it's looks like binary file:
> > STACKTOP  envSTACK_MAX  env __ZN6Editor10s_instanceE  env
> >
> > c++:
> > class Editor {
> > private:
> > static Editor* s_instance;
> > public:
> > static Editor* getInstance() { return s_instance; }
> >
> > }
> >
> >
> > Yes it's a singleton pointer, but this class is not implemented, it
> > have many undefined references, including to s_instance:
> > 51: undefined reference to `Editor::s_instance'
> >
> > So I think problem in that place, but I don't want to implement it, it
> > never calls.
> >
> >
> > 2017-08-10 17:12 GMT+07:00 Jukka Jylänki  >:
> >> Is that on latest Emscripten 1.37.18? That looks like a new error that
> >> is not known. What does the generated code around that location look
> >> like? What should __ZN6Editor10s_instanceE be, is that a singleton
> >> pointer?
> >>
> >> 2017-08-10 6:55 GMT+03:00 Александр Гурьянов  >:
> >>> Update on compile time:
> >>> -O2 - ~60 sec
> >>> -O3 - ~7 sec
> >>>
> >>> Also I try to build project with WASM=1, and it built successfully,
> >>> but I can't run it due this error:
> >>> failed to asynchronously prepare wasm: LinkError: import object field
> >>> '__ZN6Editor10s_instanceE' is not a Number  testing.html:161:40
> >>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
> >>> Number  testing.html:160:37
> >>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
> >>> Number  testing.html:161:40
> >>>
> >>> I have some unresovled symbols in project, but this symbols never
> >>> calls from code. I also build native version with flag
> >>> -Wl,--unresolved-symbols=ignore-all and it works fine, asm.js also
> >>> works.
> >>>
> >>> 2017-08-09 19:36 GMT+07:00 Александр Гурьянов  >:
>  The source is not public, but I think I can share result js if it's
> useful.
> 
>  I will try to build WebAssembly and check.
> 
>  2017-08-09 19:04 GMT+07:00 Jukka Jylänki  >:
> > This looks like a performance bug in the browser. It may be possible
> > to reduce the compilation time, but without a test case it's not
> > possible to know what might be wrong. Is the project public
> somewhere?
> >
> > One known source of slow compilation times is if one has very large
> > switch-case statements with tens of thousands of cases.
> >
> > Though FF 54 already supports WebAssembly. Do you have a WebAssembly
> > build of the same, does that compile quickly on Firefox?
> >
> > 2017-08-09 14:52 GMT+03:00 caiiiycuk  >:
> >> Hi. I use Firefox 54.0 to test my game that I compile from C++ to
> js. Js
> >> size is 6.3Mb, when I open game in FF, then it compiles asm.js for
> very long
> >> time:
> >> Successfully compiled asm.js code (to

Re: asm.js very slow compile time

2017-08-10 Thread Александр Гурьянов
Chrome error:
failed to asynchronously prepare wasm: LinkError: Import #3
module="env" function="__ZN6Editor10s_instanceE" error: global import
must be a number
testing.html:160 LinkError: Import #3 module="env"
function="__ZN6Editor10s_instanceE" error: global import must be a
number
at http://localhost/bin.js?timestamp=1502360564253:5659:23
at 
testing.html:161 LinkError: Import #3 module="env"
function="__ZN6Editor10s_instanceE" error: global import must be a
number
at http://localhost/bin.js?timestamp=1502360564253:5659:23
at 
testing.html:1 Uncaught (in promise) abort({}) at Error
at jsStackTrace (http://localhost/bin.js?timestamp=1502360564253:5206:12)
at stackTrace (http://localhost/bin.js?timestamp=1502360564253:5220:11)
at abort (http://localhost/bin.js?timestamp=1502360564253:15934:43)
at http://localhost/bin.js?timestamp=1502360564253:5664:4
at 
If this abort() is unexpected, build with -s ASSERTIONS=1 which can
give more information.



2017-08-10 17:32 GMT+07:00 Александр Гурьянов :
> emcc (Emscripten gcc/clang-like replacement) 1.37.18 (commit
> cb2260892ddc2c73aa40dbe0821f5a8ce3f79975)
>
> bin.js:
>   function __ZN6Editor10s_instanceE() {
>Module["printErr"]("missing function: _ZN6Editor10s_instanceE");
>abort(-1);
>   }
> // ...
>   getBinaryPromise().then((function(binary) {
>return WebAssembly.instantiate(binary, info); // <-- HERE
>   })).then((function(output) {
>
> I don't know how to look inside wasm, it's looks like binary file:
> STACKTOP  envSTACK_MAX  env __ZN6Editor10s_instanceE  env
>
> c++:
> class Editor {
> private:
> static Editor* s_instance;
> public:
> static Editor* getInstance() { return s_instance; }
>
> }
>
>
> Yes it's a singleton pointer, but this class is not implemented, it
> have many undefined references, including to s_instance:
> 51: undefined reference to `Editor::s_instance'
>
> So I think problem in that place, but I don't want to implement it, it
> never calls.
>
>
> 2017-08-10 17:12 GMT+07:00 Jukka Jylänki :
>> Is that on latest Emscripten 1.37.18? That looks like a new error that
>> is not known. What does the generated code around that location look
>> like? What should __ZN6Editor10s_instanceE be, is that a singleton
>> pointer?
>>
>> 2017-08-10 6:55 GMT+03:00 Александр Гурьянов :
>>> Update on compile time:
>>> -O2 - ~60 sec
>>> -O3 - ~7 sec
>>>
>>> Also I try to build project with WASM=1, and it built successfully,
>>> but I can't run it due this error:
>>> failed to asynchronously prepare wasm: LinkError: import object field
>>> '__ZN6Editor10s_instanceE' is not a Number  testing.html:161:40
>>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
>>> Number  testing.html:160:37
>>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
>>> Number  testing.html:161:40
>>>
>>> I have some unresovled symbols in project, but this symbols never
>>> calls from code. I also build native version with flag
>>> -Wl,--unresolved-symbols=ignore-all and it works fine, asm.js also
>>> works.
>>>
>>> 2017-08-09 19:36 GMT+07:00 Александр Гурьянов :
 The source is not public, but I think I can share result js if it's useful.

 I will try to build WebAssembly and check.

 2017-08-09 19:04 GMT+07:00 Jukka Jylänki :
> This looks like a performance bug in the browser. It may be possible
> to reduce the compilation time, but without a test case it's not
> possible to know what might be wrong. Is the project public somewhere?
>
> One known source of slow compilation times is if one has very large
> switch-case statements with tens of thousands of cases.
>
> Though FF 54 already supports WebAssembly. Do you have a WebAssembly
> build of the same, does that compile quickly on Firefox?
>
> 2017-08-09 14:52 GMT+03:00 caiiiycuk :
>> Hi. I use Firefox 54.0 to test my game that I compile from C++ to js. Js
>> size is 6.3Mb, when I open game in FF, then it compiles asm.js for very 
>> long
>> time:
>> Successfully compiled asm.js code (total compilation time 55703ms; 
>> stored in
>> cache)
>>
>> As you see I wait one minute before game starts,  all other browsers 
>> start
>> game immediately. It's possible to reduce this compilation time?
>>
>> I have very powerfull CPU - i7, os is Ubuntu x64
>>
>> --
>> 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.
>
> --
> 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+unsubs

Re: asm.js very slow compile time

2017-08-10 Thread Александр Гурьянов
emcc (Emscripten gcc/clang-like replacement) 1.37.18 (commit
cb2260892ddc2c73aa40dbe0821f5a8ce3f79975)

bin.js:
  function __ZN6Editor10s_instanceE() {
   Module["printErr"]("missing function: _ZN6Editor10s_instanceE");
   abort(-1);
  }
// ...
  getBinaryPromise().then((function(binary) {
   return WebAssembly.instantiate(binary, info); // <-- HERE
  })).then((function(output) {

I don't know how to look inside wasm, it's looks like binary file:
STACKTOP  envSTACK_MAX  env __ZN6Editor10s_instanceE  env

c++:
class Editor {
private:
static Editor* s_instance;
public:
static Editor* getInstance() { return s_instance; }

}


Yes it's a singleton pointer, but this class is not implemented, it
have many undefined references, including to s_instance:
51: undefined reference to `Editor::s_instance'

So I think problem in that place, but I don't want to implement it, it
never calls.


2017-08-10 17:12 GMT+07:00 Jukka Jylänki :
> Is that on latest Emscripten 1.37.18? That looks like a new error that
> is not known. What does the generated code around that location look
> like? What should __ZN6Editor10s_instanceE be, is that a singleton
> pointer?
>
> 2017-08-10 6:55 GMT+03:00 Александр Гурьянов :
>> Update on compile time:
>> -O2 - ~60 sec
>> -O3 - ~7 sec
>>
>> Also I try to build project with WASM=1, and it built successfully,
>> but I can't run it due this error:
>> failed to asynchronously prepare wasm: LinkError: import object field
>> '__ZN6Editor10s_instanceE' is not a Number  testing.html:161:40
>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
>> Number  testing.html:160:37
>> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
>> Number  testing.html:161:40
>>
>> I have some unresovled symbols in project, but this symbols never
>> calls from code. I also build native version with flag
>> -Wl,--unresolved-symbols=ignore-all and it works fine, asm.js also
>> works.
>>
>> 2017-08-09 19:36 GMT+07:00 Александр Гурьянов :
>>> The source is not public, but I think I can share result js if it's useful.
>>>
>>> I will try to build WebAssembly and check.
>>>
>>> 2017-08-09 19:04 GMT+07:00 Jukka Jylänki :
 This looks like a performance bug in the browser. It may be possible
 to reduce the compilation time, but without a test case it's not
 possible to know what might be wrong. Is the project public somewhere?

 One known source of slow compilation times is if one has very large
 switch-case statements with tens of thousands of cases.

 Though FF 54 already supports WebAssembly. Do you have a WebAssembly
 build of the same, does that compile quickly on Firefox?

 2017-08-09 14:52 GMT+03:00 caiiiycuk :
> Hi. I use Firefox 54.0 to test my game that I compile from C++ to js. Js
> size is 6.3Mb, when I open game in FF, then it compiles asm.js for very 
> long
> time:
> Successfully compiled asm.js code (total compilation time 55703ms; stored 
> in
> cache)
>
> As you see I wait one minute before game starts,  all other browsers start
> game immediately. It's possible to reduce this compilation time?
>
> I have very powerfull CPU - i7, os is Ubuntu x64
>
> --
> 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.

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

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


Re: asm.js very slow compile time

2017-08-10 Thread Jukka Jylänki
Is that on latest Emscripten 1.37.18? That looks like a new error that
is not known. What does the generated code around that location look
like? What should __ZN6Editor10s_instanceE be, is that a singleton
pointer?

2017-08-10 6:55 GMT+03:00 Александр Гурьянов :
> Update on compile time:
> -O2 - ~60 sec
> -O3 - ~7 sec
>
> Also I try to build project with WASM=1, and it built successfully,
> but I can't run it due this error:
> failed to asynchronously prepare wasm: LinkError: import object field
> '__ZN6Editor10s_instanceE' is not a Number  testing.html:161:40
> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
> Number  testing.html:160:37
> LinkError: import object field '__ZN6Editor10s_instanceE' is not a
> Number  testing.html:161:40
>
> I have some unresovled symbols in project, but this symbols never
> calls from code. I also build native version with flag
> -Wl,--unresolved-symbols=ignore-all and it works fine, asm.js also
> works.
>
> 2017-08-09 19:36 GMT+07:00 Александр Гурьянов :
>> The source is not public, but I think I can share result js if it's useful.
>>
>> I will try to build WebAssembly and check.
>>
>> 2017-08-09 19:04 GMT+07:00 Jukka Jylänki :
>>> This looks like a performance bug in the browser. It may be possible
>>> to reduce the compilation time, but without a test case it's not
>>> possible to know what might be wrong. Is the project public somewhere?
>>>
>>> One known source of slow compilation times is if one has very large
>>> switch-case statements with tens of thousands of cases.
>>>
>>> Though FF 54 already supports WebAssembly. Do you have a WebAssembly
>>> build of the same, does that compile quickly on Firefox?
>>>
>>> 2017-08-09 14:52 GMT+03:00 caiiiycuk :
 Hi. I use Firefox 54.0 to test my game that I compile from C++ to js. Js
 size is 6.3Mb, when I open game in FF, then it compiles asm.js for very 
 long
 time:
 Successfully compiled asm.js code (total compilation time 55703ms; stored 
 in
 cache)

 As you see I wait one minute before game starts,  all other browsers start
 game immediately. It's possible to reduce this compilation time?

 I have very powerfull CPU - i7, os is Ubuntu x64

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

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


Re: asm.js very slow compile time

2017-08-09 Thread Александр Гурьянов
Update on compile time:
-O2 - ~60 sec
-O3 - ~7 sec

Also I try to build project with WASM=1, and it built successfully,
but I can't run it due this error:
failed to asynchronously prepare wasm: LinkError: import object field
'__ZN6Editor10s_instanceE' is not a Number  testing.html:161:40
LinkError: import object field '__ZN6Editor10s_instanceE' is not a
Number  testing.html:160:37
LinkError: import object field '__ZN6Editor10s_instanceE' is not a
Number  testing.html:161:40

I have some unresovled symbols in project, but this symbols never
calls from code. I also build native version with flag
-Wl,--unresolved-symbols=ignore-all and it works fine, asm.js also
works.

2017-08-09 19:36 GMT+07:00 Александр Гурьянов :
> The source is not public, but I think I can share result js if it's useful.
>
> I will try to build WebAssembly and check.
>
> 2017-08-09 19:04 GMT+07:00 Jukka Jylänki :
>> This looks like a performance bug in the browser. It may be possible
>> to reduce the compilation time, but without a test case it's not
>> possible to know what might be wrong. Is the project public somewhere?
>>
>> One known source of slow compilation times is if one has very large
>> switch-case statements with tens of thousands of cases.
>>
>> Though FF 54 already supports WebAssembly. Do you have a WebAssembly
>> build of the same, does that compile quickly on Firefox?
>>
>> 2017-08-09 14:52 GMT+03:00 caiiiycuk :
>>> Hi. I use Firefox 54.0 to test my game that I compile from C++ to js. Js
>>> size is 6.3Mb, when I open game in FF, then it compiles asm.js for very long
>>> time:
>>> Successfully compiled asm.js code (total compilation time 55703ms; stored in
>>> cache)
>>>
>>> As you see I wait one minute before game starts,  all other browsers start
>>> game immediately. It's possible to reduce this compilation time?
>>>
>>> I have very powerfull CPU - i7, os is Ubuntu x64
>>>
>>> --
>>> 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.
>>
>> --
>> 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.

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


Re: asm.js very slow compile time

2017-08-09 Thread Александр Гурьянов
The source is not public, but I think I can share result js if it's useful.

I will try to build WebAssembly and check.

2017-08-09 19:04 GMT+07:00 Jukka Jylänki :
> This looks like a performance bug in the browser. It may be possible
> to reduce the compilation time, but without a test case it's not
> possible to know what might be wrong. Is the project public somewhere?
>
> One known source of slow compilation times is if one has very large
> switch-case statements with tens of thousands of cases.
>
> Though FF 54 already supports WebAssembly. Do you have a WebAssembly
> build of the same, does that compile quickly on Firefox?
>
> 2017-08-09 14:52 GMT+03:00 caiiiycuk :
>> Hi. I use Firefox 54.0 to test my game that I compile from C++ to js. Js
>> size is 6.3Mb, when I open game in FF, then it compiles asm.js for very long
>> time:
>> Successfully compiled asm.js code (total compilation time 55703ms; stored in
>> cache)
>>
>> As you see I wait one minute before game starts,  all other browsers start
>> game immediately. It's possible to reduce this compilation time?
>>
>> I have very powerfull CPU - i7, os is Ubuntu x64
>>
>> --
>> 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.
>
> --
> 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.

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


Re: asm.js very slow compile time

2017-08-09 Thread Jukka Jylänki
This looks like a performance bug in the browser. It may be possible
to reduce the compilation time, but without a test case it's not
possible to know what might be wrong. Is the project public somewhere?

One known source of slow compilation times is if one has very large
switch-case statements with tens of thousands of cases.

Though FF 54 already supports WebAssembly. Do you have a WebAssembly
build of the same, does that compile quickly on Firefox?

2017-08-09 14:52 GMT+03:00 caiiiycuk :
> Hi. I use Firefox 54.0 to test my game that I compile from C++ to js. Js
> size is 6.3Mb, when I open game in FF, then it compiles asm.js for very long
> time:
> Successfully compiled asm.js code (total compilation time 55703ms; stored in
> cache)
>
> As you see I wait one minute before game starts,  all other browsers start
> game immediately. It's possible to reduce this compilation time?
>
> I have very powerfull CPU - i7, os is Ubuntu x64
>
> --
> 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.

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