Приносит Эрланг, Эликсир и другие функциональные языки в действительно небольшие системы.
AtomVM реализует с нуля минимальная виртуальная машина Erlang, которая поддерживает подмножество функций ErlAngVM и может запускать немодифицированные двоичные файлы луча на действительно небольших системах, таких как MCUS.
Atomvm стремится быть легко переносимыми на новые платформы с минимальными усилиями, поэтому в ближайшем будущем можно поддерживать дополнительные платформы.
Существует гораздо больше информации, в том числе более полное «Руководство по началу работы», примеры, подробные инструкции по сборке и контактную информацию, доступную на веб -сайте проекта ATOMVM.
Не забудьте проверить репозиторий примеров, чтобы помочь вам начать свой следующий проект IoT.
Пожалуйста, используйте выпуск v0.6.x, основная ветвь предназначена для целей разработки, и это может быть нестабильным.
Требуется для строительства:
Документация и покрытие:
make coverage ). $ mkdir build
$ cd build
$ cmake ..
$ make
$ ./src/AtomVM ./examples/erlang/hello_world.avm
Запустите тесты в каталоге сборки с:
$ ./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
Полные инструкции по сборке доступны в документации для Generic Unix (Linux, MacOS, FreeBSD, Dragonfly), ESP32, STM32, Raspberry Pi Pico и Pico 2 (RP2) и WASM (Nodejs/Web).

AtomVM все еще находится на ранних стадиях, но он может запускать простые приложения, аналогичные тем, которые доступны в примерах и тестах.
AtomVM может сбой с аналогичным сообщением:
Undecoded opcode: 15
Aborted (core dumped)
Это в основном означает, что инструкция еще не была реализована, или что устаревшая версия была использована. Пожалуйста, убедитесь, что всегда запускайте AtomVM, используя последнюю версию.
Этот проект находится в стадии разработки, поэтому существует несколько известных ограничений, которые предотвратят запуск немодифицированного программного обеспечения, некоторые из них являются:
Все эти ограничения будут фиксироваться в разумное количество времени.
Этот проект был создан Давиде Беттио, и в настоящее время развивается из растущего числа участников.
Любой вид вклада приветствуется, вы можете либо внести свой вклад в этот репозиторий, улучшив виртуальную машину, основные библиотеки или документацию, либо внести свой вклад в любую из репозиториев организации.
Этот проект находится в условиях лицензии Apache 2.0.