跳到内容

拉库(Raku)/nqp

存储库文件导航

NQP—不太使用Perl

NQP版权所有(C)2009-2020,归Perl Foundation所有。请参见许可证获取许可详细信息。

这是“不太Perl”——一个轻量级的类似Raku的虚拟机环境。NQP的关键功能是,它被设计成一个非常小的环境(与raku或Rakudo相比),并专注于成为一种为虚拟机创建编译器和库的高级方式,如莫尔VM、JVM等。

与Raku的成熟实现不同,NQP力求尽可能减少运行时占用空间,同时仍为虚拟机提供Raku对象模型和正则表达式引擎。

从源头构建

要从源代码构建NQP,只需要制作实用程序和波尔5.8或更新版本。要自动获取并构建MoarVM,您可能还需要吉特客户端。

为了获得NQP公司直接从其存储库:

$git克隆git://github.com/Raku/nqp.git

如果您没有安装git,您可以访问github获取NQP的tarball或ziphttp://github.com/Raku/nqp/tree/main然后单击“下载”。然后打开柏油球或拉链。

NQP公司可以在三个不同的后端上运行:莫尔VM,的虚拟机,以及JavaScript语言. The虚拟机JavaScript语言后端目前处于实验阶段。JVM后端需要印度第纳尔1.9(也称为JDK 9号机组)或更高。

获得NQP副本后,确定要运行的后端,并按以下方式配置和构建它:

$cd nqp$perl Configure.pl--带有moar=/path/to/moar--后端=moar,jvm$制造

如果您没有安装MoarVM,您可以配置.pl通过传递--发动机选项(而不是--带有moar):

$cd nqp美元$perl配置.pl--gen-moar--backends=moar,jvm$制造

这个制作步骤将创建nqp(不合格产品)nqp.exe文件可在当前目录中执行。然后可以使用以下命令从构建目录运行程序:

$ ./nqp你好。nqp

默认情况下,NQP搜索MoarVM可执行文件并安装到目录./install(安装)。您可以使用--前缀Configure.pl选项;这将指向安装了`moar`的目录前缀,例如`/usr`;它需要与配置MoarVM时使用的相同,除非您使用选项`--with-moar`。此可选参数应指向已安装的“moar”可执行文件;例如,`-with-moar=/usr/local/bin/moar`。

NQP构建完成后进行安装目标将把NQP及其库安装到与用于创建它的MoarVM安装相同的位置。在执行此步骤之前nqp(不合格产品)可执行文件创建者制作以上只能从NQP的构建目录的根目录可靠运行。之后进行安装可执行文件可以从任何目录运行。

如果NQP公司编译器在没有显式脚本的情况下被调用,它进入一个小的交互模式,允许从命令行执行语句。然而,输入的每一行都被视为一个单独的编译单元(这意味着子例程在定义后会被保留,但变量不会)。

故障排除

操作系统X

在OS X上,某些配置中的配置似乎失败:

第三方/libuv/include/uv-darwin.h:26:11:致命错误:找不到“mach/mach.h”文件

如果发生这种情况,那么解决方案可能如下:

$cd MoarVM/3rdparty/libuv/include$ln-s/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/mach$cd../../../。。$#再次运行配置

请注意,上面的10.9表示所使用的OSX的主要版本。小牛队使用10.9(如上所述),约塞米蒂队使用10.10。

虚拟机

如果尝试在JVM上运行NQP导致NQP声称无法保留足够的内存,则可能需要增加shell的内存限制,如下所示:

金额6144000美元

使用NQP

注:无最终用户支持对于NQP,行为可能会发生变化,恕不另行通知。它是编写Raku编译器的工具,而不是Raku程序员的低级模块。

这个示例目录是一个很好的起点循环和其他文件。操作码列在docs目录.NQP还具有中列出的内置例程docs目录。您可以使用此版本中的NQP,如果您从头开始构建Raku,它将已经安装。

JavaScript后端

在玩它/攻击它之前最好的事情是通过IRC联系pmurias#拉克irc.libera.chat.我们依赖节点.js至少10.10.0

当前构建JavaScript后端需要构建moar后端:

$perl配置.pl--后端=moar,js$制造

目前,它需要像这样运行:

$ ./nqp-js文件.nqp

如果你正在发展nqp-js型,您可能想通过--链接选项配置为具有nqp-运行时链接而不是安装

$cd src/vm/js/nqp-runtime;npm链接。$perl配置--后端=moar,js