Perl 6早期发行版-Rakudo Star
2013-06-08 14:57:21 阿炯

Perl 6开发团队高兴地向各位宣布Rakudo Star ── 一个可用、实用Perl 6早期发行版已于2010年7月发布,该发行版的tar源码包可以从这里下载。


This is Rakudo Star, a useful, usable Perl 6 distribution for "early adopters".

Rakudo Star 着重打造Perl 6的一个尝鲜版本。我们知道它仍然包含缺陷,也慢于其应有的速度,且未实现Perl 6语言标准中的部分高级特性,但是 Rakudo Perl 6 之现状恰说明或为其开发应用程序或将其作为一门新型编程语言来探究的可行性(和乐趣)。一系列的"Star"发行版将力使Perl 6更加接近程序员,扩展Perl 6代码基础,以及赢得最终用户对Perl 6语言本身及其Rakudo实现的额外反馈。

在Perl6的世界里,我们将语言("Perl 6")和语言的特定实现(例如"Rakudo Perl")加以区分,"Rakudo Star"发行版由Rakudo Perl 6编译器的发行版,Parrot虚拟机2.6版,各式模块,文档,以及其他从Perl 6社区收集起来的资源所共同构成。我们拟将Rakudo Star按月发布,同时也将不时地发布反映重大变更及缺陷修复的特别版本。

本Rakudo Star发行版所含部分Perl 6新酷特性:
 Perl 6语法("grammar")和正则表达式("regexes")
 正式参数列表和签名("signatures")
 元操作符
 进阶类型("gradual typing")
 强大的对象模型,包括角色("roles")和对象("objects")
 惰性列表求值("lazy list evaluation")
 多重分派("multiple dispatch")
 智能匹配
 边界("junctions")和自动线程化("autothreading")
 操作符重载(目前所支持的形式有限)
 内省("introspection")
 柯里化("currying")
 丰富的内置操作符、函数和类型
 互动的"读取-求值-打印"循环("read-evaluation-print loop, REPL")
 代码点("codepoint")级的Unicode支持
 可恢复异常("resumable exceptions")

本Rakudo Star发行版无法正确处理部分Perl 6关键特性,将在后续版本中修正。这样我们便不会将Rakudo Star作为"Perl 6.0.0"或"1.0"版。上述特性包括:
 嵌套包定义
 二进制对象,原生类型,pack和unpack
 指定类型的数组
 宏
 state 变量
 线程和并发
 非代码点级别的Unicode字符串
 前、后约束,以及其他phasers
 REPL中readline对Unicode输入的支持
 正则表达式字符范围<[...]>中的反斜杠转义
 非阻塞I/O
 Synopsis 9的大部分
 perl6doc和POD工具

我们于各处着手,使得Rakudo足够智能地告知程序员某特性尚未实现,但始终有所疏漏。欢迎提交有关功能缺失或实现不完整的缺陷报告。

有关Perl 6更多信息的链接,敬请查阅http://perl6.org,包括文档、程序示例、教程、参考材料、标准文档,及其他支持资料。

Rakudo Star 捆绑了若干模块,本发行版所含的模块列举如下:
 Blizkost - 启用一些在Rakudo Perl 6中用到的Perl 5模块
 MiniDBI - 一个Rakudo Perl 6简单的数据库接口
 Zavolaj - 从Rakudo Perl 6中调用C库函数
 SVG、SVG::Plot - 创建可缩放向量图形("scalable vector graphics, SVG")
 HTTP::Daemon - 一个简单的HTTP服务器
 XML::Writer - 生成XML
 YAML - 转储Perl 6对象为YAML
 Term::ANSIColor - 利用ANSI转义序列产生彩色屏幕输出
 Test::Mock - 创建mock对象并检查什么方法被调用
 Math::Model - 描述并运行数学模型
 Config::INI - 解析并编写配置文件
 File::Find - 在给定的目录中查找文件
 LWP::Simple - 从Web中获取资源

这些并不算作"Perl 6核心模块",随Perl 6模块的开发成熟,Rakudo Star的未来版本中很可能将捆绑另一组模块,捆绑模块的推荐准则将随时间推进制定,同时其他Perl 6发行版可选择不同的模块和准则。有关Perl6模块的更多信息可于http://modules.perl6.org 找到。

Rakudo Star同时包含一份Perl 6指南读物的草稿──参看tar源码包中"docs/UsingPerl6-draft.pdf"。

开发组谨向所有使Rakudo Star顺利发布成为可能的贡献者、赞助者表示感谢。如果你想参与贡献,请参考http://rakudo.org/how-to-help,或向perl6-compiler@perl.org邮件列表提问。

Rakudo Star 在正常情况下将按月,或按缺陷修复、大幅改进之需发布,下一个Rakudo Star版本的发布日期拟定于2010年8月24日。

关于Perl 6的一些趣闻
Perl 6诞生于十年前,2001年-2004年是成形阶段,2005年唐凤发起了Pugs项目,这是Perl 6语言的首个完整实现;Pugs用Haskell编写,主要用于测试目的,加上唐凤个人的原因(他在2005年进行了变性手术,2007年突发急性肝炎),Pugs项目因此中断。Perl 6语言实现的努力转移到另一个项目Rakudo上。

早在2005年,Patrick Michaud就已着手在Parrot虚拟机上实现文法引擎(PGE)及编译器工具集(PCT)。到2007年,Patrick开始正式实现Perl 6语言;该计划在2008年初命名为Rakudo(乐土),Rakudo的开发再次活跃了社区。2008年以来,Rakudo逐渐领先其它实现,完成度甚至超越了Pugs。Rakudo Star是Rakudo的一次重要发布,针对的是Perl 6的早期使用者,仍然有大量bug,速度也不尽人意,还有部分Perl 6语言规格尚未实现,但它为程序开发提供一个切实可行的工具,让开发者能体验下新的语言。


Larry Wall 已批准将 Perl 6 重命名为 Raku

Perl 6 最初被认为是 Perl 的下一版本,花费很长时间才能成熟并有了初始版本。而与此同时,对 Perl 5 感兴趣的人希望夺回统治并继续开发Perl 5。

两种编程语言完全不同以至于在源码级别不能做到兼容,可是许多人认为两者只是版本号上有所不同,这会导致损害世界上 Perl 5 和 Perl 6 的形象。由于“ Perl” 一词在世界上仍然被视为“ Perl 5”,因此“ Perl 6”更改其名称似乎很公平。

拉里(Larry)在 PerlCon 2019 活动的视频消息中表示,两种姐妹语言(编者注:为什么不是兄弟)已经古老且聪明足以照顾自己,因此这种名称更改将不再需要 BDFL 的批准。而最新的消息显示 Larry Wall 已经批准将 Perl 6 命名为 Raku ,目前项目组已为之创建了一个 PR, 目前该 PR 还在​开放讨论阶段。

编者注:拉里·沃尔(英语:Larry Wall,1954年9月27日-),生于美国加州洛杉矶,是程序员、系统管理员、语言学家和作家。他最为人知的地方是他设计的编程语言Perl。


参考链接
https://github.com/rakudo/

http://rakudo.org/announce/rakudo-star/2010.07

最新版本:

官方主页:http://parrot.org/
该文章最后由 阿炯 于 2019-10-12 14:45:25 更新,目前是第 2 版。