Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-05-05

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:50 cjfields joined #perl6
00:50 cjfields pugs: class Foo { has $.x; has $.y; } my $f1 = Foo.new(:x(1), :y(100)); say $f1.x; say $f1.y;
00:50 exp_evalbot OUTPUT[1␤100␤]
00:50 cjfields rakudo: class Foo { has $.x; has $.y; } my $f1 = Foo.new(:x(1), :y(100)); say $f1.x; say $f1.y;
00:51 exp_evalbot OUTPUT[Statement not terminated properly at line 1, near "my $f1 = F"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;Perl6::Grammar;statementlist' pc 16808 (src/gen_grammar.pir:2398)␤called from Sub
00:51 exp_evalbot ..'parrot;Perl6::Grammar;statement_block' pc 13979 (src/gen_grammar.pir:1384)␤called f...
00:52 cjfields rakudo: class Foo { has $.x; has $.y; }; my $f1 = Foo.new(:x(1), :y(100)); say $f1.x; say $f1.y;
00:52 exp_evalbot OUTPUT[1␤100␤]
00:53 cjfields Hmm.... looks Rakudo requires ';' after class declaration on a one-liner.
00:53 cjfields Not so for multi-line script.
00:55 cjfields pugs: class Foo { has $.x; has $.y; }; my $f2 = Foo.new(x => 1, y => 100); say $f2.x; say $f2.y;
00:55 exp_evalbot OUTPUT[1␤100␤]
00:55 cjfields rakudo: class Foo { has $.x; has $.y; }; my $f2 = Foo.new(x => 1, y => 100); say $f2.x; say $f2.y;
00:55 exp_evalbot OUTPUT[1␤␤]
00:55 Juerd cjfields: IIRC that's in all of Perl 6 - ; is required except when } is on a line by itself
00:56 Juerd http://dev.perl.org/perl6/doc/design/syn/S04.html
00:56 lambdabot Title: Synopsis 4: Blocks and Statements - perl6
00:57 Juerd "Statement-ending blocks"
00:57 cjfields juerd: thanks for the pointer.  pugs doesn't require that.
00:58 cjfields guess that hasn't been updated.
01:00 cjfields Looks like rakudo is not catching the last Pair in the above example, whereas pugs does
01:05 cjfields rakudo: class Foo { has $.x; has $.y; }; my $f2 = Foo.new(x => 1, y => 100); say $f2.x; say $f2.y;
01:05 exp_evalbot OUTPUT[1␤␤]
01:05 cjfields pugs: class Foo { has $.x; has $.y; }; my $f2 = Foo.new(x => 1, y => 100); say $f2.x; say $f2.y;
01:05 exp_evalbot OUTPUT[1␤100␤]
01:07 cjfields I'm guessing this is Hash-related (maybe something not implemented)?
01:09 yewenbin joined #perl6
01:23 alester joined #perl6
01:31 Skapillie joined #perl6
01:37 Skapillie left #perl6
01:38 cjfields joined #perl6
01:45 syle joined #perl6
01:46 eternaleye_ joined #perl6
02:01 alester joined #perl6
02:16 gbacon joined #perl6
02:22 pravus joined #perl6
02:24 Eevee joined #perl6
03:02 alester joined #perl6
03:20 justatheory joined #perl6
03:25 eternaleye joined #perl6
03:29 eternaleye joined #perl6
03:37 pbuetow_ joined #perl6
03:46 syle joined #perl6
03:52 Gothmog_ joined #perl6
03:53 yath joined #perl6
04:20 joejaxx joined #perl6
04:43 rindolf joined #perl6
04:47 Psyche^ joined #perl6
04:47 meppl joined #perl6
05:05 Ched- joined #perl6
05:08 TimToady hmm, svnbot seems hosed now
05:22 [particle]ventus joined #perl6
05:32 Psyche^ joined #perl6
05:38 rindolf Hi all.
05:38 rindolf Hi TimToady
05:38 rindolf TimToady: is it Monday there already?
05:40 TimToady not yet
05:40 TimToady my clock reads 22:39 or so
05:50 eternaleye Holyshit I'm in the same timezone as TimToady
05:53 rindolf TimToady: so it's still a holy day.
05:53 rindolf TimToady: not that I consider Sunday a holy day.
05:53 rindolf TimToady: but that's because I'm an infidel!
06:15 belon joined #perl6
06:34 overlast joined #perl6
06:53 elmex joined #perl6
06:57 iblechbot joined #perl6
07:05 BinGOs joined #perl6
07:28 moritz_ [particle]: are you around?
08:04 renormalist joined #perl6
08:04 IllvilJa joined #perl6
08:23 masak joined #perl6
08:29 Auzon joined #perl6
08:34 masak joined #perl6
08:57 chris2 joined #perl6
09:04 alanhaggai joined #perl6
09:35 cls_bsd joined #perl6
09:36 zamolxes joined #perl6
10:27 Patterner joined #perl6
10:33 renormalist joined #perl6
10:45 wknight8111 joined #perl6
10:47 masak can someone tell me a little more about the longest token matcher?
10:47 masak what role does it play in Perl 6?
10:48 moritz_ it's the thing that makes the grammar extensible
10:48 masak in what sense?
10:48 masak I thought the fact that the grammar is introspectible makes the grammar extensible
10:49 moritz_ extensions are done by inheriting from the grammar, and adding new rules
10:49 moritz_ for example you could add one in the statement_modifier: group
10:50 moritz_ if you use the derived grammar, all statement_modifier's are ORed together
10:50 moritz_ and all of them try to match
10:50 moritz_ and if multiple match, the longest wins
10:50 masak ok
10:50 moritz_ as opposed to perl 5 regexes where the first one win that matches
10:50 masak that makes sense
10:51 moritz_ which means that you'd have to provide an order
10:51 moritz_ which makes things mucch more complicated
10:51 masak now I understand your description of it as that which makes the grammar extensible
10:52 masak however, I hear Larry talking quite a lot about this
10:52 masak what is the big challenge in implementing it?
10:52 masak I'm asking out of curiosity, not audacity
10:53 moritz_ the challenge is to define its boundaries
10:53 masak boundaries?
10:53 moritz_ there are things in Perl 6 rules that acts as "sequence points"
10:53 moritz_ and every alternatioin between two sequence points is subject to LTM
10:54 moritz_ so you have to take care that for example a twigil doesn't stop LTM
10:54 moritz_ because it would break extensibilty in most cases
10:54 masak can you give an example of a sequence point?
10:54 moritz_ code assertions for example
10:54 masak hm...
10:54 moritz_ or {*} in STD.pm
10:55 masak so, stuff with side effects?
10:55 moritz_ yes
10:55 moritz_ and you need those for constructing a meaningful parse tree
10:56 moritz_ so the hard question is "where should LTM stop?"
10:56 masak every time I read this, I understand it a little more: http://luqui.org/blog/archives/2007/01/19/perl-6-rules-elementary-compositionality-and-more-contrived-vocabu/
10:56 lambdabot Title: Perl 6 Rules: Elementary Compositionality and More Contrived Vocabulary @ The dr ..., http://tinyurl.com/6x9dum
10:57 masak basically, luqui argues that the extensibility that you described above can be bad, too
10:57 masak because it breaks old stuff in unexpected ways
10:58 masak moritz_: I'm not sure I grok the "where should LTM stop" problem yet
10:58 moritz_ that's why you explicitly need to say which grammar should parse the code
10:58 masak I'll have to think about it
11:00 smtms joined #perl6
11:00 moritz_ I'm no good at explaining this in a few lines on IRC
11:01 masak I can understand that
11:01 masak those are deep issues
11:01 masak followup q: are the assertions/{*} thingies needed to create the right parse tree because they can modify it?
11:02 moritz_ not really
11:02 masak or just because the side effects can affect whether the parse tree is output at all?
11:02 moritz_ more because they have to actually *do* something
11:02 moritz_ like a 'sub foo { ... }' has to add sub foo to the symbol table
11:02 masak right
11:03 moritz_ and a BEGIN block has to run as soon as the closing curly is parsed
11:03 cosimo joined #perl6
11:04 masak moritz_: so, how does it affect the rest of the parse whether the sub `foo` is in the symbol table or not?
11:04 masak and what does it matter whether the BEGIN block is run as soon as the closing curly is parsed, or right after the whole file is parsed?
11:05 moritz_ BEGIN blocks can alter the grammar
11:05 moritz_ and I think the symbol table can do that as well
11:05 moritz_ sub might be a bad example
11:05 moritz_ but for example it could matter if a class name is defined
11:05 moritz_ if not, it should throw a (parse) error
11:06 masak oy!
11:06 * masak starts to see the complexities of this
11:07 masak but tell me, how is it a problem for the LTM to just take a break at assertions/{*} and letting them have their fun?
11:07 moritz_ it would mean that the extensibilty is limited by implementation details
11:08 masak huh? how does that follow?
11:08 moritz_ because you couldn't extend beyond anything that contains as closure or {*}
11:08 moritz_ at least that's my humble understanding of the issue
11:08 masak such as `this_is_one_ve{*}ry_long_token`?
11:09 moritz_ I think I'll have to reread on the details of LTM
11:10 masak ich auch
11:12 Auzon Hi moritz_
11:14 moritz_ hi Auzon
11:14 Auzon I was reading some of the SoC posts, and they talk about separating the SoC commits into a separate branch or something similar. Will we need to do anything like that?
11:14 moritz_ I dunno, I tried to ask [particle] the same thing
11:15 moritz_ if we don't use a branch, at least mark all commits with a '[gsoc]' in the first line of the commit message
11:15 moritz_ then we can use the svn search to comb together all of your commits
11:16 Auzon Yeah, I figured we'd mark them somehow. It just seems silly to wait so long to merge changes back in, especially since my refactoring will help others that are adding tests.
11:16 moritz_ let's wait for [particle] and his educated opinion, I never actually worked with branches :/
11:17 moritz_ d'oh, the SVN search seems really broken
11:17 moritz_ http://moritz.faui2k3.org/svn-search/search.pl?q=author%3Aauzon
11:17 lambdabot Title: Pugs SVN search
11:17 moritz_ it lists the same revision all over again
11:18 Auzon indeed, it likes that commit ;)
11:19 moritz_ it likes every commit multiple times
11:24 moritz_ now I delete the index to build it again, and broke everything
11:25 moritz_ no, I was just too tentative ;)
11:25 moritz_ I deleted the contents
11:25 moritz_ but if I delete the whole directory, it starts anew
11:25 moritz_ YaY
11:26 * Auzon guesses that it's a bad idea to poke a rebuilding webapp
11:27 Auzon neat tool though :)
11:27 moritz_ it should be safe, because the searches don't modify the index
11:28 moritz_ it will just say that it can't find anything until it's finished
11:28 Auzon ah, makes sense
11:30 moritz_ [X] done
11:31 moritz_ but I suspect the indexer has a off-by-one error somewhere still
11:37 muixirt joined #perl6
11:38 muixirt hi
11:38 Auzon hi
11:39 muixirt rakudo: my Int $y=undef; say "Hallo Welt"
11:39 exp_evalbot OUTPUT[Type check failed␤current instr.: 'die' pc 7027 (src/gen_builtins.pir:4804)␤called from Sub '!TYPECHECKEDASSIGN' pc 7130 (src/gen_builtins.pir:4942)␤called from Sub '_block10' pc 71 (EVAL_11:27)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 (src/PCT/HLLCompiler.pir:458)␤called from
11:39 exp_evalbot ..Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 (...
11:40 muixirt pugs: my Int $y=undef; say "Hallo Welt"
11:40 exp_evalbot OUTPUT[Hallo Welt␤]
11:40 moritz_ afaict 'int' should forbid undef, 'Int' should allow it
11:41 muixirt pugs: my int $y=undef; say "Hallo Welt"
11:41 exp_evalbot OUTPUT[Hallo Welt␤]
11:42 muixirt moritz_: on my system rakudo even segfaults (0.6.1)
11:42 moritz_ muixirt: I'm buliding the current parrot right now
11:44 moritz_ echo 'my Int $x = undef' | ../../parrot perl6.pbc
11:44 moritz_ Type check failed
11:45 muixirt what os?
11:45 moritz_ muixirt: I just told jonathan, who implemented the type system
11:45 moritz_ Debian GNU/Linux 4.0 "Etch"
11:46 muixirt 32bit?
11:46 pmurias joined #perl6
11:46 moritz_ aye
11:46 pmurias moritz_: re [gsoc] isn't possible to search by nicknames?
11:47 moritz_ pmurias: of course it is, but who says that all of Auzon's commits will be soc sponsored?
11:52 Auzon school &
11:52 rindolf joined #perl6
11:55 pmurias moritz_: i assume that for the duration of SoC all/most his work on parrot/p6 will be SoC related
11:57 moritz_ pmurias: presumably, yes. But I'd still like a marker for clarity
12:02 rindolf pmurias: who?
12:03 moritz_ rindolf: Auzon is doing the "Flesh out the Perl 6 test suite" GSoC project
12:03 rindolf moritz_: ah.
12:03 moritz_ and I'm trying to be the mentor ;)
12:25 Lorn_ joined #perl6
12:51 iblechbot joined #perl6
13:17 ispy_ joined #perl6
13:28 shlomif joined #perl6
13:41 TJCRI joined #perl6
13:56 elmex joined #perl6
13:59 cmarcelo joined #perl6
13:59 alester joined #perl6
14:07 sscaffidi joined #perl6
14:14 yath joined #perl6
14:15 Gothmog_ joined #perl6
14:27 gbacon joined #perl6
14:30 jhorwitz joined #perl6
14:38 syle joined #perl6
14:41 chacha_chaudhry joined #perl6
14:41 chacha_chaudhry left #perl6
14:42 zamolxes_ joined #perl6
14:57 vaughn joined #perl6
14:58 rdice joined #perl6
15:51 pbuetow joined #perl6
16:10 rdice joined #perl6
16:12 [particle] joined #perl6
16:23 alanhaggai joined #perl6
16:32 BinGOs joined #perl6
16:32 felipe joined #perl6
16:32 Lunchy_ joined #perl6
16:32 r0bby joined #perl6
16:32 drbean joined #perl6
16:32 diakopter joined #perl6
16:53 justatheory joined #perl6
17:17 tobeya joined #perl6
17:40 schmalbe joined #perl6
18:04 pugs_svnbot joined #perl6
18:04 kyrbe joined #perl6
18:04 kyrbe left #perl6
18:12 Lorn_ joined #perl6
18:43 pugs_svnbot r20369 | lwall++ | [Cursor5] much improved debugging flags
18:43 pugs_svnbot r20369 | lwall++ | [STD] added worry so we don't always have to panic
18:43 pugs_svnbot diff: http://dev.pugscode.org/changeset/20369
18:50 lisppaste3 joined #perl6
19:49 pmichaud joined #perl6
20:01 syle2 joined #perl6
20:02 alester joined #perl6
20:05 chris2 joined #perl6
20:41 [particle]ventus joined #perl6
20:47 pugs_svnbot r20370 | lwall++ | [STD5] improved logging
20:47 pugs_svnbot r20370 | lwall++ | [STD] copy $<sym> up into expect_infix
20:47 pugs_svnbot diff: http://dev.pugscode.org/changeset/20370
20:54 moritz_ http://github.com/why/unholy/tree/master
20:54 lambdabot Title: why's unholy at master &mdash; GitHub
20:54 moritz_ ruby to python compiler
20:55 moritz_ a far friend of mine commented "He must have lost a bet, I can think of no other reason" ;-)
21:03 ting___ joined #perl6
21:04 agentz1 joined #perl6
21:17 meppl joined #perl6
21:36 araujo joined #perl6
22:07 wknight8111 joined #perl6
22:21 alester left #perl6
22:26 rdice joined #perl6
22:52 Patterner fefe++
23:13 meppl good night
23:31 drbean_ joined #perl6
23:33 drbean joined #perl6
23:46 syle joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo