Apporte Erlang, Elixir et d'autres langages fonctionnels à de très petits systèmes.
ATOMVM implémente à partir de zéro une machine virtuelle Erlang minimale qui prend en charge un sous-ensemble de fonctionnalités ERLANGVM et qui est capable d'exécuter des binaires de faisceau non modifiés sur de très petits systèmes comme MCU.
ATOMVM vise à être facilement portable sur de nouvelles plates-formes avec un effort minimum, de sorte que des plates-formes supplémentaires pourraient être prises en charge dans un avenir proche.
Il y a beaucoup plus d'informations, y compris un "Guide de démarrage" plus complet, des exemples, des instructions de construction détaillées et des informations de contact disponibles sur le site Web du projet ATOMVM.
N'oubliez pas de consulter le référentiel d'exemples pour vous aider à démarrer sur votre prochain projet IoT.
S'il vous plaît, utilisez les versions v0.6.x, la branche principale est à des fins de développement et il pourrait être instable.
Requis pour le bâtiment:
Documentation et couverture:
make coverage ). $ mkdir build
$ cd build
$ cmake ..
$ make
$ ./src/AtomVM ./examples/erlang/hello_world.avm
Exécutez des tests dans le répertoire de construction avec:
$ ./tests/test-erlang
$ ./tests/test-enif
$ ./tests/test-mailbox
$ ./tests/test-structs
$ ./src/AtomVM ./tests/libs/estdlib/test_estdlib.avm
$ ./src/AtomVM ./tests/libs/eavmlib/test_eavmlib.avm
$ ./src/AtomVM ./tests/libs/alisp/test_alisp.avm
Des instructions complètes de construction sont disponibles dans la documentation de Generic Unix (Linux, MacOS, FreeBSD, Dragonfly), ESP32, STM32, Raspberry Pi Pico et Pico 2 (RP2) et WASM (Nodejs / Web).

ATOMVM en est encore à ses débuts, mais il peut exécuter des applications simples similaires à celles disponibles dans des exemples et des tests.
ATOMVM peut s'écraser avec un message similaire:
Undecoded opcode: 15
Aborted (core dumped)
Cela signifie essentiellement qu'une instruction n'a pas encore été mise en œuvre, ou qu'une version obsolète a été utilisée. S'il vous plaît, assurez-vous de toujours exécuter ATOMVM en utilisant la dernière version.
Ce projet est un travail en cours, il existe donc plusieurs limitations connues, qui empêcheront d'exécuter des logiciels non modifiés, certains d'entre eux sont:
Toutes ces limitations vont être fixées dans un délai raisonnable.
Ce projet a été créé par Davide Bettio, et est maintenant développé à partir d'un nombre croissant de contributeurs.
Tout type de contribution est le bienvenu, vous pouvez soit contribuer à ce référentiel en améliorant la machine virtuelle, les bibliothèques de base ou la documentation ou en contribuant à l'un des référentiels de l'organisation.
Ce projet est selon les termes de la licence Apache 2.0.