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.