MoarVM (ย่อมาจาก Metamodel On A Runtime Virtual Machine) เป็นรันไทม์ที่สร้างขึ้นสำหรับระบบอ็อบเจ็กต์ 6model มีจุดมุ่งหมายหลักในการรัน NQP และ Rakudo แต่ควรจะสามารถใช้เป็นแบ็กเอนด์สำหรับคอมไพเลอร์ใดๆ ที่สร้างขึ้นโดยใช้ toolchain ของคอมไพเลอร์ NQP
ดาวน์โหลดจากไซต์ MoarVM หรือโคลนจาก GitHub:
git clone https://github.com/MoarVM/MoarVM.git
หากคุณใช้ tarball หรือไฟล์ zip ที่สร้างขึ้นโดยอัตโนมัติ โปรดทราบว่าไฟล์เหล่านั้นไม่มีไลบรารีของบุคคลที่สามที่จำเป็นในการสร้าง MoarVM ให้สำเร็จ
การสร้างและติดตั้ง VM นั้นใช้เวลาเพียง:
perl Configure.pl
make install
(หรือ nmake
/ gmake
บน Windows) ปัจจุบันเป็นที่ทราบกันดีว่าสร้างบน Windows ด้วย MSVC และ gcc และด้วย gcc
และ clang
บน Linux และ MacOS X เรากำลังขยายสิ่งนี้ตามเวลา
พิมพ์ perl Configure.pl --help
เพื่อดูตัวเลือกเวลากำหนดค่า รวมถึงคำอธิบายบางส่วนของตัวเลือก/เป้าหมายเวลาทำ
หลังจากติดตั้ง MoarVM คุณสามารถโคลนพื้นที่เก็บข้อมูล NQP หรือคว้า tarball ต้นทางแล้วใช้สคริปต์ 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 repo ไม่ได้รวมเข้ากับ repo แหล่งที่มาของ NQP แต่สามารถดึงเข้ามาได้โดยการรัน Configure.pl --gen-moar
สคริปต์กำหนดค่าใน repo NQP
คุณสมบัติหลักบางประการที่ MoarVM มีให้ ได้แก่:
ยอมรับการมีส่วนร่วมตามคำขอดึง Commit bits มอบให้กับผู้ที่มีส่วนร่วมในงานที่มีคุณภาพ หากคุณสนใจที่จะมีส่วนร่วม แวะมาที่ช่อง #moarvm
บน libera.chat
ดูไฟล์ LICENSE ในไดเรกทอรีรากสำหรับข้อมูลเกี่ยวกับใบอนุญาตของซอร์สโค้ดในพื้นที่เก็บข้อมูล MoarVM
หาก MoarVM ล้มเหลวในการสร้าง และข้อผิดพลาดมีลักษณะดังนี้:
ld: ไม่พบสัญลักษณ์สำหรับสถาปัตยกรรม x86_64
คุณน่าจะมียูทิลิตี้ build และ bin ที่เข้ากันไม่ได้
แม้ว่าการติดตั้ง toolchains จากแหล่งเก็บข้อมูลบุคคลที่สามใน macOS เป็นเรื่องปกติ แต่ก็ไม่สามารถใช้งานร่วมกันได้ทั้งหมด ในกรณีที่คุณประสบปัญหานี้ โปรดลองขั้นตอนเหล่านี้
brew unlink binutils
หากคุณ ต้องการ ใช้ GNU toolchain และคุณได้รับข้อผิดพลาดแจ้งให้คุณดูไฟล์นี้ เพียงระบุ --toolchain=gnu
flag จากนั้นแพ็คเกจนี้จะกำหนดค่าและสร้างด้วย GNU toolchain
โปรดทราบ: หากคุณใช้เครื่องมือ Xcode และไม่ใช่ Xcode ผสมกัน มีแนวโน้มว่าจะเกิดปัญหา ด้วยเหตุนี้ การกำหนดค่านี้จึงไม่ได้รับการสนับสนุน
gcc
และ clang
โปรดทราบว่าคอมไพเลอร์ทั้งสองตัวกำหนดมาโคร __GNUC__
ดังนั้นมาโคร __clang__
จำเป็นต้องได้รับการทดสอบก่อนเพื่อแยกความกำกวมของทั้งสอง