Chinaunix

标题: perl6新进展 [打印本页]

作者: kingwmj    时间: 2011-11-21 12:27
标题: perl6新进展
perl6 新进展
  1. November 20, 2011

  2. Jonathan Worthington (6guts) — Rakudo: this week’s release, and the next Rakudo Star

  3. On Thursday, tadzik++ cut release #46 of Rakudo. This time, we named it for the London Perl Mongers, organizers of this year’s outstanding and very well attended London Perl Workshop. I’d not been to one for a couple of years, and I’d forgotten what a fun event it is. This one felt better than ever. So, thanks folks! :-)

  4. So, what was in the Thursday release?

  5. Big Integer Support: the Int and Rat type now support very large values without loss of precision/coercing to floating point. This means you can do such things as compute factorial to 1000 (which stringifies to 2568 characters, by the way :-)). You don’t need to get any libraries set up for this – we bundle a slightly extended libtommath with NQP, and it’s exposed by some ops and an extra 6model representation, which the Int type inlines into its body (so Int is still a single garbage collectable object at the VM level). Thanks go to moritz++ for doing much of the work on this.
  6. Protoregexes with LTM: it’s taken us a lot longer to get protoregexes back into the nom development branch than we’d initially hoped. Here’s the story. A while ago, pmichaud++ worked on real Longest Token Matching support – driven by an NFA – in a re-development of the regex engine. We’d only ever had “cheating” protoregexes in Rakudo before – ones that could work on literal prefixes, but nothing more. The improved engine is a really nice piece of work – amazingly little code for what it does, and very elegant. Sadly, pmichaud has not been able to work so much on Rakudo of late, so the work lay not-quite-done and unmerged for a while. Just ahead of the release, I picked it up, and found it was far enough along and sufficiently easy to get in to that I could get a first cut integrated in time for this month’s release. Since the release, along with diakopter++, I’ve been hacking away at regexy bits, so there’ll be many improvements in this area in next month’s release. It was nice to get something in place for this month’s, though.
  7. CATCH improvements: mls++ did a bunch of work that made our handling of CATCH blocks far, far more in line with the Perl 6 specification. Naturally, this makes them much more useful; you now can write when blocks in your CATCH, and any exceptions you don’t match will get re-thrown to the next handler. Write a default block to swallow everything. We also do the stack unwinding at the correct point now. Great work!
  8. Improved MAIN argument parsing: japhb++ has been leading the way on improving our support for the MAIN subroutine, including nice usage message generation. This is a really nice Perl 6 feature for writing command line applications, so it’s good to see work here. :-)
  9. 6model REPR API 2: this is very much a behind the scenes thing, and deserves a post of its own for those who follow the blog in order to know more about metamodel design. However, in short: I re-worked the REPR API in 6model somewhat, and updated the various representations to use it. The immediate result was that we could efficiently have Perl 6′s Int type do big integer stuff. However, it’s also the foundation for some forthcoming work on compact structs and packed arrays. Hopefully at a user level, though, you’ll notice nothing at all about this change; it’s all guts. :-)
  10. Various other fixes and improvements: bugs fixed, performance improved, missing stuff implemented…we had quite a few smaller, but very worthwhile things done in this release too.
  11. So, this is great, but the next question on everybody’s mind is: when is a nom-based Rakudo Star release coming out? The answer – epic disasters aside – is “December”. Yes, next month. Two big things have happened in the last week: grammar support in the nom development branch drastically improved, and this unblocked tadzik++ to get our ecosystem tools (for module build and installation) working with it. The focus from here is…

  12. Native call support: get our support for loading and calling into C libraries re-established. The NativeCall module basically worked…apart from it made a load of guts-y assumptions that don’t hold true any more, and was somewhat restricted in what it could handle (for multiple reasons). Now we have 6model and native type support, we can do far better. My task for over the next week is to get our native call support back in shape, all being well with a bunch more features.
  13. More regex work: while we’ve come a really long way in recent days – we have many things working that never worked in the previous development branch – there are still some issues to address, including one nasty backtracking issue.
  14. Fixing Modules: quite a few modules already work just fine on nom. Some block on native call support, others on the remaining regex stuff. Others will point to bugs or will be using outdated semantics or relying on previous bugs. tadzik++ has figured out how to automatically run through the module ecosystem, build modules and run their tests, so we can get a good sense of what needs doing.
  15. And, of course, the usual round of feature addition, bug fixing and performance work.

  16. And, with that, it’s back to the hacking. :-)
复制代码

作者: Perlvim    时间: 2011-11-21 12:52
Jonathan 的设计思路成为主要方案,是个让人振奋的消息,他还有个 Parrot + Perl5的项目。
这次改动较大,虽然需要很多变化, 但是朝正确的方向前进,希望 Perl 6 可用性更强,Perl 5  的内核更加精简稳定。
作者: kingwmj    时间: 2011-11-21 17:33
回复 2# Perlvim

我虽然经常看perl6的进展.但我水平有限,常看不出这些改进对于整体发展的意义是大是小.你的点评很好,让我又多了解了一些.
作者: gaoyang636    时间: 2011-11-21 21:05
我也对perl6很感兴趣,但是不清楚perl6分的不同的分支啥意思,也不知道为啥这么难产……
作者: rubyish    时间: 2011-11-22 02:21
是个让人振奋的消息
作者: lxb456900    时间: 2011-11-22 12:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: Perlvim    时间: 2011-11-22 23:15
大家究竟期待什么样的Perl 6呢?
更快的运行速度?
更酷更炫的语法?
大家都说说。
作者: zhlong8    时间: 2011-11-22 23:24
基本的类的语法、正则表达式、FFI,对于网络、多线程、unicode 的完整支持。至于实现完整性和速度都可以将就的其实
作者: kingwmj    时间: 2011-11-23 08:40
回复 7# Perlvim

我希望有更炫的语法.  速度麻,和perl5差不多,或是稍慢点也行.
作者: 小perl    时间: 2011-11-23 09:04
回复 7# Perlvim


    希望它处理中文不再转码了,完全支持unicode
作者: nsnake    时间: 2011-11-24 17:29
要适合目前多核的情况,原生的多线程支持要到位
语法的炫丽比不过实际的使用,毕竟要大多人接受才能继续发展
能向下兼容5
更好的开发环境和工具
作者: heidern    时间: 2011-11-30 14:49
多线程的完美支持才是最重要的 否则很难用在核心上
作者: wxlfh    时间: 2013-02-04 12:30
希望Perl6对多核CPU、多个CPU和多线程支持得更好。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2