Skip to content

Moddable 5.1.0

Latest
Compare
Choose a tag to compare
@mkellner mkellner released this 16 Oct 19:32

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 2
        • pico/pico_plus_2 for Pimoroni Pico Plus 2
        • pico/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
  • Documentation
  • 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 obsolete string;asii and string;utf8 formats
  • Examples
    • Add wss (secure WebSocket) example for ECMA-419
    • Added Audio Input and Audio Output examples for ECMA-419 (3rd edition)
  • 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)
  • 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)
  • 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)
  • 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)
  • 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() and toLocaleString() methods check meter to eliminate timeout (found by oss-fuzz)

Contact Us

If you have questions or suggestions about anything here, please reach out: