本周Perl 6动态(2001年8月19日至25日)

注释

Perl 6新闻本周

闭包

方法签名

Foo::$bar

Perl 6内部(是的,有一些...)

更多模块

结束语

您可以通过发送空消息到perl6-digest-subscribe@netthink.co.uk订阅本摘要的电子邮件版本。

请将更正和补充发送到bwarnock@capita.com

又是一个平静的星期,只有52条消息。22位作者为10个主题做出了贡献。

闭包

(17篇帖子) Dave Mitchell 发起了关于闭包是否应该显式声明的讨论,即通过让词法变量不隐式地导入嵌套块。一些讨论的焦点集中在命名子程序是否是闭包闭包是否会被意外创建以及当前行为是正确的

Dave进一步提供了闭包实际工作方式的一些见解,以帮助解释他的观点

有$x

foo()是在编译时创建的闭包。在执行主{}块(但在调用foo()之前),$outer:x是undef,$foo:x是‘bar’(标准的闭包内容)。当执行foo()时,匿名子程序被克隆,此时,$anon:x是从foo的垫子中设置的,所以它得到‘bar’。

没有$x

foo不再是一个闭包——即它在其垫子中没有$x的私有副本。在克隆时,sub {$x}从$outer:x中获取$x的值,因为foo的垫子中没有$x——因此它从之前已经出局的$outer:x中获取‘undef’。

方法签名

(12篇帖子) Damian Conway 回答了上周关于子程序签名是否适用于Perl 6中的方法的提问。随后有一些后续讨论,讨论了Perl的必要类型如何严格,以及如何通过常规Perl魔法轻松规避。

Foo::$bar

(2篇帖子) Brent Dax 提问

今天我在想Perl 6,想到了一个问题:如果符号现在是变量名称的一部分,那么在Perl 6中$Foo::bar是否应该实际上是Foo::$bar吗?

Michael Schwern的思考

技术上‘bar’是完整名称‘Foo::bar’的缩写。所以‘$Foo::bar’会保留。

此外,Foo::$bar看起来很奇怪。

Perl 6内部(是的,有一些...)

(5篇帖子) Dan Sugalski 宣布他已经有了代码

我已经构建并运行了Parrot解释器和汇编器的雏形。我在700MHz Alpha EV6上大约能达到23M ops/sec。我正在对其进行足够的压力测试,以使其达到合理的发布状态,所以当我这样做的时候...

Simon Cozens提出了这个建议

顺便提一下,看到丹(Dan)和布莱恩(Bryan)对不同类型的开关/调度进行的实验,我认为将对应于PMC vtable函数(加、减等)的ops和那些不对应的ops分开是有意义的。那些对应的可以采用switch来节省函数调用,而不对应的则可以使用函数指针。这实现了与自动生成围绕vtable函数的ops包装相同的目标(减少一层间接引用),同时利用了分层ops调度循环的收益。

更多模块

(7篇帖子) 约翰·西拉库萨(John Siracusa)继续了对Perl 6模块计划的讨论,呼吁API更加统一,并深化了命名空间层次。

基莉·罗伯特(Kirrily Robert)指出她在perl5-porters列表上的工作——perlmodstyle——是为Perl 6做准备。

结束语

如果一切顺利,我们将在本周看到第三部《启示录》(拉里·沃尔)和第三部《诠释学》(达米安·康威)。目前,内森·托金顿(Nathan Torkington)正在评估SourceForge作为Perl 6代码仓库。

我希望从一开始就保持SourceForge上的代码。尽管我对SourceForge的经验不多,但还是想和有经验的人聊聊。哪些部分运行良好?哪些部分不值得努力?有什么技巧或技巧可以传授?

如果你有一些意见,请通过Nat传递。


布莱恩·C·沃诺克(Bryan C. Warnock)

标签

反馈

这篇文章有什么问题吗?请在GitHub上打开一个问题或拉取请求帮助我们。