MoarVM (اختصار لـ Metamodel On A Runtime Virtual Machine) هو وقت تشغيل مصمم لنظام الكائنات 6model. إنه يهدف في المقام الأول إلى تشغيل NQP وRakudo، ولكن يجب أن يكون قادرًا على العمل كواجهة خلفية لأي مترجم تم إنشاؤه باستخدام سلسلة أدوات مترجم NQP.
إما تنزيله من موقع MoarVM أو استنساخه من GitHub:
git clone https://github.com/MoarVM/MoarVM.git
إذا كنت تستخدم كرات القطران أو الملفات المضغوطة التي تم إنشاؤها تلقائيًا، فيرجى ملاحظة أنها لا تحتوي على مكتبات الطرف الثالث اللازمة لإنشاء MoarVM بنجاح.
يتطلب إنشاء VM وتثبيته نفسه ما يلي فقط:
perl Configure.pl
make install
(أو nmake
/ gmake
على نظام التشغيل Windows). ومن المعروف حاليًا أنه يعتمد على Windows مع MSVC وgcc، ومع gcc
و clang
على Linux وMacOS X. ونحن نعمل على توسيع هذا بمرور الوقت.
اكتب perl Configure.pl --help
لرؤية خيارات وقت التكوين، بالإضافة إلى بعض أوصاف خيارات/أهداف وقت التكوين.
بعد تثبيت MoarVM، يمكنك استنساخ مستودع NQP أو الحصول على كرة القطران المصدرية واستخدام البرنامج النصي Configure.pl فيه كما يلي:
perl Configure.pl --backend=moar --prefix=where_your_moarvm_install_lives
وبدلاً من ذلك، يستطيع نفس البرنامج النصي Configure.pl في NQP استنساخ نسخة من MoarVM وإنشائها وتثبيتها بمفرده إذا قمت بتوفير علامة --gen-moar
.
يرجى أن تضع في اعتبارك أن هذه ستكون البادئة للمجلدات
/bin
و/lib
والأدلة الأخرى حيث سيتم تثبيت ملفmoar
القابل للتنفيذ والملفات الأخرى، لذلك سيتعين عليك استخدام/usr
إذا كنت تريد نسخmoar
إلى/usr/bin
.
عند توجيه البرنامج النصي Configure.pl
في مستودع rakudo إلى --prefix
المثبت فيه nqp-m
، فإنه سيكتشف تلقائيًا واجهة MoarVM الخلفية ويقوم بتكوينها. وبدلاً من ذلك، يمكن استخدام --backend=moar,jvm
لإجباره على إنشاء الواجهات الخلفية لـ MoarVM وJVM، على سبيل المثال. تمامًا كما هو الحال في البرنامج النصي NQP Configure.pl
، لديك خيار توفير علامة --gen-moar
التي ستقوم بكل العمل نيابةً عنك، بما في ذلك إنشاء nqp-m
.
MoarVM قيد التطوير حاليًا. يمكنه تشغيل جميع مجموعة اختبارات NQP، وجميع اختبارات سلامة العقل في Rakudo، ويجتاز اختبارات أكثر من أي واجهة خلفية أخرى من Rakudo.
على عكس الواجهة الخلفية لـ JVM أو JS لـ NQP، لم يتم دمج مستودع MoarVM في مستودع مصدر NQP ولكن بدلاً من ذلك يمكن سحبه عن طريق تشغيل البرنامج النصي للتكوين Configure.pl --gen-moar
في مستودع NQP.
تتضمن بعض الميزات الرئيسية التي تقدمها MoarVM ما يلي:
يتم قبول المساهمات عن طريق طلب السحب. يتم منح أجزاء الالتزام لأولئك الذين يساهمون في العمل الجيد. إذا كنت مهتمًا بالمساهمة، تفضل بزيارة قناة #moarvm
على libera.chat.
راجع ملف الترخيص في الدليل الجذر للحصول على معلومات حول ترخيص التعليمات البرمجية المصدر في مستودع MoarVM.
إذا فشل إنشاء MoarVM، وكان الخطأ يبدو كما يلي:
ld: لم يتم العثور على الرمز (الرموز) للهندسة المعمارية x86_64
من المحتمل أن يكون لديك مزيج غير متوافق من أدوات البناء وبن.
على الرغم من أنه من الشائع تثبيت سلاسل الأدوات من مستودعات تابعة لجهات خارجية في نظام التشغيل macOS، إلا أنها ليست جميعها متوافقة. في حال واجهت هذه المشكلة، يرجى تجربة هذه الخطوات.
brew unlink binutils
إذا كنت تريد استخدام سلسلة أدوات GNU، وحصلت على خطأ يخبرك برؤية هذا الملف، فما عليك سوى توفير علامة --toolchain=gnu
وسيتم تكوين هذه الحزمة وإنشائها باستخدام سلسلة أدوات GNU.
يرجى ملاحظة: إذا كنت تستخدم أدوات Xcode مختلطة وأدوات غير Xcode، فمن المحتمل أن تواجه مشكلة. على هذا النحو، هذا التكوين غير معتمد.
gcc
مقابل clang
لاحظ أن كلا المترجمين يعرّفان الماكرو __GNUC__
، لذلك يجب اختبار الماكرو __clang__
أولاً لتوضيح الاثنين.