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.
