Moddable SDK 4.3.4
This release contains improvements to the Moddable SDK made between November 6, 2023 and November 30, 2023.
Highlights of this release include:
- New animated Piu round-balls example for circular displays
- New circular display simulator (WaveShare Pico RP2040)
- Support for M5Dial and M5Stamp S3 devices
- LittleFS now available on Raspberry Pi Pico
Release Details
- Devices
- ESP32 Family
- Add support for M5Dial device (contributed by @stc1988)
- Add support for M5Stamp S3 device (contributed by @stc1988)
- Watchdog timer working again on ESP32 Family devices. Was temporarily broken by upgrade to ESP-IDF 5. (Contributed by @tve)
- Raspberry Pi Pico
- LittleFS is now available on Raspberry Pi Pico (requested by @ArashMotamedi, implemented by @mkellner)
- nRF52
- Latest nRF52 bootloader binary with option to update firmware using BLE
- ESP32 Family
- Modules
- ECMA-419
- ECMA-419 Serial implementations all default the format to
"buffer"
. This was previously"number"
on some platforms. Tracks an update to ECMA-419. EcmaTC53/spec#41 (Reported by @HipsterBrown). Projects that rely on the default format being"number"
need to be updated. - ECMA-419 HTTP Client consistently updates writable count to fix edge case write failures with TLS. (reported by @sburel)
- ECMA-419 GT911 touch driver implements
get configuration
to allow Piu to use its interrupt - MQTT.js module implementation now uses URL module
- ECMA-419 WebSocket module implementation now uses URL module
- ESP32 family devices running a debug build now reserve the Serial transmit and receive pins used for debugging. If a script attempts to use these pins, it generates an exception. Inspired by report #1226 by @ralphwetzel.
- ECMA-419 Serial implementations all default the format to
- ElevenLabs text-to-speech supports additional parameters (contributed by @stc1988)
- ECMA-419
- XS
- Fix
typeof
operator for host (native) functions to return"function"
- Module loader now only calls resolve hook once for each unique module specifier in a Compartment
- Module loader wasn't always decrementing loaded module count, leading to preposterous loaded module count
- Fix crash in XS debugging support when launching a second time (very rare).
- Fix
- Examples
- New Piu round-balls example for circular displays -- balls bounce of the edges of a circle
- Fix capitalization of GIF and QRCode paths in Moddable Four First run app to build on case-sensitive file systems
- httpserverputfile example now uses
config.file.root
for portability. (Reported by @kallistisoft) #1246 - Giphy app only opens
Flash
module instance once. This allows it to work on ESP-IDF 5 which no longer supports memory mapping the same region multiple times. (reported by @stc1988) #1258.
- Instrumentation
- Fix instrumentation memory leak when root VM allocated more than once
- Instrument additional cases of floating point math in add, subtract, and multiply
- Tools
mcrun
supports-t build
option to build mod without deploying or running- New "WaveShare Pico RP2040" device simulator provides round screen (for use with piu/round-balls example)
- ESP32 makefile on macOS & Linux supports experimental
-t buildArchive
to build the archive with Moddable SDK objects but not build and link the ESP-IDF host (for specialized scenarios like building the Moddable SDK into an ESP-IDF application) - XS Linker fixes #1209 again ("0" and "@" confusion). This original fix was broken when fixing #1232. Both #1209 and #1232 are now fixed. Thanks to @linfan68 for re-reporting.
- Tests
- Add warning if Resource
slice
test on fails on Windows because Moddable SDK was checked out with Windows line endings instead of Unix line endings
- Add warning if Resource
- Documentation
- XS in C documentation updated with high-level introduction to Host Object, Host Data, and Host Chunk. (contributed by @tve based on text from @phoddie)
- Repository root readme notes that XS now supports ECMAScript 2023