AtomVM Daily: Weekly Recap - Performance Optimization & Hardware Expansion
AtomVM focused heavily on performance improvements this week, with JIT compilation arriving for ESP32 devices and multiple optimization passes across the codebase. The project also expanded hardware connectivity options with new USB CDC drivers and enhanced ESP32 peripheral support.
Duration: PT2M45S
Transcript
Welcome to AtomVM Daily for the week of May 27th through June 3rd, 2026.
Twelve pull request activity items and zero additional commits this week, marking a significant push toward performance optimization and broader hardware support.
The standout development is JIT compilation support landing for ESP32's Xtensa architecture in PR 2317, bringing just-in-time compilation to one of AtomVM's most popular embedded targets. This follows multiple JIT optimization passes, including test-zero optimizations across ARM, RISC-V, and x86 architectures in PR 2320, and compile-time performance improvements that replace linear list lookups with logarithmic map operations in the open PR 2322.
Hardware connectivity saw major expansion with USB CDC port drivers arriving for ESP32, Raspberry Pi Pico, and STM32 platforms in PR 2301. This continues earlier work and provides standardized USB communication across AtomVM's primary embedded targets. ESP32 specifically gained more flexible SD card support through configurable pins and bus width options in PR 2318, addressing compatibility issues with newer board families that route SD card interfaces through the GPIO matrix.
The reliability theme runs strong this week, with PR 2325 fixing critical memory allocation issues in binary replace operations, zlib compression, and BSD socket receive code. These under-allocation bugs triggered data corruption, particularly with new garbage collection code. Separately, ESP32's I2C implementation received comprehensive testing and fixes in PR 2302, addressing resource cleanup, half-closed state handling, and command handle leaks.
Language feature development continued with map comprehensions landing in PR 2321, expanding Erlang's functional programming capabilities within AtomVM. The open PR 2323 introduces persistent term support, implementing a VM-level table for shared data that copies once on write and returns without copying on read, though garbage collection for erased terms remains future work.
Infrastructure maintenance included partition layout fixes for ESP32 testing and macOS CI timeout adjustments, keeping the development pipeline stable as code complexity increases.
Next week, watch for the persistent term implementation to mature and potential follow-up work on JIT compile-time optimizations as they undergo review.
This has been your AtomVM Daily weekly recap.