I am not sure how limited it is but there are many situation that we just 
need a value to pass object from one function to another immediately in the 
same flow

By the way, which the handle would be returned as EM_ASM_INT or EM_ASM_PTR ?

On Friday, 24 March 2023 at 01:47:20 UTC+7 s...@google.com wrote:

> On Thu, Mar 23, 2023 at 10:12 AM Thaina Yu <thai...@gmail.com> wrote:
>
>> I don't actually know which things unity would use to hold the value of 
>> externref, just guessing it would be IntPtr. But by anything it require 
>> that emscripten can officially define externref first anyway
>>
>
> The problem is that externref can't live in memory, so it can't live 
> inside a struct or class or array or any C#/C++/C data type.  So it's not 
> going to be very usable IIUC.   We already have `EM_VAL` in emscripten 
> which is a way to refer to a JS object via an integer handle.   I don't 
> think we can build anything better than EM_VAL any time soon, at least 
> nothing that can work well with C/C++/C#, but perhaps I'm missing something?
>
>   
>
>
>> On Friday, 24 March 2023 at 00:03:02 UTC+7 s...@google.com wrote:
>>
>>> On Thu, Mar 23, 2023 at 9:51 AM Thaina Yu <thai...@gmail.com> wrote:
>>>
>>>> I am actually using emscripten from unity and I mainly use C# code from 
>>>> unity side. But there are tons of 3rd party library and SDK that written 
>>>> with assumption that we will only use JavaScript. It then need us to 
>>>> construct javascript object in javascript and pass javascript object 
>>>> reference all over the places. For example, the google's firebase SDK that 
>>>> we need to construct it special object type to work with its complex 
>>>> services
>>>>
>>>> It then become very frustrating to wrap everything in an API with 
>>>> mergeInto library that kept growing for everythings related to js object
>>>>
>>>> With just the ability to pass externref into C# as IntPtr or int64 and 
>>>> so C# can pass it to another js API after it was done everything in C# is 
>>>> just what we really need, everything would come together as a flow of 
>>>> reference. The chain of bottleneck is that unity rely on emscripten to 
>>>> fully support externref first then it could start support it in some 
>>>> future. So the sluggish are stacking up
>>>>
>>>
>>> But `IntPtr` and `int64` are fundamentally not externref, right?   Or 
>>> are you imagining those being indexes into a table of externref perhaps?  
>>> That would work, but then the tricky part becoming managing that table.  
>>> This is mind what embind does when it refers to JS object from native code 
>>> I believe.
>>>
>>>
>>>> On Thursday, 23 March 2023 at 23:34:43 UTC+7 s...@google.com wrote:
>>>>
>>>>> On Thu, Mar 23, 2023 at 9:20 AM Thaina Yu <thai...@gmail.com> wrote:
>>>>>
>>>>>> Thank you very much. Are there any public discussion or roadmap to 
>>>>>> add EM_ASM_REF into emscripten?
>>>>>>
>>>>>
>>>>> You are the first person that I know of to suggest it.
>>>>>
>>>>> Be aware that using externref directly in C/C++ is very limited, even 
>>>>> after the recent changes.  For example you can't store them in structs or 
>>>>> class or store them to memory.  All you can really do with them is pass 
>>>>> them around and (maybe) put them in tables.  So in practice I'm not sure 
>>>>> how useful this stuff is yet, but I could be wrong?
>>>>>
>>>>>
>>>>>  
>>>>>
>>>>>>
>>>>>> On Thursday, 23 March 2023 at 23:17:52 UTC+7 s...@google.com wrote:
>>>>>>
>>>>>>> On Thu, Mar 23, 2023 at 6:52 AM Thaina Yu <thai...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Do we have anyway to write hand-written assembly code along with 
>>>>>>>> emscripten? And is it possible to return that externref from wasm code 
>>>>>>>> into 
>>>>>>>> emscripten world?
>>>>>>>
>>>>>>>
>>>>>>> Here is the example how to use externref in assembly:  
>>>>>>> https://github.com/emscripten-core/emscripten/blob/main/test/core/test_externref.s
>>>>>>>
>>>>>>> Until recently there was no way to communicate those references 
>>>>>>> directly to C++ but it maybe possible now that upstream clan support 
>>>>>>> has 
>>>>>>> landed.
>>>>>>>
>>>>>>> There is no current support for externref in EM_ASM.   We could 
>>>>>>> potentially add EM_ASM_REF which returns a ref to C/C++ but until 
>>>>>>> recently 
>>>>>>> that would have been impossible.
>>>>>>>
>>>>>>>
>>>>>>>> I am actually using unity which use emscripten to build webgl. 
>>>>>>>> Would it possible to use EM_ASM_PTR to write wasm code to return as 
>>>>>>>> pointer 
>>>>>>>> (externref ? (an so I might return pointer as IntPtr in C#)) ?
>>>>>>>>
>>>>>>>> On Friday, 17 March 2023 at 22:35:55 UTC+7 tli...@google.com wrote:
>>>>>>>>
>>>>>>>>> Yes, but note that the usage in that commit is only in 
>>>>>>>>> hand-written assembly code, not in C/C++.
>>>>>>>>>
>>>>>>>>> More recently, support for externref landed upstream in clang: 
>>>>>>>>> https://github.com/llvm/llvm-project/blob/main/clang/test/CodeGen/WebAssembly/wasm-externref.c.
>>>>>>>>>  
>>>>>>>>> AFAIK we haven't yet experimented with it in Emscripten, but in 
>>>>>>>>> principle 
>>>>>>>>> it should work.
>>>>>>>>>
>>>>>>>>> On Fri, Mar 17, 2023 at 10:23 AM Thaina Yu <thai...@gmail.com> 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Is this mean externref already usable?
>>>>>>>>>>
>>>>>>>>>> https://github.com/emscripten-core/emscripten/pull/15913
>>>>>>>>>>
>>>>>>>>>> On Monday, 10 October 2022 at 22:56:34 UTC+7 karl.we...@gmail.com 
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Does anyone have news on this topic?
>>>>>>>>>>>
>>>>>>>>>>> tli...@google.com schrieb am Montag, 25. Januar 2021 um 
>>>>>>>>>>> 19:51:36 UTC+1:
>>>>>>>>>>>
>>>>>>>>>>>> I don't think so, but you can keep an eye on commits from 
>>>>>>>>>>>> "wingo" and "pmatos" on reviews.llvm.org to keep track of the 
>>>>>>>>>>>> progress.
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Jan 25, 2021 at 12:55 AM ben layet <lay...@gmail.com> 
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>> Is there a feature ticket in a publicly visible ticket tracker 
>>>>>>>>>>>>> that I can keep an eye on?
>>>>>>>>>>>>> cheers
>>>>>>>>>>>>> ben
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Saturday, 23 January 2021 at 17:54:25 UTC tli...@google.com 
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Not yet, but there are some folks working on this. Perhaps it 
>>>>>>>>>>>>>> will be ready to use in a few months? It’s hard to say for sure.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Sat, Jan 23, 2021 at 03:49 ben layet <lay...@gmail.com> 
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Does emscripten support externref reference types for 
>>>>>>>>>>>>>>> holding opaque handles to JS objects in C++? If not, any idea 
>>>>>>>>>>>>>>> when?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>>>> 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-disc...@googlegroups.com.
>>>>>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/7f6178fa-bd05-4f65-aa7c-9e5a405bf851n%40googlegroups.com
>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/7f6178fa-bd05-4f65-aa7c-9e5a405bf851n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>>>> .
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>> 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-disc...@googlegroups.com.
>>>>>>>>>>>>>
>>>>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/68c9b121-f12f-44fa-a91c-2a8b73d2f456n%40googlegroups.com
>>>>>>>>>>>>>  
>>>>>>>>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/68c9b121-f12f-44fa-a91c-2a8b73d2f456n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>>>>> .
>>>>>>>>>>>>>
>>>>>>>>>>>> -- 
>>>>>>>>>> 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-disc...@googlegroups.com.
>>>>>>>>>>
>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/57b1491a-7025-4967-a66e-ebcbf10f5e2bn%40googlegroups.com
>>>>>>>>>>  
>>>>>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/57b1491a-7025-4967-a66e-ebcbf10f5e2bn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>> 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-disc...@googlegroups.com.
>>>>>>>>
>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/ed80516b-e1ac-4ba1-a535-acd1f632a2f5n%40googlegroups.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/ed80516b-e1ac-4ba1-a535-acd1f632a2f5n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>>> 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-disc...@googlegroups.com.
>>>>>>
>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/e4853c85-e981-4fa4-a6d8-f64a7ad5c048n%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/e4853c85-e981-4fa4-a6d8-f64a7ad5c048n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>>> 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-disc...@googlegroups.com.
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/emscripten-discuss/1018024e-ab04-46c1-bb22-f73183601976n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/emscripten-discuss/1018024e-ab04-46c1-bb22-f73183601976n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> 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-disc...@googlegroups.com.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/emscripten-discuss/8cb8c47e-fc87-4429-8dcd-1057c6f090f6n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/emscripten-discuss/8cb8c47e-fc87-4429-8dcd-1057c6f090f6n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/82954f49-c753-4c67-8de7-e5524f1e7f0en%40googlegroups.com.

Reply via email to