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