I would be interested in helping, although I haven't looked at how it 
works, so I am not sure what exactly is involved...


On Wednesday, March 5, 2014 2:33:34 AM UTC-7, Chad Austin wrote:
>
> True!  We do want to use fastcomp but wasn't sure the advantages 
> outweighed the embind porting work.
>
> However, because Dean asked, I sat down and took a look tonight, and got a 
> few functions working.  Most of the work is in getting rid of the function 
> pointer casts, but it seems quite straightforward.
>
> I'll poke away and send pull requests when I have them...  If anyone wants 
> to help, let me know.  :)
>
>
> On Tue, Mar 4, 2014 at 8:27 PM, Alon Zakai <[email protected]<javascript:>
> > wrote:
>
>> Note that fastcomp supports a growable heap in asm.js mode. It will not 
>> validate as asm.js, but should still get much of the speedups from it, just 
>> without guarantees and probably not all of them.
>>
>> - Alon
>>
>>
>>
>> On Tue, Mar 4, 2014 at 2:46 PM, Chad Austin <[email protected] <javascript:>
>> > wrote:
>>
>>> Hi Dean,
>>>
>>> We should port embind to asm.js!  It's certainly a bit of work, but 
>>> probably not too hard.  It's really just that nobody's done the work yet.  
>>> Since IMVU, my employer, can't use asm.js until it supports a growable heap 
>>> (and perhaps closure compiler), we aren't terribly motivated to do the work.
>>>
>>> That said, part of me just wants to bite the bullet and do the 
>>> conversion myself if I can find the time.  :)
>>>
>>> In case someone else wants to take a crack at it, here is what I know:
>>>
>>> There are a couple places where embind uses reinterpret_cast on function 
>>> pointers in order to pass more arguments than their prototypes specify.  
>>> For example, see 
>>> https://github.com/kripken/emscripten/blob/master/system/include/emscripten/val.h#L67
>>>
>>> Those functions need to be converted to varargs.  (At the time, I think 
>>> we were blocked on a varargs issue with the old LLVM, but that may not be 
>>> an issue anymore.)
>>>
>>> The other issue is that embind relies on JavaScript being able to look 
>>> up functions by indexing into FUNCTION_TABLE[x].  asm.js doesn't have a 
>>> single function table: it has a whole bunch of function tables, one for 
>>> each possible type signature.
>>>
>>> Thus, on the C++ side, we need a way to take a C++ signature (like 
>>> float(const void*, int&)) and turn that into a string ("fii") that we can 
>>> use to select one of the function tables on the embind side.  Embind would 
>>> also need the compiler to output a table from signature to the appropriate 
>>> function table.  The compiler-generated glue would look something like:
>>>
>>> var FUNCTION_TABLES = {
>>>   vi: FUNCTION_TABLE_vv,
>>>   fii: FUNCTION_TABLE_fii,
>>>   ...
>>> };
>>>
>>> I *think* that if we had those two things, we could make embind work 
>>> with asm.js.
>>>
>>> *waves hands a bit* :)
>>>
>>> Hope that's helpful,
>>> Chad
>>>
>>> On Tue, Mar 4, 2014 at 2:28 PM, Dean Elhard <[email protected]<javascript:>
>>> > wrote:
>>>
>>>> Since 1.13.0 is moving to the fastcomp compiler, which only supports 
>>>> asm.js, and embind doesn't work with asm.js, it seems that anyone relying 
>>>> on embind is being left behind.
>>>>
>>>> The issues I see on github regarding embind and asm.js are old and 
>>>> inactive, and indicate no plans to make embind work with asm.js any time 
>>>> soon.
>>>>
>>>> Any comment on the future of embind (if any), or what will replace it?
>>>>
>>>>
>>>>  -- 
>>>> 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]<javascript:>
>>>> .
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>
>>>
>>> -- 
>>> Chad Austin
>>> Technical Director, IMVU
>>> http://engineering.imvu.com <http://www.imvu.com/members/Chad/>
>>> http://chadaustin.me
>>>
>>>
>>>  -- 
>>> 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]<javascript:>
>>> .
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  -- 
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> -- 
> Chad Austin
> Technical Director, IMVU
> http://engineering.imvu.com <http://www.imvu.com/members/Chad/>
> http://chadaustin.me
>
>
>  

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