I've been developing a project off the Espruino and testing with jest, and now it's time to move it onto the Espruino where it should all just work (haha).
The code's being moved in chunks and tested as it goes along. However, after adding the most recent chunk and uploading to RAM I get :
>Uncaught SyntaxError: Got EOF expected ':'
at line 1 col 13365
New interpreter error: LOW_MEMORY,MEMORY
at first I thought this was some bug with the minification (the chip has 64k RAM, so it shouldn't (on the face of it) be struggling with 14k of program), but with that turned off I get:
>Uncaught SyntaxError: Got EOF expected '}'
at line 752 col 32
tmp = false;//STM.s
New interpreter error: MEMORY
So it's the same error, but at a different place in code.
The code as it stands is 14131 bytes when minified, and 33480 bytes as-is.
The console doesn't give any obvious clues, is there some tool available to debug the issue? Or is it that I'm actually out of memory? The code's only ~1000 lines at the moment, but there's another 500 or so to go.
Not all of 64KB is usable for variables, more like 40KB, see output of process.memory() (each variable is 13 bytes for MDBT42Q). Uploading to ram is big waste of ram/variables, better upload to flash in this case. You can also enable pretokenization in WebIDE that should make it even smaller.
I'd definitely recommend uploading to 'Flash' rather than RAM - that may help you out. As mentioned by @fanoush you only have 40k or so of RAM available (and it doesn't map 1:1 with code size) but writing code to flash allows Espruino to execute code right out of Flash so it saves a bunch of memory.
Some more info is at https://www.espruino.com/Saving
Thank you both. Turns out it was definitely a size issue. Working fine from Flash now.
Don't worry about formatting, just type in the text and we'll take care of making sense of it. We will auto-convert links, and if you put asterisks around words we will make them bold.
For a full reference visit the Markdown syntax.
© Espruino, powered by microcosm.
Report a problem