Traz Erlang, Elixir e outras linguagens funcionais para sistemas realmente pequenos.
O AtomVM implementa do Scratch uma VM Erlang mínima que suporta um subconjunto de recursos do ERLANGVM e que é capaz de executar binários de feixe não modificado em sistemas realmente pequenos, como o MCUS.
O AtomVM pretende ser facilmente portátil para novas plataformas com um esforço mínimo, para que plataformas adicionais possam ser suportadas em um futuro próximo.
Há muito mais informações, incluindo um "Guia de Iniciação" mais completo, exemplos, instruções detalhadas de construção e informações de contato disponíveis no site do Projeto Atomvm.
Não se esqueça de conferir o repositório de exemplos para ajudá -lo a iniciar seu próximo projeto de IoT.
Por favor, use versões v0.6.x, o ramo principal é para fins de desenvolvimento e pode ser instável.
Necessário para a construção:
Documentação e cobertura:
make coverage ). $ mkdir build
$ cd build
$ cmake ..
$ make
$ ./src/AtomVM ./examples/erlang/hello_world.avm
Execute testes no diretório de construção com:
$ ./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
As instruções de construção completas estão disponíveis na documentação para o Unix genérico (Linux, MacOS, FreeBSD, Dragonfly), Esp32, STM32, Raspberry Pi Pico e Pico 2 (RP2) e WASM (NodeJS/Web).

O AtomVM ainda está em seus estágios iniciais, mas pode executar aplicativos simples semelhantes aos disponíveis em exemplos e testes.
Atomvm pode travar com uma mensagem semelhante:
Undecoded opcode: 15
Aborted (core dumped)
Isso basicamente significa que uma instrução ainda não foi implementada ou que uma versão desatualizada foi usada. Por favor, certifique -se de executar sempre o ATOMVM usando a versão mais recente.
Este projeto é um trabalho em andamento; portanto, existem várias limitações conhecidas, que impedirão a execução de software não modificado, alguns deles são:
Todas essas limitações serão fixadas em um período de tempo razoável.
Este projeto foi criado por Davide Bettio e agora é desenvolvido a partir de um número crescente de colaboradores.
Qualquer tipo de contribuição é bem -vinda, você pode contribuir para este repositório, melhorando a máquina virtual, as bibliotecas principais ou a documentação ou contribuindo para qualquer um dos repositórios da organização.
Este projeto está nos termos da licença Apache 2.0.