MoarVM (abreviatura de Metamodel On A Runtime Virtual Machine) es un tiempo de ejecución creado para el sistema de objetos 6model. Su objetivo principal es ejecutar NQP y Rakudo, pero debería poder servir como backend para cualquier compilador creado utilizando la cadena de herramientas del compilador NQP.
Descárgalo del sitio MoarVM o clónalo desde GitHub:
git clone https://github.com/MoarVM/MoarVM.git
Si utiliza archivos tarball o zip de lanzamiento generados automáticamente, tenga en cuenta que no contienen las bibliotecas de terceros necesarias para construir MoarVM con éxito.
Construir e instalar la VM en sí solo requiere:
perl Configure.pl
make install
(O nmake
/ gmake
en Windows). Actualmente se sabe que se basa en Windows con MSVC y gcc, y con gcc
y clang
en Linux y MacOS X. Estamos ampliando esto con el tiempo.
Escriba perl Configure.pl --help
para ver las opciones de tiempo de configuración, así como algunas descripciones de las opciones/objetivos de tiempo de creación.
Después de instalar MoarVM, puede clonar el repositorio NQP o tomar un archivo tar de origen y usar el script Configure.pl de esta manera:
perl Configure.pl --backend=moar --prefix=where_your_moarvm_install_lives
Alternativamente, el mismo script Configure.pl en NQP puede clonar, compilar e instalar una copia de MoarVM por sí solo si proporciona el indicador --gen-moar
.
Tenga en cuenta que este será el prefijo de
/bin
,/lib
y otros directorios donde se instalarán el ejecutablemoar
y otros archivos, por lo que tendrá que usar/usr
si desea copiar amoar
./usr/bin
.
Al apuntar el script Configure.pl
en el repositorio de rakudo a un --prefix
que tiene un nqp-m
instalado, detectará y configurará automáticamente el backend de MoarVM. Alternativamente, --backend=moar,jvm
se puede usar para forzarlo a construir los backends MoarVM y JVM, por ejemplo. Al igual que en el script NQP Configure.pl
, tiene la opción de proporcionar un indicador --gen-moar
que hará todo el trabajo por usted, incluida la creación de un nqp-m
.
MoarVM está actualmente en desarrollo. Puede ejecutar todo el conjunto de pruebas NQP, todas las pruebas de cordura de Rakudo y pasa más pruebas que cualquier otro backend de Rakudo.
A diferencia del backend JVM o JS de NQP, el repositorio MoarVM no está integrado en el repositorio fuente de NQP, sino que se puede acceder ejecutando el script Configure.pl --gen-moar
configure en el repositorio NQP.
Algunas características clave proporcionadas por MoarVM incluyen:
Se aceptan contribuciones mediante pull request. Los bits de compromiso se otorgan a quienes contribuyen con un trabajo de calidad. Si está interesado en contribuir, visite el canal #moarvm
en libera.chat.
Consulte el archivo LICENCIA en el directorio raíz para obtener información sobre la licencia del código fuente en el repositorio MoarVM.
Si MoarVM no se puede compilar y el error se parece a este:
ld: símbolo(s) no encontrado(s) para la arquitectura x86_64
es probable que tenga una combinación incompatible de utilidades de compilación y bin.
Si bien es común tener cadenas de herramientas instaladas desde repositorios de terceros en macOS, no todas son compatibles. En caso de que se encuentre con este problema, intente estos pasos.
brew unlink binutils
Si desea utilizar una cadena de herramientas GNU y recibe un error que le indica que vea este archivo, simplemente proporcione el indicador --toolchain=gnu
y este paquete se configurará y compilará con una cadena de herramientas GNU.
Tenga en cuenta: si utiliza herramientas mixtas de Xcode y no Xcode, es probable que tenga problemas. Como tal, esta configuración no es compatible.
gcc
versus clang
Tenga en cuenta que ambos compiladores definen la macro __GNUC__
, por lo que primero es necesario probar la macro __clang__
para eliminar la ambigüedad de ambas.