Thanks, I will try out the emterpreter option.

David

On Wednesday, March 18, 2015 at 4:37:50 PM UTC-7, Alon Zakai wrote:
>
> Regarding IndexedDB, you can use the emterpreter option to access it 
> synchronously, see
>
>
> http://kripken.github.io/emscripten-site/docs/api_reference/emscripten.h.html?highlight=emterpreter#indexeddb
> https://github.com/kripken/emscripten/wiki/Emterpreter
>
> - Alon
>
>
> On Tue, Mar 17, 2015 at 5:48 PM, <[email protected] <javascript:>> wrote:
>
>> I have been creating a javascript application using a library converted 
>> with Emscripten and was looking for good ways to reduce browser memory 
>> usage. One of the possibilities I have tried to create a filesystem device 
>> with buffer backend (to store file data) in order to avoid allocating a 
>> gigantic Emscripten heap. However, since my converted library uses ftell I 
>> ran into problems with the following code in Emscripten generated output 
>> for the function ftell:
>>
>>   function _ftell(stream) {
>>       // long ftell(FILE *stream);
>>       // 
>> http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html
>>       stream = FS.getStreamFromPtr(stream);
>>       if (!stream) {
>>         ___setErrNo(ERRNO_CODES.EBADF);
>>         return -1;
>>       }
>> *      if (FS.isChrdev(stream.node.mode)) {*
>> *        ___setErrNo(ERRNO_CODES.ESPIPE);*
>> *        return -1;*
>> *      } else {*
>>         return stream.position;
>> *      }*
>>     }
>>
>> These lines cause all ftell calls to my "device" to fail and thereby the 
>> entire process stops with errors. (and removing these lines allows my 
>> program to work correctly) This leaves me with three questions:
>>
>> 1. Is there a way to allow ftell for devices?
>> 2. Is there perhaps a better way to override filesystem calls than using 
>> devices in my use case?
>> 3. Are there any recommended ways to store fairly large amounts of data 
>> for Emscripten use without running out of browser memory? (and causing an 
>> error) I investigated using IndexedDB for this purpose, but it doesn't 
>> appear to work for me due to its asynchronous nature.
>>
>> Thanks in advance,
>>
>> David
>>
>> -- 
>>
>>
>

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