»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
zaslon lolperl6adventhazblogged! perl6advent++ 'Day 7: Looping for fun and profit': perl6advent.wordpress.com/2009/12/0...nd-profit/ 00:00
00:02 Khisanth left 00:06 Khisanth joined
jnthn mathw++ # nice post 00:08
zamolxes yep 00:09
00:18 nihiliad left 00:20 Grrrr left 00:25 Wolfman2000 left 00:27 arthur-- joined 00:28 arthur-_ left
Tene The big issue I'm running into whenever I think about dealing with $! and fail and friends is that it seems to require the ability to have at-scope-exit hooks. 00:29
Maybe I could just fake it...
00:29 lestrrat is now known as lest_away 00:32 Grrrr joined
Tene error in the last p6advent post... the loop says "$i, $j".say, but the output has no commas in it. 00:34
I would also change the map and the hyper to something like [email@hidden.address] *.id" or "@contacts>>.phone-number" 00:36
dbrock wow, *.id 00:39
that's beautiful
does for 1, 2, 3 *.say work? 00:42
00:42 masak joined
masak greetings, perl6lings. 00:43
dbrock and what about the hyphen in the method? was that a typo, Tene?
Tene dbrock: no, why would it be? Perl 6 allows - in identifiers.
rakudo: sub foo-bar { say "Foo Bar" }; foo-bar;
p6eval rakudo 7ef386: Foo Bar␤ 00:44
masak likes that a lot
Tene rakudo: for 1, 2, 3 *.say; # I don't expect this to work.
p6eval rakudo 7ef386: Use of uninitialized value␤␤Could not find non-existent sub for␤in Main (file src/gen_setting.pm, line 324)␤
Tene I don't know if that's supposed to work, but I'd be a little surprised.
dbrock Tene: whoa!!! 00:45
that's awesome!
Tene dbrock: what is?
dbrock that hyphens are allowed 00:46
00:46 hcchien left
dbrock haha, www.google.se/search?q=perl6+hyphens 00:46
00:47 orafu left
masak drbean: Larry Wall hesitated long before allowing hyphens and apostrophes in identifiers. 00:47
00:47 orafu joined
dbrock (look at the first hit) 00:47
masak: ah, apostrophes too??
I am so happy right now 00:48
masak ah, that's you! :)
Tene Ah, yes.
dbrock masak: yeah :D
masak drbean: but he finally allowed it after realizing that only two places in the test suite were affected by the change.
dbrock haha
masak drbean: well, in that case -- welcome back! :)
dbrock awesome
thanks :)
masak we've missed you. :)
oh, and tell your brother that Perl 6 is, like, the ultimate language nowadays :P
dbrock haha, I will :D 00:51
are hyphens and underscores equivalent, or are foo-bar and foo_bar separate identifiers?
masak they're separate.
00:51 hcchien joined
masak rakudo: my $a_b = 23; my $a-b = 42; say $a_b, $a-b 00:52
p6eval rakudo 7ef386: 2342␤
allbery_b sees golfing and goes back to sleep :)
00:53 dbrock left 00:54 dbrock joined
masak *whoa*! 7000 views on the advent calendar yesterday! how did that happen? :) 00:54
Tene slashdot
masak really?
wow, we did it!
Tene I haven't felt up to reading the /. comments thread yet.
Yes.
masak we hit slashdot before April, just like I hoped. 00:55
the /. comments are wont to be totally irreverent.
hohoo, all the rest of the week looks like noise next to the slashdot peak.
hope some of the readers stay on.
colomon: oops, were you editing mathw++'s post just now? 00:57
dbrock that advent calendar is such a good idea :D 00:59
Tene masak: I've been doing a lot of thinking about fail, Failure, exceptions lately... hopefully going to try an impl early this week in ng. 01:00
masak Tene: cool!
Tene: I'm currently working on finishing up week 20 of Web.pm.
I got in an important Squerl change yesternight. tonight I'll have a look at Astaire and see if I can beat that into shape. 01:01
then I'll finish up the pastebin and, if I haven't collapsed by then, I'll make a small blog engine.
01:01 mj41_ joined
dbrock rakudo: my $a'b = 123; say $a'b 01:03
p6eval rakudo 7ef386: 123␤
01:03 ashizawa left
dbrock rakudo: my $a, $a' = 1, 2; say $a', $a 01:04
p6eval rakudo 7ef386: Confused at line 2, near "' = 1, 2; "␤in Main (file <unknown>, line <unknown>)␤
dbrock rakudo: my $a' = 123; say $a'
p6eval rakudo 7ef386: Confused at line 2, near "' = 123; s"␤in Main (file <unknown>, line <unknown>)␤
dbrock hmm, final apostrophes are not allowed?
01:05 leedo joined, leedo left, lest_away is now known as lestrrat
carlin dbrock: can only contain hyphens or apostrophes if the following character is a letter 01:06
masak for safety reasons, mainly. 01:07
dbrock hmm... that defeats the purpose I had in mind for apostrophes 01:08
but I guess it's nice that you can contract words in identifiers...
masak rakudo: my $don't-try-this-at-home; say 'alive'
wayland76 masak: developers.slashdot.org/story/09/12...?art_pos=2
p6eval rakudo 7ef386: alive␤
masak wayland76: yep, reading it already. 01:09
wayland76 Great. Needs more comments, though :)
masak in the Slashdot comments, you see the Perl 5 people struggling, saying "Perl 6 is NOT Perl 5" over and over again to a misunderstanding public.
avar wrt perl6advent it would be nice if there were twitter.com/perl6advent to announce :)
wayland76 How do we fix dev.perl.org/perl6/ ? 01:10
masak avar: yes, maybe. right now we use twitter.com/rakudoperl for that, because people have tuned into that already. 01:11
wayland76: "fix"?
01:11 nihiliad joined 01:12 ashizawa joined 01:15 ashizawa left
masak I can't help but admire chromatic's persistence: slashdot.org/comments.pl?sid=146870...d=30347374 01:15
every other tweet or comment 01:16
or at least many of then, are this message.
it kinda shows how difficult it is to fight a common misconception.
01:17 Wolfman2000 joined, mj41 left, ashizawa joined
Wolfman2000 ...good piece of advice. The next time you use your laptop, remember to plug it in once you are done using it away from the outlets. 01:17
01:17 hcchien left, colomon left, colomon joined
dbrock I told my brother about the hyphens 01:17
wayland76 masak: It's not as bad as I thought it was, but I guess I figured that www.perl6.org should go in that list at the bottom of the page.
dbrock his response: 01:54 <mikael> oh snap 01:54 <mikael> perl6 4life 01:18
masak wayland76: that's a good point, yes.
dbrock: \o/
dbrock later on, after some random discussion: 01:19
02:13 <mikael> I wonder how many percent of /dev/urandom is valid perl
02:13 <dbrock> hahahahahha
02:13 <mikael> you could prolly calculate that if perl's syntax weren't non-computable :D:D
02:13 <mikael> or AI-complete or whatever it is
wayland76 Actually, you could have a go at it. perl -c
01:22 hcchien joined
masak drbean: just to be clear, the non-parseability of Perl is a misconception. it's no less parseable than Python or Ruby, say. 01:24
sorry that was for dbrock :/ 01:25
dbrock: modernperlbooks.com/mt/2009/08/on-p...erl-5.html
01:27 jferrero left
masak I'm backlogging over foudfou's comment about semicolons. I've had a similar idea for a grammar-enhancing module: create one which gives Perl 6 a Python syntax. 01:31
I'm not saying I'd use it myself, but it'd be a nice experiment. :)
01:31 agentzh joined
carlin masak: heh, I was going to joke about "use Python;" but decided against it given the discussion going on at the time 01:32
masak :)
this is why I'm excited about slangs, macros and Perl 6 parsing itself. :) 01:33
the whole playing field will change. forever.
01:33 colomon left
arnsholt Indeed. I have an inkling of a plan to abuse that myself =) 01:34
carlin We could have a whole library. use Python; use Ruby; use Lisp; ... imagine them all in use at different points of the same program ... 01:35
01:35 colomon joined
masak carlin: at some point, it's probably better to actually switch to the language and not just its syntax. :) 01:37
Tene masak: i have plans to make that pretty trivial for any PCT-using language on Parrot. 01:38
Q:LOLCODE <parsed using the lolcode grammar>;
masak Tene: make what pretty trivial?
ah.
Tene Q:scheme ( ... )
masak Tene++
01:44 ihrd joined
dbrock that would be so cool 01:44
masak: haha, “A very clever, very careful static parser could still replicate the complex heuristic in the Perl 5 parser and parse code appropriately.” 01:45
masak it'd take a whole lotta work. 01:47
but it's possible.
Tene rakudo: my $i = 1; my @a = 1,2,3,4,5; say @a[$i-1]; 01:49
p6eval rakudo 7ef386: 1␤
Tene "The fail function responds to the caller's use fata state." 01:50
This doesn't actually specify whether "use fatal" is inherited by called functions. 01:51
sub foo { use fatal; bar() }; sub bar { baz() }; sub baz { fail() }; # does the fail() call throw the exception, or return an unthrown exception? 01:52
I'd assume and hope the former.
masak then pretend that's the case until someone says it isn't. 01:53
Tene okay, lemme start by adding a fake &fail that makes the sub return Mu 02:01
diakopter rakudo: say 7; BEGIN { say 6; BEGIN { say 3 }; BEGIN { say 5; BEGIN { say 4 } } }; say 8 02:11
p6eval rakudo 7ef386: 3␤4␤5␤6␤7␤8␤
Tene Bleh. i really need to clean up src/builtins/control.pir. We should be building the Perl6Exceptions on catch, not on throw.
Wolfman2000 diakopter: ...doesn't look like that went in order
masak Tene: what of the case where I want to throw an Exception object? 02:12
Tene masak: that shouldn't be a special case. 02:15
02:15 ihrd left
masak maybe I misunderstood. is the Perl6Exception class a Parrot class? it probably is, now that I think about it. 02:16
Tene masak: the issue is that next and die and friends are making a Perl6Exception class and stuffing it into the payload of the parrot exception... that doesn't scale, though, and leads to failures and weird behavior when you get exceptions from other operations. 02:17
for example, 1/0; will throw a parrot exception, but if you're expecting its payload to be a Perl6Exception object, you'll be disappointed.
So in ng right now, we build a new Perl 6 Exception object whenever we catch a parrot exception.
masak ah, ok. 02:18
Tene no more parrot types occasionally leaking through.
next/last/redo/break/die aren't updated to the new world order, though.
lemme see if this fail works...
Wolfman2000 Tene: I assume new world order is ng? 02:22
Tene Wolfman2000: I was talking about the implementation of CATCH and friends in ng. 02:23
Wolfman2000 Tene: oh
dalek kudo/ng: e71334b | tene++ | src/builtins/control.pir:
Initial incomplete fake implementation of &fail
Tene moritz_: I pushed a version of &fail that makes the sub return Mu
Wolfman2000 is not fully paying attention: transfering websites to a new server...that apparently wants to keep Apache 1.3 instead of go to Apache 2.0 02:24
*shrugs* the things one has to do to save money
Tene Ack, i did it wrong!
That 'Mu' evaluates as true? 02:25
Wolfman2000 Can Mu ever be true? 02:27
rakudo: Mu.defined
p6eval rakudo 7ef386: ( no output )
Wolfman2000 err
rakudo: say Mu.defined
p6eval rakudo 7ef386: 0␤
masak rakudo: say ?Mu 02:28
p6eval rakudo 7ef386: 0␤ 02:29
Tene rakudo: my $a = Mu.new(); say 'foo' if $a;
p6eval rakudo 7ef386: foo␤
Tene That's what I did.
I returned a new Mu instead of Mu itself.
dalek kudo/ng: 77bb074 | tene++ | src/builtins/control.pir:
&fail should definitely not be returning something that evaluates as true
masak Tene: it might be that 'if' still doesn't boolify.
diakopter whoa
tweeted by someone with 1.3M followers: twitter.com/timoreilly/status/6418183386 02:30
Tene masak: it works properly when I return the Mu protoobject instead, so I'll leave that for now, and come back to it later.
masak diakopter: whoa! 02:31
that's as good as slashdot. maybe better.
Tene nice
masak we're famous!
diakopter Retweeted by you and 3 others
Tene 4! 02:32
masak 5!
diakopter perlchina.org/advent/2009/WebScraper.html 02:34
Tene Wow, it's being retweeted at a factorial rate! 02:35
carlin Does wordpress show the referrer, so we could compare traffic from slashdot vs traffic from twitter? 02:37
02:45 envi^home joined
masak carlin: perl6advent.wordpress.com/wp-admin/...page=stats 02:45
63 views from twitter, hundreds from slashdot so far. 02:46
Tene carlin: yes 02:48
71 from twitter now
hundreds from /. so far today. 2.7k from /. yesterday 02:49
well, from the /. main page, at least
looks like >3.5k total from /. yesterday
masak just to be clear what has happened: we've launched a blog which has gone from 0 to 7000 views per day in one week. :)
I think that's a metric showing that people care about Perl 6. 02:50
carlin masak: I can't access that 02:51
That people care but possibly didn't know where to look
02:52 quantumEd left
masak carlin: ah, too bad. :/ 02:52
carlin: ah, you're not a blog author. I guess I just assumed you were. 02:53
02:53 JimmyZ joined
masak Tene: yours is the first undecided blog post topic (on Saturday). do you have a guess what you'll write about? 02:57
02:59 drbean_ joined
Tene masak: no idea. 03:00
03:01 drbean left
masak Tene: perhaps you want my given/when topic? since it has exception, which you've been helping with. 03:01
Tene Nah. Thanks, though. 03:03
I guess I could do exceptions.
rakudo doesn't have NEXT blocks, though.
03:03 astrojp_ left
masak nor next LABEL. 03:04
Tene I guess I could talk about "use fatal" and &fail, if I get it working in ng.
masak hm. 03:05
Tene I'd rather stick with what works in master, though.
masak all blog posts so far have been about things working in master.
Tene okay, so here's the plan... 03:06
masak :) 03:07
Tene I write about "use fatal" on saturday and then about macros on the next day, and then revoke my edit access on that blog, so I'm forced to implement them in ng before they're posted.
what could possibly go wrong?
masak I see no flaws in that plan.
Tene Great.
Okay, so where do I go in the wp admin to set my display name to "Carl Masak"? 03:08
masak Tene: maybe you could write about regexes? :)
oh wait, that's PerlJam in a few days. 03:09
PerlJam: regex AND grammar? are you quite sure?
03:09 vamped joined
Tene I wonder if jnthn is covering roles in "Writing Perl 6 with class" 03:10
masak PerlJam: S05 is the second hugest synopsis, after S02 which covers 'everything'.
Tene: he has one about parametric roles too, so he might just mention roles in the first post.
oh wait, S03 is larger than S05 as well. but still.
rakudo: say 4 »+« 5 03:13
p6eval rakudo 7ef386: 9␤
03:14 stuuf joined
masak stuuf: welcome :) 03:14
rakudo: say 4 »+« 5 # this works
p6eval rakudo 7ef386: 9␤
masak stuuf is a guest from the #perl channel. 03:15
stuuf eval: (0..10) »*» 2
err
p6eval: say (0..10) »*» 2
Wolfman2000 stuuf: you most likely want Rakudo
rakudo: say (0..10) »*» 2 03:16
p6eval rakudo 7ef386: Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤in Main (file <unknown>, line <unknown>)␤
arnsholt rakudo: for 1,2,3,4,5 -> $i, $j { say "$i, $j" }
p6eval rakudo 7ef386: 1, 2␤3, 4␤StopIteration␤in Main (file <unknown>, line <unknown>)␤
stuuf rakudo: say((0..10) »*» 2)
p6eval rakudo 7ef386: Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤in Main (file <unknown>, line <unknown>)␤
masak rakudo: say (0..10) >>*>> 2
p6eval rakudo 7ef386: 02468101214161820␤
stuuf rakudo: say((0..10) >>*>> 2)
p6eval rakudo 7ef386: 02468101214161820␤ 03:17
masak stuuf: there's a unicode bug affecting some of the >> operators.
stuuf ah
stupid ascii
masak I bet it works in ng.
rakudo: class A {}; class B {}; my @c = (A, B, A, B, A, A); for @c -> A $a, B $b? { say $a }
p6eval rakudo 7ef386: ( no output ) 03:18
masak locally, that gives "Nominal type check failed for parameter '$b'"
it's a known bug.
ng: class A {}; class B {}; my @c = (A, B, A, B, A, A); for @c -> A $a, B $b? { say $a }
p6eval ng 7fc485: sh: ./perl6: No such file or directory␤
masak :(
stuuf rakudo: say [+] (1..5) »*« (6..10)
p6eval rakudo 7ef386: 130␤
stuuf i'm sure someone will discover some *useful* applications for these operators eventually :P 03:19
vamped masak: does that bug just affect «», or also some of << >> ?
masak stuuf: I'm not sure if you're kidding or not. there are already loads of useful applications.
stuuf i know
masak vamped: I don't remember exactly. but it seems << >> works more often. 03:20
03:20 mrsaturns joined
masak vamped: ask colomon, he's the expert. :) 03:20
stuuf i was just reading the advent calendar
and i've definitely been in situations where i needed to do something like »+» and thought map {} was too verbose 03:21
masak [+] and [\+] are very useful, too.
stuuf what does \+ do? 03:22
masak [\+] gives a list of incremental sums.
[\+] (1,2,3,4) == (1,3,6,10)
stuuf ah
arnsholt masak: At this point, my Lisp hacker friend would probably say something like "Oh, it's mapcan()!" ^^ 03:23
masak Lisp hacker friends are welcome, too.
arnsholt (Except it's not mapcan(), it's something else)
masak we'll even have hygienic macros eventually. :) 03:24
arnsholt Really? That'll be awesome
But I should've been in bed several hours ago
G'nite
masak o/
jonathanturner masak: do you know where all these operators are defined? Like, are they in a standard library or something? 03:25
Tene s/eventually/maybe sooner than you think/ 03:26
masak jonathanturner: if I knew why you're asking that question, I might help answer it better.
jonathanturner masak: just thinking about it from an engineering point of view. maintaining a lot of opcodes sounds like a lot of work if they don't build on each other
masak: so I was wondering if they did, and if they did if they were stored in a "prelude" or something like that 03:27
masak jonathanturner: as for [+] and >>+<< and the like, they're not explicitly defined, but the metaoperators [] and >><< are.
Tene jonathanturner: the metaoperators are defined separate from the operators
jonathanturner masak: the metaoperators take an operator as an argument? 03:28
03:28 zmjb1 joined
masak jonathanturner: yes. 03:28
jonathanturner masak: I was also thinking of [\ +]
masak jonathanturner: if you 'close on' all the operators that the metaoperators define, you end up with a set of infinite cardinality.
stuuf how long until they add metametaoperators? 03:29
masak jonathanturner: [\ ] is another metaoperator.
Tene metaoperators can apply to operators
erm
to metaoperators
masak stuuf: well, since metaoperators generate operators, there's not much need.
jonathanturner that's a strange one
Tene @a >>*=<< @b; # I think is an example in the synopses. 03:30
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
jonathanturner if you had a list of lists, could you do <<<<+>>>>
masak jonathanturner: yes.
Tene jonathanturner: github.com/rakudo/rakudo/blob/ng/sr...Grammar.pm
search for infix:
that'll get you the operator definitions.
masak but that's only the syntax half. 03:31
jonathanturner Tene: I take it the <O('%multiplicative')> part is denoting something for a precedence parser? 03:32
Tene Yes.
masak ooh, a parsertongue! 03:33
jonathanturner: do you have a CS background? 03:34
03:34 mrsaturns left
jonathanturner masak: yes, and I'm a pl geek 03:34
Tene okay, I really really need to put down rakudo and set up for class tomorrow. 03:35
Tene AFK for a bit.
jonathanturner masak: is that bad?
masak jonathanturner: I'm about to start writing a 7-post blog series about the Parrot Grammar Engine.
jonathanturner: I've been learning about things like operator precedence parsers in the past few months.
jonathanturner: no, not bad. it's unusual. 03:36
jonathanturner++
jonathanturner masak: it's a cool trick, though I've never seen anything like the scale of the perl6 effort
Tene masak: have you read nqp-rx's grammar engine?
masak Tene: not nearly enough.
Tene ack. /me hides IRC. 03:37
stuuf rakudo: $i=1; @a = qw/llama llama duck/; say join(', ', $i++ <<.<< @a);
p6eval rakudo 7ef386: Confused at line 2, near "(', ', $i+"␤in Main (file <unknown>, line <unknown>)␤
stuuf yeah that made no sense
masak jonathanturner: I like how the Perl 6 grammar engines use both recursive descent and operator precedence.
stuuf: qw// is <> nowadays.
stuuf rakudo: $i=1; @a = <llama llama duck>; say join(', ', $i++ <<.<< @a);
p6eval rakudo 7ef386: Confused at line 2, near "(', ', $i+"␤in Main (file <unknown>, line <unknown>)␤
masak stuuf: and . is ~ nowadays. 03:38
stuuf still confused
oh right i knew that
rakudo: $i=1; @a = <llama llama duck>; say join(', ', $i++ <<~<< @a);
p6eval rakudo 7ef386: Symbol '$i' not predeclared in <anonymous> (/tmp/fQqeuNNmsb:2)␤in Main (file <unknown>, line <unknown>)␤
jonathanturner masak: it's a good compromise for speed reasons. You can do operator prec. in recursive descent, but it's very verbose
carlin and strict is the default nowadays
stuuf rakudo: my $i=1; my @a = <llama llama duck>; say join(', ', $i++ <<~<< @a);
masak stuuf: and strict is on by default.
p6eval rakudo 7ef386: 1llama, 1llama, 1duck␤
jonathanturner masak: and would almost be impossibly ugly with the number of operators p6 wants to support
masak jonathanturner: yes. it's a by-need solution.
jonathanturner: am I right in assuming that OPP is faster for parsing expressions than RD? 03:39
stuuf i wonder if you can make it reevaluate the scalar expression each time
masak stuuf: that sounds more like a &map to me. 03:40
jonathanturner masak: to my understanding yes, since you handle a bit of explicit state instead of hiding it in the depths of your function calls
stuuf yeah
masak jonathanturner: exactly.
jonathanturner masak: but I haven't done any speed comparisons between the two methods
masak me neither.
but it feels like OPP is tweaked towards hadnling expressions really well. 03:41
potentially, a lot of backtracking is eliminated.
diakopter yes
jonathanturner actually I was just going to ask about that
03:41 diakopter sets mode: +v p6eval
jonathanturner token infix:sym<-> { <sym> <![>]> <O('%additive')> } <-- that looks backtracky 03:42
masak I saw that one as well.
I'm surprised that that's needed.
jonathanturner is that just giving hints for the grammar compiler or is it really backtracking over minus?
masak wonder if STD.pm does the same?
diakopter no
masak oh, good.
diakopter no
masak that means it's a temporary fix in Rakudo.
diakopter it's saying a '>' can't follow the - for this token to succeed
no backtracking 03:43
masak confirms: STD.pm doesn't do that
diakopter maybe you meant lookbehind?
03:44 envi^office joined
jonathanturner diakopter: well, that's lookahead 03:44
diakopter jonathanturner: what do you mean 'backtracking over minus'?
jonathanturner diakopter: not exactly backtracking, but could be backtracking if naive
diakopter: you find "-" but then need to look ahead to make sure it's not >, it's not really backtracking
the problem would come up if you had multiple operators that start with '-' but had different operators 03:45
diakopter yes
jonathanturner err precedence
colomon jonathanturner: <<+>> already should work for lists of lists, no need for <<<<+>>>>
(but I don't know if that's implemented in rakudo yet)
diakopter jonathanturner: yes, that is the case
so yes, it's there to 'backtrack over minus' 03:46
jonathanturner diakopter: it doesn't have to be backtracking unless that's how your parser has to "fix" that it picked the wrong operator
say you go a few characters and realize "whoops" that's not the right operator
that's when you "backtrack" to where you started and try again 03:47
colomon vamped: the rakudo bugs that affect << and >> are kind of random, as I recall -- one combination that only works for the ascii version, one combination that only works for the unicode version. 03:48
jonathanturner not sure if that makes sense, I'm not really good at explaining over chat :p
colomon vamped: I don't remember the details at the moment, but you can probably check S06-operator-overloading/workout.t for more details (look for #?rakudo flags to find cases that don't work currently). 03:49
diakopter I'm sorry; I shouldn't have asked for an explanation of what backtracking is.
I didn't intend to
masak hm, the C<Each> role is mentioned twice in S03, and then nowhere else.
colomon masak: I don't know that any of the meta operators are implemented in ng yet. :) 03:50
masak ah. 03:52
jonathanturner masak: since you're working on these blog posts, mind a newbie question? I'm looking at STD.pm, but how does this get translated to the parser? 03:55
spinclad jonathanturner: once rakudo-ng has longest token matching, it should find '->' mentioned in the fixed head of a rule and never try infix:sym<->, so no backtracking. it needs to catch up with STD here.
jonathanturner masak: I mean, this is the grammar, but how does it get converted at compile time/runtime for actual parsing? 03:56
masak jonathanturner: there's a tool for rendering it as Perl 5 code. 03:57
jonathanturner spinclad: thanks, I was wondering that reading through STD.pm. lots of stuff seem to rely in longest match
spinclad jonathanturner: the STD.p5 parser, or rakudo-ng's? STD: with gimme5; rakudo-ng: it's getting hand ported.
masak jonathanturner: STD.pm is beautiful, but the output from that tool is anything but. it runs, though. :)
jonathanturner spinclad: by hand ported do you mean that someone is writing the parser to match the spec in C? 03:59
spinclad jonathanturner: no, look at rakudo/.../Grammar.pm: it's a not-quite-perl6 grammar. 04:00
pmichaud actually, src/Perl6/Grammar.pm is a Perl 6 grammar :) 04:01
04:01 meppel joined
masak jonathanturner: but I'll not be writing about STD.pm, I'll be writing about PGE, the grammar engine that drives Parrot languages. 04:01
pmichaud (that used to drive... :-)
jonathanturner masak: does nqp run on pge?
pmichaud nqp has its own regex engine. 04:02
(the new version fo nqp does, that is)
*of
masak jonathanturner: what pmichaud said. the old nqp ran on PGE. new one doesn't.
pmichaud jonathanturner: since the grammar is Perl 6 code, we plan to compile it to executable directly 04:04
(where "executable" depends on whatever VM happens to be underlying the runtime)
jonathanturner pmichaud: does the grammar go through any optimizations? we talked about backtracking briefly earlier in chat, I was wondering if compiling the grammar tries to find ways to avoid it 04:05
pmichaud sure, the grammar can be optimized, same as any regex 04:08
but in general there's not any backtracking in the grammar anyway 04:09
it's extremely predictive
jonathanturner pmichaud: I figured not. if any community would have parsers down to a science, it'd be perl
pmichaud (there is some backtracking, yes, but very little. the structures themselves tend to avoid backtracking) 04:10
jonathanturner pmichaud: someone told me I should ask you about the zip operator
spinclad ( jonathanturner: i answered the wrong question about converting grammars; rakudo-ng's grammar is a hand-port of STD, but compiled by nqp to parrot code, currently)
jonathanturner not to change topics
pmichaud ask away! :)
( spinclad is correct ) 04:11
jonathanturner pmichaud: ([1, 2, 3] Z [4, 5, 6]).perl.say yields [1, 4, 2, 5, 3, 6]
pmichaud jonathanturner: in rakudo? this is a known bug 04:12
it will likely end up being ((1,4), (2,5), (3,6))
jonathanturner pmichaud: would it be something a coder new to perl could fix? or is it too deep in the stack?
pmichaud in rakudo's master branch it's a problem that we don't handle Parcels properly (because they weren't really defined well until very recently) 04:13
I don't know if zip is implemented in the ng branch yet
ng: ((1,2,3) Z (4,5,6)).perl.say 04:14
p6eval ng 7fc485: sh: ./perl6: No such file or directory␤
spinclad (rebuilding ng) 04:15
colomon No Z on my local up-to-date ng. 04:16
04:16 meppl left
colomon also .perl on lists goes into an infinite loop. 04:17
or something.
'(' ~ self.map({ $_.perl }).join(', ') ~ ')'; is the code in question.
pmichaud yeah, I haven't figured out why .perl infinite loops on lists. But I think that's my responsibility to fix :-( 04:19
(since I still have to do a significant list refactor, but keep getting called away to other stuff)
colomon I'm trying an alternate implementation at the moment. :)
still happy to help brainstorm the lazy iterator refactor, btw. as I said before, I don't know that I can help, but I can at least be a sounding board. 04:20
04:20 tann left, tann1 joined
pmichaud at this point it's mostly me needing to find a couple of quiet hours to either write up the spec or write the implementation 04:21
jonathanturner pmichaud: have you played much with clojure's lazy seqs? 04:22
pmichaud nope
jonathanturner just made me think of it
colomon pmichaud: I have a workaround for List.perl, not elegant but functional. Is it worth checking in? 04:23
jonathanturner iterators over any kind of container that can appears as a sequence, not just lists
pmichaud colomon: yes, thanks 04:27
carlin masak: do you have any blog posts about Emmentaler? 04:28
masak carlin: yes, one.
masak gets the URL
use.perl.org/~masak/journal/39583 04:29
actually, use.perl.org/~masak/journal/39933 as well.
04:34 justatheory left
carlin masak: thanks 04:34
masak: is the idea that it's a distributed effort where multiple people can run an 'emmentaler' program to run the tests and submit the results (like make spectest_smolder)? 04:35
04:35 yahooooo left
dalek kudo/ng: 698534c | (Solomon Foster)++ | src/core/List.pm:
Replace the elegant List.perl implementation that trips up ng somehow with an ugly one that works.
04:35
masak carlin: no, it'll be a nightly download/build/install/test on all the known projects, with static HTML being generated showing the results. 04:36
carlin masak: oh, not what I was thinking then 04:39
masak: definitely a worthy project nonetheless 04:40
I may have a poke around at proto's installed-modules branch to help out...
masak yes, please :) 04:41
04:43 gfx joined
spinclad seems to me it (emmentaler) could with a little wrapping be used for smolder-submissions, for all the odd test boxes people might have lying around (just a thought for the future for now) 04:43
masak spinclad: yes, good idea. emmentaler won't scale well. 04:44
carlin Method 'protected-files' not found 04:50
ah, easy fix
04:52 zmjb1 left
carlin (Error Driven Development)++ 04:56
04:56 araujo joined 04:58 yahooooo joined 05:00 mepplock joined 05:06 jaldhar left 05:09 jaldhar joined
masak this is cool: kirindave.tumblr.com/post/272596413...t-server-1 05:09
can someone do a chat server in 75 lines of Perl 6 code?
carlin masak: Possibly. I'll give it a shot later on :-) 05:11
masak \o/
05:12 broquaint left
masak Clojure seems pretty nice from a concurrency perspective. 05:15
I think Perl 6 might take some inspiration from that.
05:16 meppel left, Baggio_ joined 05:18 tann2 joined, tann1 left 05:21 nbrown_ left, nbrown_ joined 05:22 IllvilJa left, hcchien left, mepplock left, hcchien joined, IllvilJa joined
carlin masak: I now have proto able to successfully install modules in .perl6/lib 05:23
masak carlin: that's excellent news. carlin++
we still need to do extensive testing with all the projects before we merge. 05:24
05:24 jonathanturner left
carlin masak: I'll push what I've got so far, if you wouldn't mind checking I haven't done anything completely wrong 05:25
masak I'll be glad to review it.
but I must admit that my understanding of the installed-modules branch is still spotty.
05:26 Baggio_ left, payload left
masak mberends is the chief architect of that one. 05:26
05:26 arthur-- left
masak afk & 05:26
carlin pushed
05:27 arthur-- joined 05:28 payload joined
carlin ./proto test json \ Project 'json' is not downloaded. But it is, and projects.state says it is. I'll have to look at that after dinner. 05:30
masak looks at the changes 05:32
05:33 nihiliad left
masak carlin: in the message to your commit ff78c0, are you describing a problem that you just fixed, or one that still remains in Installer.pm? 05:40
hm, ng doesn't have for loops. I guess they're blocking on lazy lists. 05:43
masak casts a tuit spell for pmichaud++ 05:44
carlin masak: problem that is (hopefully) fixed. 05:48
masak ok, good. 05:49
in that case, all the changes look fine to me. carlin++
carlin The problem being that you can't, for example, cp Grammar.pm to lib/JSON/Tiny if Tiny doesn't exist. With that now returning directories and files the mkdir in Installer.pm can run.
masak nod. 05:51
carlin I think that's how it was supposed to work anyway
masak it does make sense.
Tene argh... I'm already up an hour past when I should be sleeping... got to wake up WAY too early all this week.
masak does `find` guarantee preorder traversal?
carlin I'll walk the dog and then look at test.
masak carlin: I'm very grateful you're looking at installed-modules. it's important work, but for some reason when I look at it, my brain turns to mush. 05:52
Tene what kind of person runs a class in eastern time? 05:53
masak carlin: if installed-modules lands before ng, I'll be very motivated to put in quite some effort on getting Emmentaler up before the ng merge.
with Emmentaler up before the ng merge, the Perl 6 applications cheese will have an extra safety net besides the spectests. 05:54
Tene finally done setting up, though... so do I go to sleep now, or work on rakudo? 05:57
masak sleep is for old people :) 06:00
06:01 gfx left
Wolfman2000 masak: consider me old then 06:01
masak actually, now that I think about it, it's the other way around. sleep is for babies.
wayland76 Tene: the kind of person who teaches Indian music? :) 06:02
Wolfman2000 ...your sarcasm isn't really helping masak
wayland76 I don't think it was sarcasm, just that he got carried away by an idea
masak Wolfman2000: I didn't mean to be insulting. I apologise if you read it that way, it wasn't my intent. 06:03
06:03 nbrown_ left, nbrown_ joined
Wolfman2000 masak: blame my tiredness. I don't get jokes easily late at night 06:03
masak it wasn't a joke. :)
babies sleep a lot.
Wolfman2000 Plus, I'm now frustrated with my new host already...doesn't help that I already invested in some money in it.
diakopter :/
Wolfman2000 At this point, I'm thankful that my finals are basically done. 06:04
now, *BED*
06:04 ChanServ sets mode: +o Tene
masak wonders if parasites get frustrated with their hosts sometimes 06:05
06:05 hcchien left
Tene why did chanserv op me, I wonder... 06:07
06:08 yahooooo left
masak 'cus he's such a nice bot. 06:08
spinclad it was a vote to stay up?
masak stay op!
Tene >< 06:09
spinclad exactly!
masak Tene: did I do it again? sorry. :P
masak whispers 'Schindler's Lift'
06:09 ChanServ sets mode: +o masak
Tene masak: I'm really glad to have you around. You're a lot of fun to have in this channel. 06:10
masak apparently, puns make you op.
06:10 ChanServ sets mode: -o masak, hcchien joined
masak or not. :) 06:10
06:10 ChanServ sets mode: +o masak
masak in Soviet Russia, YOU make op puns! 06:10
Tene ah, looks like I got a NOTICE telling me who did it. 06:12
masak looks like someone known as diakopter geve me my op bit, revoked it, and gave it back. 06:13
06:13 ChanServ sets mode: -o diakopter 06:14 hcchien left
diakopter hm 06:14
06:15 hcchien joined
wayland76 No, I don't think puns get you op. Unless I'm being PUNished in someway for the terrible quality of mine. 06:18
Or maybe they don't have enough PUNch :).
masak :P
06:18 ChanServ sets mode: +o wayland76
masak -Opun 06:18
wayland76 Ooh! Op from diakopter++ , *and* a pun from masak++ at the same time! I think I'm having a good day :) 06:19
06:20 justatheory joined 06:21 yahooooo joined
masak rakudo: for <a b c>.kv { .say } 06:22
p6eval rakudo 7ef386: 0␤a␤1␤b␤2␤c␤
masak rakudo: class List is also { method d { for self.kv { .say } } }; <a b c>.d 06:23
p6eval rakudo 7ef386: 0a␤1b␤2c␤
masak submits rakudobug
Tene pmichaud: around? 06:27
crap... it's probably going to be me that has to implement the scope exit handler functionality in Parrot... >< 06:28
well, we'll see how far I can get without it.
06:29 justatheory left
diakopter sleeplock 06:44
Tene pmichaud,jnthn: Rakudo's :get_bool is calling a ".true" method instead of ".Bool". The former isn't mentioned in S02, but the latter is defined as what's used for truthiness... 06:45
diakopter Tene: that's the pirop for truthiness... 06:46
I think
diakopter sleeplock
masak Tene: I brought this up the other day. and I do think .true is mentioned here and there, should be in S04 too in conjunction with given/when. 06:47
masak checks
Tene masak: yes, .true is mentioned a couple of times, but .Bool is mentioned many more, and in more-authoritative places. 06:48
masak by the way, when grammar-mod modules land, I'm going to make myself a keyword 'considering' :)
Tene lemme see what breaks if I change it.
masak: did I show you that I got some basic proof-of-concept macros working in my scheme?
masak Tene: I'm sorta hoping .true will go away, and we'll only have .Bool. I think .true has a kernel of irreducible confusion in it.
Tene: no.
or maybe yes. 06:49
either way, groovy!
06:52 kaare joined, xinming left, kaare is now known as Guest75461 06:55 Guest75461 left
carlin time to look at proto test 06:55
06:57 kaare joined, kaare is now known as Guest64524
masak Tene: see r29205 for the current state of .true and .Bool 06:57
06:58 meteorjay joined
masak personally, I think the line saying .Bool.Int.true is the stronges indication so far that the spec isn't... ideal in this spot yet. 06:59
Tene if I move ng to check .Bool instead of .true, it goes into infinite loops.
masak then don't do it. :)
07:01 vamped left 07:10 xinming joined 07:16 ihrd1 joined
Tene jnthn: Mu.pir sets a bunch of vtable overrides that don't actually seem to apply to user-defined classes. Any idea why? 07:16
dalek kudo/ng: 417a990 | tene++ | src/ (4 files):
Call .Bool instead of .true for truthiness. Doesn't actually call .Bool for user-defined classes, though?
mathw Hurrah
my advent calendar post appeared as scheduled 07:17
Something actually worked yay
and speaking of the dreaded four-letter word
mathw -> the office
masak mathw++ # great post
mathw Maybe on the way I can get a good subject for my second one... 07:18
07:18 hcchien left
Tene okay, RLY need sleep now, goodnight all. 07:20
moritz_ good night 07:21
07:22 xomas_ left 07:24 hcchien joined 07:28 hcchien left 07:34 hcchien joined
masak moritz_: good morning. 07:36
07:37 ihrd1 left
carlin masak: testing works. pushed. 07:38
masak carlin: cool! kudos. 07:39
the change looks good. 07:40
carlin Now I need to wrestle with the various states commands can put things in and make install all/test all work
masak but, hm, this $can-continue business looks suspicious.
it looks like a fossil. checking.
07:40 JimmyZ left
masak ah, it's a way to funnel the flow of control into an 'Aborting...' message and an exit(1). fair enough. 07:42
maybe we should factor that out into a method instead, though.
but we have to keep the $can-continue flag anyway, if we want errors for all the projects. 07:43
heh, now Scoble re-tweeted timoreilly. :) Robert Scoble only has 100k followers to timoreilly's 1.3M, but still. 07:49
the stats say 4.6k hits so far today; I think we'll get more than tomorrows 7k by day's end. 07:54
another good piece of statistics: yesterday, 70 people clicked the 'rakudo.org' link on the blog. 07:56
08:00 JimmyZ joined 08:03 iblechbot joined
mathw is back 08:04
tann2 ong ba gia sao? 08:06
masak tann2: exc us e me? 08:07
08:07 tann2 left 08:08 Baggio_ joined
masak rakudo: "".subst(/x/, "").trans() 08:31
p6eval rakudo 7ef386: too few positional arguments: 1 passed, 2 (or more) expected␤in Main (file <unknown>, line <unknown>)␤
masak is this one known?
it looks familiar.
mathw Hmm 08:32
It does
But that might be because we've had similar bugs in the past
masak it's the getting-Parrot-strings bug, I know.
but is this particular instance reported?
mathw I don't know 08:33
masak submits rakudobug just to be safe
mathw :)
masak is on form today I see
JimmyZ here
masak today I'm actually doing some coding. it feels good. :)
JimmyZ: \o
JimmyZ ng is slowly grown now 08:34
masak yes, but still some ways to go.
JimmyZ growing 08:35
masak phenny: tell jnthn twitter.com/luqui/status/6425615591 :) 08:36
phenny masak: I'll pass that on when jnthn is around.
moritz_ those quotes are really fun :-) 08:39
masak yes; we should have something like that. 08:40
we're having fun, too. but no-one is taking notes.
what about a quotebot?
carlin masak: install all and test all now work. pushed. 08:44
masak looks
if @projects.grep('all') { # nice! 08:45
carlin++
moritz_ are you hacking on proto? 08:46
carlin moritz_: yes
08:47 rfordinal joined
moritz_ carli++ 08:47
carlin++
carli-- # just a typo :-)
08:47 rfordinal left
masak moritz_: have you gone off the Tab key altogether? :) 08:48
.oO( going 'cold tabkey'... )
08:49
moritz_ masak: no, but my tab key added a colon, which I deleted, and hit the backspace key once too often
masak oh, excessive use of another key... :)
carlin once my 'install all' finishes I'll see if I can get 'test all' to do what I want, at the moment if a test has a fatal errors are testing stops, obviously we don't want that 08:52
*has a fatal error all testing stops 08:53
carlin can't type
moritz_ can't hype 08:54
masak can't grammar 08:55
JimmyZ can't understand 08:56
08:56 hcchien left, hcchien joined
masak :D 08:56
hm, there's no way to express 'no parameters' inside the second or third argument of a trinary operator, right? 08:57
sorry, 'no arguments', of course.
moritz_ doesn't understand the question
rakudo: say(True ?? () !! 3 )
p6eval rakudo 7ef386: ␤
masak moritz_: right, but you just sent one parameter to &say. 08:58
er, argument.
how do I do the same, but no arguments?
can I do |() ?
moritz_ rakudo: say(|(True ?? () !! 3) )
p6eval rakudo 7ef386: flattened parameters must be a hash or array␤in Main (file <unknown>, line <unknown>)␤
mathw Oooh
moritz_ rakudo: say(|(True ?? [] !! 3) ) 08:59
mathw My advent calendar entry has been liked in Google Reader :D
p6eval rakudo 7ef386: ␤
moritz_ mathw: which means that somebody subscribed to the RSS feed :-)
08:59 krunen left, mdxi_ joined 09:00 krunen joined
mathw moritz_: Somebody who isn't me! 09:01
Google Reader lists 104 subscribers to the feed
So that's a lower bound, as there will be others using non-Google readers
masak pmichaud++'s post is the hands-down favourite. it got as many views yesterday as all the rest combined. 09:02
moritz_ it's got a direct link from the /. front page :-)
mathw Yeah 09:03
So it's got an unfair advantage :P
masak ah. yes, that has to be taken into account, of course.
of all the topics to show to slashdot, though... :)
I think that was a pretty sexy one.
mathw "I will be learning Perl 6, not because I will use it much, but because I will discover new ways to think about problems. Oh, and it'll be fun." <- slashdot commenter 09:05
fun++
There's a lot of PHP-hating in the comments 09:06
09:06 hcchien left
mathw And a surprising amount of support for Perl 6 09:06
masak and a fair amount of Perl 5 people, struggling with people's misconceptions. 09:07
mathw But I think the message is, gradually, starting to get out there 09:08
masak oh yes.
mathw I had a rough moment in an interview on Thursday though, when I got halfway through a task to write something in Perl 5, and couldn't remember how - my brain was just giving me Perl 6isms
masak 哈哈 09:09
mathw Although I did figure it out eventually
But then there was all the awkwardness of nested data structure 09:10
At least I didn't have to write any classes
09:11 hcchien joined
masak general question: if I want a module that causes its includee to run code at END {} time, what do I write in the module? 09:11
s/includee/including script/ 09:12
moritz_ END { $_.() for @callbacks }
or maybe END { @callbacks>>.() } if that works :-)
std: END { @callbacks>>.() }
p6eval std 29276: Potential difficulties:␤ Variable @callbacks is not predeclared at /tmp/WyQjenMfpk line 1:␤------> END { @callbacks⏏>>.() }␤ok 00:01 107m␤ 09:13
masak moritz_: yes, but... I want to run it from the perspective of the code that did 'use' on the module.
moritz_ masak: that's what closures are for
masak: my $x; run_at_end { say $x*$x }; 09:14
where run_at_end is the function that your module exported
masak hm. I don't think I'm able to explain my use case well enough yet.
what I want is to have to declare nothing in the script itself, but the 'use' causes something to be run at the end.
rakudo: END { say "HAI" }; say "OH" 09:15
mathw masak, do you have to ask hard questions all the time?
p6eval rakudo 7ef386: OH␤HAI␤
masak mathw: I'll take that as a compliment.
mathw I do admire the twistiness of your mind
And someone else was bound to think of it, there are a few Perl 5 modules I've encountered which do things like that 09:16
masak I'd like it for Astaire.
Sinatra does something like that.
I'll go with END {} and see how far it gets me.
mathw END will still run in context of the module 09:17
JimmyZ rakudo: END { say "HAI" }; say "OH"; throw;
p6eval rakudo 7ef386: OH␤Could not find non-existent sub throw␤in Main (file src/gen_setting.pm, line 324)␤
mathw But maybe it'll be enough...
masak yes, I'm starting to think it might.
mathw Some part of me would perhaps prefer if people didn't do twisty things very often
09:17 IllvilJa left
mathw But obviously things like injecting into your includer's symbol table are going to be common 09:18
And there will be times when 'is export' doesn't do the right thing
09:18 xomas_ joined
masak yeah. 09:18
rakudo: my $a; BEGIN { $a = 42 }; END { say $a }
p6eval rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/J7OYG2vJ6e:2)␤in Main (file <unknown>, line <unknown>)␤
masak should that work? 09:19
mathw I don't think so
moritz_ std: my $a; BEGIN { $a = 42 }; END { say $a }
p6eval std 29276: ok 00:01 106m␤
masak rakudo: my $a; BEGIN { $a = 42 }
p6eval rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/4QIChPCrJ6:2)␤in Main (file <unknown>, line <unknown>)␤
moritz_ ng: my $a; BEGIN { $a = 42 }
p6eval ng 7fc485: sh: ./perl6: No such file or directory␤
masak moritz_: oh yeah, ng doesn't work. 09:20
in p6eval, that is.
it works fine locally. :)
and it accepts that oneliner.
masak submits rakudobug
mathw I suppose my declares the symbol before the BEGIN phase 09:21
so it should work really
masak yes. the declaration is a static thing.
mathw wonders how many tickets will go away when ng becomes master
masak mathw: many.
it'll be a ticket fest.
mathw :)
good
mathw adds more stuff to his Amazon Wishlist 09:22
One of the madder early music ensembles recorded a version of The Four Seasons on recorders, violin, harpsichord, organ, musette and hurdy-gurdy. How can I not own that? 09:23
moritz_ ng on p6eval hit the same problems that prevented me from building it after the cs_csr branch merge 09:27
some .pbc files from nqp-rx where not cleaned, and not rebuilt 09:28
and since the bytecode compatibilty version was bumped it all went to hell
masak mathw: found it. :) www.youtube.com/watch?v=C0giQC7fMrk 09:29
mathw yes, that's it 09:36
masak it's... funky. 09:37
09:37 am0c joined
mathw As I said, one of the madder early music ensembles 09:38
I think this actually beats Red Priest's version for sheer insanity
Since their version has no bagpipes in it
masak wow, 18th century. I wouldn't have guessed. 09:39
carlin ohh... both perl6-examples and http-daemon have a lib/HTTP/Daemon.pm
masak carlin: yes, but the former can easily be 'taken care of', I think. 09:40
carlin++ # this is exactly the kind of discoveries that need to be made before merging
mathw: by the way, 'hurdy-gurdy' is a pretty silly name for an instrument. :) 09:41
mathw masak: yes, I know, but I didn't choose it :) 09:43
It is, however, a pretty silly instrument 09:44
The bagpipe of the string world
masak :D
09:44 Baggio_ left 09:49 Baggio_ joined 09:50 jlaire joined
moritz_ ng: my $a; BEGIN { $a = 42 } 09:51
p6eval ng 417a99: ( no output )
masak rakudo: say (-> :a($c) {}).signature.params[0].named_names.perl
p6eval rakudo 7ef386: ["a"]␤
moritz_ ng: my $a; BEGIN { $a = 42 }; say $a
p6eval ng 417a99: Mu()␤
masak phenny: tell jnthn will the $.named_names attribute in signature.params ever contain more than one element? 09:52
phenny masak: I'll pass that on when jnthn is around.
masak moritz_: I keep seeing PerlMonk threads where people write in and ask "it output 'Mu()', what did I do wrong?" 09:53
moritz_ masak: note that by current spec it shouldn't say Mu() anymore 09:56
because say() Stringy-fies, and that should give a warning and return the empty string
and only explicit conversion to Str directly returns Mu() 09:57
masak is there an RT ticket about that?
rakudo: say Mu
p6eval rakudo 7ef386: Object()␤
masak lol
09:57 envi^office left
moritz_ Mubject 09:57
I don't think it will be ever fixed in master 09:58
masak no, me neither. 09:59
10:00 lestrrat is now known as lest_away
masak but I don't submit bugs for master or ng. I submit bugs for Rakudo. 10:01
10:04 jaldhar left, jaldhar joined
moritz_ wants a fixed-in-ng tag in RT 10:10
10:11 cognominal left
JimmyZ rakudo: Mu.WHAT.say; 10:14
p6eval rakudo 7ef386: Object()␤
JimmyZ ng: Mu.WHAT.say;
p6eval ng 417a99: Mu()␤
10:16 broquaint joined
JimmyZ ng: say Mu; 10:17
p6eval ng 417a99: sh: ./perl6: No such file or directory␤
JimmyZ ng: Mu.WHAT.say;
p6eval ng 417a99: Mu()␤
JimmyZ ng: say Mu;
p6eval ng 417a99: Mu()␤
mathw Mu is... Mu 10:25
10:26 Baggio_ left, agentzh left 10:28 lest_away is now known as lestrrat 10:33 JimmyZ left 10:36 betterworld joined
mathw chews all his fingernails off 10:37
10:46 Baggio_ joined 10:48 zaslon left, pointme left, pointme joined, zaslon joined
masak phenny: tell jnthn never mind, I found the answer in the IRC logs. :) irclog.perlgeek.de/perl6/2009-10-09#i_1587460 10:51
phenny masak: I'll pass that on when jnthn is around.
masak hm. time to go home and make dinner. :) 10:54
see y'all tonight.
10:54 masak left 10:59 IMeMyself joined, sundar left
jnthn morning 11:03
phenny jnthn: 08:36Z <masak> tell jnthn twitter.com/luqui/status/6425615591 :)
jnthn: 09:52Z <masak> tell jnthn will the $.named_names attribute in signature.params ever contain more than one element?
jnthn: 10:51Z <masak> tell jnthn never mind, I found the answer in the IRC logs. :) irclog.perlgeek.de/perl6/2009-10-09#i_1587460
11:03 Baggio_ left
jnthn phenny: tell masak first virtual servers...then virtual timezones. :-) And yes, :foo(:bar(:$baz)) will get you a few entries. :-) 11:04
phenny jnthn: I'll pass that on when masak is around.
jnthn omg lolhaskell! 11:05
11:05 Baggio_ joined
carlin Ohh, Haskell has a weekly newsletter ... there's an idea 11:08
jnthn manages to stab himself with a fork while feeding the dog 11:16
mathw carlin: the problem with weekly newsletters is that somebody has to put the work in
As someone just started doing for Perl 6 again, but we'll see if he manages to keep it up. 11:17
colomon p/ 11:18
s{p/}{o/} 11:19
mathw o/ 11:23
11:27 tarski left
pugs_svn r29277 | colomon++ | [t/spec] Tweak test so that it works in ng. 11:33
11:35 jonhegg joined 11:36 jonhegg left
colomon that's another 100 passing tests for ng 11:38
jnthn \o/ 11:44
colomon: On Saturday I got quite a bit further towards having some of the role ones running again too. 11:45
11:45 SmokeMachine joined
colomon \o/ 11:45
11:46 Baggio_ left 11:49 zloyrusskiy joined
pugs_svn r29278 | colomon++ | [t/spec[ Fix the number of tests so the file passes. 11:50
mathw 100 more tests? woo! \o/ 11:51
colomon another 42 coming up...
these are super LHF
practically touching the ground 11:52
11:58 Baggio_ joined
mathw :) 11:58
11:58 moritz_ sets mode: +o colomon 11:59 Baggio_ left 12:00 Baggio_ joined, snearch_ joined
carlin phenny: tell masak gist.github.com/250786 # Not what you were after but Rakudo's IO couldn't do that yet 12:00
phenny carlin: I'll pass that on when masak is around.
dalek kudo/ng: 0b3ffae | (Solomon Foster)++ | t/spectest.data:
Turn on sign.t.
12:02
carlin G'Night all
12:26 wayland76 left 12:27 iblechbot left
moritz_ if I understood that correctly, CATCH and CONTROL are a bit like given 12:40
in that they set the topic to the current exception
and if no when-block matched, they rethrow the exception 12:41
but a when-block calls break() at its end
and... that throws a control exception
isn't that a bit ugly?
Tene moritz_: CATCH & CONtROL should catch break exceptions. That's an error on my part. I'll get it working this week. 12:43
moritz_ Tene: I'm not complaining about the implementation (not yet at least), but I'm questioning the spec 12:44
I think CONTROL blocks will either need very careful implementation, or will require much care from the programmer 12:45
or both
12:49 ruoso joined 12:55 payload left 12:56 hcchien left 13:01 hcchien joined 13:07 jonathanturner joined 13:10 meteorjay left 13:12 Baggio_ left 13:15 JimmyZ joined 13:17 takadonet joined
takadonet morning all 13:18
13:19 IllvilJa joined, rodi joined
colomon \o 13:20
JimmyZ evening, all 13:21
13:24 payload joined 13:31 quantumEd joined 13:34 iblechbot joined 13:36 pmurias joined
mathw C++ needs named parameters 13:37
I used to think, what's the point in Perl 6 letting you pass positionals by name 13:39
But now I know how cool it is
pugs_svn r29279 | colomon++ | [t/spec] Fudge int.t so that it passes in ng.
colomon mathw: I guess I'm not completely convinced yet. 13:41
Juerd_ It is extremely useful for modules that you don't use very often 13:42
colomon Except being able to say something like split("hello", :match) is awesome.
mathw It's also very useful when you have a function which simply has to have seven parameters
Juerd_ For all those builtins that everybody knows by heart, the use of giving names to otherwise positional arguments is very limited
mathw if you use them by names, the code's far easier to comprehend
as at the call site you can see what they all are!
Juerd_ But when you use that module that you use twice per year, it makes your code so much more easier to understand 6 months from $now :)
mathw: Really, I think any function that takes 7 positionals is designed wrong :) 13:43
colomon Oh, one case I do really like is named args with atan2. No more confusion because y comes before x....
Juerd_ colomon: Right
colomon: And I have that problem with Encode::from_to in Perl 5
moritz_ aye 13:44
encode and decode take the character encoding first
colomon yeah, anything with from and to args would be nice named.
moritz_ but from_to takes the buffer first
Juerd_ I keep thinking it's from_to($from, $to, $buf), but it's actually from_to($buf, $from, $to)
mathw Juerd_: Sometimes you just can't avoid it...
Juerd_ Isn't it great to just say from_to(from => $from, to => $to, buf => $buf)?
colomon so, that's another 63 passing tests added to ng's spectest. 13:45
Juerd_ Or, if you chose your identifiers this carefully, from_to(:$from, :$to, :$buf);
moritz_ or even from_to(:$from, :$to, :$buf)
right :-)
colomon I'd like to break the Tests=2000 barrier sometime today...
dalek kudo/ng: 8ba7332 | (Solomon Foster)++ | t/spectest.data:
Turn on int.t.
mathw colomon: Go for it! 13:46
colomon rakudo: say atan2(-1, 0); 13:47
p6eval rakudo 7ef386: -1.5707963267949␤ 13:48
colomon rakudo: say atan2(-1, 0) * -2;
p6eval rakudo 7ef386: 3.14159265358979␤
13:49 Baggio_ joined
mathw oooh pie 13:51
colomon nom nom nom
mathw the edible number
colomon rakudo: say 5.exp.Rat
p6eval rakudo 7ef386: 148.413159167876␤
colomon rakudo: say 5.exp.Rat(1e-10).perl 13:52
p6eval rakudo 7ef386: 5497075/37039␤
mathw I think I'm going to like Rat a lot
colomon I'm a big fan, for sure. 13:53
except for the bit where at the moment in ng it's easier to give the fraction version than the decimal version if you want precision. :)
13:55 JimmyZ left
pugs_svn r29280 | colomon++ | [t/spec] Factor out e ** 5 and pi as variables set with fractions, replace 1..20 with 1...20. 13:57
14:01 Exodist left 14:05 ruoso left 14:06 rodi left 14:08 Baggio_ left
dalek kudo/ng: a113b8f | (Solomon Foster)++ | t/spectest.data:
Turn on exp.t.
14:09
colomon That's another 49 passing tests, 53 tests altogether. 14:14
14:14 zloyrusskiy left
colomon Now have Tests=1973, just need one more good file... ;) 14:14
btw, we have about 15,000 hits on the Advent blog in the last 24 hours. 14:15
Tene moritz_: Yes, I expect both will be needed. I'm pretty confident that I can implement a reasonable API, but it's not going to be trivial. 14:22
takadonet colomon: Good old slashdot 14:23
Tene moritz_: It shouldn't be *that* bad, though. It's separate scopes. If you want to, say, change the exception from 'next' to 'last', you modify $_ and then call .rethrow() on it.
moritz_ I just find the fact "interesting" that we rely on control exceptions inside CONTROL 14:26
Tene everything to do with the original exception is done through $_ aka $!, and doesn't involve the scope of the handler at all.
moritz_ ok
Tene moritz_: meaning that there might be reason to have a CONTROL in a CONTROL.
moritz_ colomon: interestingly enough about 250 of those seem to be secondary visitors from twitter :-)
Tene: :-) 14:27
Tene sup dawg, I heard you like CONTROL blocks.
mdxi_ one day the full POKEDEX will be added to Unicode, and we can have the Mudkip operator 14:28
until then, i'll make do with the snowman
Tene So I put a control in your control so you can catch while you catch. 14:29
14:30 mdxi_ is now known as mdxi 14:35 pmurias left 14:36 Baggio_ joined, pmurias joined
IllvilJa Hello! Is it just me, or is github becoming the 'de facto CPAN' for perl6? 14:42
colomon github is nice because it encourages other people to contribute to projects, too. 14:43
and it's got full history, etc.
IllvilJa That's quite cool.
14:43 gbacon left
jeremiah There is a danger though - 14:43
People don't know that Github is the new CPAN 14:44
And that makes it hard to find stuff
I often see perl modules on Github that aren't on teh CPAN
which kinda sucks
IllvilJa True.
jeremiah Since Github is more for devs that for users
mathw Well there are questions about Perl 6 modules and CPAN, are there not?
jeremiah mathw: What sort of questions? 14:45
IllvilJa So the ideal would be that CPAN is the place where Perl 6 modules are "showcased" as ready products and github is the Santa Claus workshop where all the happy brownies gathers and works on all the nice modules. 14:46
jeremiah As long as tools that users are used to using, i.e. cpan, are usable for perl6 I think things are cool 14:47
IllvilJa So, when someone visiting the "module shop" (CPAN) get's curious about how a module is created (perhaps for participating), they can look behind the scenes and get a clue what's happening at github.
jeremiah But disabling CPAN would hurt perl6 I think 14:48
IllvilJa: That makes sense, then they can get involved in development easily too
IllvilJa Creating an (optional) link from CPAN pages for a Perl6 module to the corresponding github page (if any such exist) would probably be a good thing.
14:48 Guest64524 left
jeremiah So we have a 'users' space and a 'developers' space 14:48
IllvilJa Actually, the latter can be used for Perl 5 modules too! Maybe it already is?
(Ok, the automated link to Github is not in place I think) 14:49
14:50 xinming left
pmurias being able to use a particular v 14:51
~
colomon So: why is it exp ( Numeric $exponent: Numeric :$base = Num::e )
pmurias ~
sorry
colomon but log ( Numeric $x: Numeric $base = Num::e ) ???
pmichaud Tene: (get_bool) -- the spec recently changed on this point. 15:01
(as in, it changed within the last 10 days)
pmichaud goes off to read backscroll. 15:02
15:03 xinming joined, meppl joined
Tene pmichaud: Oh, heh. Sorry, then. :) 15:04
15:04 alester left, alester joined 15:06 Baggio_ left
dalek kudo/ng: a1468ab | (Solomon Foster)++ | src/core/ (2 files):
Make a proto for exp so named arguments works, and at the same time remove the now redundant exp(Complex).
15:07
pugs_svn r29281 | colomon++ | [t/spec] Unfudge named argument tests that now work.
Tene pmichaud: any ideas about the vtable stuff?
colomon I'm in yr rakudo, slowing down yr spectests...
afk for library storytime.
15:13 gbacon joined
pmichaud (still reading backscroll) 15:19
15:28 levi_ joined
IllvilJa Is github having some issue right now? I did a quick try to do a 'git pull' in the rakudo directory and get a timeout... 15:28
15:29 levi_ left
moritz_ it does that from time to time 15:29
IllvilJa :-(
Patterner IllvilJa: works for me 15:30
IllvilJa Then it is my account/local settings that are fubarilized... I did change my email in the ~/.gitconfig file (corrected a faulty value) and suspect that have upset things. 15:31
mathw yay comments on my advent entry
15:31 xinming left 15:32 KyleHa joined
IllvilJa trying 'ssh [email@hidden.address] returns "authorization successful" so that part works. 15:32
moritz_ that shouldn't give you a timeout though
15:35 xinming joined 15:36 wagnerf_ joined, Baggio_ joined
IllvilJa When I try to do a 'git clone' on masak/proto, it works fine. When I try to do a 'git pull' in my rakudo directory a timeout occurs. That's a bit odd. 15:38
Also trying to create a brand new 'git clone' of rakudo fails with a timeout (and I follow the instructions on rakudo.org/how-to-get-rakudo) 15:39
Is it possible for github to have timeout issues with individual repositories but not with others? 15:40
15:41 payload left, Baggio_ left, payload joined
moritz_ fwiw a 'git pull' worked fine here 15:41
IllvilJa: did you clone proto with git://? or some other protocol?
IllvilJa moritz_: the command I use is from the page I referred to: 'git clone git://github.com/rakudo/rakudo.git' 15:43
15:43 jferrero joined
IllvilJa Trying right now, it still hangs. 15:44
15:45 yahooooo left
moritz_ I used [email@hidden.address] which uses ssh under the hood 15:46
but git:// works too here
wagnerf_ it works for me also 15:47
15:47 Baggio_ joined
moritz_ IllvilJa: maybe try a portscan on github.com? 15:47
IllvilJa: I somehow suspect that there's a firewall somewhere inbetween 15:48
15:48 Psyche^ joined
IllvilJa When I tried last week I know that the 'git:' variant worked. 15:48
However, when trying to use [email@hidden.address] I get an intresting error message, quite immediately: 15:49
ERROR: Permission to rakudo/rakudo denied to illvilja.
fatal: The remote end hung up unexpectedly
moritz_ that's probably because you're not a rakudo committer
15:49 Patterner left, Psyche^ is now known as Patterner
moritz_ and the ssh based clone URLs might be for committers only 15:49
IllvilJa Does not the 'git:' scheme use ssh under the hood too? 15:51
moritz_ no idea 15:52
15:54 Baggio_ left
wagnerf_ I just installed rakudo on my machine to give it a try and I had to remove one library to get the install working 15:57
seems like a bug in the build process
what would be the best place to report that ?
15:57 infrared left
wagnerf_ actually I think it's inside parrot 15:58
moritz_ if it's a parrot bug, trac.parrot.org/parrot/ # you need to create an account to submit a ticket :(
wagnerf_ moritz_, thanks 16:00
16:00 nihiliad joined
moritz_ for rakudo bugs, mailto:rakudobug@perl.org 16:00
16:05 [particle] joined 16:17 wagnerf_ left 16:20 tarski joined
tarski i have a general question: will perl6 be able to use the existing cpan modules without forcing the authors to rewrite them to be compatible? 16:25
PerlJam tarski: at some point. That's part of the plan.
TimToady it will likely depend on the implementation, at least until we reimplement a Perl 5 in Perl 6... 16:26
tarski i see. and how close is perl6 to version 1.0? 16:27
TimToady we'll probably lock it down sometime next year to converge with rakudo's implemenation 16:28
PerlJam tarski: That's a tricky question to answer because everyone thinks of "version 1.0" differently.
TimToady at which point, rakudo may or may not yet implement 1.0 :)
but it *is* converging 16:29
tarski PerlJam, so who's the benevolent dictator who has the final say as to what "version 1.0" means?
PerlJam tarski: if you really are asking "when will a Perl 6 implementation run Perl 5 code?", that might be something that someone could answer :)
TimToady that Larry Wall guy
16:29 alexn_org joined
tarski TimToady, ok. so he will say when 1.0 is ready? 16:29
TimToady I strongly suspect so. :)
16:30 alexn_org left, alexn_org joined
takadonet tarski: TimToady eq 'Larry Wall' 16:30
16:30 alexn_org left, alexn_org joined 16:31 pmurias left
TimToady takadonet: now how am I supposed to get people's true opinions if you go telling them that? :) 16:31
tarski takadonet, and I was about to talk smack about Larry. thanks for the heads-up! 16:32
TimToady I like it when people talk smack about me...
takadonet TimToady: Sorry, normally I don't say anything but this time I felt I should...
quantumEd larry wall: hes big fat and small, he plays with a doll, lol lol lol 16:33
TimToady takadonet: don't like to see me exercising my cruel streak, do ya? :)
tarski TimToady, I wouldn't talk smack about you. Actually a lot of the (your) philosophy used to design Perl helped me in writing my masters thesis in philosophy about the argument over the true distinction between semantics and pragmatics 16:34
takadonet TimToady: I just want to be part of it :)
PerlJam momentarily has an image of TimToady's face super-imposed on the BSD devil
moritz_ that could be a fun Perl 6 anti-logo :-)
TimToady anyway, in generel, I'd rather see people thinking that #perl6 is a friendly place than that any one particular person is friendly, though of course that's good too
tarski: sounds like an interesting thesis 16:36
tarski TimToady, It was fun to write, I'm actually finishing it up now. Subjects like how and when context determines meaning, and to what extent (meaning as use) made me think of how a value in Perl is determined by the way in which it's used in the program -- making it very postmodern 16:37
TimToady, at least a value's type, I mean 16:38
perl6 is going to force strong typing, isn't it? 16:39
TimToady if you wanted to turn it into a PhD dissertation, you could add in how much of Western theology has settled for semantics rather than pragmatics. :)
16:39 rfordinal joined
TimToady tarski: no 16:40
you can add optional typing
but it's not primarily for compile-time safety
pmichaud would it be fair to say that Perl 6 is strongly typed, but that its default types are relatively weak?
jonathanturner it could be strong and dynamic, no?
TimToady it's to give more information to multiple dispatch
moritz_ pmichaud: depends on how you define "strongly typed" 16:41
Tene pmichaud: any chance you'll get to the list refactor today?
TimToady more like, it's strongly typed, but will let you get away with a number of interactions that look weakly typed
moritz_ if by "strongly typed" you mean "can't accidentally access a piece of memory with the wrong type", then yes 16:42
TimToady in that sense, Perl 5 is strongly typed too
well, up to a point
there's vast confusion as to the exact type of strings in Perl 5 16:43
pmichaud Tene: yes, there's a chance of that. But I really have to get my grant work finished soon (like, in the next couple of days), and list refactor isn't technically part of the grant.
Tene ah, okay, that's fine. I'll stop harassing you so much. :)
jonathanturner speaking of lists, is there a list concat function/operator? I looked for one on the periodic table but didn't see it
pmichaud I recognize it's a huge blocker.
Tene pmichaud: When looking at Failure stuff, specifically dealing with unthrown exceptions, it looks like I might be trying to add a "check for unthrown exceptions, rethrow if unhandled" tail to every block, at least until we get scope exit handlers. How much do you expect to push back on that? 16:44
moritz_ can you get your grant work done without ng landing?
TimToady jan_: list concat is just , in a list context
pmichaud moritz_: I think technically yes.
TimToady ETABFAIL
jonathanturner: list concat is just , in a list context 16:45
pmichaud actually, my plan is to go ahead and write the grant final report, then finish all the pieces needed to make the report correct. :-)
jonathanturner TimToady: ([1, 2, 3] , [4, 5, 6]).perl.say yields [[1, 2, 3], [4, 5, 6]]
moritz_ it's a bit like TDD
jonathanturner TimToady: I was thinking more along the lines of [1, 2, 3, 4, 5, 6]
TimToady yes, but you concatenated two arrays, not two lists
tarski in perl 5, '1' == 1 is true, but '1' isn't identical to 1. in perl6 is there a way to test for identity?
pmichaud tarski: identity is =:= 16:46
TimToady rakudo: say 1 === '1'
pmichaud tarski: equivalence is eqv
p6eval rakudo 7ef386: 0␤
pmichaud or ===
moritz_ pmichaud: that's container identity
TimToady rakudo: say 1 eqv '1'
pmichaud or something like that.
p6eval rakudo 7ef386: 0␤
moritz_ rakudo: say 1 cmp '1'
p6eval rakudo 7ef386: 0␤
moritz_ ng: say 1 cmp '1'
p6eval ng a1468a: sh: ./perl6: No such file or directory␤
Tene So, what operators do ≟ and ≡ map to?
jonathanturner TimToady: now that's interesting. ((1, 2, 3), (4, 5, 6)).perl.say yields [1, 2, 3, 4, 5, 6] in Rakudo. Does that mean concatenating lists yields an array? 16:47
TimToady not exactly
pmichaud jonathanturner: rakudo's List.perl is based on a much older specification.
jonathanturner ahh, got it
pmichaud that said that .perl on a list would return the brackets
ng: ((1,2,3), (4,5,6).perl.say
p6eval ng a1468a: Confused at line 1, near "((1,2,3), "␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
TimToady it used to be that a list in item context would produce an Array
pmichaud oops
ng: ((1,2,3), (4,5,6)).perl.say 16:48
p6eval ng a1468a: (1, 2, 3, 4, 5, 6)␤
TimToady now it's just a Parcel, until it knows its context
pmichaud (that's wrong, though.)
TimToady er, something like that
16:48 alexn_org left
moritz_ are @a and @@a the same variable now? 16:48
TimToady I realize I just contradicted myself :)
16:48 IllvilJa left, rfordinal left
moritz_ I think ruoso argued they aren't, but never put it into the spec 16:48
jonathanturner ng: ((1, 2, 3) <<,>> (4, 5, 6).perl.say
p6eval ng a1468a: Confused at line 1, near "((1, 2, 3)"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
TimToady moritz_: I'm still trying to figure out some way to make @@ go away :)
pmichaud ((1,2,3), (4,5,6)).perl.say should result in "((1, 2, 3), (4, 5, 6))"
jonathanturner ng: ((1, 2, 3) <<,>> (4, 5, 6)).perl.say 16:49
p6eval ng a1468a: 0␤
moritz_ TimToady: that would be greatly appreciated
pmichaud jonathanturner: what you really want is list (1,2,3), (4,5,6)
which will flatten the two parcels via list context
ng: (list (1,2,3), (4,5,6)).perl.say
p6eval ng a1468a: maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤
TimToady the point is to supply a slice context in converting a list to an Array, not to make a new array type, I think
pmichaud bah.
jnthn TimToady: It's kind of an auto-\ I guess. :-) 16:50
moritz_ \<<(list) :/
TimToady yes, take all the embedded Parcels and reify them
jonathanturner shouldn't <<,>> pair up values like zip? 16:51
TimToady but recursively, probably
pmichaud <<,>> isn't implemented in ng
16:51 xomas_ is now known as Yvonne
pmichaud (hypers aren't implemented in ng yet) 16:51
16:51 Yvonne is now known as xomas
jonathanturner pmichaud: in rakudo it yields Bool::False 16:51
TimToady probably parsing it as < <,> > 16:52
which would be an ltm failure 16:53
pmichaud well, more precisely that we didn't implement the cheat for hyper-comma
(the other hypers are entered as their own tokens directly)
16:53 slavik left
pmichaud (in master, not in ng) 16:53
TimToady yes, another historical vestige, counting whole metaops as tokens... 16:54
16:54 iblechbot left
TimToady but it's a really good way to blow up your longest token tables, I've discovered :) 16:54
the combinatorics get ferocious 16:55
16:55 jar_s joined 16:56 tylerni7 left 16:57 jar_s left
jonathanturner TimToady: sounds like debugging would be a pain, too 16:57
16:57 tylerni7 joined, slavik joined 16:58 envi^home left
TimToady jonathanturner: indeed, although metaops can be thought of (and optimized) as primitives, you might want to step through metaop's logical wrapper while debugging 17:01
and in a sense, it allows people to override a particular metaop with a longer longest-token of the same name 17:02
though people can do that under the old rules anyway 17:03
17:04 IllvilJa joined
TimToady well, in theory, it was possible, though I'm not sure any grammars quite do that right yet 17:04
I think even STD still tends to privilege its operator defs as keywords over user-defined ones in spots
jonathanturner TimToady: I take it that <<,>> and << , >> are two different things? I did try < <,> > and got the same result
TimToady there's no << , >> 17:05
std: 1 << , >> 2
p6eval std 29281: ===SORRY!===␤Obsolete use of << to do left shift; instead, in Perl 6 please use +< or ~< at /tmp/pjFqsbuOGG line 1:␤------> 1 << ⏏, >> 2␤FAILED 00:01 106m␤
TimToady and whitespace isn't allowed in metaops
std: [*] 1,2,3 17:06
p6eval std 29281: ok 00:01 106m␤
TimToady std: [ * ] 1,2,3
p6eval std 29281: ===SORRY!===␤Two terms in a row at /tmp/mBvSpdV34X line 1:␤------> [ * ] ⏏1,2,3␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:01 104m␤
jonathanturner TimToady: I see, must be where rakudo differs from the std
TimToady std: [ * ], [ * ]
p6eval std 29281: ok 00:01 105m␤
pmichaud rakudo doesn't recognize << as being an erroneous infix op, either. So it parses as < 17:07
TimToady rakudo simply doesn't define any tokens that start with <<
pmichaud we can easily fix that in the ng branch, though :)
TimToady er, <<,
moritz_ rakudo: say <<a b c>>
p6eval rakudo 7ef386: abc␤
pmichaud rakudo does recognize << in term position
jonathanturner I did << , (with a space) and got the same Bool::False
make that << , >> 17:08
pmichaud jonathanturner: right. It still parses as < (< , >) >
IllvilJa Solved my issues with doing 'git pull' in my rakudo directory :-).
pmichaud where < , > is the same as (",")
moritz_ it probably parses it as 1 less-than < , > greater-then 2
moritz_ too slow
IllvilJa I edited the rakudo/.git/config file and altered the URL from 'git://github...' to 'github...' and then double checked that my http_proxy environment variable were correct. 17:09
After that it worked as a charm!
17:13 snearch_ left 17:24 payload left 17:29 rfordinal3643 joined
pugs_svn r29282 | colomon++ | [t/spec] Add a few tests for the .exp method. 17:33
colomon Tests=1979 17:36
17:36 Wolfman2000 left
colomon rakudo: say 5.log.Rat(1e-10).perl 17:39
p6eval rakudo 7ef386: 940945/584642␤
colomon rakudo: say 0.5.log.Rat(1e-10).perl 17:40
p6eval rakudo 7ef386: -25469/36744␤
colomon rakudo: say 0.1.log.Rat(1e-10).perl 17:41
p6eval rakudo 7ef386: -254834/110673␤
17:42 justatheory joined
colomon rakudo: say 5.log10.Rat(1e-10).perl 17:42
p6eval rakudo 7ef386: Method 'log10' not found for invocant of class 'Int'␤in Main (file src/gen_setting.pm, line 324)␤
colomon rakudo: say 5.0.log10.Rat(1e-10).perl 17:43
p6eval rakudo 7ef386: 49471/70777␤
17:44 stephenlb joined 17:47 cdarroch joined 17:50 jonathanturner left 17:57 simcop2387_ joined 17:58 jferrero left, buubot joined, payload joined 18:00 simcop2387_ left 18:01 payload left, payload joined 18:04 SmokeMachine left 18:05 fyskij joined 18:07 SmokeMachine joined
IllvilJa Given that Perl 6 has a butterfly as it's mascot, it is soo tempting to alter the text of this: www.blastwave-comic.com/index.php?p...amp;nro=24 to create some weird futuristic marketing comic for Perl 6... 18:09
"So Perl 6 does not devour your brain or something?" "Nope. Completely harmless."
But in reality the last line might actually be a utter lie ;-). 18:10
18:11 payload left, payload joined
mdxi perl5 didn't devour my brain. less like a zombie movie and more like a house renovation show. it came in, knocked through a few walls, redid the wiring, put skylights in a some rooms... 18:14
i'm hoping for something similar with perl6
18:18 fridim_ joined
pugs_svn r29283 | colomon++ | [t/spec] Tweak to deal with lack of pi and numeric constants, refudge for ng. 18:21
dalek kudo/ng: bbfd577 | (Solomon Foster)++ | src/core/ (2 files):
Make protos for log and log10, implement Any.log10 and Num.log10.
kudo/ng: d176dc9 | (Solomon Foster)++ | t/spectest.data:
Add log.t to spectest.data.
colomon Tests=2011, that's enough for me today. 18:27
moritz_ feels good because he solved a riddle faster in perl 6 than it would have taken in Perl 5 18:30
it was something "binary" encoded, and I didn't know how to numify those in Perl 5
whereas :2($str) was nice and easy 18:31
18:31 payload left 18:32 ShaneC joined 18:40 cognominal joined 18:59 Wolfman2000 joined, ascent_ left
moritz_ anybody willing to give up an advent calendar slot? 19:02
I'd like to write something about the Whatever star
and I have some tuits right now
but no slot free
Wolfman2000 moritz_: I can free up a slot I think. Let me see what topics I have. 19:03
also: I just put in the Caesar code into my scheduled post if you want to see it.
moritz_: You're in luck. I have no clue what I was going to do on Dec 22. Consider that day open for the taking. 19:05
moritz_ Wolfman2000: ok, thanks 19:06
pugs_svn r29284 | jafelds++ | Give moritz_++ a day to talk of the whatever *.
Wolfman2000 I can be on standby should things change.
pmichaud should whatever * be a bit earlier in the month? 19:11
moritz_ I can just write up what I want and put it into the Drafts folder
pmichaud that works
19:12 iblechbot joined
Wolfman2000 pmichaud: If it makes sense for moritz_ and I to switch dates again, we can easily do so. 19:12
pmichaud also might be worth mentioning in that article that "whatever" is the inspiration behind "Rakudo *"
moritz_ and when somebody doesn't finish his posting on time, or doesn't feel like writing or Whatever... then he can just publish my post
pmichaud: that's part of my plan
pmichaud wfm
moritz_++
Wolfman2000 I'll most likely require my own tuits to deal with my website moving. Since I can't use Perl or Python effectively on my new server, I have to brave...PHP. again. 19:13
And when I have to deal with PHP, it sometimes makes me not want to use the computer period.
pmichaud btw, if anyone has any strong ideas about what I should do for the Dec 24 posting, I'm open to suggestions 19:16
at the moment I'm thinking of "Path to Rakudo *"
Wolfman2000 phenny: tell masak November is on Web.pm, right? I'm starting to wonder if I can use Squerl, Astaire, and whatever else effectively. May need some backup with installing the modules right, though.
phenny Wolfman2000: I'll pass that on when masak is around.
frettled Is there a list of topics-to-be somewhere?
Wolfman2000 frettled: pugs svn
frettled ahaha
pmichaud frettled: svn.pugscode.org/pugs/misc/perl6ad...9/schedule 19:17
moritz_ in misc/perl6advent-2009/
19:18 kaare_ joined
frettled It's been a while since I updated my pugs repository, so it's about time that I did it again. 19:18
My god, it's full of tests!
Wolfman2000 as it should be
pugs_svn r29285 | pmichaud++ | [advent]: Note that my Dec 24 posting is open for suggestions
pmichaud heh
"2010 - A Perl 6 Odyssey: The Year We Make Contact" 19:19
colomon pmichaud: I figured your Dec 24 posting would be a pitch for Rakudo *. 19:20
jnthn pmichaud: Anything you'd like me to focus my Rakudo hacking on this evening?
pmichaud (with credit to rdice for the original inspiration :-)
jnthn pmichaud: Otherwise, will continue on with getting things from S14-role/* back running again (a couple I got quite a long way with already)
PerlJam pmichaud: nice title
pmichaud jnthn: nothing specific. anything class/role related will undoubtedly be helpfu.
jnthn pmichaud: k
pmichaud *helpful
afk for a bit
colomon list assignment? he said hopefully... 19:21
frettled pmichaud: «What we want for Christmas»? ;) 19:22
PerlJam It would be nice to get a TimToady post in there some where. 19:24
(or even outside the box of advent)
Tene I've currently got a secret christmas plan for Perl 6. :) 19:25
colomon oooooo.... 19:27
PerlJam I wonder how long the "Perl 6 doesn't exist" mythos will persist once we have an implementation in widespread adoption.
frettled PerlJam: for as long as it takes ;) 19:28
rgrau I'd call it the 'nightmare before christmas' 19:29
PerlJam A boxing day post could be interesting
Wolfman2000 I'll be back later 19:31
19:31 Wolfman2000 left
colomon My wife suggested that we had enough posters to keep the "cool Perl 6 thing a day" going well into 2010... 19:32
PerlJam colomon: I tend to agree. 19:33
How about we take a break after Dec 24 and then start it up again on Jan 1 and see how it goes?
(It wouldn't be called perl6advent anymore of course)
colomon I'd certainly be willing to pitch in. 19:34
PerlJam has errands to run; bbl 19:35
colomon BTW, we've broken 10,000 hits for today.
moritz_ \o/ 19:36
jnthn We could do a series leading up to Rakudo *, and call it Wise Men. ;-) 19:40
jnthn bbiab - dinner 19:43
moritz_ I've written a first version of my Whatever post: perl6advent.wordpress.com/?p=158&am...eview=true 19:46
pmichaud: feel free to munge the last paragraph about Rakudo * to your liking, I think you can write about it much better than I can 19:47
pmichaud moritz_: will do (later tonight) 19:48
I was thinking of just a "Perl 6 Calendar"
i.e., 365 postings about Perl 6
similar to other "cartoon a day" or "joke a day" calendars :-) 19:49
mathw I'm sure we could manage that... somehow
rgrau [eq] ("whatever", "*" , "star") ??
pmichaud it wouldn't bother me if the calendar started on dec 1 :-)
mathw heh 19:50
I'm having enough trouble coming up with my third topic!
pmichaud mathw: there's a list of suggested topics in the perl6advent-2009 directory
afaik we still don't have anyone covering the variations on the cross operator 19:51
there's also reverse
colomon Rats! 19:52
Cats!
TimToady rgrau: all "*" eq "star", but not all "*" are "whatever"
colomon (does anyone understand Cat yet, actually? I've only noticed vague references to it....)
TimToady * is whatever only in term position
19:52 fyskij left
pmichaud mathw: you're also free to steal from my use.perl.org/~pmichaud/journal/38080 post about sorting 19:53
(could use some extension, also)
moritz_ www.perlmonks.org/?node_id=809530 also has some things about sorting 19:54
mathw hmm, reverse would be good
since you didn' treally look at it in your metaoperators post
it'd be fairly short though
there's not much to say about reverse
pmichaud I think cross is an excellent one, though.
arnsholt true
mathw but maybe I shouldn't be writing an essay every time
pmichaud X, X~, X+, X*, etc.
TimToady maybe "X" X "R"
RX, good for what ails ya... 19:55
pmichaud I also didn't cover the "triangle" form of reduce
I don't see "series operator" in the list yet either
mathw triangle reduce?
colomon sequence operator! 19:56
TimToady though series isn't lazy in master, afaik
colomon is someone recording these in topic-brainstorming?
pmichaud colomon: I'm updating topic-brainstorming now
colomon pmichaud++
19:56 TimToady sets mode: +vvvv buubot dalek hugme iblechbot, TimToady sets mode: +vvvv ilbot2 ilogger2 IRSeekBot lambdabot, TimToady sets mode: +vvv lisppaste3 p6eval phenny, TimToady sets mode: +vvv pointme pugs_svn zaslon
pmichaud oh, I don't see anyone covering junctions yet either :-) 19:57
TimToady nor allone
mathw junctions!
TimToady or would that be allnone?
mathw I'll do junctions!
pmichaud mathw: for Dec 13?
mathw yes
I thought they should come before mucking around with traits 19:58
virtually everything should come before that
mathw cackles insanely
pmichaud triangle reduce is S03:4172, fwiw
moritz_ and NYI, iirc 19:59
pmichaud oh, yeah.
nyi
moritz_ rakudo: say ([\+] 1..5).perl
TimToady just cackles, an lets everyone draw their own conclusions
p6eval rakudo 7ef386: say requires an argument at line 2, near " ([\\+] 1.."␤in Main (file src/gen_setting.pm, line 2593)␤
TimToady *and
pmichaud so, implement triangle reduce, then write an advent post about it :-)
moritz_ ng: say [*] 1, 2, 3
p6eval ng d176dc: Confused at line 1, near "say [*] 1,"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
mathw pmichaud: just like that
maybe if I didn't have a concert tomorrow I'd take you up on it
pmichaud I expect to have [*] and friends in ng implemented by the end of the week. 20:00
(and yes, *after* fixing iterators and lists)
mathw applauds 20:01
dbrock what's function composition in perl6? 20:02
pmichaud oh, we don't have hash.invert on the list either
moritz_ and hash.push 20:03
pmichaud right
moritz_ those two go together
pmichaud I'm guessing masak++ will cover placeholders as part of parameter passing syntax?
if not, that's another possible topic 20:04
TimToady dbrock: there's no explicit function composition operator such as Haskell has
pmichaud jnthn: oh, if you're looking for something to implement in ng -- enums would be a good bet :-) 20:05
20:06 athomason joined
pugs_svn r29286 | pmichaud++ | [advent] Some updated idea for advent entries. 20:06
pmichaud idea*s*
grrr
Sometimes I really wish for an svn equivalent to "git commit --amend"
20:06 KyleHa left
pmichaud and as it was it took me a minute to remember the svn equivalent of "git pull". 20:07
(apparently git koolaid has rotted my svn brane)
TimToady dbrock: it would not be terribly difficult to write one
jnthn pmichaud: Probably we want roles and classes more solidly in place first, but yes. 20:08
TimToady probably best written as a macro when we have 'em
pmichaud jnthn: keep in mind that enums are no longer role-ish, iiuc
jnthn pmichaud: No, that's true, but a role can be derived from them when on the RHS of does and but. 20:09
pmichaud: That's just gonna be another multi candidate of does though.
zaslon lolfrettledhazblogged! frettled++ 'Failure()<0xb5323980>': Failure()<0xb5320924>
jnthn OH NO Failure again!
TimToady zaslon is a problem child..
pmichaud jnthn: fair enough. I just know that we'll be blocking on enum stuff soonish (Order::* and others)
dbrock TimToady: ah, okay, thanks
jnthn pmichaud: Heh. Everything blocks on everything. ;-) 20:10
pmichaud: Wonder if we can move Bool to the setting. ;-)
pmichaud we need a few more circularity saws :-)
TimToady pmichaud: to the first approximation, you can write Order as a package of constants
jnthn Then that can be a proper enum too.
colomon TrigBase -- though we're not blocking on that because I've pulled the master hack into ng.
frettled OhnoIhavenotbloggedyet! 20:11
pmichaud I'd be happy if we did 'constant' before 'enum' :)
frettled: that's why zaslon said "Failure"?
jnthn my $dog is want('walk'); # back soon
frettled pmichaud: probably!
pmichaud ENOWANT
jnthn pmichaud: Yes, looking at the weather outside, that's just how I feel about this. :-)
frettled zaslon is now not merely reporting new blog posts, but also the lack of new posts. Clever. 20:12
jnthn puts the leash on and heads out into the cold
pmichaud weather here is +3C
zaslon lolfrettledhazblogged! frettled++ 'Oslo.pm Past and Future': howcaniexplainthis.blogspot.com/200...uture.html
moritz_ somhow I've seen that lines a few times before :-/
frettled :(
colomon Finally up to 0C here.
TimToady supposed to go down to 0C here tonight; thinking about my baby avocado tree... 20:13
colomon moritz_: In the past and the future too, perhaps? 20:14
moritz_ avogadro tree: made of 6.022e23 molecules!
quantumEd lol
mathw so very small then?
TimToady still at risk from moles
colomon is trying to resist blowing an hour studying petfinder.com again...
frettled Yahoo! Weather thinks it's 3 °C here now. 20:15
mathw maybe it has 6.022e23 leaves
moritz_ mathw: a polymere molecule can have macrosocopic dimensions
TimToady y'know, there's a perfectly good Unicode chraacter for ℃
mathw TimToady: but how do I type it?
moritz_ .u ℃
phenny U+2103 DEGREE CELSIUS (℃)
mathw compose o C produces © 20:16
moritz_ thought Compose ° C
mathw I don't have a button for that
20:16 ascent_ joined
mathw has a british keyboard 20:16
moritz_ ah right, it's not on the US or GB keyboard
mathw irritatingly, no
TimToady .u degree celcius 20:17
phenny TimToady: Sorry, no results for 'degree celcius'.
TimToady .u degree celsius
phenny U+2103 DEGREE CELSIUS (℃)
TimToady someone needs to add that as an input method 20:18
where it pops up all the unicode candidates that match some string
or regex...
pmichaud I also find the tables at e.g., www.fileformat.info/info/unicode/ch.../index.htm to be useful at times 20:19
frettled TimToady: that unicode character looks weird :D
TimToady once we get everyone used to input methods, we can teach everyone 日本語. :)
mathw that would be coolo 20:20
metcheck says it's 5C here, feels like 1C
So not at all bad
The cat just came back in, he's much less damp than he has been the last few evenings 20:21
pmichaud creates a keyboard shortcut to the unicode tables
mathw weather assessment by cat: throw the cat outside and time how long until it returns
moritz_ cat sonar
20:22 xinming_ joined
jnthn It's not so much at that it's cold...it's just that the damp makes it an unenjoyable one. 20:26
jnthn gets latest Rakudo ng built. 20:27
mathw yeah the damp is irritating 20:28
it was chucking it down earlier
I got rather wet below my coat's extent
pmichaud we had our first soccer playoff game yesterday -- 5C and drizzling 20:29
mathw and I take back what I said about the cat being dry, his paws are all wet
pmichaud I was surprised they didn't cancel the game... but I guess they figure that with all of the cancellations we've had this year we had better play it now
mathw he's drying them on my trousers
mmm
pmichaud (we won 2-0, so we're in the final championship game for our division :-)
mathw I always hated football at school
I never understood why they made us play it when it was cold
and outside
jnthn Rugby was worse becuase it was all that + agression. 20:30
mathw urgh yes
I quite liked hockey, until people started trying to break my ankles
jnthn Most lethal, however, was hockey.
20:30 KyleHa joined
jnthn ...lol... 20:30
:-)
mathw I wasn't popular 20:31
jnthn Actually the other guys weren't so bad...it was the girls who were most dangerous!
pmichaud ..."were"?
mathw ah we never did those thing sin mixed groups
jnthn Freudian space? ;-)
moritz_ likes table tennis. The only one how tried to break any limb there was ... moritz_
mathw yeah I like table tennis
jnthn pmichaud: Well, I haven't played since I left school. ;-) 20:32
mathw friend of mine used to play hockey really seriously
jnthn pmichaud: They may well be equally dangerous now though. :-)
mathw great fun
jnthn mathw: Oh, in terms of playing it I enjoyed it more than football or rugby.
Was just a source of injuries. 20:33
mathw but he joined the police, and the shift patterns don't really fit very well with that sort of activity
jnthn I...want...faster...builds.
:-/
moritz_ jnthn: if you convince pmichaud to compile the core files separately, we can parallelize build much better
20:34 mberends joined
mathw we have t odo that! 20:34
jnthn moritz_: That doesn't help on a 1-core, hamster powered laptop... :-| 20:35
jnthn peaks at his order status again for the new one
20:35 xinming left
moritz_ jnthn: maybe the cat could speed up the hamster? :-) 20:35
pmichaud I have a couple of nqp-rx and past optimizations that should speed things up a bit.
I'm fine with separate core builds, if someone else agrees to handle putting everything into a correct CORE lexical scope later.
(actually, I'm fine with it even if that task falls to me :-) 20:36
jnthn pmichaud: Oh, if you're willing to do that task, I'm willing to agree to it. ;-)
moritz_ is fine by that, and nominates pmichaud for that :-) 20:37
pmichaud (it just might take a while, and I want to make sure people understand the ramifications of a split)
if it falls to me I also reserve the right to undo the split when I get around to dealing with CORE scope :)
moritz_ was under the impression that pmichaud had the right to do virtually everything in rakudo 20:38
pmichaud troo
I guess I just want to be able to do it and not hear lots of complaints about it :-)
okay, I'll rephrase.
I'm happy to allow a split to take place. 20:39
Someone will eventually have to deal with getting everything into a core lexical scope.
That someone may end up being me, which is fine.
If it's me, then I may end up putting everything back into a single compilation unit, so this serves as fair warning to whoever does the split that your work may be undone at some unspecified point in the future.
:-)
good enough? 20:40
moritz_ right :-)
mberends a legally watertight disclaimer ;)
moritz_ ng: sub öä { say 'foo' }; öä
p6eval ng d176dc: foo␤
moritz_ ng: sub öä($x) { say $x }; öä 'foo'
p6eval ng d176dc: foo␤
moritz_ wonders why that fails in t/spec/S02-lexical-conventions/unicode.t 20:41
jnthn huh? My build fails... :-S 20:42
moritz_ ng: use Test; my sub äöü ($x) { 1000 + $x }; is (äöü 17), 1017, "Unicode subs with one parameter (parsed as listop)";
p6eval ng d176dc: ok 1 - Unicode subs with one parameter (parsed as listop)␤
jnthn PackFile_unpack: This Parrot cannot read bytecode files with version 5.3.
moritz_ jnthn: is it complaining about Regex.pbc? 20:43
jnthn moritz_: Yeah.
moritz_: I used --gen-parrot and was sue it had realclean'd.
moritz_ jnthn: delete all .pbc files under runtime/, recompile
in parrot
pmichaud parrot's realclean was missing a few dependencies, iirc
moritz_ right
20:43 brody left, rhr left, frettled left, pjcj left, arnsholt left, frew left, revdiablo left, meteorswarm left, charsbar left, sjohnson left, PerlJam left, jrockway left, lambdabot left, ilbot2 left, gabiruh left, zostay left, Maddingue left, IRSeekBot left
moritz_ and it's fixed, but only if you realclean *after* reconfigure :-) 20:43
20:44 frettled joined, meteorswarm joined, jrockway joined, frew joined, zostay joined, charsbar joined, brody joined, rhr joined, IRSeekBot joined, Maddingue joined, arnsholt joined, gabiruh joined, pjcj joined, ilbot2 joined, irc.freenode.net sets mode: +ovov frettled IRSeekBot arnsholt ilbot2, revdiablo joined, sjohnson joined, lambdabot joined, PerlJam joined, irc.freenode.net sets mode: +vo lambdabot PerlJam
mberends how can anyone get any programming done with such a great backlog to read? 20:44
moritz_ mberends: by igoring or skimming :-) 20:45
colomon mberends: only read backlog while you are waiting on make spectest
pmichaud lol
jnthn mberends: Drink LOTS of red bull and stay up all night so you can do both.
moritz_ ah, I think I know what's wrong...
pmichaud type "make spectest", then finish War-And-Peace.
moritz_ there's a my sub äöü () { 42 }
earlier in the file
so maybe it's picking the earlier variant 20:46
are lexical subs supposed to work in ng?
jnthn moritz_: subs are leixcal by default in ng
moritz_ rakudo: { sub f () { say 1 } }; { sub f ($x) { say $x }; f(3) }
jnthn In theory.
p6eval rakudo 7ef386: Too many positional parameters passed; got 1 but expected 0␤in Main (file src/gen_setting.pm, line 324)␤
jnthn wtf.
moritz_ rakudo: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) }
jnthn Oh
p6eval rakudo 7ef386: 3␤
moritz_ forgot the my's
ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) } 20:47
p6eval ng d176dc: sh: ./perl6: No such file or directory␤
moritz_ grrrrr
ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) }
p6eval ng d176dc: sh: ./perl6: No such file or directory␤
jnthn moritz_: 1 less r and that'd have been a highlight for someone ;-)
moritz_ ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) }
p6eval ng d176dc: 3␤
moritz_ ng: use Test; plan 2; { my sub äöü () { 42 } 20:48
p6eval ng d176dc: Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907)␤
moritz_ ng: use Test; plan 2; { my sub äöü () { 42 }; is (äöü), 42, "Unicode subs with no parameters";
p6eval ng d176dc: Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907)␤
moritz_ gah
jnthn ng: my $a := 1; my $b := 2; my $c := $a; say($a =:= $b); say($a =:= $c);
p6eval ng d176dc: Confused at line 1, near "my $a := 1"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
jnthn nqp: my $a := 1; my $b := 2; my $c := $a; say($a =:= $b); say($a =:= $c);
p6eval nqp: 0␤1␤
jnthn \o/
jnthn wanted it in nqp anyway.
lisppaste3 moritz_ pasted "lexical subs with non-ASCII fail in ng" at paste.lisp.org/display/91730 20:49
moritz_ ng: sub f(:$ä) { say $ä }; f(:ä<argl>) 20:51
p6eval ng d176dc: Malformed UTF-8 string␤␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (src/PCT/HLLCompiler.pir:538)␤ 20:52
lisppaste3 pmichaud pasted "fails in nqp also" at paste.lisp.org/display/91731
moritz_ same error here locally
pmichaud I'm guessing it's the imcc bug issue 20:54
20:54 yahooooo joined
pmichaud they're in the same namespace, so imcc ends up short-circuiting the function call. 20:54
(to the wrong function) 20:55
I thought that particular bug was fixed.... but apparently not. I'll clean up the PIR and reopen the trac ticket for it. 20:56
20:57 Lorn left 20:59 rfordinal joined
colomon pmichaud: is that the one that messes up operators frequently in ng? 20:59
pmichaud frequently messes up a lot of stuff, yes.
in ng and master
20:59 SmokeMachine left
jnthn pmichaud: Huh? Wasn't the conclusion that it wasn't a bug as such? :-| 21:00
pmichaud the fact that imcc offers a short-circuit capability is not a bug. the fact that it short-circuits things that it clearly shouldn't *is* a bug.
jnthn pmichaud: Yes, but how does it know that it shouldn't in this case?
erm, in the multi case that is... 21:01
pmichaud because there's a lexical symbol of the same name in scope
jnthn ah, ok
moritz_ does imcc even know about lexicalsß
jnthn :-)
pmichaud moritz_: yes, it has to 21:02
jnthn moritz_: Yes
pmichaud moritz_: as it's the thing that processes the :outer flags and the .lex declarations
pmichaud is seriously tempted to simply replace subroutine calls with explicit "find_sub_not_null" opcodes in PCT 21:03
jnthn pmichaud: Let the temptation take you in! 21:04
pmichaud I'll reopen the ticket first. if it's not fixed quickly, we'll switch to the explicit opcode
jnthn pmichaud: I might dare to start looking at S06-multi/* if you do. :-)
huh 21:06
now ng gives me a build error
perl6_ops.obj : error LNK2001: unresolved external symbol _GETATTR_CallSignature_results
jnthn isn't sure how he can get that but nobody else. :-/
pmichaud I haven't tried building ng very recently. Also, are you using Parrot HEAD? 21:07
there was a recent branch merge dealing with CallSignature stuff, iirc
jnthn I used --gen-parrot
oh joy
colomon jnthn: which is almost parrot head -- I bumped it to HEAD a day or two ago.
pmichaud I think the branch merge was within the last 48 hours. 21:08
jnthn hmm, but given svn reports I'm "At revision 42920." and that's what's in PARROT_REVISION... 21:09
pmichaud let me see if ng builds on my box
(make take a bit of time -- have to rebuild parrot also) 21:10
jnthn pmichaud: Thanks. If so, I'll just nuke my Parrot tree.
colomon I bumped PARROT_REVISION 22 hours ago according to github.
I did do rm -rf parrot parrot_install in the process on my local machine, mind you. 21:11
PerlJam I think there are files that are generated by parrot that aren't cleaned with "make realclean" yet should be 21:14
21:15 rfordinal3643 left
pmichaud that seems likely. 21:15
jnthn: builds for me here locally. 21:17
I'm guessing nuke the parrot trees and try that.
Tene pmichaud: Is there anything specific you'd like me to work on in ng? I've been planning to work on Failure and Exception and friends if not. 21:18
pmichaud Tene: that sounds good to me. 21:19
jnthn pmichaud: Heh. The time builds take here, I might not actually get to running any of the code I write tonight. ;-)
21:20 synth left
pmichaud tene: if you can get a reasonable approximation of failure/exception in place, that will help a fair bit with my other tasks. 21:20
21:20 synth joined
Tene pmichaud: for 'use fatal', how evil would it be to have that explicitly in the grammar? Does 'fatal' need to really be 'fatal.pm', or can I cheat? 21:21
pmichaud cheat for now is fine with me.
21:22 Max joined
pmichaud don't go overboard with it, though -- 'use' is one of those things that will get an upgrade very soon 21:22
Tene pmichaud: if you can enumerate specific exceptions-related things you'd like to do reasonably, that might be nice, but isn't necessary.
Tene nods.
21:22 Max is now known as Guest99265
Tene All i need to do is translate it into a dynamic var definition. 21:22
my $*FATAL = Bool::True;
21:23 Guest99265 left
Tene So, simple. 21:23
PerlJam Weird ... I just got asked about Perl 6 *twice* in one day from localish people.
pmichaud mainly just need for fail() to work properly, and attempting to use a failure value to throw an exception
Tene Okay, that's doable. 21:24
TimToady PerlJam: now you know who reads slashdot
pmichaud PerlJam: I think the perl6advent calendar is significantly upping the awareness level. Having Tim O'Reilly tweet about the calendar was likely a big boost.
PerlJam TimToady: heh!
TimToady or follows Tim O
Tene The only big problem I'm having is that the get_bool vtable override set in Mu doesn't actually apply to user-defined classes.
pmichaud Tene: to user-defined classes, or to the builtin-defined classes? 21:25
Tene rakudo: class Foo { method Bool { say "lol"; 0 } }; my Foo $a .= new; say 'wtf' if $a;
p6eval rakudo 7ef386: ( no output )
moritz_ ng: class Foo { method Bool { say "lol"; 0 } }; my Foo $a .= new; say 'wtf' if $a; 21:26
p6eval ng d176dc: wtf␤
pmichaud I think it's 'true' in master.
Tene right, should have been ng.
pmichaud looks like it works in ng :-)
oh, wait.
moritz_ it does not.
Tene "Does not!" -- "Does too!" 21:27
21:27 Lorn joined
pmichaud rakudo: class Foo { method true { say 'lol'; 0 } }; my Foo $a .= new; say 'wtf' if $a; 21:27
p6eval rakudo 7ef386: ( no output )
PerlJam uh oh ... *I* shouldn't have looked at slashdot 21:28
moritz_ pmichaud: p6eval + rakudo + class defintion = timeout
PerlJam TimToady-- for mentioning it :(
jnthn PerlJam: /. is really that bad? ;-) 21:29
21:32 cdarroch_ joined
moritz_ perl6advent.wordpress.com/2009/12/0...comment-56 seems like people like MMD :-) 21:33
21:33 cdarroch left
mathw MMD is something easy to get the hang of 21:34
because people are used t omethod overloading
TimToady moritz_: say Mu; should say Mu() still; it's ~ that warns, not .Str, by current spec 21:39
dbrock rakudo: class A {}; class B {}; my A $x = B.new 21:40
moritz_ but say Mu ~ '' says \n only?
p6eval rakudo 7ef386: ( no output )
TimToady no, say doesn't use ~ 21:41
sorry
misread
moritz_ dbrock: somehow p6eval has problems with class defintions - that's not a rakudo problem though
TimToady the ~ will warn and just produce \n, yes
and "$foo stuff" is considered a form of ~ 21:42
moritz_ I thought say() used .Stringy, in order to allow direct conversion to Buf?
TimToady likewise ~$foo
well, it ought to just use .Buf :)
in any case, say has to use something very primitive
so that junctions also print rather than autothreading 21:43
dbrock moritz_: hmm, so it doesn't just feed the code into rakudo?
TimToady I've been thinking of .Str as primitive compared to ~
and .Num as primitive compared to +
moritz_ dbrock: it does, but it has some resource limits that get in the way (I think) 21:44
TimToady .Stringy and .Numeric are more dwimmy
rather than primitive
moritz_ I've been thinking differently about it, from the object's point of view
TimToady in fact, ~ is .Stringy, I think, and + is .Numeric
moritz_ .Stringy and .Numeric give the object more freedom 21:45
.Str just allows somethiing that returns Str, while .Numeric also allows Bufs
TimToady say isn't into giving freedom, anyway
so probably say really uses .Buf, or .Str.Buf, or some such
moritz_ maybe it should use .Buf, which in Object defaults to .Str.Buf 21:46
erm, .Str.encode() or so
TimToady (modulo encoding... right
Tene 14:45 < treed> say <huey dewey loiue>.fmt # 'huey dewey louie'
14:45 < treed> wow, .fmt even fixes typos!
moritz_ that's really magical!
sjohnson rakudo: say <huey dewey loiue>.fmt 21:49
p6eval rakudo 7ef386: huey dewey loiue␤
sjohnson <-- works for myth busters
dbrock haha 21:52
21:53 alester left
jnthn Gah! I get the same compilation failure, even after building with a completely clan Parrot tree. 21:56
*clean
I assume nobody else is having problems building ng? :-/ 21:57
Tene jnthn: do you have an installed parrot?
jnthn Tene: Jus tusing --gen-parrot 21:58
Tene: I don't believe I have an installed one elsewhere
Tene jnthn: you might need to "git clean -xdf" your rakudo tree. That'll remove *all* untracked files.
jnthn Tene: Certainly, there ain't one in my path.
pugs_svn r29287 | lwall++ | [S03,S12] remove redundant .Int and .true in describing conditional semantics 21:59
jnthn Tene: Oddly, I'm missing Parrot_ext_call too. Hm 22:00
Ah, that was a missing #include for extend.h...wonder why it didn't show up for @other. 22:05
22:06 Exodist joined, huf joined
jnthn ng: sub foo($x) { $x + 1 }; my $j = foo(any(1,2,3)); say $j.perl 22:06
p6eval ng d176dc: Method 'Num' not found for invocant of class 'Junction'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤
jnthn ng: sub foo(Any $x) { $x + 1 }; my $j = foo(any(1,2,3)); say $j.perl
p6eval ng d176dc: Method 'Num' not found for invocant of class 'Junction'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤
jnthn wtf
ng: say Junction ~~ Any 22:07
p6eval ng d176dc: 1␤
jnthn ffs
22:08 payload joined
jnthn OK, I don't understand how Rakudo builds for anyone. 22:08
ng that is
Given that GETATTR_CallSignature_results doesn't appear to be defined any more in Parrot. 22:09
Tene WFM 22:10
jnthn Tene: That's...odd. 22:12
Tene: So what does is get resolved to?
During the compile?
arnsholt Make sure you guys have the same Parrot rev?
jnthn 42920 22:13
Tene jnthn: what?
jnthn Tene: What Parrot revision have you got?
Tene 42896
jnthn Tene: Right. And in latest ng PARROT_REVISION is 42920. 22:14
What I don't get is why nobody else who has pulled latest doesn't see this though. 22:15
Tene Oh, I'm behind.
STD: my @list = 5 <<+>> 6; 22:19
moritz_ lc
Tene Ah. 22:20
std: my @list = 5 <<+>> 6;
p6eval std 29286: ok 00:01 108m␤
Tene but that's quote, not hyper.
moritz_ std: my @list = 5 << foo bar >> 6
p6eval std 29286: ===SORRY!===␤Obsolete use of << to do left shift; instead, in Perl 6 please use +< or ~< at /tmp/hib8IKIxLv line 1:␤------> my @list = 5 << ⏏foo bar >> 6␤FAILED 00:01 106m␤
jnthn Ugh...looks like Parrot changed how returns are stored. :-/ 22:21
Tene Oh, what?
jnthn Yeah
moritz_ Tene: if it were a quote, it would be two terms in a row
jnthn CallSignature now seems to no longer have a results attr
Tene Ah.
So, what does pointy on both sides do? 22:22
jnthn <-> is like -> but makes args rw by default.
Tene rakudo: say (5 <<+>> 6).perl;
jnthn oh
p6eval rakudo 7ef386: [11]␤
jnthn still hypers
auto-upgrades.
both sides.
Tene jnthn: so, makes an infinite list of both sides?
jnthn Well, not infinite.
Tene I thought that pointy side also auto-extended, yes?
jnthn Yeah but only to the maximum that is required. 22:23
Tene ah
jnthn And given both sides are considered a list of one thing...
...you get a list of one thingy back.
22:42 KyleHa left 22:44 jferrero joined 22:46 kaare_ left 22:47 iblechbot left 22:51 nihiliad left, nihiliad joined
dalek kudo/ng: 8d15415 | jnthn++ | src/ops/perl6.ops:
Chase a Parrot change that broke our junction auto-threading code.
23:00
moritz_ lemme guess... we had no tests for that activated? 23:01
ng: say True 23:08
p6eval ng d176dc: 1␤
moritz_ ng: say Bool::True 23:09
p6eval ng d176dc: 1␤
moritz_ ng: say True.WHAT
p6eval ng d176dc: Bool()␤
moritz_ ng: say True.name 23:10
p6eval ng d176dc: Method 'name' not found for invocant of class 'Bool'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ ng: say True.perl
p6eval ng d176dc: 1␤
TimToady ng: say True.key
p6eval ng d176dc: Method 'key' not found for invocant of class 'Bool'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
TimToady (.name no longer specced) 23:11
moritz_ replaced by?
TimToady .key
jnthn ng: say Mapping 23:12
p6eval ng d176dc: Could not find non-existent sub &Mapping␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ kinda makes sense
jnthn oh.
TimToady hasn't been a Mapping type for some time now
jnthn wtf?
TimToady: What's it called now?
And when did it die?
moritz_ there is still a Mapping type
but it's not used for enums
jnthn OK, now one of you is telling me there is a Mapping type and the other one of you is saying there isn't. :-) 23:13
TimToady well, yes and no
constant Pairs are now called Enums
so its an EnumMap
jnthn OK, what should EnumMap inherit from?
23:13 romanhunt joined
romanhunt good day all 23:13
jnthn ah...damm.
moritz_ should better shut up, he's not up-to-date anymore
jnthn TimToady: Heh. I'd just gone and defined Enum as...something a tad fancier.
moritz_ hello romanhunt 23:14
jnthn TimToady: On the up side, I defined it as a parametric role, so that's fine, the parameterless version can be more normal. ;-)
TimToady: Decided we'd have a crack at writing the enum implementation in the setting, just for fun. :-)
romanhunt anyone got a seconf to explain the concept of "Whatever"
as in Whatever.pm
TimToady does your Enum role define a whole enumeration, or only one Enum pair? 23:15
if the former, it should be called Enumeration instead
moritz_ romanhunt: when Whatever is used as term (like in *+2), it returns a closure
romanhunt I was looking into possibly trying to fix the range to infinity todo
moritz_ rakudo: say (*+2)(20)
p6eval rakudo 7ef386: 22␤
jnthn TimToady: No, it only defines one value. 23:16
moritz_ romanhunt: whatever you do, please do it in the 'ng' branch of rakudo, not in master
TimToady good
jnthn TimToady: I was doing $value but Enum[$key, $value, $enumeration] to get the thingy we install in the namespace :-)
pugs_svn r29288 | moritz++ | [t/spec] unfudge some ord/chr tests for rakudo; ord("") should be undef
moritz_ romanhunt: there you have a slight chance of lazy lists beingaccessible
TimToady but why does it need to be a role?
pugs_svn r29289 | moritz++ | [t/spec] .name on enums is now called .key 23:17
jnthn TimToady: Surely giving the enum values that we're going to stick in the namespace some extra functionality is best done by mixing an enum into them?
damm
*mixing a *role* into them 23:18
TimToady: It should all work out pretty naturally then.
romanhunt does that require git'ing a branch other than the one described in the "workflow" example on rakudo.org?
I apologize for my ignorance
moritz_ romanhunt: git checkout -b ng --track origin/ng
then perl Configure.pl; make spectest
TimToady well, we're now trying to keep straight at least our terminology; I'm calling the whole set of enums an enumeration so we don't confuse that with individual enums 23:19
something that installs a whole enumeration shouldn't be called an Enum
romanhunt thx. thias is my forst attempt at being part of a large project other than sending patches to openbsd upstream to various maintainers
TimToady the only vestive of the former use is that the keyword is still "enum" instead of "enumeration"
moritz_ romanhunt: welcome, and have fun!
jnthn TimToady: no, no...I'm using Enum as the role we mix into an *individual* value. 23:20
TimToady: Which menas it's the value + the extra few methods.
TimToady okay
jnthn TimToady: Heh, I should probably stop talking about the code and just throw it into git. :-) 23:21
moritz_ romanhunt: also pmichaud was planning to do some work on (lazy) lists and iterators this week, it might be worth coordinating with him when he shows up
TimToady as long as it ends up constant on both key and value
jnthn TimToady: It won't run yet, but it's a sketch...
TimToady: I figure if we can work out how to define enum in Perl 6 itself though, it gets a lot easier to discuss how things all fit together.
TimToady nodnod 23:22
romanhunt moritz: thx will do 23:27
23:32 tarski left
pugs_svn r29290 | lwall++ | [STD] slight tweaks to obsolscence messages 23:36
TimToady *obsolescence
(they now say "Unsupported use" to be less judgemental :)
23:37 wayland76 joined
jnthn Perl 5ish use of...? :-) 23:38
colomon romanhunt: the only reason we don't have Inf endpoints in ranges at the moment is the lazy iterator interface hasn't been put in place. We'll probably have full Ranges within about 24 hours of that landing. 23:39
jnthn (Even clearer that it's something from Perl 5 that you should not expect to work in Perl 6...unsupported could be taken as "this implementation doesn't do it yet", that's all...)
mberends jnthn: good ol' use of...
jnthn ;-) 23:40
dalek kudo/ng: e07f8d5 | jnthn++ | src/metamodel/ (5 files):
Start to fill out the role composition algorithm some more; preliminary but not yet working handling for passing along parents, composing attributes and passing along requirements. Also a couple more steps to RoleHOW being independent of Parrot's Role PMC and just being a standalone metaclass.
kudo/ng: 2069f24 | jnthn++ | src/core/enum.pm:
Throw in some initial thoughts on what enumerations implemented in Perl 6 could look like. Rakudo actually can compile this, but we don't include it in core yet, and it certainly won't quite work yet either.
TimToady jnthn: well, someone might hack in 'use P5ish;' and then it would be supported. :) 23:41
but I think the undercurrent of "Unsupported (and will never be supported)" is probably strong enough, and little harm done if not. 23:42
jnthn TimToady: *nod* 23:43
TimToady though we might have a "Deprecated" variant, I suppose...
jnthn TimToady: I'm was thinking of folks coming from a 5 background, playing with 6 for the first time, and writing 5isms...and if the message is clear enough that they should be using a different construct.
romanhunt colomon: thx
jnthn std: say $$ 23:44
p6eval std 29289: ===SORRY!===␤Anonymous variable requires declarator at /tmp/awhUSNbHGA line 1:␤------> say $$⏏<EOL>␤ expecting twigil␤FAILED 00:02 107m␤
jnthn oh, that wasn't quite what I expected :)
std: say $^O
p6eval std 29289: ===SORRY!===␤Obsolete use of $^O variable; instead, in Perl 6 please use $?OS or $::OS at /tmp/67tHqeT5TF line 1 (EOF):␤------> say $^O⏏<EOL>␤FAILED 00:01 105m␤
jnthn oh, that's not bad.
Because of the "in Perl 6" bit. 23:45
TimToady I think the "in Perl 6 please use" is strong enough
jnthn TimToady: Yes.
TimToady I also dropped the "instead"
since it's already implied
jnthn TimToady: I'd forgot it said "in Perl 6" later on in the message.
In that case, I'm happy. :-) 23:46
colomon Woah, if we could get twenty more hits on the perl 6 Advent calendar in the next 15 minutes, we'd have 11,000 for the day....
mberends it's a really grand way to say it
dalek kudo/ng: 2edef04 | jnthn++ | src/Perl6/Compiler/Role.pm:
Get role code generation using the attribute meta-protocol properly.
kudo/ng: fcdef68 | jnthn++ | src/metamodel/RoleToClassApplier.nqp:
Add missing helper sub that I forgot to implement in the role composer.
jnthn mberends: Your English is very English today. :-)
mberends jnthn: most be some heimweh ;)
TimToady here it says: Unsupported use of $^O variable; in Perl 6 please use $?OS or $::OS at...
mberends *must, gah 23:47
jnthn TimToady: in something like "has $.x = 42" does STD already have something in it that knows that the RHS there actually wants to be promoted to something more special? 23:48
TimToady: that is, that this isn't really just an assignment?
I need to get ng handling that construct again...it's blocking me on passing a roles spectest...
And probably other tests. 23:49
But not sure quite how to put it back in.
Well, I know *a* way, but pmichaud will probably glare at me for it. ;-)
TimToady not explicitly, but I'd do it with a reducecheck, if I were to do it in the grammar 23:50
in any case, sometime after the = reduces both its arguments, which means no sooner than the opp reduction 23:51
(which is when a reducecheck runs) 23:52
basically, any assignment has to look at the left side to see what kind of target is implied, and declarators are just one example of that
colomon comment about [Z] on the Advent blog:
23:52 nihiliad left
colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say ([Z] @c).fmt; 23:52
p6eval rakudo 7ef386: Confused at line 2, near "@c).fmt;"␤in Main (file <unknown>, line <unknown>)␤ 23:53
jnthn TimToady: OK.
colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say @c.perl
p6eval rakudo 7ef386: [1, 2, 3, 4, 5, 6]␤
colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = \@a, \@b; say @c.perl 23:54
p6eval rakudo 7ef386: [[1, 2, 3], [4, 5, 6]]␤
carlin Argh, I thought I had fixed zaslon's failure problem
colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = \@a, \@b; say [Z] @c;
p6eval rakudo 7ef386: Confused at line 2, near "@c;"␤in Main (file <unknown>, line <unknown>)␤
23:54 zaslon left 23:55 fridim_ left
colomon Is [Z] simple NYI? 23:55
TimToady I suspect rakudo doesn't know about [Z]
all its metaops are hardwired currently
that will be fixed when ng reimplements them as higher-order functions 23:56
colomon Should [Z] work? (In ideal p6, I mean.)
TimToady std: [Z] 1,2
p6eval std 29290: ok 00:01 108m␤
23:56 zaslon joined
TimToady STD thinks it's fine 23:57
it's not too fiddly, or diffy
std: [&&] 1,2
colomon I wasn't sure if the meta operators were defined on list operators or not.
p6eval std 29290: ok 00:01 106m␤
TimToady std: [==>] 1,2 23:59
p6eval std 29290: ===SORRY!===␤Can't reduce ==> because sequencer operators are too fiddly at /tmp/aNcZcLOCIU line 1:␤------> [==>]⏏ 1,2␤ expecting prefix_circumfix_meta_operator__S_258reduce␤FAILED 00:01 104m␤
TimToady std: [,] 1,2
p6eval std 29290: ok 00:01 106m␤
23:59 am0c left