v0.6.0-alpha.2
Pre-release
Pre-release
v0.6.0-alpha.2 release.
Please, read the getting started guide for flashing instructions.
A number of Linux artifacts has not been published with this release, since they require a very specific Mbed-TLS version.
CHANGELOG
Fixed
- Fixed a bug where guards would raise exceptions instead of just being false
- Fixed support for big endian CPUs (such as some MIPS CPUs).
- Fixed STM32 not aborting when
AVM_ABORT()
is used - Fixed a bug that would leave the STM32 trapped in a loop on hard faults, rather than aborting
- Fixed a bug that would make the VM to loop and failing to process selected fds on Linux
- Fixed classes of exceptions in estdlib.
- Fixed STM32 code that was hard coded to the default target device, now configured based on the
cmake -DDEVICE=
parameter - Fixed hard fault on STM32 durung malloc on boards with more than one bank of sram
- Fixed invalid src_clk error on ESP-IDF >= 5.0
- Fixed changed default to
AVM_USE_32BIT_FLOAT=on
for STM32 platform to enable use of single precision hardware FPU on F4/F7 devices. - Fixed a bug where emscripten
register_*_callback/1
functions would use x[1] as second argument - Fixed precision of integers used with timers which could yield to halts and wait times smaller than expected
- Add support for ESP32-C6
Changed
- Crypto functions on generic_unix platform now rely on MbedTLS instead of OpenSSL
- Platform function providing time used by timers was changed from
sys_monotonic_millis
tosys_monotonic_time_u64
,sys_monotonic_time_u64_to_ms
andsys_monotonic_time_ms_to_u64
. - Implement
atomvm:random/0
andatomvm:rand_bytes/1
on top ofcrypto:strong_rand_bytes/1
on
generic_unix, ESP32 and RP2040 platforms. - Performance improvements
Added
- Added support for the OTP
socket
interface. - Enhancd performance of STM32 by enabling flash cache and i-cache with branch prediction.
- Added cmake configuration option
AVM_CONFIG_REBOOT_ON_NOT_OK
for STM32 - New gpio driver for STM32 with nif and port support for read and write functions.
- Added support for interrupts to STM32 GPIO port driver.
- Added suppoprt for PicoW extra gpio pins (led) to the gpio driver.
- Added support for
net:getaddrinfo/1,2
- Added minimal support for the OTP
ssl
interface. - Added support for
crypto:one_time/4,5
on Unix and Pico as well as forcrypto:hash/2
on Pico - Added ability to configure STM32 Nucleo boards onboard UART->USB-COM using the
-DBOARD=nucleo
cmake option - Added STM32 cmake option
-DAVM_CFG_CONSOLE=
to select a different uart peripheral for the system console - Added
crypto:strong_rand_bytes/1
using Mbed-TLS (only on generic_unix, ESP32 and RP2040
platforms) - Added support for setting the default receive buffer size for sockets via
socket:setopt/3
- Added support for pattern matching binaries containing 32 and 64 bit floating point values, but
only when aligned to byte boundaries (e.g.<<0:4, F:32/float>> = Bin
is not supported). - Added experimental backend to
get_tcp
andget_udp
based on the newsocket
interface - Added API for managing ESP32 watchdog (only on
esp-idf
>= v5.x)
Removed
- OpenSSL support, Mbed-TLS is required instead.