使用Visual Studio 2013构建Perl 6

我想我上次尝试玩与Perl 6相关的事情至少是两年前了。最近,Fosdem‘15日程中的一个低调的条目引起了Perl社区的注意
最后的几块拼图终于到位了。经过多年的设计和实现,2015年将是Perl 6正式投入生产使用的年份。
从那时起,微软已经将Visual Studio 2013免费提供给个人和小团队使用。到目前为止,我一直在使用Windows SDK 7.1附带的编译器,效果还不错,但当然,我无法抗拒使用新编译器构建Perl 5.20.1的诱惑。
随后是David Farrell提出的鼓舞人心的问题:“你考虑过编译Rakudo吗?”
嗯,我没有。
我担心如果不使用*nix工具会带来很多头疼的问题,但我决定试一试。Perl 6真的准备好了吗?我能只获取源代码并构建它,不是吗?
我从Rakudo Star开始,这是一个Perl 6发行版,捆绑了一些有用的模块和包管理器。我下载了rakudo-star-2014.09.tar.gz,解压缩它并运行配置脚本
C:\Src> perl Configure.pl --gen-moar
这配置了Perl 6使用MoarVM,Perl 6可以为其构建的几个虚拟机之一。从那时起,只需遵循几个提示,很快我就有一个正在执行规范测试的perl6
。
这些确实花了一些时间。最后大约有十二个测试失败,这代表了总测试数量的一小部分。
从源码编译Rakudo
使用两个月的Rakudo Star发行版让我意犹未尽。所以我去了Rakudo的GitHub仓库,并继续检出并构建默认分支。
如果您想从源代码构建Rakudo,您将需要Git。有几个选项可供选择,包括GitHub Windows和Git for Windows。我更喜欢使用通过将Cygwin的可执行文件位置添加到我的%PATH%
末尾来添加Cygwin版本的*nixy工具。
一旦您安装了Git版本,请按照以下步骤操作
打开“VS2013 x64 Native Tools Command Prompt”。您可以在以下位置找到快捷方式:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts
(在Visual Studio 2015中,快捷方式位于:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2015\Visual Studio Tools\Windows Desktop Command Prompts
)。
运行以下命令以获取Rakudo源代码并将其构建为MoarVM
> git clone https://github.com/rakudo/rakudo.git
> cd rakudo
> perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix=C:/opt/Perl6
注意。请确保这是一个本地的Windows perl
,而不是路径中可能存在的Cygwin版本。如果您想绝对确定,请指定完整路径。例如,在我的情况下,C:\opt\perl-5.20.1\bin\perl Configure.pl ...
。您可能还需要调整--prefix
路径以适应您的系统。
运行Configure.pl
将拉入构建Rakudo所需的所有其他组件。其余的就很简单了
> nmake
> nmake test
> nmake spectest
> nmake install
只有在您真的有耐心或好奇时才运行spectest。当这些测试完成时,我有七个spectest失败。在这个阶段,我对这些并不太关心。我的目的是有一个足够好的perl6
,让我尝试(第一次!)一些Perl 6示例。
您还可以将 Perl6\bin
路径添加到您的用户路径中。如果一切如我一样顺利,尝试
> perl6 -v
This is perl6 version 2014.10-114-gf8f6feb built on MoarVM version
2014.10-17-g05b25a6
只是为了好玩
> perl6 -e "'Hello World!'.say"
Hello World!
安装 Perl 6 模块
没有利用他人的辛勤工作为自己谋利的能力,Perl 又是什么呢?
Perl 6,就像 Perl 5 一样,有一个模块系统。您可以在 modules.perl6.org 找到贡献的模块,并使用 panda 安装它们。遗憾的是,由于 File::Find 的测试失败,我无法成功启动 panda。
我不确定这是否表明了底层库的问题,或者是测试编写方式的问题。我怀疑是后者,但那要等以后再说。在 meantime,我将 探索基本语言,以更好地了解 Perl 6。
更新 - 添加了 VS2015 指令。 2016-01-04
这篇文章最初发布在 PerlTricks.com。
标签
反馈
这篇文章有什么问题吗?请通过在 GitHub 上打开一个 issue 或 pull request 来帮助我们。