TypeError: asm.js type error: double is not a subtype of intish

2017-08-23 13:42 GMT+07:00 Александр Гурьянов <[email protected]>:
> Sorry, missed error line from prev message:
> TypeError: asm.js type error: double is not a subtype of intish
>
> 2017-08-23 13:42 GMT+07:00 Александр Гурьянов <[email protected]>:
>> Without -g2 I have this error:
>> g[a+4>>2]=-$|0;
>>
>> In function:
>> function Bg(a,b,$){a=a|0;b=b|0;$=+$;g[a>>2]=0.0;g[a+4>>2]=-$|0;return}
>>
>> And SFE on roll-a-ball project still does not work with same error. I
>> start believe that I doing something wrong in build steps...
>>
>> P.S. My projects have a lot of undefined symbols (but they does not
>> used), can this be a problem?
>>
>>
>>
>> 2017-08-23 13:34 GMT+07:00 Александр Гурьянов <[email protected]>:
>>> Hi. After your commit -g2 error gone. But my project does not work. I
>>> see black screen (no errors, just black screen). And this error:
>>>
>>> TypeError: asm.js type error: void incompatible with previous return of 
>>> type f64
>>>
>>> If I remove -g2 game works (but asm.js not). Btw, I trying to find how
>>> to reporduce.
>>>
>>> The code for "asm.js type error: void incompatible with previous
>>> return of type f64" is:
>>>
>>> function _roundf(d1){d1=+d1;(Jl(d1))}
>>>
>>> grep for _roundf in js:
>>>>2]|0)+284>>2]|0;d37=+_roundf(+d28);d42=+_roundf(+
>>>>2]|0)+284>>2]|0;d28=+_roundf(+d44);d42=+_roundf(+
>>>>2]|0)+284>>2]|0;d50=+_roundf(+d37);FUNCTION_TABLE
>>>>2]|0)+284>>2]|0;d50=+_roundf(+(d37+d28));FUNCTION
>>> 1=HEAP32[i8>>2]|0;d2=+_roundf(+ +HEAPF32[i1+20>>2]
>>> HEAP32[i10>>2]|0;d13=+_roundf(+(d2*+HEAPF32[i1+20>
>>> AP32[i1+8>>2]|0;i9=~~+_roundf(+(+(i7|0)*1.5/+HEAPF
>>>>2]|0;HEAPF32[i6>>2]=+_roundf(+d7);HEAPF32[i8>>2]=
>>> =i1|0;var i2=0;i2=~~-+_roundf(+(+HEAPF64[i1+224>>3
>>>  DO(i1,24)|0}function _roundf(d1){d1=+d1;(Jl(d1))}
>>> serialization_pb_cpp, _roundf: _roundf, __GLOBAL__
>>>
>>> 2017-08-23 5:00 GMT+07:00 arnab choudhury <[email protected]>:
>>>> Hello caiiycuk - the latest commit to the master branch fixes this issue.
>>>> Please let me know if you see any issues. Thanks for the due diligence!
>>>>
>>>> Regards,
>>>> Arnab
>>>>
>>>>
>>>> On Tuesday, August 22, 2017 at 12:36:23 PM UTC-7, arnab choudhury wrote:
>>>>>
>>>>> Thanks for catching this caiiycuk - I can repro and will have a fix out
>>>>> shortly. Looks like a name-clash bug in the minified name generator SFE
>>>>> uses.
>>>>>
>>>>> On Tuesday, August 22, 2017 at 10:17:15 AM UTC-7, caiiiycuk wrote:
>>>>>>
>>>>>> While trying to reproduce asm.js error, I found another problem. SFE
>>>>>> wan't work with -g2 flag, you can reporduce this problem with latest
>>>>>> emscripten:
>>>>>>
>>>>>> ./emcc -O2 -g2 -s USE_COCOS2D=3 -s ASM_JS=1 --std=c++11
>>>>>> ./tests/cocos2d_hello.cpp --preload-file
>>>>>>
>>>>>> ~/.emscripten_ports/Cocos2d/Cocos2d-version_3_2/samples/Cpp/HelloCpp/Resources@
>>>>>> -o cocos.html
>>>>>>
>>>>>> node --max-old-space-size=8192 run_sfe.js --file cocos.js | sponge
>>>>>> cocos.js
>>>>>>
>>>>>>
>>>>>> firefox cocos.html
>>>>>>
>>>>>> error:
>>>>>> cocos.html:1249 exception thrown: TypeError: $[(A & 3)] is not a
>>>>>> function,TypeError: $[(A & 3)] is not a function
>>>>>>     at BY
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:2320580)
>>>>>>     at __ZNSt3__26locale8__globalEv
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:2159273)
>>>>>>     at __ZNSt3__26localeC2Ev
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:2160617)
>>>>>>     at __ZNSt3__28ios_base4initEPv
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:2048889)
>>>>>>     at __ZN7cocos2d8BitmapDC12divideStringEP9_TTF_FontPKcii
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:350499)
>>>>>>     at __ZN7cocos2d8BitmapDC9getBitmapEPKciiNS_5Image9TextAlignES2_f
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:748315)
>>>>>>     at __ZN7cocos2d5Image14initWithStringEPKciiNS0_9TextAlignES2_i
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:1308234)
>>>>>>     at __ZN7cocos2d9Texture2D14initWithStringEPKcRKNS_14FontDefinitionE
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:1778238)
>>>>>>     at
>>>>>> __ZN7cocos2d9Texture2D14initWithStringEPKcS2_fRKNS_4SizeENS_14TextHAlignmentENS_14TextVAlignmentE
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:1354460)
>>>>>>     at __ZN7cocos2d8LabelTTF13updateTextureEv
>>>>>>
>>>>>> (file:///home/caiiiycuk/emscripten/sdk/emscripten/cocos2d/cocos.js:10311:1666246)
>>>>>>
>>>>>>
>>>>>> Error only occurs in chrome, or is you disable asm.js mode (for
>>>>>> example by debugger)
>>>>>>
>>>>>> 2017-08-22 23:42 GMT+07:00 arnab choudhury <[email protected]>:
>>>>>> > So - replacing 'Module["asm"] =' with 'var asm =' in build.asm.js
>>>>>> > followed
>>>>>> > by an attempt to run SFE succeeds. I see the following reduction
>>>>>> > (around
>>>>>> > 8%).
>>>>>> >
>>>>>> > 08/22/2017  09:15 AM        19,782,571 build.asm.js
>>>>>> > 08/22/2017  09:39 AM        18,225,058 build.asm.reduced.js
>>>>>> >
>>>>>> > I think the core problem right now is that we currently don't support
>>>>>> > running SFE on Emscripten generated JS that was built with the
>>>>>> > --separate-asm flag. I'll look into fixing this today.
>>>>>> >
>>>>>> > Thanks,
>>>>>> > Arnab
>>>>>> >
>>>>>> > On Tuesday, August 22, 2017 at 9:25:32 AM UTC-7, caiiiycuk wrote:
>>>>>> >>
>>>>>> >> Great. I will try to reproduce asm.js bug. Btw, if you build
>>>>>> >> roll-a-ball project in Unity, then output will be in Unity format
>>>>>> >> (also js, but with Unity loader, Unity staff). You can find emscripten
>>>>>> >> output in Project/Library/webgl_cache/linkresult_asm/ folder.
>>>>>> >>
>>>>>> >> 2017-08-22 23:15 GMT+07:00 arnab choudhury <[email protected]>:
>>>>>> >> > Hi caiiycuk
>>>>>> >> >
>>>>>> >> > I'll have an update here shortly. I would love to be able to
>>>>>> >> > reproduce
>>>>>> >> > the
>>>>>> >> > non-asm.js bug since we have extensive tests for this at Tableau.
>>>>>> >> > I'm
>>>>>> >> > trying
>>>>>> >> > out the roll-a-ball project right now, will get back shortly.
>>>>>> >> >
>>>>>> >> > Regards,
>>>>>> >> > Arnab
>>>>>> >> >
>>>>>> >> > On Tuesday, August 22, 2017 at 3:07:44 AM UTC-7, caiiiycuk wrote:
>>>>>> >> >>
>>>>>> >> >> As I see using SFE breaks asm.js validity? On my another project
>>>>>> >> >> sfe
>>>>>> >> >> produce js less on 500Kb (from 6.5Mb), but FF says:
>>>>>> >> >> TypeError: asm.js type error: double is not a subtype of intish
>>>>>> >> >>
>>>>>> >> >> 2017-08-22 11:33 GMT+07:00 Александр Гурьянов <[email protected]>:
>>>>>> >> >> > Roll a ball project:
>>>>>> >> >> > https://www.assetstore.unity3d.com/en/#!/content/77198
>>>>>> >> >> >
>>>>>> >> >> > 2017-08-22 11:32 GMT+07:00 Александр Гурьянов
>>>>>> >> >> > <[email protected]>:
>>>>>> >> >> >> Hi. I tried to use SFE on Roll-a-ball demo project, and get same
>>>>>> >> >> >> results. Unity uses --separate-asm flag to build asm.js.
>>>>>> >> >> >> Resulting
>>>>>> >> >> >> js
>>>>>> >> >> >> looks like:
>>>>>> >> >> >>
>>>>>> >> >> >> Module["asm"] = (function(global,env,buffer) {
>>>>>> >> >> >> "use asm";var a=new global.Int8Array(buffer);var b=new
>>>>>> >> >> >> global.Int16Array(buffer);...
>>>>>> >> >> >>
>>>>>> >> >> >> I tried to remove wrapping function (Module["asm"] =
>>>>>> >> >> >> (function(global,env,buffer) { ... }), and code looks like:
>>>>>> >> >> >> "use asm";var a=new global.Int8Array(buffer);var b=new
>>>>>> >> >> >> global.Int16Array(buffer);...
>>>>>> >> >> >>
>>>>>> >> >> >> When I run SFE I have another error:
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> /home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:5701
>>>>>> >> >> >>             throw e;
>>>>>> >> >> >>             ^
>>>>>> >> >> >> Error: Line 25: Illegal return statement
>>>>>> >> >> >>     at constructError
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:2406:21)
>>>>>> >> >> >>     at createError
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:2425:17)
>>>>>> >> >> >>     at tolerateError
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:2460:17)
>>>>>> >> >> >>     at parseReturnStatement
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:4533:13)
>>>>>> >> >> >>     at parseStatement
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:4780:24)
>>>>>> >> >> >>     at parseStatementListItem
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:3988:16)
>>>>>> >> >> >>     at parseScriptBody
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:5489:25)
>>>>>> >> >> >>     at parseProgram
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:5505:16)
>>>>>> >> >> >>     at Object.parse
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/node_modules/esprima/esprima.js:5689:23)
>>>>>> >> >> >>     at SimilarFunctionEliminator.srcToAst
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> (/home/caiiiycuk/sdk/Similar-Function-Elimination/src/similar_function_eliminator.js:35:20)
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> Maybe I doing something wrong. Can you try? Resulting js is here
>>>>>> >> >> >> (build.asm.js):
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >>
>>>>>> >> >> >> https://drive.google.com/file/d/0B28AXjYMDNZscDFlZTdWMGMzQkU/view?usp=sharing
>>>>>> >> >> >>
>>>>>> >> >> >> Thank you!
>>>>>> >> >> >>
>>>>>> >> >> >> 2017-08-22 1:35 GMT+07:00 Александр Гурьянов
>>>>>> >> >> >> <[email protected]>:
>>>>>> >> >> >>> I think that error can be reporudced on any Unity project, I
>>>>>> >> >> >>> will
>>>>>> >> >> >>> check and back) Btw, thanks for nice stuff!
>>>>>> >> >> >>>
>>>>>> >> >> >>> 2017-08-22 1:27 GMT+07:00 arnab choudhury <[email protected]>:
>>>>>> >> >> >>>> Thanks Alon :).
>>>>>> >> >> >>>>
>>>>>> >> >> >>>> Caiiycuk, is the codebase you are trying to run SFE on
>>>>>> >> >> >>>> available
>>>>>> >> >> >>>> publicly?
>>>>>> >> >> >>>> Can you post the github link here if so? If not, take a look
>>>>>> >> >> >>>> at
>>>>>> >> >> >>>> the
>>>>>> >> >> >>>> generated JS on which you are going to run SFE on. Make sure
>>>>>> >> >> >>>> that
>>>>>> >> >> >>>> there is a
>>>>>> >> >> >>>> top level global variable called asm. If the asm.js is
>>>>>> >> >> >>>> wrapped,
>>>>>> >> >> >>>> then
>>>>>> >> >> >>>> you
>>>>>> >> >> >>>> might have to save off the asm.js (the part of the code that
>>>>>> >> >> >>>> contains
>>>>>> >> >> >>>> a top
>>>>>> >> >> >>>> level variable called asm) to a separate file and try running
>>>>>> >> >> >>>> SFE
>>>>>> >> >> >>>> on
>>>>>> >> >> >>>> that to
>>>>>> >> >> >>>> see the potential size reduction.
>>>>>> >> >> >>>>
>>>>>> >> >> >>>> Regards,
>>>>>> >> >> >>>> Arnab
>>>>>> >> >> >>>>
>>>>>> >> >> >>>> On Monday, August 21, 2017 at 10:47:22 AM UTC-7, Alon Zakai
>>>>>> >> >> >>>> wrote:
>>>>>> >> >> >>>>>
>>>>>> >> >> >>>>> Very interesting stuff here! :)
>>>>>> >> >> >>>>>
>>>>>> >> >> >>>>> I opened this issue for implementation in Binaryen:
>>>>>> >> >> >>>>> https://github.com/WebAssembly/binaryen/issues/1142
>>>>>> >> >> >>>>>
>>>>>> >> >> >>>>> On Fri, Aug 18, 2017 at 8:24 AM, arnab choudhury
>>>>>> >> >> >>>>> <[email protected]>
>>>>>> >> >> >>>>> wrote:
>>>>>> >> >> >>>>>>
>>>>>> >> >> >>>>>> Hello Emscripten-Discuss
>>>>>> >> >> >>>>>>
>>>>>> >> >> >>>>>> I just wanted to bring folks' attention to a new post-build
>>>>>> >> >> >>>>>> optimization
>>>>>> >> >> >>>>>> pass for Emscripten generated asm.js called Similar Function
>>>>>> >> >> >>>>>> Elimination
>>>>>> >> >> >>>>>> (SFE) that Tableau recently open sourced. I discussed with
>>>>>> >> >> >>>>>> Alon,
>>>>>> >> >> >>>>>> and our
>>>>>> >> >> >>>>>> thinking is that we will be adding this pass to Binaryen's
>>>>>> >> >> >>>>>> web
>>>>>> >> >> >>>>>> assembly
>>>>>> >> >> >>>>>> generator. Given that everyone is moving to Web Assembly, we
>>>>>> >> >> >>>>>> are
>>>>>> >> >> >>>>>> thinking we
>>>>>> >> >> >>>>>> may not add this pass back to Emscripten. However, that
>>>>>> >> >> >>>>>> being
>>>>>> >> >> >>>>>> said,
>>>>>> >> >> >>>>>> the
>>>>>> >> >> >>>>>> Emscripten community should feel free to use Similar
>>>>>> >> >> >>>>>> Function
>>>>>> >> >> >>>>>> Elimination on
>>>>>> >> >> >>>>>> Emscripten generated asm.js if you need the additional size
>>>>>> >> >> >>>>>> reduction.
>>>>>> >> >> >>>>>>
>>>>>> >> >> >>>>>> https://github.com/achoudhury85/Similar-Function-Elimination
>>>>>> >> >> >>>>>>
>>>>>> >> >> >>>>>> At Tableau, we have observed up to 20% code size reduction
>>>>>> >> >> >>>>>> when
>>>>>> >> >> >>>>>> using SFE
>>>>>> >> >> >>>>>> on template heavy codebases.
>>>>>> >> >> >>>>>>
>>>>>> >> >> >>>>>> Regards,
>>>>>> >> >> >>>>>> Arnab
>>>>>> >> >> >>>>>>
>>>>>> >> >> >>>>>> --
>>>>>> >> >> >>>>>> 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.
>>>>>> >> >
>>>>>> >> > --
>>>>>> >> > 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.
>>>>
>>>> --
>>>> 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