AtomVM
-
v0.6.0-alpha.0
Published by bettio about 1 year ago
v0.6.0-alpha.0 release.
Please, read the getting started guide for flashing instructions.
CHANGELOG
Added
- Added the ability to specify the HSPI or VSPI ESP32 hardware interfaces when initializing the
SPI Bus.
- Added support for the
spi:close/1
function.
- Added
AVM_VERBOSE_ABORT
CMake define, which when set to on, will print the C module and line
number when a VM abort occurs. This define is off by default.
- Added
spi:write/3
and spi:write_read/3
functions to support generalized SPI transactions
and arbitrary-length reads and writes from SPI devices.
- Added support for building ESP32 port with all currently supported versions of Espressif ESP-IDF,
version 4.1.x through 4.4.x.
- Added support for
controlling_process/2
in gen_udp
and gen_tcp
modules.
- Added ability to get the atomvm version via
erlang:system_info
.
- Added
erlang:is_boolean/1
Bif.
- Added support for
esp:partition_erase_range/2
- Added support for
i2c:close/1
- Added support for
erlang:unregister/1
- Added Elixir ESP32 LEDC driver and example
- Added support for
uart:close/1
- Added Bitwise support for Elixir
- Added support for esp32-s2, esp32-s3, and esp32-c3 chips.
- Added Elixir I2C driver and example
- Added the ability to specify the I2C port
- Added support for the OTP
math
module
- Added support for
erlang:integer_to_list/2
and erlang:integer_to_binary/2
- Added functions
esp:sleep_enable_ext0_wakeup/2
and esp:sleep_enable_ext1_wakeup/2.
- Added support for FP opcodes 94-102 thus removing the need for
AVM_DISABLE_FP=On
with OTP-22+
- Added support for stacktraces
- Added support for
utf-8
, utf-16
, and utf-32
bit syntax modifiers (put and match)
- Added support for Erlang
gpio:close/1
and Elixir GPIO.close/1
for ESP32
- Added support for the Erlang
gen_event
module
- Added
start_link
support for the network
module
- Added support for
erlang:monotonic_time/1
- Added
start_link
support for the gen_statem
module
- Added support for serializing floats in erlang external term encoding
- Added support for the
SMALL_BIG_EXT
erlang external term encoding
- Added support for
erlang:memory(binary)
- Added support for callbacks on SNTP updates
- Multithreading support (SMP)
- Added support for code:load_abs/1, code:load_binary/3
- Added support for loading / closing AVMPacks at runtime
- Added support for ESP-IDF v5.x
- Added support for
calendar:system_time_to_universal_time/2
- Added support for
calendar:datetime_to_gregorian_seconds/1
- Added support for Raspberry Pi Pico
- Added support for nodejs with Wasm
- Added support for a subset of the OTP logger interface
- Added
esp:partition_list/0
function
- Added
esp:nvs_fetch_binary/2
and nvs_put_binary/3
functions (esp:nvs_set_binary
and
functions that default to ?ATOMVM_NVS_NS
are deprecated now).
- Added most format possibilities to
io:format/2
and io_lib:format/2
- Added
unicode
module with characters_to_list/1,2
and characters_to_binary/1,2,3
functions
- Added support for
crypto:hash/2
(ESP32 and generic_unix with openssl)
Fixed
- Fixed issue with formatting integers with io:format() on STM32 platform
- Fixed a bug in the order of child initialization in the
supervisor
module
- Fixed a bug in the evaluation of
receive ... after infinity -> ...
expressions
- Fixed a bug in when putting integers in bit syntax with integer field sizes
- Fixed numerous bugs in memory allocations that could crash the VM
- Fixed SNTP support that had been broken in IDF 4.x builds
- Fixed
erlang:send/2
not sending to registered name
Breaking Changes
IMPORTANT: These changes are incompatible with previous releases of AtomVM.
- Changed the configuration model of the SPI driver, in order to allow for multiple "follower"
devices to be attached to the same SPI Bus.
- Changed the return value from
erlang:system_info(esp32_chip_info)
from a tuple to a map, with
additional information.
- Changed the return type of the
network:start
function to return the tuple {ok, Pid}
on a
successful call, instead of the bare atom ok
. Applications that use network:start
and
check the return value will need to be modified.
- The return type of
i2c:read_bytes
has changed from returning just a binary to
returning the tuple {ok, Binary}
when successful.
- The return type of many
i2c
operations under error conditions has changed from
error
to {error, Reason}
, for improved diagnostics.
- The eavmlib logger interface has been removed
Removed