MoarVM (kependekan dari Metamodel On A Runtime Virtual Machine) adalah runtime yang dibangun untuk sistem objek 6model. Hal ini terutama ditujukan untuk menjalankan NQP dan Rakudo, tetapi harus dapat berfungsi sebagai backend untuk semua kompiler yang dibuat menggunakan rantai alat kompiler NQP.
Unduh dari situs MoarVM atau kloning dari GitHub:
git clone https://github.com/MoarVM/MoarVM.git
Jika Anda menggunakan tarbal atau file zip rilis yang dibuat secara otomatis, harap diperhatikan bahwa file tersebut tidak berisi pustaka pihak ketiga yang diperlukan agar berhasil membangun MoarVM.
Membangun dan menginstal VM itu sendiri hanya membutuhkan:
perl Configure.pl
make install
(Atau nmake / gmake di Windows). Saat ini diketahui dapat dibangun di Windows dengan MSVC dan gcc, serta dengan gcc dan clang di Linux & MacOS X. Kami mengembangkannya seiring berjalannya waktu.
Ketik perl Configure.pl --help untuk melihat opsi konfigurasi waktu, serta beberapa deskripsi opsi/target waktu yang dibuat.
Setelah menginstal MoarVM, Anda dapat mengkloning repositori NQP atau mengambil tarball sumber dan menggunakan skrip Configure.pl di dalamnya seperti:
perl Configure.pl --backend=moar --prefix=where_your_moarvm_install_lives
Alternatifnya, skrip Configure.pl yang sama di NQP dapat mengkloning, membuat, dan menginstal salinan MoarVM sendiri jika Anda menyediakan flag --gen-moar .
Harap diingat bahwa ini akan menjadi awalan
/bin,/libdan direktori lain di manamoarexecutable dan file lainnya akan diinstal, jadi Anda harus menggunakan/usrjika Anda inginmoardisalin ke/usr/bin.
Saat mengarahkan skrip Configure.pl di repositori rakudo ke --prefix yang memiliki nqp-m terinstal di dalamnya, skrip tersebut akan secara otomatis mendeteksi dan mengonfigurasi backend MoarVM. Alternatifnya, --backend=moar,jvm dapat digunakan untuk memaksanya membangun backend MoarVM dan JVM, misalnya. Sama seperti dalam skrip NQP Configure.pl , Anda memiliki opsi untuk menyediakan flag --gen-moar yang akan melakukan semua pekerjaan untuk Anda, termasuk membuat nqp-m .
MoarVM saat ini sedang dalam pengembangan. Itu dapat menjalankan semua rangkaian tes NQP, semua tes kewarasan Rakudo, dan melewati lebih banyak penonton daripada backend Rakudo lainnya.
Berbeda dengan backend JVM atau JS NQP, repo MoarVM tidak diintegrasikan ke dalam repo sumber NQP namun dapat ditarik dengan menjalankan skrip konfigurasi Configure.pl --gen-moar di repo NQP.
Beberapa fitur utama yang disediakan oleh MoarVM meliputi:
Kontribusi melalui permintaan tarik diterima. Bit komitmen diberikan kepada mereka yang menyumbangkan pekerjaan berkualitas. Jika Anda tertarik untuk berkontribusi, mampirlah ke saluran #moarvm di libera.chat.
Lihat file LICENSE di direktori root untuk informasi tentang lisensi kode sumber di repositori MoarVM.
Jika MoarVM gagal dibuat, dan kesalahannya terlihat seperti ini:
ld: simbol tidak ditemukan untuk arsitektur x86_64
Anda mungkin memiliki campuran utilitas build dan bin yang tidak kompatibel.
Meskipun rantai alat diinstal dari repositori pihak ketiga di macOS adalah hal yang umum, tidak semuanya kompatibel. Jika Anda mengalami masalah ini, silakan coba langkah-langkah berikut.
brew unlink binutils Jika Anda ingin menggunakan rantai alat GNU, dan Anda mendapatkan pesan kesalahan yang meminta Anda untuk melihat file ini, cukup berikan tanda --toolchain=gnu dan paket ini akan dikonfigurasikan dan dibangun dengan rantai alat GNU.
Harap diperhatikan: Jika Anda menggunakan alat campuran Xcode dan non-Xcode, kemungkinan besar Anda akan mengalami masalah. Oleh karena itu, konfigurasi ini tidak didukung.
gcc versus clang Perhatikan bahwa kedua kompiler mendefinisikan makro __GNUC__ , jadi makro __clang__ perlu diuji terlebih dahulu untuk membedakan keduanya.