يجلب Erlang و Elixir واللغات الوظيفية الأخرى إلى أنظمة صغيرة حقًا.
تنفذ ATOMVM من الصفر الحد الأدنى من Erlang VM يدعم مجموعة فرعية من ميزات ErlangVM وهو قادر على تشغيل ثنائيات الشعاع غير المعدلة على أنظمة صغيرة حقًا مثل MCUs.
تهدف ATOMVM إلى أن تكون محمولة بسهولة إلى منصات جديدة بأقل جهد ، لذلك قد يتم دعم منصات إضافية في المستقبل القريب.
هناك المزيد من المعلومات ، بما في ذلك "دليل البدء" الأكثر اكتمالا ، وأمثلة ، وإرشادات بناء مفصلة ، ومعلومات الاتصال المتاحة على موقع AtomVM Project.
لا تنس التحقق من مستودع الأمثلة لمساعدتك في البدء في مشروع إنترنت الأشياء التالي.
من فضلك ، استخدم إصدارات 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
تتوفر إرشادات الإنشاء الكاملة في وثائق 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 دائمًا باستخدام أحدث إصدار.
هذا المشروع هو عمل مستمر ، لذلك هناك العديد من القيود المعروفة ، التي ستمنع تشغيل البرامج غير المعدلة ، وبعضها:
سيتم إصلاح كل هذه القيود في فترة زمنية معقولة.
تم إنشاء هذا المشروع بواسطة Davide Bettio ، وتم تطويره الآن من عدد متزايد من المساهمين.
أي نوع من المساهمة موضع ترحيب ، يمكنك إما المساهمة في هذا المستودع من خلال تحسين الجهاز الظاهري أو المكتبات الأساسية أو الوثائق أو عن طريق المساهمة في أي من مستودعات المؤسسة.
هذا المشروع تحت شروط ترخيص Apache 2.0.