Skip to content

April 6, 2021

Compare
Choose a tag to compare
@phoddie phoddie released this 06 Apr 20:21
· 5223 commits to public since this release
  • XS
    • Error Stack now captured at time of creation rather than when used with throw to be more consistent with browser engines.
    • Marshalling objects between virtual machines now supports most built-ins including instances of TypedArray, RegExp, Map, Set, Proxy, DataView and Date. Objects with cyclic references, references to objects in ROM, and private fields may also be marshalled between virtual machines cloned from the same image. Details in new XS Marshalling document.
    • WeakMap no longer corrupted during garbage collection. #592 #608 (report by @dckc at Agoric)
    • Fix native stack overflows in parser. #586 and #587 (reported by @rain6851)
    • Fix invalid access on exception when reading uninitialized variable. #585 (reported by @rain6851)
    • Fix string buffer overflow in fxIDToString. #583 (reported by @rain6851)
    • Detect chunk math size overflow. #580 #581 #582 #587 (reported by @dckc and @rain6851)
    • Gathering of a function's rest arguments to an Array no longer invalidates the byte-code pointer (if garbage collector runs at exactly the wrong moment). #604 (reported and isolated by @dckc at Agoric)
    • Add mxNoChunks debug build option to use malloc to allocate chunks instead of the XS internal chunk allocator. This gives more visibility to Address Sanitizer into memory accesses by XS.
    • Issues with RegExp flags and invalid JSON characters detected by Address Sanitizer fixed
    • xsl (linker) only strips runProgramEnvironment when eval is stripped. Fixes REPL example.
  • Implementation of ECMAScript® Embedded Systems API Specification (Ecma TC53)
    • Implemented SPI controller on ESP8266 and ESP32. Includes ILI9341 display and XPT2046 touch examples.
    • GPIO 16 now works with Digital and DigitalBank on ESP8266
  • Graphics and UI
    • Animated GIF decoding is now supported in Commodetto. The implementation builds on the GIF Animator core by Larry Bank. See the example and documentation for details. Usable now with more improvements planned.
    • Piu Texture constructor accepts color and alpha bitmap arguments to allow bitmaps created outside Piu as textures
    • Color cell encoded images no longer crash when clipped on the left edge
  • Devices
    • Backlight on Moddable Two can be configured to be initially off to eliminate flicker at start-up
    • TTGO LilyGo ST7789 1.14" LED Screen display support. #576, #601 (requested by @louisvangeldrop)
    • Microphone support for M5StackCore2 and M5StickC (contributed by @stc1988)
    • Espressif hosts use c_read* macros in place of direct espRead* function calls allowing direct reads (faster) on ESP32.
    • Some large chunk allocations on embedded targets now succeed because chunk allocator includes free space in current chunk heap when determining if there is enough free space
  • Examples
    • Remove stray character from CLI. #597 (reported by @dbhaig)
    • Instrumentation examples now explicitly include the JavaScript instrumentation module (which is not always built-in). #598 (reported by @dbhaig)
    • MQTTConnection module now supports changing the client ID after instantiation because MAC address may not be available at instantiation. (reported by @Frida854)
  • Tools
    • When building tools on Linux, explicitly include pthread library
    • mcconfig merges release SDKCONFIG fragment on ESP32 build rather than replacing
  • Modules
    • Add Modules module to synchronously check for presence of modules, synchronously load modules, and enumerate installed modules in host and mods. Replaces LoadMod used in IoT Development for ESP32 and ESP8266 with JavaScript examples.
    • Add manifest for microseconds module
    • GCM mode in TLS reduces peak memory by re-using buffers like CDC mode
  • Documentation
    • Getting Started documentation updates based on user feedback, including how to create shell start-up file