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
,/lib
dan direktori lain di manamoar
executable dan file lainnya akan diinstal, jadi Anda harus menggunakan/usr
jika Anda inginmoar
disalin 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.