-
• #2
I should add that JIT also lets you do some really neat stuff. You can construct your own function in code, then
eval
it to JIT compile it to fast, native code:var data = new Uint8Array(1000); for (var i=0;i<data.length;i++) data[i]=i; var jit_me = "(function(d) { 'jit';"; for (var i=0;i<8;i++) jit_me += `digitalWrite(LED,d&${1<<i});` jit_me+="})"; var jitFn = eval(jit_me); data.forEach(jitFn);
-
• #3
Thanks for all these great improvements! Looking forward to trying them out.
-
• #4
Thank you for your work! And also thanks to the community for participating :)
-
• #5
As always, there is an impressive mass of work done in order to let the Espruino users have a much better experience with every new release!
Thank you so much Gordon (as well as the community, but everyone knows that Gordon spends 28 hours per day on making Espruino even better everyday)
I have been using Espruino since the first kickstarter and I must say that it has changed my life as a maker, but also as an electronic engineer. Espruino has given us the opportunity to automate a lot of things, provide BLE connectivity where we would have struggled otherwise
A huge thank you Gordon!
-
• #6
Thanks! I'm glad you're enjoying it!
While I'm working full-time on Espruino, often I end up stuck doing a bunch of stuff that's not very visible and also not much fun for me. It's nice to have been able to spend the last few weeks doing some stuff that makes a real difference to everyone :)
-
• #7
Nice~
Great job!
Thanks.. -
• #8
This is amazing. I don't get nearly enough time to play with my espruino devices but I continue to be excited by it. Thanks!
-
• #9
Good job. My Bangle js 2 is great.
I'm pleased to announce Espruino 2v16
This one adds some really decent performance improvements:
Interpreter speed improvements
After some careful analysis of the assembly, I managed to make a few tweaks to the interpreter. It's now around 12% faster, and smaller too.
A simple 'mandelbrot' test that took 6.5s to execute on 2v15 now takes 5.8s on 2v16
Bangle.js
Fixes/Improvements
Performance
Bangle.setUI({remove:...})
- Clocks/Launchers like the defaults that define this and implement it properly can now 'fast switch' to the launcher and back, which makes the experience of using a Bangle much snappier!JIT interpreter improved and added to MDBT42Q/Pixl.js/Puck.js/Bangle.js 1 & 2
You can now tag functions with
"jit"
and they will be jit-compiled on the device. There's a relatively small subset of the language supported so it can't be used for everything, but it can really make a difference in some situations, especially if you just need to toggle some IO or munch through some data:It's still early days so your mileage may vary, but it's another useful tool if you just need to output data quick or do some calculations.
Other changes
() => {...}
now use one variable less than beforeE.HSBtoRGB(h,s,b,16)
to return a 16 bit value suitable for Bangle.jsPuck.js now has a 'minimal' build with more memory dedicated to Flash storage - This strips out the more niche features (like ESP8266 Wifi support) and allows you to use the storage freed for your data - great for data logging. This was released silently in 2v14, but it deserves a mention here!
... and there's more! Check out http://www.espruino.com/ChangeLog for more info!