Skip to content

Commit

Permalink
Merge pull request #38 from UncleGrumpy/announce_v0.6.3
Browse files Browse the repository at this point in the history
Announce release v0.6.3
  • Loading branch information
UncleGrumpy committed Jul 22, 2024
2 parents 3eecb93 + 4149bad commit c4d65a5
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions _posts/2024-07-22-Release_v0.6.3.md
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

0 comments on commit c4d65a5

Please sign in to comment.