Skip to content

Commit 0b7a9e6

Browse files
committed
Merge pull request #1642 from bettio/revamp-readme
Revamp README.Md These changes are made under both the "Apache 2.0" and the "GNU Lesser General Public License 2.1 or later" license terms (dual license). SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
2 parents 02bb6dc + ce997e4 commit 0b7a9e6

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

README.Md

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!---
2-
Copyright 2017-2021 Davide Bettio <davide@uninstall.it>
2+
Copyright 2017-2025 Davide Bettio <davide@uninstall.it>
33
44
SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
55
-->
@@ -66,17 +66,6 @@ $ make
6666
$ ./src/AtomVM ./examples/erlang/hello_world.avm
6767
```
6868

69-
Run tests within build directory with:
70-
```
71-
$ ./tests/test-erlang
72-
$ ./tests/test-enif
73-
$ ./tests/test-mailbox
74-
$ ./tests/test-structs
75-
$ ./src/AtomVM ./tests/libs/estdlib/test_estdlib.avm
76-
$ ./src/AtomVM ./tests/libs/eavmlib/test_eavmlib.avm
77-
$ ./src/AtomVM ./tests/libs/alisp/test_alisp.avm
78-
```
79-
8069
Complete [Build Instructions](https://www.atomvm.net/doc/main/build-instructions.html) are
8170
available in the documentation for
8271
[Generic UNIX](https://www.atomvm.net/doc/main/build-instructions.html) (Linux, MacOS, FreeBSD, DragonFly),
@@ -91,23 +80,44 @@ Project Status
9180

9281
[![Build and Test](https://github.com/atomvm/AtomVM/actions/workflows/build-and-test.yaml/badge.svg?branch=main)](https://github.com/atomvm/AtomVM/actions/workflows/build-and-test.yaml)
9382

94-
AtomVM is still in its early stages, but it can run simple applications similar to those available
95-
in [examples](examples/) and [tests](tests/).
83+
AtomVM is no longer just a prototype — it has reached a solid level of compatibility with the BEAM
84+
ecosystem. It can execute unmodified, compiled BEAM modules, and most
85+
[core standard library functions](https://www.atomvm.net/doc/main/api-reference-documentation.html)
86+
are already supported.
9687

97-
AtomVM might crash with a similar message:
98-
```
99-
Undecoded opcode: 15
100-
Aborted (core dumped)
101-
```
102-
This basically means that an instruction has not been implemented yet, or that an outdated version has been used. Please, make sure to always run AtomVM using latest version.
88+
AtomVM is tested with code compiled with any version from OTP 21 to 27 (28 is supported only in `main` branch).
89+
90+
Crashes may still occur in edge cases, so we recommend using either the
91+
[latest stable release](https://github.com/atomvm/AtomVM/releases)
92+
[(v0.6.x)](https://github.com/atomvm/AtomVM/tree/release-0.6) or the
93+
[main branch](https://github.com/atomvm/AtomVM/tree/main) if you're experimenting with newer
94+
features.
95+
If you run into issues, please [open an issue](https://github.com/atomvm/AtomVM/issues/new/choose)
96+
— we’d love your feedback.
97+
98+
For a detailed list of recent changes and new features, see the
99+
[changelog](https://github.com/atomvm/AtomVM/blob/main/CHANGELOG.md).
100+
101+
AtomVM is ready to power your next embedded or lightweight functional programming project.
103102

104103
Known Limitations
105104
-----------------
106-
This project is a work in progress, so there are several known limitations, that will prevent to run unmodified software, some of them are:
107-
* There is a minimal standard library, so several standard functions are missing.
108-
* Several instructions are not yet implemented.
109105

110-
All of these limitations are going to be fixed in a reasonable amount of time.
106+
Your existing project might not work out of the box due to a few current limitations:
107+
108+
- The standard library is minimal — some functions and modules are not yet implemented.
109+
- Features that depend on a full operating system (e.g. file I/O, OS processes) may be missing or
110+
behave differently.
111+
- Certain BEAM features like `on_load` functions and tracing are not yet supported.
112+
- Some functionality may simply be missing — if you find a gap, feel free to open an issue, and
113+
we’ll take a look.
114+
115+
When a feature is implemented, we aim to provide behavior that is consistent with the official
116+
[BEAM documentation](https://www.erlang.org/docs) and
117+
[Erlang/OTP runtime](https://github.com/erlang/otp).
118+
119+
Some of these limitations are on the roadmap, while others are deliberate design decisions to keep
120+
AtomVM lightweight, portable, and suitable for embedded systems.
111121

112122
About This Project
113123
==================

doc/src/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ AtomVM is a lightweight implementation of the the Bogdan Erlang Abstract Machine
1616

1717
AtomVM includes many advanced features, including process spawning, monitoring, message passing, pre-emptive scheduling, and efficient garbage collection. It can also interface directly with peripherals and protocols supported on micro-controllers, such as GPIO, I2C, SPI, and UART. It also supports WiFi networking on devices that support it, such as the Espressif ESP32. All of this on a device that can cost as little as $2!
1818

19-
.. warning:: AtomVM is currently in Alpha status. Software may contain bugs and should not be used for mission-critical applications. Application Programming Interfaces may change without warning.
19+
.. warning:: AtomVM is currently in `v0.x stage <https://semver.org/#spec-item-4>`_. Software may contain bugs and should not be used for mission-critical applications. Application Programming Interfaces may change without warning.
2020

2121
.. toctree::
2222
:maxdepth: 2

0 commit comments

Comments
 (0)