October 2024 release notes
Moddable SDK 5.1 contains improvements made between September 14 and October 11, 2024
Highlights of this release include:
- Raspberry Pi Pico - support for new RP2350 and version 2.0 of the Pico SDK
- ECMA-419 Audio Input and Audio Output for upcoming 3rd edition
- Improved error messages throughout XS for better JavaScript debugging
Moddable issued a press release about Moddable Six to share the news of our latest product with the world. Moddable Six is our most advanced display for Embedded JavaScript with unprecedented performance, quality, and ease-of-use. Read the news!
Raspberry Pi Pico developers need to update their pico-sdk
, pico-examples
, pico-extras
and pico-playground
repositories to version 2.0 (tag: sdk-2.0.0
). That's easily done by reinstalling those repositories following the directions in our Getting Started with Raspberry Pi Pico document.
Work on the 3rd Edition of ECMA-419, the standard for Embedded JavaScript, is making rapid progress. We are adding Moddable's implementations of new modules to the Moddable SDK as they are ready. We are also providing unit tests and/or example apps. These should be considered experimental until ECMA-419 3rd Edition is officially standardized as changes may still be made. They are provided here for member of the committee and the community to try them out and provide feedback prior to standardization.
The Moddable SDK now supports directly including ESP-IDF native components from the ESP Component Registry. Check out our blog post Using the ESP Component Registry with the Moddable SDK to learn more.
Note: ESP-IDF v5.3.1 has been released. Our initial testing shows that it is compatible with Moddable SDK v5.1. We are not requiring an update to ESP-IDF v5.3.1 at this time, as it does not appear to contain any critical changes and there have been quite a few ESP-IDF updates lately.
Release Details
- Devices
- Raspberry Pi Pico
- Updated to Pico SDK 2.0
- Support for new RP2350 (ARM cores only)
- New RP2350 device build targets
pico/pico_2
for Raspberry Pi Pico 2pico/pico_plus_2
for Pimoroni Pico Plus 2pico/sparkfun_rp2350
for Sparkfun Pro Micro RP2350
- Use
sparkfun-pico
library for PSRAM on Sparkfun Pro Micro RP2350 - test262 and testmc test tools now run on Pico builds
- Moddable Six builds no longer reserves GPIO 17 for read/write in MIPI display driver (it is not connected to the MCU)
- Update
DEBUGGER_SPEED
for M5Stack Core2 based on field experience (Contributed by @stc1988) #1359
- Raspberry Pi Pico
- Documentation
- Add explanation of patching built-ins to preload documentation (Contributed by @cmidgley)
- ECMA-419
- Audio input implementations for ESP32, macOS, Linux, and Windows added (3rd edition)
- Audio output implementations for ESP32, macOS, Linux, and Windows added (3rd edition)
- Listener socket conformance improvements
- lwip socket memory corruption fix when no callbacks
- Listener socket instances provide
port
property (useful when bound to dynamic port) - Use
string
in place of obsoletestring;asii
andstring;utf8
formats
- Examples
- Add
wss
(secure WebSocket) example for ECMA-419 - Added Audio Input and Audio Output examples for ECMA-419 (3rd edition)
- Add
- Modules
- lwip socket implementation
- Validate host data (fixes use-after-free) #1410
- Don't call XS in C API from another thread (could happen on dispose)
- lwip socket implementation
- Testing
- Add
$NETWORK.resolve()
helper - ECMA-419 tests
- Listener socket unit tests
- No callback socket tests
- Audio output tests (3rd Edition)
- Storage (key-value pair) tests (3rd Edition)
- Add
- Tools
- New manifest
dependency
feature for ESP32- Supports specifying additional include paths
- Doesn't emit empty dependencies #1408
- Update ADPCM-XQ audio compressor to version 0.5 (faster, higher quality)
- ESP-IDF instrumented builds use
CONFIG_ESP_CONSOLE_UART_BAUDRATE
for the serial baud rate (contributed by @cmidgley)
- New manifest
- Typings
- Add 419 Listener
port
- Add typings union for Socket (contributed by @cmidgley)
- More complete
Worker
typings - including full constructor options object - HTTP
Headers
object uses string primitive for map (Contributed by @magenetaan)
- Add 419 Listener
- XS
- Overhaul of error messages
- Replaces "is no" with "is not a"
- Moves name of function where error occurs to the end (
in function
) - Provides full path of function where error occurs when possible
- Rephrased some error messages to eliminate ambiguities
- Eliminate some redundancies
- Fixes
Array.from()
crash (found by Fuzzilli)- TypedArray [[Set]] with receiver. (Reported by @gibson042)
Array
join()
andtoLocaleString()
methods check meter to eliminate timeout (found by oss-fuzz)
- Overhaul of error messages
Contact Us
If you have questions or suggestions about anything here, please reach out:
- Start a new Discussion on our GitHub repository
- Drop by our Gitter to chat
- Contact us on Twitter / X at @moddabletech