Page 1 of 1

High-level language for ESP32 just got faster

Posted: Thu Jun 30, 2022 6:14 am
by kasperl
Over the last few months, we have worked hard on making Jaguar -- the Toit language based development environment for the ESP32 -- faster and better. Among other things, we have added support for 1-Wire, RMT, Soft AP, memory isolated drivers, and light-weight sampling-based profiling -- and we have improved the basic functionality for iterating really fast on your ESP32 code through live reloading. Everything is open source and built by a team of engineers that built the original V8 JavaScript engine for Google Chrome.

It takes less than 5 minutes to get started and then you can develop, update, and restart your code in less than two seconds via WiFi.

https://github.com/toitlang/jaguar
https://tinyurl.com/54ztsf2t

With the release of Jaguar v1.2.6 (today), we have improved core performance by 35% and we have added a much better garbage collector that leaves more memory available to your applications. We hope you'll give it a spin :)

--------------------

With Jaguar v1.2.6 you can now do your firmware updates over WiFi using 'jag firmware update':

Code: Select all

[.....]$ jag firmware update -d agitated-physics
Updating firmware on 'agitated-physics' to Toit SDK v2.0.0-alpha.10

   100%  1174k  ⠠  [🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱]
 
and 'jag monitor' automatically decodes stack traces and profiling information:

Code: Select all

[.....]$ jag monitor
Starting serial monitor of port '/dev/ttyUSB1' ...
[toit] INFO: starting <v2.0.0-alpha.10>
[jaguar] INFO: running Jaguar device 'agitated-physics' (id: '3452b85a-3f30-4900-804a-15c724eea9ba') on 'http://192.168.86.128:9000'
[jaguar] INFO: starting program 748381dd-849b-5cae-b0f5-f324c45fd48b

******************************************************************************
Decoded by `jag monitor` <2.0.0-alpha.10>
******************************************************************************
Profile of Richards (874 ticks, cutoff 1.0%):
 25.2% Scheduler.schedule                                 richards.toit:173:3
 19.0% TaskControlBlock.run                               richards.toit:284:3
  8.7% TaskControlBlock.check_priority_add                richards.toit:297:3
  6.9% TaskControlBlock.is_held_or_suspended              richards.toit:274:3
  6.9% Scheduler.queue                                    richards.toit:216:3
  6.3% WorkerTask.run                                     richards.toit:371:3
  5.5% DeviceTask.run                                     richards.toit:347:3
  4.3% HandlerTask.run                                    richards.toit:393:3
  3.2% Scheduler.release                                  richards.toit:204:3
  2.9% Scheduler.suspend_current                          richards.toit:196:3
  2.6% Packet.add_to                                      richards.toit:442:3
  2.1% Packet.link=                                       richards.toit:436:3
  1.8% IdleTask.run                                       richards.toit:323:3
  1.5% TaskControlBlock.mark_as_not_held                  richards.toit:268:3
******************************************************************************

Richards - time per iteration: 920.43 ms (total 9.204263s)
Richards - allocated per iteration: 0.886 kb