答案 0 :(得分:6)
截至2014年底,对于大多数人来说,Inline::Perl5是在P6中使用P5代码的方式,反之亦然,包括P6中的use
P5库。< / p>
Inline :: Perl5在MoarVM中适当地打包并包装一个常规的perl5解释器,以便P6编译器Rakudo可以与P5互操作。该组合已经支持:
use
Perl 5模块,包括在Perl 6中使用XS的模块九,该模块的作者,在他开始使用Inline :: Perl5之前从未编写过P6代码,已做过一些在youtube上可用的演示文稿:
正如teodozjan的回答中所讨论的,v5项目是一种非常不同的技术,具有非常不同的用例,大多数(但并非完全)与本文回答的SO问题无关。
v5是Perl 5解释器/编译器的从头开始重新实现。 v5目前正在解析和编译足够纯的Perl 5代码,以便在常规perl5测试套件中传递几千个测试,并传递给use
一些简单的Perl 5模块。它最初是在NQP(2013年)中编写的,然后在2014年移植到完整的Perl 6。
该模块的作者FROGGS在制作其他更紧急的P6作品时,大多暂停了它的开发。但它已经是一个重要的项目,推动了各种Perl 6功能,特别是slang
功能。长期的v5可能会产生一个全新的Perl 5实现。 (但没有bug for for bug兼容性或(直接)支持XS。)
FROGGS已就v5做了一些演示,包括20 minute video introducing v5 in 2013。
九建议v5可用于向Inline :: Perl5添加糖,而Inline :: Perl5也可以为v5提供一些额外选项,因此这两个项目最终可能会相互帮助。
第一个基于Rakudo的P5 / P6互操作项目是&#34; blizkost&#34;。该项目允许在Parrot VM(大约2010年)的旧版本的Rakudo上执行单个字符串的Perl 5代码。我认为它不适用于当前版本,并已被Inline :: Perl5淘汰。
答案 1 :(得分:1)