pdf
|<<
<
>
>>|
/
---- {{#t|Contribute to Pugs}} ---- Contribute to {{#x|Pugs}} 向{{#x|Pugs}}贡献 ☺{{#author|agentzh (章亦春)}}☺ {{#date|2007.6}} ---- {{#x|☺}} {{#ci|What}} is {{#x|Pugs}}? {{#x|什么}}是 {{#t|Pugs}}? ---- Audrey Tang's {{#ci|first}} mail to p6l for {{#x|Pugs's birth}} 唐凤发送到 p6l 的 宣告{{#x|Pugs 诞生}}的{{#ci|第一封}}邮件 ---- {{img src="#" width="0" height="0"}} {{img src="images/first_mail.png" width="812" height="519"}} ---- It's {{#ci|no longer}} a {{#x|featherweight}} Perl 6. 它不再是 轻量级的 Perl 6 了 ---- {{img src="images/pugscode.png" width="692" height="540"}} ---- Pugs 是用 {{#ci|Haskell}} 编写的一个 {{#x|Perl 6}} 的实现。 它旨在实现“纲要”定义的{{#ci|整个}} Perl 6 规格。 ---- It even {{#ci|runs}} in your {{#x|web browser}}! 它甚至能运行在 你的浏览器中! ---- {{img src="images/runpugs.png" width="1032" height="639"}} ---- ...unlike how it was with Perl 5, {{#ci|none}} of these projects (Pugs, parrot, and others) is designed to be the {{#x|Official Perl}}. Perl 6 is {{#ci|anything}} that passes the {{#x|official test suite}}. -- Perl 6 Synopsis 1 和 Perl 5 不同的是,这些项目(Pugs, parrot 及其他) 中{{#ci|没有一个}}被设计为{{#x|官方的 Perl 6}}. 任何东西,只要通过了{{#x|官方测试集}}, 都是 Perl 6. ---- {{#x|☺}} {{#ci|Why}} contribute to Pugs? {{#x|为什么}}向 Pugs 贡献? ---- We {{#ci|are}} implementing {{#x|Perl 6}}! 我们{{#ci|正在}}实现{{#x|Perl 6}}! ---- {{#cm|# Hyper operators}} {{#kw|use v6}}; {{#kw|my}} {{#v|@res}} = (1,2,3,4) {{#x|>>}}+{{#x|<<}} (1,2,3,4); {{#cm|@res now is (2,4,6,8)}} ---- {{#cm|# Junctions}} {{#kw|use v6}}; {{#kw|if}} {{#v|$num}} == 3 {{#x||}} 7 {{#x||}} 9 { {{#cm|# ...}} } + {{#kw|use v5}}; {{#kw|if}} ({{#v|$num}} == 3 {{#x|||}} {{#v|$num}} == 7 {{#x|||}} {{#v|$num}} == 9) { {{#cm|# ...}} } ---- {{#cm|# subroutine signature}} {{#kw|use v6}}; {{#kw|sub}} add ({{#v|$a}}, {{#v|$b}}) { {{#v|$a}} + {{#v|$b}}; } ---- {{#cm|# modern OO support}} {{#kw|use v6}}; {{#kw|class}} Dog { {{#kw|has}} {{#v|$.tail}} {{#kw|is rw}}; {{#kw|has}} {{#v|@.legs}}; {{#kw|has}} {{#v|$!brain}}; {{#kw|method}} set_legs ({{#v|@legs}}) { {{#v|@.legs}} = {{#v|@legs}}; } } ---- {{#cm|# Rules and grammars}} {{#kw|rule}} {{#v|statement_list}} { {{#v|<statement>}}* } {{#kw|rule}} {{#v|statement}} { {{#v|<label>}}* [ | {{#v|<statement_control>}} | {{#v|<block>}} | {{#v|<EXPR>}} [{{#v|<statement_mod_cond>}} {{#v|<EXPR>}} ]? [{{#v|<statement_mod_loop>}} {{#v|<EXPR>}} ]? ] } ---- We have the {{#ci|coolest}} {{#x|people}} in the world. 我们拥有世界上最酷的人。 ---- {{#x|#perl6}} on {{#t|irc.freenode.net}} is our {{#ci|room}}! {{#t|irc.freenode.net}} 上的 {{#x|#perl6}} 是我们的房间! ---- {{img src="images/irc-cgi.png" width="1036" height="653"}} ---- {{#v|<xinming>}} GeJ: Could you ask on {{#ci|#perl}}? {{#v|<GeJ>}} Already did that, but as the summarizer often says \"Warnock applies\" {{#v|<GeJ>}} hence my desperate attempt to ask {{#x|the-best-of-the-best-of-the-best}} {{#x|of the perl community}}. ---- We have {{#x|Audrey Tang}}! 我们拥有{{#c|唐凤}}! ---- {{img src="images/audrey.jpg" width="480" height="403"}} ---- {{#v|<xinming>}} make: *** [pugs] Error 2 {{#v|<xinming>}} audreyt: I got this while compiling {{#v|<dakkar>}} xinming: me too, trying after a make distclean {{#v|<audreyt>}} {{#x|fixed}} {{#v|<audreyt>}} the Syck_stub nightmare is fixed too {{#v|<audreyt>}} there's no need to rm Syck every build, yay {{#v|<gaal>}} audreyt++ {{#v|<dakkar>}} audreyt: you're {{#ci|faster}} than my compiler! ---- {{#v|<TimToady>}} P6 is a functional language like haskell, sorta... :) {{#v|<ludan>}} TimToady: i'm not an active part of P6 :( {{#v|<TimToady>}} don't let audreyt hear you say that, or you'll have a commit bit before you know it... {{#v|<ludan>}} ok :) [snip] {{#v|<audreyt>}} ludan: danieleludovici at email.it ? {{#v|<ludan>}} audreyt: nooooooooo :) {{#v|<TimToady>}} oops, too late... ---- We have {{#x|Larry Wall}}! 我们拥有 {{#c|Larry Wall}}! ---- {{img src="images/larry.jpg" width="240" height="392"}} ---- {{#v|<TimToady>}} would you like a {{#x|commit bit}} to pugs? {{#v|<zafoeta>}} yes. that is my intention {{#v|<TimToady>}} msg me your email and I'll get one sent {{#v|<TimToady>}} to /msg rather. or just mail to larry@wall.org {{#v|<zafoeta>}} wow, i am now talking to {{#ci|larry wall}}?? {{#v|<TimToady>}} I'll never tell... {{#v|<zafoeta>}} *honoured* ---- We have {{#c|Flavio Glock}}! 我们拥有 Flavio Glock! ---- We have the {{#x|Perl 6 project manager}}! 我们拥有 {{#ci|Perl 6 项目经理}}! ---- {{#v|<fglock>}} {{#ci|obra}}: I'd like some help from the {{#x|Perl 6 project manager}} {{#v|<obra>}} Ok. What can I do for you? {{#v|<fglock>}} help making a roadmap for v6/mp6/kp6 {{#v|<obra>}} Ok. You know more about the technology than me. How can I help with the roadmap ---- We have the {{#x|p5p}} people! 我们拥有 {{#x|p5p}} 的人们! ---- {{#v|<lichtkind>}} {{#ci|dmq}}: i was really impressed from your work {{#v|<dmq>}} welches? {{#v|<lichtkind>}} dmq on {{#x|per5 regex engine}} {{#v|<dmq>}} ach, danke. {{#v|<dmq>}} :-) {{#v|<dmq>}} we all stand on the {{#ci|shoulders}} {{#ci|of giants}} ---- {{#v|☺}} {{#ci|How}} to {{#x|contribute}} to Pugs? {{#x|如何}}向 Pugs 贡献? ---- {{#tag|☆}} {{#x|Contribute}} to Pugs by writing {{#ci|Perl 6}} code 通过编写 {{#ci|Perl 6}} 代码 向 Pugs {{#x|贡献}} ---- Our {{#ci|test suite}} is in pure {{#x|Perl 6}}! 我们的{{#ci|测试集}}是用 纯的 {{#x|Perl 6}} 写成的! ---- {{#kw|use v6}}; {{#kw|use Test}}; {{#void|plan 1;}} {{#cm|# L<S04/Closure traits/INIT "at run time" ASAP>}} {{#kw|my}} {{#v|$str}}; {{#void|is}} {{#v|$str}}, {{#x|'begin'}}, {{#x|'BEGIN block'}}; {{#kw|INIT}} { {{#v|$str}} ~= {{#x|'begin'}}; } ---- {{#ci|Tag}} a group of tests with a {{#x|smartlink}}! +{{#cm|# L<S04/Closure traits/INIT "at run time" ASAP>}} ---- {{img src="images/smartlink.png" width="748" height="555"}} ---- {{img src="images/smoke.png" width="1074" height="533"}} ---- Some part of {{#x|Pugs}} is written in {{#ci|Perl 6}}. {{#ci|Example}}: {{#t|src/perl6/Prelude.pm}} ---- {{#cm|# Prelude.pm}} {{#kw|use v6-alpha}}; {{#kw|module}} Prelude-0.0.1; {{#cm|=kwid}} {{#cm|There are a couple of things going on here.}} {{#cm|* These are perl6 implementations of /builtins/}} {{#cm|* They sometimes use Pugs internals to do the job}} {{#cm|* Some of this had not been specced yet (need S29 work).}} ---- Perl 6 in Perl 6 MiniPerl6 KindaPerl6 ---- {{#tag|☆}} {{#x|Contribute}} to Pugs by writing {{#ci|Perl 5}} code ---- Pugs::Compiler::Rule {{http://search.cpan.org/perldoc?Pugs::Compiler::Rule}} ---- smartlinks.pl ---- Moritz Lenz's {{#ci|irclogs}} {{http://moritz.faui2k3.org/irclog/}} ---- {{img src="images/irclog.png" width="941" height="545"}} ---- {{#tag|☆}} {{#x|Contribute}} to Pugs by writing {{#ci|Haskell}} code ---- {{#x|Contact}} me via email {{#c|♨}} {{agentzh@gmail.com}} ---- These slides are {{#ci|powered}} by {{#x|Sporx}} and {{img src="images/grin.png" width="41" height="41"}}{{#ci|Takahashi}}{{#x|++}} ---- {{#c|Thank you!}} ☺