问题标签 [rakudo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
raku - 如何开始使用 Perl 6?
我想听听您对如何开始使用 Perl 6 的看法?应该使用在 Parrot 上构建的 Rakudo 还是更好地使用 Pugs 实现?
如果是 Rakudo,最好的安装方法是什么?Parrot 的月度版本,来自 Parrot 的 SVN,其他?
scripting - 在哪里可以找到 Perl 6 的演示/示例代码?
我有自己的 Rakudo 副本,我很想试驾一下。在浏览了 Internet 之后,我发现了一些很酷的 Perl 6 代码片段,但没有完整的脚本。任何提供实用 Perl 6 脚本的站点将不胜感激。
谢谢大家,Ehtyar。
raku - 在 rakudo perl6 中使用语法时遇到问题
最简单的语法用法给我编译错误。
像调用一样src/rakudo/perl6 simple.p6
,它失败了
我尝试了许多具有相似结果的已知工作示例,因此我怀疑我的 perl6 设置不正确。
如果您在 perl6 中使用语法,请告诉我您的设置。提前致谢。
raku - 如何知道我正在运行的 perl6/raku 版本?
尝试-v
切换,我得到了鹦鹉 svn 修订版:
但是我怎么知道rakudo 版本,avx.xx
还是{some-git-hash}
?
谢谢,
performance - 随着 Perl 6 实现的成熟,我们可以期待哪些性能提升?
每次我下载 Rakudo Perl 6 的新副本时,我都会运行以下表达式来了解其当前性能:
而且速度一直在增加,但每次计算都有明显的延迟(几秒钟)。作为比较,Perl 5(或其他解释语言)中的类似内容几乎立即返回:
或在 Ruby 中(也几乎是即时的):
将表达式重写为 Perl6loop
最终的速度大约是减小范围的两倍,但对于简单的计算来说仍然是一个非常明显的延迟(超过一秒):
所以我的问题是,Perl6 实现的哪些方面导致了这些性能问题?这是否应该随着时间的推移而改善,或者这种开销是否是 Perl6 正在使用的“一切都是对象”模型的不幸副作用?
最后,loop
构造比[+]
归约运算符更快呢?我认为循环会导致比减少更多的总操作数。
编辑:
如果可以的话,我会同时接受mortiz
' 和hobbs
' 的答案。一切都被作为方法调用处理更直接地回答了为什么[+]
慢,所以人们明白了。
raku - 当我尝试使用 Rakudo 运行脚本时,为什么会出现“除以零”错误?
我刚刚构建了 Rakudo 和 Parrot,以便我可以玩它并开始学习 Perl 6。我下载了 Perl 6 书,并愉快地输入了第一个演示程序(网球锦标赛示例)。
当我尝试运行程序时,出现错误:
perl6
我在构建目录中有我的二进制文件。我在 rakudo 构建目录下添加了一个脚本目录:
如果我尝试从我的脚本目录运行一个简单的 hello world 脚本,我会得到同样的错误:
但是,如果我从它的rakudo
目录运行它。
听起来我需要设置一些环境变量,但我不知道它们是什么以及赋予它们什么值。
有什么想法吗?
更新:
在这一点上我宁愿不安装 rakudo,我宁愿只从构建目录运行东西。这将允许我在尝试不同的 Perl6 构建时尽量减少对系统的更改(Rakudo * 很快就会推出)。
自述文件鼓励我认为这是可能的:
这将在当前(rakudo)目录中创建一个“perl6”或“perl6.exe”可执行文件。然后可以使用以下命令从构建目录运行程序:
重读后,我发现有必要在构建目录之外运行脚本之前安装 rakudo:
一旦构建完成,Rakudo 的
make install
目标会将 Rakudo 及其库安装到用于创建它的 Parrot 安装中。在执行此步骤之前,make
上面创建的“perl6”可执行文件只能从 Rakudo 的构建目录的根目录中可靠地运行。执行后make install
,可以从任何目录运行已安装的可执行文件(只要用于创建它的 Parrot 安装保持不变)。
所以看起来我需要安装 rakudo 才能玩 Perl 6。
下一个问题是,rakudo 安装在哪里?README 说明了用于构建的 Parrot 安装。
我在构建中使用了该--gen-parrot
选项,看起来它安装到rakudo/parrot-install
. 所以 rakudo 将安装到我的rakudo\parrot-install
?
阅读 Makefile,支持这个结论。我跑了make install
,它确实安装到parrot_install
.
对于 Perl6 的新手来说,构建/安装过程的这一部分是不清楚的。我会看看我是否可以提供一个文档补丁来澄清事情。
在我的头顶上:
make install
在运行构建之外的脚本之前强调运行。此要求目前隐藏在段落的中间,并且很容易被浏览文档的人(我)忽略。明确说明 with
--gen-parrot
会将 perl6 安装到parrot_install
目录中。
sdl - 如何在 rakudo 中加载 parrot SDL pir 模块?
我不知道如何在 rakudo 中加载 de parrot SDL 模块。我找到了一个使用 pir 代码的示例。
但是...有什么方法可以使用 perl 代码将 pir SDL 模块加载到 rakudo 中?
perl - Rakudo Perl 中的套接字代码
我一直在尝试在 Rakudo Perl 中运行一些套接字代码(从http://github.com/rakudo/rakudo的存储库中全新构建),但IO::Socket::INET的实现似乎不完整。
我要运行的代码在这里:http: //github.com/carlins/irc-client/blob/master/lib/IRC/Client.pm
这是错误:
同样的事情也发生在由官方 tarball 构建的 Rakudo Star 上。指针?
perl - Rakudo (Perl6):还有哪些功能还不能使用?
Rakudo:有没有一个地方列出了所有还没有工作的功能?
perl - Perl6 是否支持与 Perl5 的 __DATA__ 和 __END__ 部分等效的东西?
perl6/Rakudo 是否有与 perl5__DATA__
或__END__
部分等效的东西?