On Mon, Jul 6, 2020 at 12:46 AM Fernando Bitti Loureiro <
[email protected]> wrote:

> Hi Sam,
>
> This works for me now, but now that you say it, it makes me realize this
> solution may not be ideal for some of my future projects.
> So, let me learn from you and the community: is it possible to make the
> modules share just the filesystem and nothing else? Would you share how or
> point me in the right direction?
>
>
I believe this would be a fairly large change.   Currently non if JS code
generated by emscripten is designed to be shared between modules.


> Thanks!
>
> On Monday, 6 July 2020 02:40:54 UTC+2, Sam Clegg wrote:
>>
>> If you use SIDE_MODULEs then you are really creating just one big
>> program..  So the module will share more than just the filesystem, they
>> will also share memory, table, libc.  If that works for you then thats
>> great obviously!
>>
>> On Sat, Jul 4, 2020 at 10:43 AM Fernando Bitti Loureiro <
>> [email protected]> wrote:
>>
>>> Hey Camil,
>>>
>>> I finally managed to make this work. 2 totally independent WASM side
>>> modules, compiled from different projects, can access the same filesystem
>>> without using JS to copy data to and from them.
>>>
>>> It just uses regular Emscripten side modules. In the end, I didn't have
>>> to hack the FS or pass a module's FS to the other in order for them to
>>> share it. The way I see it, both modules just request an FS and Emscripten
>>> assures they use the same one.
>>>
>>> This is an embryonic version of the project using MEMFS:
>>> https://web-repaq.glitch.me/
>>>
>>> Regards,
>>>
>>> Fernando
>>>
>>> On Tuesday, 16 June 2020 21:33:54 UTC+2, Fernando Bitti Loureiro wrote:
>>>>
>>>> Hi Camil,
>>>>
>>>> I'm another Emscripten user trying to do the same. I don't know the
>>>> answer to your question but I just wanted you to know you're not the only
>>>> one looking for a solution.
>>>>
>>>> Fernando
>>>>
>>>> On Sunday, 14 June 2020 at 12:54:52 UTC+2 [email protected] wrote:
>>>>
>>>>> I found this discussion wanting to implement something similar. I now
>>>>> have something working which uses separate filesystems for each module
>>>>> (could not get them to use the same FS object / BrowserFS to sync them). 
>>>>> In
>>>>> each I mount an IDBFS, and I make sure to call syncfs at the appropriate
>>>>> places so that the contents are synced. This is far from ideal (may be too
>>>>> slow for some use cases; probably duplicates memory), but works for me 
>>>>> now.
>>>>>
>>>>> Still, is there any reason why it would not be possible to pass the FS
>>>>> of another module in the MODULARIZEd constructor for a new module (perhaps
>>>>> all that is needed is `var FS=FS||...` instead of `var FS=...`?)? If it
>>>>> were possible, that would be a much neater solution, but perhaps I'm
>>>>> missing a reason why this is not feasible.
>>>>>
>>>>> Camil
>>>>>
>>>>> On Thursday, 23 April 2015 23:24:35 UTC+2, Alon Zakai wrote:
>>>>>
>>>>>> I don't think the FS was designed for that purpose. But I'm not sure
>>>>>> if there is a reason stopping it from working that way. You would need to
>>>>>> somehow grab the FS object from one module and make it accessible to the
>>>>>> other, so they share one FS (probably need some new Emscripten options 
>>>>>> for
>>>>>> that). If you did that, things might work - at least I can't think of a
>>>>>> reason for them not to ;)
>>>>>>
>>>>>> Another option is to write glue code, as you said, to manually move
>>>>>> around data between two FSes.
>>>>>>
>>>>>> A third possible route is to use BrowserFS (
>>>>>> https://github.com/jvilk/BrowserFS ). It can plug into Emscripten
>>>>>> filesystems, and I'm not sure but I think might be able to handle 
>>>>>> multiple
>>>>>> external sources.
>>>>>>
>>>>>> - Alon
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Apr 23, 2015 at 1:48 AM, Łukasz Adamczak <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>> I'm looking to implement a web application which combines 2 Emscripten
>>>>>>> modules.
>>>>>>>
>>>>>>> Think an IDE with a text editor, an Assembler (module 1) and an
>>>>>>> Emulator (module 2).
>>>>>>> https://dl.dropboxusercontent.com/u/118061/neside/neside-flow.png
>>>>>>>
>>>>>>> The general flow I'm hoping to achieve:
>>>>>>>
>>>>>>> 1. Content of a <textarea> is written as a text file to the FS
>>>>>>> (manually written JS).
>>>>>>> 2. Emscripten module 1 ("Assembler"):
>>>>>>>   - reads the text file from the FS
>>>>>>>   - writes a bin file to the FS.
>>>>>>> 3. Emscripten module 2 ("Emulator"):
>>>>>>>   - reads the bin file from the FS and acts on it
>>>>>>>
>>>>>>> I have successfully implemented both modules in isolation.
>>>>>>> I can also use MODULARIZE=1 and EXPORT_NAME to include 2 modules in
>>>>>>> one page.
>>>>>>>
>>>>>>> However in this setup, I am unable to access the filesystem and -
>>>>>>> much less - share it across modules.
>>>>>>>
>>>>>>> I could use some help with the following:
>>>>>>>
>>>>>>> 1. How do I access "FS" when I use MODULARIZE=1? FS is not public
>>>>>>> and I can't #readFile or #writeFile.
>>>>>>> 2. Can the FS be shared across separate Emscripten modules? Or will
>>>>>>> I need to write some glue code to:
>>>>>>>   - take data out of Assembler's FS
>>>>>>>   - put the data into Emulator's FS
>>>>>>>
>>>>>>> Thanks!
>>>>>>> Łukasz
>>>>>>>
>>>>>> --
>>>>>>> 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].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/emscripten-discuss/7e1cc625-21d9-4838-850b-ef90ce518bcfo%40googlegroups.com
>>> <https://groups.google.com/d/msgid/emscripten-discuss/7e1cc625-21d9-4838-850b-ef90ce518bcfo%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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/01f4d0b2-94f6-4cf6-bd70-93826c879cf5o%40googlegroups.com
> <https://groups.google.com/d/msgid/emscripten-discuss/01f4d0b2-94f6-4cf6-bd70-93826c879cf5o%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAL_va28igBhZZ1%2B0vDoYZxxbP-pW4%2Bz78u_Lyf%3Do4g1e%2B3wvMQ%40mail.gmail.com.

Reply via email to