Skip to content

October 1, 2022

Compare
Choose a tag to compare
@mkellner mkellner released this 11 Oct 01:11
· 3397 commits to public since this release

This release contains changes to the Moddable SDK made between September 1, 2022 and October 1, 2022

Highlights of this release include:

  • Raspberry Pi Pico W support!
  • HTML standard URL module
  • XS virtual machines on ESP32 can now be over twice as large
  • Preloading of regular expressions
  • New tests for BLE server and audio output

Note: The original simulator in the Moddable SDK, screentest, will be removed from the Moddable SDK in October. The default simulator has been mcsim for several months. If you haven't already transitioned to mcsim, now is the time.

If you have questions or suggestions about anything here, drop by our Gitter to chat about it, start a new Discussion on our GitHub repository, or contact us on Twitter at @moddabletech.

  • XS
    • Regular Expressions can now be preloaded! This allows regular expressions to be used in more projects by reducing their RAM footprint and moving their initialization from runtime to build-time. Read more about the tiny, but full-featured, regular expression engine in XS, in our blog.
    • The XS memory allocator for microcontrollers has been enhanced to support discontiguous allocations. This allows a single virtual machine on ESP32 to allocate unlimited internal ESP32 memory, increasing the maximum VM size to nearly 300 KB from about 128 KB for devices with no PSRAM. Details are in the manifest documentation.
    • Fix mistake in operation order in WeakRef.prototype.deref
    • Fixes to snapshot generation to eliminate divergences
    • Fixes for several obscure crashes found with Fuzzilli fuzz testing
  • Ecma-419
    • Initial support for ESP32-C3: Digital, DigitalBank, I²C, SMBus, Serial
    • Initial support for Raspberry Pi Pico and Raspberry Pi Pico W – Digital, DigitalBank
    • TCP Socket Listener for Linux
    • UDP socket for lwip doesn't require onReadable callback
    • UDP socket on macOS and Linux implement port property
    • HTTP server updated to allow detach to be called from onDone callback to support WebSocket server exploration
    • WebSocketClient and WebSocket constructors support attaching to existing socket
    • Sensor driver for MPU6886 IMU
  • Modules
    • MCU-optimized implementation of HTML standard URL class together with tests. The implementation fully conforms to the standard with two exceptions: Punycode and
    • IDNA support are unimplemented. These are used primarily for the display and safe handling of user-entered URLs in browsers, which are not generally a concern on embedded systems. With some effort (and increase in code size), the implementation could support both.
    • modTimerRemove on Linux doesn't crash on NULL timer
    • Add manifest.json for AudioOut module for consistency and to simplify builds
    • AudioOut fixes
      • Sample accurate mixing
      • Accurate tone generator frequency
      • Allow multiple compressed formats on a single channel
    • Fix crash on close in NimBLE BLE client if connection never completed
    • Add manifest.json for CRC module for consistency and to simplify builds #938
    • structuredClone fix to reject host objects
  • Devices
    • Raspberry Pi Pico W support added – Wi-Fi works
    • Analog pin support for ESP32-C3
    • I²C build fix for ESP32-C3 to account for fewer I²C ports compared to other ESP32 models
    • Keeping up with ESP-IDF audio changes
    • PDM audio output option for ESP32
  • Tests
    • Add BLE server module tests
    • BLE test client (to support server tests)
    • Complete URL module tests
    • Add audio output tests for mixer and playback