本周Perl 6动态(2001年8月19日至25日)
注释
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传递。
标签
反馈
这篇文章有什么问题吗?请在GitHub上打开一个问题或拉取请求帮助我们。
- More commenting... maybe?
github.polettix.it - Perl Weekly Challenge 121: Invert Bit
blogs.perl.org - Web nostalgia: MojoX::Mechanize
github.polettix.it - On the eve of CPAN Testers
blogs.perl.org - PWC121 - The Travelling Salesman
github.polettix.it - PWC121 - Invert Bit
github.polettix.it - Floyd-Warshall algorithm implementations
github.polettix.it - Perl Weekly Challenge 120: Swap Odd/Even Bits and Clock Angle
blogs.perl.org - How I Uploaded a CPAN Module
blogs.perl.org - App::Easer released on CPAN
github.polettix.it