-
• #2
Dang, thats some good shit!
So excited to see this; I was just about to go on an Espruino f/w updating binge around my room too, so it's great timing on that front too. One thing though - did you mis-read your calendar? It's the 15th, not the 25th - Christmas isn't for another 10 days...
Timing is so perfect for the ESP32 setWatch fix (that issue kinda made the ESP32 an incomplete platform) - one of my top priorities tonight is/was to load something onto an ESP32 on my new prototyping breakout board and make sure I didn't botch anything so I can put them up for sale.
What was the issue with the spikes while changing pin state?
Add E.errorFlag event to allow JS to respond to internal errors - does this mean that we could, say, react to these internal errors by rebooting the Espruino with load()? If so, that's a great way to proof it against jsvar leaks and the like.
How does unsyncFiles work? If we're not syncing it to the SD card after each write, how and when does it decide to actually sync the file to the SD card?
Now, does anyone know where I can download a wetware update to add support for writing regex's? I've always found regex's very hard to write... ;-)
-
• #3
did you mis-read your calendar? It's the 15th, not the 25th
I know... I was tempting, but if I messed something up I didn't want to spend boxing day hunched over a laptop trying to fix it :)
What was the issue with the spikes while changing pin state?
If the pin was an input and hadn't been previously set - but then you wrote
1
to it then the pin would be set to an output (outputting 0) before it output1
. @allObjects found it. Most people wouldn't have noticed and it was easy to work around withpinMode
, but it's one less thing to trip people up :)E.errorFlag - does this mean that we could, say, react to these internal errors by rebooting the Espruino with load()?
Yes, absolutely! It'd definitely be useful for things like out of memory.
To be absolutely sure, the watchdog timer could be used as well, but it's another handy thing to be able to check.
How does unsyncFiles work? If we're not syncing it to the SD card after each write, how and when does it decide to actually sync the file to the SD card?
It syncs when you close the file, or you can also flip the flag off and write something, and that'll sync it as well. There's no difference to
fs.writeFile
andfs.appendFile
, it's just when you write to something opened withE.openFile
that it takes effect. -
• #4
@Gordon, amazing L_ E__ A____ P________ S!
...can we soon expect also the version number to leap to 2.0+? - A minor > 100 and all the major steps that Espruino made since the 50' I'm with it, 2.0 is more than justified. If you are worried that 2.0 will invalidate dwarf 1.0, it does not: 2.0 is still true to the version 1.0 paradigm shift of making IoT accessible as count to 3 while leaping ahead in front of everything else available with its introduction of event drivenness: Espruino *makes* IoT as easy as 1 2 3! ...
Espruino *is* IoT as easy as 1 2 3!
@DrAzzy, can sh.t ever be good?... I don't think so... but I guesss I understand what you want to say: good things should 'hit as hard as' - or even harder as - the real sh.t does when it hits the fan (of a jet engine... not just a house fan).
You can now overwrite Puck.js's memory protection with E.setFlags so you can write wherever you want
...expecially the ...wherever you want and send it to puck nirwana... final olympic hockey goal/score! ...Stanley Cup?
-
• #5
Big thanks, I'm only eager to use this new version which seems much faster. But on ESP8266, strangely, save() now erase 6 of the first free flash pages (only 1 on v1.94, 0 on v1.93), even when I send a short code. This leave available only 5 of them under 1mb, too few for my custom modules needs, still too big to be included with require and sent with the main code (not more than 10ko total). Aren't we supposed to be able to place code in these pages ?
I've just released Espruino 1v95, with a whole bunch of extra changes:
Regular Expressions
They're here - finally! On all official Espruino boards (and many others, if there's enough memory).
While it's not 100% full support, it's enough for the majority of things, with
String.indexOf
,String.split
,RegExp.exec
and cruciallyString.replace
- even with the ability to specify a function as the replacement.Fast File IO
E.setFlags({unsyncFiles:1}
which doesn't sync the file to the SD card after each write - it's much fasterOther Additions
Object.assign
NRF.setScan
automatically decodes service and manufacturer data packets nowNRF.findDevices
aggregates multiple advertising packets from the same device if they contain different information.E.errorFlag
event to allow JS to respond to internal errorsdigitalWrite/Read
will now call.read
on an object if it is passed in. This means you can now use port expanders with most Espruino libraries!E.getAddressOf
for super low-level work - you can get the actual address of the variable's data in RAM for things like DMA0x0590
)E.setFlags
so you can write wherever you wantE.HSBtoRGB
can now output as[R,G,B]
for neopixels.Improvements
Esc[J
VT100 code when cycling through command history (much faster REPL on low bandwidth connections)MEMORY_BUSY
messageBugfixes
net/http .listen
now return the server instance (like node.js)E.HSBtoRGB
to wraps 'hue' value properlydigitalWrite
E.setBootCode()
(without an empty string) now workssetWatch
now works correctly