-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #38 from UncleGrumpy/announce_v0.6.3
Announce release v0.6.3
- Loading branch information
Showing
1 changed file
with
73 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
--- | ||
layout: post | ||
title: Announcing AtomVM v0.6.3 | ||
excerpt_separator: <!--more--> | ||
--- | ||
|
||
## 2024/07/22 Announcing AtomVM v0.6.3 | ||
|
||
We are pleased to announce the release of v0.6.3 of the AtomVM virtual machine! | ||
|
||
This release expands OTP coverage to include the Erlang `sets` and `queue` modules and several | ||
Elixir `Keyword` functions: `Keyword.merge`, `Keyword.take`, `Keyword.pop(!)`, `Keyword.keyword?`, | ||
and `Keyword.has_key?`. Support for `~kp` with `io_lib:format/2` and `maps:iterator/2` that were | ||
introduced with OTP26 have added, along with `maps:from_keys/2`. The `lists` modules gains support | ||
for `lists:keytake/3`, `lists:keystore/4`, and `lists:filtermap/2`. Support for `erlang:size/1` and | ||
`erlang:apply/2` has also been added. | ||
|
||
A simple [http client](https://www.atomvm.net/doc/v0.6.3/apidocs/erlang/eavmlib/ahttp_client.html), | ||
that can be used for different use cases, such as downloading OTA updates has been added to | ||
[`eavmlib`](https://www.atomvm.net/doc/v0.6.3/apidocs/erlang/eavmlib/README.html). | ||
|
||
The [channel used in access point mode](https://www.atomvm.net/doc/v0.6.3/network-programming-guide.html#ap-mode) | ||
can now be changed in the | ||
[`network`](https://www.atomvm.net/doc/v0.6.3/apidocs/erlang/eavmlib/network.html) driver. | ||
|
||
This release adds support for [ESP32-H2](https://www.espressif.com/en/products/socs/esp32-h2) | ||
devices. Support has also been added for USB serial output on ESP32 devices with native USB support | ||
(ESP32-S2 for example). | ||
|
||
Notable changes include: | ||
* the default size of ESP32 RTC slow memory being bumped from 4086 to 4096, except on ESP32-H2 | ||
where it's 3072 bytes | ||
* updates to `byte_size/1` and `bit_size/1` to implement OTP27 match context reuse optimization | ||
OTP-18987 | ||
* ESP32 network driver messages for event 40 (home channel change events) are now suppressed, | ||
but the details for the channel changes can be observed in the console log if "debug" level | ||
logging is enabled in ESP-IDF Kconfig options. | ||
|
||
Several bugs have been fixed, including the creation of multiple links for the same process and | ||
links not being removed at trapped exits. A bug affecting binary pattern matching (for builds with | ||
OTP-21) has been fixed, and several memory related bugs have been corrected, as well as a bug that | ||
could yield crashes when functions are sent in messages. The error that is raised when a function | ||
is undefined has also been fixed. | ||
|
||
For the full set of bug fixes, changes and additions consult the | ||
[Changelog](https://www.atomvm.net/doc/v0.6.3/CHANGELOG.html). | ||
|
||
Download images and binaries are available for most platforms, except STM32, are available from | ||
[AtomVM Releases on GitHub](https://github.com/atomvm/AtomVM/releases/tag/v0.6.3). STM32 users as | ||
well as anyone needing to build a generic_unix port for a device without release binaries should | ||
consult the [Build Instructions](https://www.atomvm.net/doc/v0.6.3/build-instructions.html). MacOS | ||
users also have the option of | ||
[installing with `macports`](https://www.atomvm.net/doc/v0.6.3/getting-started-guide.html#installation-on-macos), | ||
and an updated HomeBrew tap should be available in the near future. The "tap" is currently out of date, but a fix | ||
has already been submitted. | ||
|
||
The git repository and tarballs of the AtomVM source release for all platforms can be found on our | ||
[GitHub AtomVM page](https://github.com/atomvm/AtomVM). | ||
|
||
Documentation for the v0.6.3 release of the AtomVM virtual machine, including a | ||
[Getting Started Guide](https://www.atomvm.net/doc/v0.6.3/getting-started-guide.html), can be found in the | ||
[AtomVM Documentation](https://www.atomvm.net/doc/v0.6.3/). | ||
|
||
As always, tools, drivers, and modules are available on the | ||
[GitHub AtomVM Project page](https://github.com/atomvm). | ||
|
||
Many thanks go to [Davide Bettio](https://github.com/bettio), for creating and maintaining such a | ||
fine work of software. Special thanks also to [takasehideki](https://github.com/takasehideki) and | ||
[Mikael Karlsson](https://github.com/karlsson) for their first contributions to the project :tada , | ||
along with the rest of the [contributors](https://github.com/atomvm/AtomVM/graphs/contributors) and | ||
[testers who have helped make this release possible](https://github.com/atomvm/AtomVM/issues). | ||
|
||
The AtomVM team |