Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-12-07

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 zaslon lolperl6adventhazblogged! perl6advent++ 'Day 7: Looping for fun and profit': http://perl6advent.wordpress.com/2009/12/07/day-7-looping-for-fun-and-profit/
00:06 Khisanth joined #perl6
00:08 jnthn mathw++ # nice post
00:09 zamolxes yep
00:27 arthur-- joined #perl6
00:29 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 Tene Maybe I could just fake it...
00:32 Grrrr joined #perl6
00:34 Tene error in the last p6advent post... the loop says "$i, $j".say, but the output has no commas in it.
00:36 Tene I would also change the map and the hyper to something like "@students.map: *.id" or "@contacts>>.phone-number"
00:39 dbrock wow, *.id
00:39 dbrock that's beautiful
00:42 dbrock does  for 1, 2, 3 *.say  work?
00:42 masak joined #perl6
00:43 masak greetings, perl6lings.
00:43 dbrock and what about the hyphen in the method? was that a typo, Tene?
00:43 Tene dbrock: no, why would it be?  Perl 6 allows - in identifiers.
00:43 Tene rakudo: sub foo-bar { say "Foo Bar" }; foo-bar;
00:44 p6eval rakudo 7ef386: Foo Bar␤
00:44 * masak likes that a lot
00:44 Tene rakudo: for 1, 2, 3 *.say; # I don't expect this to work.
00:44 p6eval rakudo 7ef386: Use of uninitialized value␤␤Could not find non-existent sub for␤in Main (file src/gen_setting.pm, line 324)␤
00:44 Tene I don't know if that's supposed to work, but I'd be a little surprised.
00:45 dbrock Tene: whoa!!!
00:45 dbrock that's awesome!
00:45 Tene dbrock: what is?
00:46 dbrock that hyphens are allowed
00:46 dbrock haha, http://www.google.se/search?q=perl6+hyphens
00:47 masak drbean: Larry Wall hesitated long before allowing hyphens and apostrophes in identifiers.
00:47 orafu joined #perl6
00:47 dbrock (look at the first hit)
00:47 dbrock masak: ah, apostrophes too??
00:48 dbrock I am so happy right now
00:48 masak ah, that's you! :)
00:48 Tene Ah, yes.
00:48 dbrock masak: yeah :D
00:48 masak drbean: but he finally allowed it after realizing that only two places in the test suite were affected by the change.
00:48 dbrock haha
00:48 masak drbean: well, in that case -- welcome back! :)
00:48 dbrock awesome
00:48 dbrock thanks :)
00:48 masak we've missed you. :)
00:48 masak oh, and tell your brother that Perl 6 is, like, the ultimate language nowadays :P
00:51 dbrock haha, I will :D
00:51 dbrock are hyphens and underscores equivalent, or are foo-bar and foo_bar separate identifiers?
00:51 masak they're separate.
00:51 hcchien joined #perl6
00:52 masak rakudo: my $a_b = 23; my $a-b = 42; say $a_b, $a-b
00:52 p6eval rakudo 7ef386: 2342␤
00:52 * allbery_b sees golfing and goes back to sleep :)
00:54 dbrock joined #perl6
00:54 masak *whoa*! 7000 views on the advent calendar yesterday! how did that happen? :)
00:54 Tene slashdot
00:54 masak really?
00:54 Tene I haven't felt up to reading the /. comments thread yet.
00:54 masak wow, we did it!
00:54 Tene Yes.
00:55 masak we hit slashdot before April, just like I hoped.
00:55 masak the /. comments are wont to be totally irreverent.
00:55 masak hohoo, all the rest of the week looks like noise next to the slashdot peak.
00:55 masak hope some of the readers stay on.
00:57 masak colomon: oops, were you editing mathw++'s post just now?
00:59 dbrock that advent calendar is such a good idea :D
01:00 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!
01:00 masak Tene: I'm currently working on finishing up week 20 of Web.pm.
01:01 masak 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 masak 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 #perl6
01:03 dbrock rakudo: my $a'b = 123; say $a'b
01:03 p6eval rakudo 7ef386: 123␤
01:04 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>)␤
01:04 dbrock rakudo: my $a' = 123; say $a'
01:04 p6eval rakudo 7ef386: Confused at line 2, near "' = 123; s"␤in Main (file <unknown>, line <unknown>)␤
01:04 dbrock hmm, final apostrophes are not allowed?
01:05 leedo joined #perl6
01:06 carlin dbrock: can only contain hyphens or apostrophes if the following character is a letter
01:07 masak for safety reasons, mainly.
01:08 dbrock hmm... that defeats the purpose I had in mind for apostrophes
01:08 dbrock but I guess it's nice that you can contract words in identifiers...
01:08 masak rakudo: my $don't-try-this-at-home; say 'alive'
01:08 wayland76 masak: http://developers.slashdot.org/story/09/12/06/196202/The-Perl-6-Advent-Calendar?art_pos=2
01:08 p6eval rakudo 7ef386: alive␤
01:09 masak wayland76: yep, reading it already.
01:09 wayland76 Great.  Needs more comments, though :)
01:09 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.
01:09 avar wrt perl6advent it would be nice if there were twitter.com/perl6advent to announce :)
01:10 wayland76 How do we fix http://dev.perl.org/perl6/ ?
01:11 masak avar: yes, maybe. right now we use twitter.com/rakudoperl for that, because people have tuned into that already.
01:11 masak wayland76: "fix"?
01:11 nihiliad joined #perl6
01:12 ashizawa joined #perl6
01:15 masak I can't help but admire chromatic's persistence: http://slashdot.org/comments.pl?sid=1468708&amp;cid=30347374
01:16 masak every other tweet or comment
01:16 masak or at least many of then, are this message.
01:16 masak it kinda shows how difficult it is to fight a common misconception.
01:17 Wolfman2000 joined #perl6
01:17 ashizawa joined #perl6
01:17 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 colomon joined #perl6
01:17 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.
01:18 dbrock his response: 01:54 <mikael> oh snap 01:54 <mikael> perl6 4life
01:18 masak wayland76: that's a good point, yes.
01:18 masak dbrock: \o/
01:19 dbrock later on, after some random discussion:
01:19 dbrock 02:13 <mikael> I wonder how many percent of /dev/urandom is valid perl
01:19 dbrock 02:13 <dbrock> hahahahahha
01:19 dbrock 02:13 <mikael> you could prolly calculate that if perl's syntax weren't non-computable :D:D
01:19 dbrock 02:13 <mikael> or AI-complete or whatever it is
01:19 wayland76 Actually, you could have a go at it.  perl -c
01:22 hcchien joined #perl6
01:24 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:25 masak sorry that was for dbrock :/
01:25 masak dbrock: http://modernperlbooks.com/mt/2009/08/on-parsing-perl-5.html
01:31 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 masak I'm not saying I'd use it myself, but it'd be a nice experiment. :)
01:31 agentzh joined #perl6
01:32 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 :)
01:33 masak this is why I'm excited about slangs, macros and Perl 6 parsing itself. :)
01:33 masak the whole playing field will change. forever.
01:34 arnsholt Indeed. I have an inkling of a plan to abuse that myself =)
01:35 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 colomon joined #perl6
01:37 masak carlin: at some point, it's probably better to actually switch to the language and not just its syntax. :)
01:38 Tene masak: i have plans to make that pretty trivial for any PCT-using language on Parrot.
01:38 Tene Q:LOLCODE <parsed using the lolcode grammar>;
01:38 masak Tene: make what pretty trivial?
01:38 masak ah.
01:38 Tene Q:scheme ( ... )
01:38 masak Tene++
01:44 ihrd joined #perl6
01:44 dbrock that would be so cool
01:45 dbrock 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:47 masak it'd take a whole lotta work.
01:47 masak but it's possible.
01:49 Tene rakudo: my $i = 1; my @a = 1,2,3,4,5; say @a[$i-1];
01:49 p6eval rakudo 7ef386: 1␤
01:50 Tene "The fail function responds to the caller's use fata state."
01:51 Tene This doesn't actually specify whether "use fatal" is inherited by called functions.
01:52 Tene 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 Tene I'd assume and hope the former.
01:53 masak then pretend that's the case until someone says it isn't.
02:01 Tene okay, lemme start by adding a fake &fail that makes the sub return Mu
02:11 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␤
02:11 Tene Bleh.  i really need to clean up src/builtins/control.pir.  We should be building the Perl6Exceptions on catch, not on throw.
02:11 Wolfman2000 diakopter: ...doesn't look like that went in order
02:12 masak Tene: what of the case where I want to throw an Exception object?
02:15 Tene masak: that shouldn't be a special case.
02:15 ihrd left #perl6
02:16 masak maybe I misunderstood. is the Perl6Exception class a Parrot class? it probably is, now that I think about it.
02:17 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 Tene 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.
02:17 Tene So in ng right now, we build a new Perl 6 Exception object whenever we catch a parrot exception.
02:18 masak ah, ok.
02:18 Tene no more parrot types occasionally leaking through.
02:18 Tene next/last/redo/break/die aren't updated to the new world order, though.
02:18 Tene lemme see if this fail works...
02:22 Wolfman2000 Tene: I assume new world order is ng?
02:23 Tene Wolfman2000: I was talking about the implementation of CATCH and friends in ng.
02:23 Wolfman2000 Tene: oh
02:23 dalek rakudo/ng: e71334b | tene++ | src/builtins/control.pir:
02:23 dalek rakudo/ng: Initial incomplete fake implementation of &fail
02:23 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e71334b783c0d7328a8e4e237a2ef7fd9e770f69
02:23 Tene moritz_: I pushed a version of &fail that makes the sub return Mu
02:24 * 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 Wolfman2000 *shrugs* the things one has to do to save money
02:24 Tene Ack, i did it wrong!
02:25 Tene That 'Mu' evaluates as true?
02:27 Wolfman2000 Can Mu ever be true?
02:27 Wolfman2000 rakudo: Mu.defined
02:27 p6eval rakudo 7ef386:  ( no output )
02:27 Wolfman2000 err
02:27 Wolfman2000 rakudo: say Mu.defined
02:27 p6eval rakudo 7ef386: 0␤
02:28 masak rakudo: say ?Mu
02:29 p6eval rakudo 7ef386: 0␤
02:29 Tene rakudo: my $a = Mu.new(); say 'foo' if $a;
02:29 p6eval rakudo 7ef386: foo␤
02:29 Tene That's what I did.
02:29 Tene I returned a new Mu instead of Mu itself.
02:29 dalek rakudo/ng: 77bb074 | tene++ | src/builtins/control.pir:
02:29 dalek rakudo/ng: &fail should definitely not be returning something that evaluates as true
02:29 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/77bb0741a8d237f356d7fc06c5b52d97d76ebaaa
02:29 masak Tene: it might be that 'if' still doesn't boolify.
02:29 diakopter whoa
02:30 diakopter tweeted by someone with 1.3M followers: http://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.
02:31 masak diakopter: whoa!
02:31 masak that's as good as slashdot. maybe better.
02:31 Tene nice
02:31 masak we're famous!
02:31 diakopter Retweeted by you  and 3 others
02:32 Tene 4!
02:32 masak 5!
02:34 diakopter http://perlchina.org/advent/2009/WebScraper.html
02:35 Tene Wow, it's being retweeted at a factorial rate!
02:37 carlin Does wordpress show the referrer, so we could compare traffic from slashdot vs traffic from twitter?
02:45 envi^home joined #perl6
02:45 masak carlin: http://perl6advent.wordpress.com/wp-admin/index.php?page=stats
02:46 masak 63 views from twitter, hundreds from slashdot so far.
02:48 Tene carlin: yes
02:48 Tene 71 from twitter now
02:49 Tene hundreds from /. so far today.  2.7k from /. yesterday
02:49 Tene well, from the /. main page, at least
02:49 Tene looks like >3.5k total from /. yesterday
02:49 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. :)
02:50 masak I think that's a metric showing that people care about Perl 6.
02:51 carlin masak: I can't access that
02:51 carlin That people care but possibly didn't know where to look
02:52 masak carlin: ah, too bad. :/
02:53 masak carlin: ah, you're not a blog author. I guess I just assumed you were.
02:53 JimmyZ joined #perl6
02:57 masak Tene: yours is the first undecided blog post topic (on Saturday). do you have a guess what you'll write about?
02:59 drbean_ joined #perl6
03:00 Tene masak: no idea.
03:01 masak Tene: perhaps you want my given/when topic? since it has exception, which you've been helping with.
03:03 Tene Nah.  Thanks, though.
03:03 Tene I guess I could do exceptions.
03:03 Tene rakudo doesn't have NEXT blocks, though.
03:03 astrojp_ left #perl6
03:04 masak nor next LABEL.
03:04 Tene I guess I could talk about "use fatal" and &fail, if I get it working in ng.
03:05 masak hm.
03:05 Tene I'd rather stick with what works in master, though.
03:05 masak all blog posts so far have been about things working in master.
03:06 Tene okay, so here's the plan...
03:07 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.
03:07 Tene what could possibly go wrong?
03:07 masak I see no flaws in that plan.
03:07 Tene Great.
03:08 Tene 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? :)
03:09 masak oh wait, that's PerlJam in a few days.
03:09 masak PerlJam: regex AND grammar? are you quite sure?
03:09 vamped joined #perl6
03:09 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'.
03:10 masak Tene: he has one about parametric roles too, so he might just mention roles in the first post.
03:10 masak oh wait, S03 is larger than S05 as well. but still.
03:13 masak rakudo: say 4 »+« 5
03:13 p6eval rakudo 7ef386: 9␤
03:14 stuuf joined #perl6
03:14 masak stuuf: welcome :)
03:14 masak rakudo: say 4 »+« 5 # this works
03:14 p6eval rakudo 7ef386: 9␤
03:15 masak stuuf is a guest from the #perl channel.
03:15 stuuf eval: (0..10) »*» 2
03:15 stuuf err
03:15 stuuf p6eval: say (0..10) »*» 2
03:15 Wolfman2000 stuuf: you most likely want Rakudo
03:16 Wolfman2000 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>)␤
03:16 arnsholt rakudo: for 1,2,3,4,5 -> $i, $j { say "$i, $j" }
03:16 p6eval rakudo 7ef386: 1, 2␤3, 4␤StopIteration␤in Main (file <unknown>, line <unknown>)␤
03:16 stuuf 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>)␤
03:16 masak rakudo: say (0..10) >>*>> 2
03:16 p6eval rakudo 7ef386: 02468101214161820␤
03:16 stuuf rakudo: say((0..10) >>*>> 2)
03:17 p6eval rakudo 7ef386: 02468101214161820␤
03:17 masak stuuf: there's a unicode bug affecting some of the >> operators.
03:17 stuuf ah
03:17 stuuf stupid ascii
03:17 masak I bet it works in ng.
03:17 masak rakudo: class A {}; class B {}; my @c = (A, B, A, B, A, A); for @c -> A $a, B $b? { say $a }
03:18 p6eval rakudo 7ef386:  ( no output )
03:18 masak locally, that gives "Nominal type check failed for parameter '$b'"
03:18 masak it's a known bug.
03:18 masak ng: class A {}; class B {}; my @c = (A, B, A, B, A, A); for @c -> A $a, B $b? { say $a }
03:18 p6eval ng 7fc485: sh: ./perl6: No such file or directory␤
03:18 masak :(
03:18 stuuf rakudo: say [+] (1..5) »*« (6..10)
03:18 p6eval rakudo 7ef386: 130␤
03:19 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 << >> ?
03:19 masak stuuf: I'm not sure if you're kidding or not. there are already loads of useful applications.
03:20 stuuf i know
03:20 masak vamped: I don't remember exactly. but it seems << >> works more often.
03:20 mrsaturns joined #perl6
03:20 masak vamped: ask colomon, he's the expert. :)
03:20 stuuf i was just reading the advent calendar
03:21 stuuf 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.
03:22 stuuf what does \+ do?
03:22 masak [\+] gives a list of incremental sums.
03:22 masak [\+] (1,2,3,4) == (1,3,6,10)
03:22 stuuf ah
03:23 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.
03:23 arnsholt (Except it's not mapcan(), it's something else)
03:24 masak we'll even have hygienic macros eventually. :)
03:24 arnsholt Really? That'll be awesome
03:24 arnsholt But I should've been in bed several hours ago
03:24 arnsholt G'nite
03:24 masak o/
03:25 jonathanturner masak: do you know where all these operators are defined?  Like, are they in a standard library or something?
03:26 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.
03:26 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
03:27 jonathanturner 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.
03:27 Tene jonathanturner: the metaoperators are defined separate from the operators
03:28 jonathanturner masak: the metaoperators take an operator as an argument?
03:28 zmjb1 joined #perl6
03:28 masak jonathanturner: yes.
03:28 jonathanturner masak: I was also thinking of [\ +]
03:28 masak jonathanturner: if you 'close on' all the operators that the metaoperators define, you end up with a set of infinite cardinality.
03:29 stuuf how long until they add metametaoperators?
03:29 Tene metaoperators can apply to operators
03:29 masak jonathanturner: [\ ] is another metaoperator.
03:29 Tene erm
03:29 Tene to metaoperators
03:29 masak stuuf: well, since metaoperators generate operators, there's not much need.
03:29 jonathanturner that's a strange one
03:29 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
03:30 jonathanturner if you had a list of lists, could you do <<<<+>>>>
03:30 masak jonathanturner: yes.
03:30 Tene jonathanturner: http://github.com/rakudo/rakudo/blob/ng/src/Perl6/Grammar.pm
03:30 Tene search for infix:
03:30 Tene that'll get you the operator definitions.
03:31 masak but that's only the syntax half.
03:32 jonathanturner Tene: I take it the <O('%multiplicative')> part is denoting something for a precedence parser?
03:32 Tene Yes.
03:33 masak ooh, a parsertongue!
03:34 masak jonathanturner: do you have a CS background?
03:34 jonathanturner masak: yes, and I'm a pl geek
03:35 Tene okay, I really really need to put down rakudo and set up for class tomorrow.
03:35 * Tene AFK for a bit.
03:35 jonathanturner masak: is that bad?
03:35 masak jonathanturner: I'm about to start writing a 7-post blog series about the Parrot Grammar Engine.
03:35 masak jonathanturner: I've been learning about things like operator precedence parsers in the past few months.
03:36 masak jonathanturner: no, not bad. it's unusual.
03:36 masak jonathanturner++
03:36 jonathanturner masak: it's a cool trick, though I've never seen anything like the scale of the perl6 effort
03:36 Tene masak: have you read nqp-rx's grammar engine?
03:36 masak Tene: not nearly enough.
03:37 Tene ack.  /me hides IRC.
03:37 stuuf rakudo: $i=1; @a = qw/llama llama duck/; say join(', ', $i++ <<.<< @a);
03:37 p6eval rakudo 7ef386: Confused at line 2, near "(', ', $i+"␤in Main (file <unknown>, line <unknown>)␤
03:37 stuuf yeah that made no sense
03:37 masak jonathanturner: I like how the Perl 6 grammar engines use both recursive descent and operator precedence.
03:37 masak stuuf: qw// is <> nowadays.
03:37 stuuf rakudo: $i=1; @a = <llama llama duck>; say join(', ', $i++ <<.<< @a);
03:37 p6eval rakudo 7ef386: Confused at line 2, near "(', ', $i+"␤in Main (file <unknown>, line <unknown>)␤
03:38 masak stuuf: and . is ~ nowadays.
03:38 stuuf still confused
03:38 stuuf oh right i knew that
03:38 stuuf rakudo: $i=1; @a = <llama llama duck>; say join(', ', $i++ <<~<< @a);
03:38 p6eval rakudo 7ef386: Symbol '$i' not predeclared in <anonymous> (/tmp/fQqeuNNmsb:2)␤in Main (file <unknown>, line <unknown>)␤
03:38 jonathanturner masak: it's a good compromise for speed reasons.  You can do operator prec. in recursive descent, but it's very verbose
03:38 carlin and strict is the default nowadays
03:38 stuuf rakudo: my $i=1; my @a = <llama llama duck>; say join(', ', $i++ <<~<< @a);
03:38 masak stuuf: and strict is on by default.
03:38 p6eval rakudo 7ef386: 1llama, 1llama, 1duck␤
03:38 jonathanturner masak: and would almost be impossibly ugly with the number of operators p6 wants to support
03:38 masak jonathanturner: yes. it's a by-need solution.
03:39 masak 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
03:40 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
03:40 stuuf yeah
03:40 masak jonathanturner: exactly.
03:40 jonathanturner masak: but I haven't done any speed comparisons between the two methods
03:40 masak me neither.
03:41 masak but it feels like OPP is tweaked towards hadnling expressions really well.
03:41 masak potentially, a lot of backtracking is eliminated.
03:41 diakopter yes
03:41 jonathanturner actually I was just going to ask about that
03:42 jonathanturner token infix:sym<-> { <sym> <![>]> <O('%additive')> }  <-- that looks backtracky
03:42 masak I saw that one as well.
03:42 masak I'm surprised that that's needed.
03:42 jonathanturner is that just giving hints for the grammar compiler or is it really backtracking over minus?
03:42 masak wonder if STD.pm does the same?
03:42 diakopter no
03:42 masak oh, good.
03:42 diakopter no
03:42 masak that means it's a temporary fix in Rakudo.
03:43 diakopter it's saying a '>' can't follow the - for this token to succeed
03:43 diakopter no backtracking
03:43 * masak confirms: STD.pm doesn't do that
03:44 diakopter maybe you meant lookbehind?
03:44 envi^office joined #perl6
03:44 jonathanturner diakopter: well, that's lookahead
03:44 diakopter jonathanturner: what do you mean 'backtracking over minus'?
03:44 jonathanturner diakopter: not exactly backtracking, but could be backtracking if naive
03:44 jonathanturner diakopter: you find "-" but then need to look ahead to make sure it's not >, it's not really backtracking
03:45 jonathanturner the problem would come up if you had multiple operators that start with '-' but had different operators
03:45 diakopter yes
03:45 jonathanturner err precedence
03:45 colomon jonathanturner: <<+>> already should work for lists of lists, no need for <<<<+>>>>
03:45 colomon (but I don't know if that's implemented in rakudo yet)
03:45 diakopter jonathanturner: yes, that is the case
03:46 diakopter 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
03:46 jonathanturner say you go a few characters and realize "whoops" that's not the right operator
03:47 jonathanturner that's when you "backtrack" to where you started and try again
03:48 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
03:49 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.
03:49 diakopter I didn't intend to
03:49 masak hm, the C<Each> role is mentioned twice in S03, and then nowhere else.
03:50 colomon masak: I don't know that any of the meta operators are implemented in ng yet.  :)
03:52 masak ah.
03:55 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.
03:56 jonathanturner masak: I mean, this is the grammar, but how does it get converted at compile time/runtime for actual parsing?
03:57 jonathanturner spinclad: thanks, I was wondering that reading through STD.pm.  lots of stuff seem to rely in longest match
03:57 masak jonathanturner: there's a tool for rendering it as Perl 5 code.
03:57 spinclad jonathanturner: the STD.p5 parser, or rakudo-ng's?  STD: with gimme5; rakudo-ng: it's getting hand ported.
03:57 masak jonathanturner: STD.pm is beautiful, but the output from that tool is anything but. it runs, though. :)
03:59 jonathanturner spinclad: by hand ported do you mean that someone is writing the parser to match the spec in C?
04:00 spinclad jonathanturner: no, look at rakudo/.../Grammar.pm: it's a not-quite-perl6 grammar.
04:01 pmichaud actually,  src/Perl6/Grammar.pm is a Perl 6 grammar :)
04:01 meppel joined #perl6
04:01 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... :-)
04:01 jonathanturner masak: does nqp run on pge?
04:02 pmichaud nqp has its own regex engine.
04:02 pmichaud (the new version fo nqp does, that is)
04:02 pmichaud *of
04:02 masak jonathanturner: what pmichaud said. the old nqp ran on PGE. new one doesn't.
04:04 pmichaud jonathanturner: since the grammar is Perl 6 code, we plan to compile it to executable directly
04:04 pmichaud (where "executable" depends on whatever VM happens to be underlying the runtime)
04:05 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:08 pmichaud sure, the grammar can be optimized, same as any regex
04:09 pmichaud but in general there's not any backtracking in the grammar anyway
04:09 pmichaud it's extremely predictive
04:09 jonathanturner pmichaud: I figured not.  if any community would have parsers down to a science, it'd be perl
04:10 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
04:10 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)
04:10 jonathanturner not to change topics
04:10 pmichaud ask away!  :)
04:11 pmichaud ( spinclad is correct )
04:11 jonathanturner pmichaud: ([1, 2, 3] Z [4, 5, 6]).perl.say  yields [1, 4, 2, 5, 3, 6]
04:12 pmichaud jonathanturner: in rakudo?  this is a known bug
04:12 pmichaud it will likely end up being  ((1,4), (2,5), (3,6))
04:12 jonathanturner pmichaud: would it be something a coder new to perl could fix?  or is it too deep in the stack?
04:13 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 pmichaud I don't know if zip is implemented in the ng branch yet
04:13 pmichaud ng:  ((1,2,3) Z (4,5,6)).perl.say
04:14 p6eval ng 7fc485: sh: ./perl6: No such file or directory␤
04:15 spinclad (rebuilding ng)
04:16 colomon No Z on my local up-to-date ng.
04:17 colomon also .perl on lists goes into an infinite loop.
04:17 colomon or something.
04:17 colomon '(' ~ self.map({ $_.perl }).join(', ') ~ ')'; is the code in question.
04:19 pmichaud yeah, I haven't figured out why .perl infinite loops on lists.  But I think that's my responsibility to fix :-(
04:19 pmichaud (since I still have to do a significant list refactor, but keep getting called away to other stuff)
04:19 colomon I'm trying an alternate implementation at the moment.  :)
04:20 colomon 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 tann1 joined #perl6
04:21 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:22 jonathanturner pmichaud: have you played much with clojure's lazy seqs?
04:22 pmichaud nope
04:22 jonathanturner just made me think of it
04:23 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
04:27 pmichaud colomon: yes, thanks
04:28 carlin masak: do you have any blog posts about Emmentaler?
04:28 masak carlin: yes, one.
04:28 * masak gets the URL
04:29 masak http://use.perl.org/~masak/journal/39583
04:29 masak actually, http://use.perl.org/~masak/journal/39933 as well.
04:34 carlin masak: thanks
04:35 carlin 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 dalek rakudo/ng: 698534c | (Solomon Foster)++ | src/core/List.pm:
04:35 dalek rakudo/ng: Replace the elegant List.perl implementation that trips up ng somehow with an ugly one that works.
04:35 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/698534cc12d9c0444ad49e831884404f8b4f8b2b
04:36 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:39 carlin masak: oh, not what I was thinking then
04:40 carlin masak: definitely a worthy project nonetheless
04:40 carlin I may have a poke around at proto's installed-modules branch to help out...
04:41 masak yes, please :)
04:43 gfx joined #perl6
04:43 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:44 masak spinclad: yes, good idea. emmentaler won't scale well.
04:50 carlin Method 'protected-files' not found
04:50 carlin ah, easy fix
04:52 zmjb1 left #perl6
04:56 carlin (Error Driven Development)++
04:56 araujo joined #perl6
04:58 yahooooo joined #perl6
05:00 mepplock joined #perl6
05:09 jaldhar joined #perl6
05:09 masak this is cool: http://kirindave.tumblr.com/post/272596413/clojure-chat-server-1
05:09 masak can someone do a chat server in 75 lines of Perl 6 code?
05:11 carlin masak: Possibly. I'll give it a shot later on :-)
05:11 masak \o/
05:15 masak Clojure seems pretty nice from a concurrency perspective.
05:15 masak I think Perl 6 might take some inspiration from that.
05:16 Baggio_ joined #perl6
05:18 tann2 joined #perl6
05:21 nbrown_ joined #perl6
05:22 hcchien joined #perl6
05:22 IllvilJa joined #perl6
05:23 carlin masak: I now have proto able to successfully install modules in .perl6/lib
05:23 masak carlin: that's excellent news. carlin++
05:24 masak we still need to do extensive testing with all the projects before we merge.
05:25 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.
05:25 masak but I must admit that my understanding of the installed-modules branch is still spotty.
05:26 masak mberends is the chief architect of that one.
05:26 masak afk &
05:27 carlin pushed
05:27 arthur-- joined #perl6
05:28 payload joined #perl6
05:30 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:32 * masak looks at the changes
05:40 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:43 masak hm, ng doesn't have for loops. I guess they're blocking on lazy lists.
05:44 * masak casts a tuit spell for pmichaud++
05:48 carlin masak: problem that is (hopefully) fixed.
05:49 masak ok, good.
05:49 masak in that case, all the changes look fine to me. carlin++
05:49 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.
05:51 masak nod.
05:51 carlin I think that's how it was supposed to work anyway
05:51 masak it does make sense.
05:51 Tene argh... I'm already up an hour past when I should be sleeping... got to wake up WAY too early all this week.
05:51 masak does `find` guarantee preorder traversal?
05:51 carlin I'll walk the dog and then look at test.
05:53 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:53 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.
05:54 masak with Emmentaler up before the ng merge, the Perl 6 applications cheese will have an extra safety net besides the spectests.
05:57 Tene finally done setting up, though... so do I go to sleep now, or work on rakudo?
06:00 masak sleep is for old people :)
06:01 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.
06:02 wayland76 Tene: the kind of person who teaches Indian music? :)
06:02 Wolfman2000 ...your sarcasm isn't really helping masak
06:02 wayland76 I don't think it was sarcasm, just that he got carried away by an idea
06:03 masak Wolfman2000: I didn't mean to be insulting. I apologise if you read it that way, it wasn't my intent.
06:03 nbrown_ joined #perl6
06:03 Wolfman2000 masak: blame my tiredness. I don't get jokes easily late at night
06:03 masak it wasn't a joke. :)
06:03 masak babies sleep a lot.
06:03 Wolfman2000 Plus, I'm now frustrated with my new host already...doesn't help that I already invested in some money in it.
06:03 diakopter :/
06:04 Wolfman2000 At this point, I'm thankful that my finals are basically done.
06:04 Wolfman2000 now, *BED*
06:05 * masak wonders if parasites get frustrated with their hosts sometimes
06:07 Tene why did chanserv op me, I wonder...
06:08 masak 'cus he's such a nice bot.
06:08 spinclad it was a vote to stay up?
06:08 masak stay op!
06:09 Tene ><
06:09 spinclad exactly!
06:09 masak Tene: did I do it again? sorry. :P
06:09 * masak whispers 'Schindler's Lift'
06:10 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 hcchien joined #perl6
06:10 masak or not. :)
06:10 masak in Soviet Russia, YOU make op puns!
06:12 Tene ah, looks like I got a NOTICE telling me who did it.
06:13 masak looks like someone known as diakopter geve me my op bit, revoked it, and gave it back.
06:14 diakopter hm
06:15 hcchien joined #perl6
06:18 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 wayland76 Or maybe they don't have enough PUNch :).
06:18 masak :P
06:18 masak -Opun
06:19 wayland76 Ooh!  Op from diakopter++ , *and* a pun from masak++ at the same time!  I think I'm having a good day :)
06:20 justatheory joined #perl6
06:21 yahooooo joined #perl6
06:22 masak rakudo: for <a b c>.kv { .say }
06:22 p6eval rakudo 7ef386: 0␤a␤1␤b␤2␤c␤
06:23 masak rakudo: class List is also { method d { for self.kv { .say } } }; <a b c>.d
06:23 p6eval rakudo 7ef386: 0a␤1b␤2c␤
06:23 * masak submits rakudobug
06:27 Tene pmichaud: around?
06:28 Tene crap... it's probably going to be me that has to implement the scope exit handler functionality in Parrot... ><
06:28 Tene well, we'll see how far I can get without it.
06:44 * diakopter sleeplock
06:45 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:46 diakopter Tene: that's the pirop for truthiness...
06:46 diakopter I think
06:46 * diakopter sleeplock
06:47 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
06:48 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' :)
06:48 Tene lemme see what breaks if I change it.
06:48 Tene masak: did I show you that I got some basic proof-of-concept macros working in my scheme?
06:48 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.
06:48 masak Tene: no.
06:49 masak or maybe yes.
06:49 masak either way, groovy!
06:52 kaare joined #perl6
06:55 carlin time to look at proto test
06:57 kaare joined #perl6
06:57 masak Tene: see r29205 for the current state of .true and .Bool
06:58 meteorjay joined #perl6
06:59 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.
06:59 masak then don't do it. :)
07:01 vamped left #perl6
07:10 xinming joined #perl6
07:16 ihrd1 joined #perl6
07:16 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 rakudo/ng: 417a990 | tene++ | src/ (4 files):
07:16 dalek rakudo/ng: Call .Bool instead of .true for truthiness.  Doesn't actually call .Bool for user-defined classes, though?
07:16 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/417a99093a6c3b4c8c94912e7ad96ea314652e1e
07:16 mathw Hurrah
07:17 mathw my advent calendar post appeared as scheduled
07:17 mathw Something actually worked yay
07:17 mathw and speaking of the dreaded four-letter word
07:17 * mathw -> the office
07:17 masak mathw++ # great post
07:18 mathw Maybe on the way I can get a good subject for my second one...
07:20 Tene okay, RLY need sleep now, goodnight all.
07:21 moritz_ good night
07:24 hcchien joined #perl6
07:34 hcchien joined #perl6
07:36 masak moritz_: good morning.
07:37 ihrd1 left #perl6
07:38 carlin masak: testing works. pushed.
07:39 masak carlin: cool! kudos.
07:40 masak 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
07:40 masak but, hm, this $can-continue business looks suspicious.
07:40 masak it looks like a fossil. checking.
07:42 masak ah, it's a way to funnel the flow of control into an 'Aborting...' message and an  exit(1). fair enough.
07:42 masak maybe we should factor that out into a method instead, though.
07:43 masak but we have to keep the $can-continue flag anyway, if we want errors for all the projects.
07:49 masak heh, now Scoble re-tweeted timoreilly. :) Robert Scoble only has 100k followers to timoreilly's 1.3M, but still.
07:54 masak the stats say 4.6k hits so far today; I think we'll get more than tomorrows 7k by day's end.
07:56 masak another good piece of statistics: yesterday, 70 people clicked the 'rakudo.org' link on the blog.
08:00 JimmyZ joined #perl6
08:03 iblechbot joined #perl6
08:04 * mathw is back
08:06 tann2 ong ba gia sao?
08:07 masak tann2: exc us e me?
08:07 tann2 left #perl6
08:08 Baggio_ joined #perl6
08:31 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>)␤
08:31 masak is this one known?
08:31 masak it looks familiar.
08:32 mathw Hmm
08:32 mathw It does
08:32 mathw But that might be because we've had similar bugs in the past
08:32 masak it's the getting-Parrot-strings bug, I know.
08:33 masak but is this particular instance reported?
08:33 mathw I don't know
08:33 * masak submits rakudobug just to be safe
08:33 mathw :)
08:33 mathw masak is on form today I see
08:33 * JimmyZ here
08:33 masak today I'm actually doing some coding. it feels good. :)
08:33 masak JimmyZ: \o
08:34 JimmyZ ng is slowly grown now
08:34 masak yes, but still some ways to go.
08:35 JimmyZ growing
08:36 masak phenny: tell jnthn http://twitter.com/luqui/status/6425615591 :)
08:36 phenny masak: I'll pass that on when jnthn is around.
08:39 moritz_ those quotes are really fun :-)
08:40 masak yes; we should have something like that.
08:40 masak we're having fun, too. but no-one is taking notes.
08:40 masak what about a quotebot?
08:44 carlin masak: install all and test all now work. pushed.
08:44 * masak looks
08:45 masak if @projects.grep('all') { # nice!
08:45 masak carlin++
08:46 moritz_ are you hacking on proto?
08:46 carlin moritz_: yes
08:47 rfordinal joined #perl6
08:47 moritz_ carli++
08:47 moritz_ carlin++
08:47 moritz_ carli-- # just a typo :-)
08:47 rfordinal left #perl6
08:48 masak moritz_: have you gone off the Tab key altogether? :)
08:49 masak .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
08:49 masak oh, excessive use of another key... :)
08:52 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:53 carlin *has a fatal error all testing stops
08:53 * carlin can't type
08:54 * moritz_ can't hype
08:55 * masak can't grammar
08:56 * JimmyZ can't understand
08:56 hcchien joined #perl6
08:56 masak :D
08:57 masak hm, there's no way to express 'no parameters' inside the second or third argument of a trinary operator, right?
08:57 masak sorry, 'no arguments', of course.
08:57 * moritz_ doesn't understand the question
08:57 moritz_ rakudo: say(True ?? () !! 3 )
08:57 p6eval rakudo 7ef386: ␤
08:58 masak moritz_: right, but you just sent one parameter to &say.
08:58 masak er, argument.
08:58 masak how do I do the same, but no arguments?
08:58 masak can I do |() ?
08:58 moritz_ rakudo: say(|(True ?? () !! 3) )
08:58 p6eval rakudo 7ef386: flattened parameters must be a hash or array␤in Main (file <unknown>, line <unknown>)␤
08:58 mathw Oooh
08:59 moritz_ rakudo: say(|(True ?? [] !! 3) )
08:59 mathw My advent calendar entry has been liked in Google Reader :D
08:59 p6eval rakudo 7ef386: ␤
08:59 moritz_ mathw: which means that somebody subscribed to the RSS feed :-)
08:59 mdxi_ joined #perl6
09:00 krunen joined #perl6
09:01 mathw moritz_: Somebody who isn't me!
09:01 mathw Google Reader lists 104 subscribers to the feed
09:01 mathw So that's a lower bound, as there will be others using non-Google readers
09:02 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 :-)
09:03 mathw Yeah
09:03 mathw So it's got an unfair advantage :P
09:03 masak ah. yes, that has to be taken into account, of course.
09:03 masak of all the topics to show to slashdot, though... :)
09:03 masak I think that was a pretty sexy one.
09:05 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 mathw fun++
09:06 mathw There's a lot of PHP-hating in the comments
09:06 mathw And a surprising amount of support for Perl 6
09:07 masak and a fair amount of Perl 5 people, struggling with people's misconceptions.
09:08 mathw But I think the message is, gradually, starting to get out there
09:08 masak oh yes.
09:08 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
09:09 masak 哈哈
09:09 mathw Although I did figure it out eventually
09:10 mathw But then there was all the awkwardness of nested data structure
09:10 mathw At least I didn't have to write any classes
09:11 hcchien joined #perl6
09:11 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:12 masak s/includee/including script/
09:12 moritz_ END { $_.() for @callbacks }
09:12 moritz_ or maybe END { @callbacks>>.() } if that works :-)
09:12 moritz_ std: END { @callbacks>>.() }
09:13 p6eval std 29276: Potential difficulties:␤  Variable @callbacks is not predeclared at /tmp/WyQjenMfpk line 1:␤------> [32mEND { @callbacks[33m⏏[31m>>.() }[0m␤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.
09:13 moritz_ masak: that's what closures are for
09:14 moritz_ masak: my $x; run_at_end { say $x*$x };
09:14 moritz_ where run_at_end is the function that your module exported
09:14 masak hm. I don't think I'm able to explain my use case well enough yet.
09:14 masak what I want is to have to declare nothing in the script itself, but the 'use' causes something to be run at the end.
09:15 masak rakudo: END { say "HAI" }; say "OH"
09:15 mathw masak, do you have to ask hard questions all the time?
09:15 p6eval rakudo 7ef386: OH␤HAI␤
09:15 masak mathw: I'll take that as a compliment.
09:15 mathw I do admire the twistiness of your mind
09:16 mathw 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.
09:16 masak Sinatra does something like that.
09:16 masak I'll go with END {} and see how far it gets me.
09:17 mathw END will still run in context of the module
09:17 JimmyZ rakudo: END { say "HAI" }; say "OH"; throw;
09:17 p6eval rakudo 7ef386: OH␤Could not find non-existent sub throw␤in Main (file src/gen_setting.pm, line 324)␤
09:17 mathw But maybe it'll be enough...
09:17 masak yes, I'm starting to think it might.
09:17 mathw Some part of me would perhaps prefer if people didn't do twisty things very often
09:18 mathw But obviously things like injecting into your includer's symbol table are going to be common
09:18 mathw And there will be times when 'is export' doesn't do the right thing
09:18 xomas_ joined #perl6
09:18 masak yeah.
09:18 masak rakudo: my $a; BEGIN { $a = 42 }; END { say $a }
09:18 p6eval rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/J7OYG2vJ6e:2)␤in Main (file <unknown>, line <unknown>)␤
09:19 masak should that work?
09:19 mathw I don't think so
09:19 moritz_ std:  my $a; BEGIN { $a = 42 }; END { say $a }
09:19 p6eval std 29276: ok 00:01 106m␤
09:19 masak rakudo: my $a; BEGIN { $a = 42 }
09:19 p6eval rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/4QIChPCrJ6:2)␤in Main (file <unknown>, line <unknown>)␤
09:19 moritz_ ng: my $a; BEGIN { $a = 42 }
09:19 p6eval ng 7fc485: sh: ./perl6: No such file or directory␤
09:20 masak moritz_: oh yeah, ng doesn't work.
09:20 masak in p6eval, that is.
09:20 masak it works fine locally. :)
09:20 masak and it accepts that oneliner.
09:20 * masak submits rakudobug
09:21 mathw I suppose my declares the symbol before the BEGIN phase
09:21 mathw so it should work really
09:21 masak yes. the declaration is a static thing.
09:21 * mathw wonders how many tickets will go away when ng becomes master
09:21 masak mathw: many.
09:21 masak it'll be a ticket fest.
09:21 mathw :)
09:21 mathw good
09:22 * mathw adds more stuff to his Amazon Wishlist
09:23 mathw 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:27 moritz_ ng on p6eval hit the same problems that prevented me from building it after the cs_csr branch merge
09:28 moritz_ some .pbc files from nqp-rx where not cleaned, and not rebuilt
09:28 moritz_ and since the bytecode compatibilty version was bumped it all went to hell
09:29 masak mathw: found it. :) http://www.youtube.com/watch?v=C0giQC7fMrk
09:36 mathw yes, that's it
09:37 masak it's... funky.
09:37 am0c joined #perl6
09:38 mathw As I said, one of the madder early music ensembles
09:38 mathw I think this actually beats Red Priest's version for sheer insanity
09:38 mathw Since their version has no bagpipes in it
09:39 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
09:40 masak carlin: yes, but the former can easily be 'taken care of', I think.
09:40 masak carlin++ # this is exactly the kind of discoveries that need to be made before merging
09:41 masak mathw: by the way, 'hurdy-gurdy' is a pretty silly name for an instrument. :)
09:43 mathw masak: yes, I know, but I didn't choose it :)
09:44 mathw It is, however, a pretty silly instrument
09:44 mathw The bagpipe of the string world
09:44 masak :D
09:49 Baggio_ joined #perl6
09:50 jlaire joined #perl6
09:51 moritz_ ng: my $a; BEGIN { $a = 42 }
09:51 p6eval ng 417a99:  ( no output )
09:51 masak rakudo: say (-> :a($c) {}).signature.params[0].named_names.perl
09:51 p6eval rakudo 7ef386: ["a"]␤
09:51 moritz_ ng: my $a; BEGIN { $a = 42 }; say $a
09:51 p6eval ng 417a99: Mu()␤
09:52 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.
09:53 masak moritz_: I keep seeing PerlMonk threads where people write in and ask "it output 'Mu()', what did I do wrong?"
09:56 moritz_ masak: note that by current spec it shouldn't say Mu() anymore
09:56 moritz_ because say() Stringy-fies, and that should give a warning and return the empty string
09:57 moritz_ and only explicit conversion to Str directly returns Mu()
09:57 masak is there an RT ticket about that?
09:57 masak rakudo: say Mu
09:57 p6eval rakudo 7ef386: Object()␤
09:57 masak lol
09:57 moritz_ Mubject
09:58 moritz_ I don't think it will be ever fixed in master
09:59 masak no, me neither.
10:01 masak but I don't submit bugs for master or ng. I submit bugs for Rakudo.
10:04 jaldhar joined #perl6
10:10 * moritz_ wants a fixed-in-ng tag in RT
10:14 JimmyZ rakudo: Mu.WHAT.say;
10:14 p6eval rakudo 7ef386: Object()␤
10:14 JimmyZ ng: Mu.WHAT.say;
10:14 p6eval ng 417a99: Mu()␤
10:16 broquaint joined #perl6
10:17 JimmyZ ng: say Mu;
10:17 p6eval ng 417a99: sh: ./perl6: No such file or directory␤
10:17 JimmyZ ng: Mu.WHAT.say;
10:17 p6eval ng 417a99: Mu()␤
10:17 JimmyZ ng: say Mu;
10:17 p6eval ng 417a99: Mu()␤
10:25 mathw Mu is... Mu
10:36 betterworld joined #perl6
10:37 * mathw chews all his fingernails off
10:46 Baggio_ joined #perl6
10:48 pointme joined #perl6
10:48 zaslon joined #perl6
10:51 masak phenny: tell jnthn never mind, I found the answer in the IRC logs. :) http://irclog.perlgeek.de/perl6/2009-10-09#i_1587460
10:51 phenny masak: I'll pass that on when jnthn is around.
10:54 masak hm. time to go home and make dinner. :)
10:54 masak see y'all tonight.
10:59 IMeMyself joined #perl6
11:03 jnthn morning
11:03 phenny jnthn: 08:36Z <masak> tell jnthn http://twitter.com/luqui/status/6425615591 :)
11:03 phenny jnthn: 09:52Z <masak> tell jnthn will the $.named_names attribute in signature.params ever contain more than one element?
11:03 phenny jnthn: 10:51Z <masak> tell jnthn never mind, I found the answer in the IRC logs. :) http://irclog.perlgeek.de/perl6/2009-10-09#i_1587460
11:04 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.
11:05 jnthn omg lolhaskell!
11:05 Baggio_ joined #perl6
11:08 carlin Ohh, Haskell has a weekly newsletter ... there's an idea
11:16 * 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
11:17 mathw As someone just started doing for Perl 6 again, but we'll see if he manages to keep it up.
11:18 colomon p/
11:19 colomon s{p/}{o/}
11:23 mathw o/
11:33 pugs_svn r29277 | colomon++ | [t/spec] Tweak test so that it works in ng.
11:35 jonhegg joined #perl6
11:38 colomon that's another 100 passing tests for ng
11:44 jnthn \o/
11:45 jnthn colomon: On Saturday I got quite a bit further towards having some of the role ones running again too.
11:45 SmokeMachine joined #perl6
11:45 colomon \o/
11:49 zloyrusskiy joined #perl6
11:50 pugs_svn r29278 | colomon++ | [t/spec[ Fix the number of tests so the file passes.
11:51 mathw 100 more tests? woo! \o/
11:51 colomon another 42 coming up...
11:51 colomon these are super LHF
11:52 colomon practically touching the ground
11:58 Baggio_ joined #perl6
11:58 mathw :)
12:00 Baggio_ joined #perl6
12:00 snearch_ joined #perl6
12:00 carlin phenny: tell masak http://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.
12:02 dalek rakudo/ng: 0b3ffae | (Solomon Foster)++ | t/spectest.data:
12:02 dalek rakudo/ng: Turn on sign.t.
12:02 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/0b3ffae2340f76de4efd9749ccce8304f37eaf0f
12:02 carlin G'Night all
12:40 moritz_ if I understood that correctly, CATCH and CONTROL are a bit like given
12:40 moritz_ in that they set the topic to the current exception
12:41 moritz_ and if no when-block matched, they rethrow the exception
12:41 moritz_ but a when-block calls break() at its end
12:41 moritz_ and... that throws a control exception
12:41 moritz_ isn't that a bit ugly?
12:43 Tene moritz_: CATCH & CONtROL should catch break exceptions.  That's an error on my part.  I'll get it working this week.
12:44 moritz_ Tene: I'm not complaining about the implementation (not yet at least), but I'm questioning the spec
12:45 moritz_ I think CONTROL blocks will either need very careful implementation, or will require much care from the programmer
12:45 moritz_ or both
12:49 ruoso joined #perl6
13:01 hcchien joined #perl6
13:07 jonathanturner joined #perl6
13:15 JimmyZ joined #perl6
13:17 takadonet joined #perl6
13:18 takadonet morning all
13:19 IllvilJa joined #perl6
13:19 rodi joined #perl6
13:20 colomon \o
13:21 JimmyZ evening, all
13:24 payload joined #perl6
13:31 quantumEd joined #perl6
13:34 iblechbot joined #perl6
13:36 pmurias joined #perl6
13:37 mathw C++ needs named parameters
13:39 mathw I used to think, what's the point in Perl 6 letting you pass positionals by name
13:39 mathw But now I know how cool it is
13:39 pugs_svn r29279 | colomon++ | [t/spec] Fudge int.t so that it passes in ng.
13:41 colomon mathw: I guess I'm not completely convinced yet.
13:42 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.
13:42 mathw It's also very useful when you have a function which simply has to have seven parameters
13:42 Juerd_ For all those builtins that everybody knows by heart, the use of giving names to otherwise positional arguments is very limited
13:42 mathw if you use them by names, the code's far easier to comprehend
13:42 mathw as at the call site you can see what they all are!
13:42 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 :)
13:43 Juerd_ 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....
13:43 Juerd_ colomon: Right
13:43 Juerd_ colomon: And I have that problem with Encode::from_to in Perl 5
13:44 moritz_ aye
13:44 moritz_ encode and decode take the character encoding first
13:44 colomon yeah, anything with from and to args would be nice named.
13:44 moritz_ but from_to takes the buffer first
13:44 Juerd_ I keep thinking it's from_to($from, $to, $buf), but it's actually from_to($buf, $from, $to)
13:44 mathw Juerd_: Sometimes you just can't avoid it...
13:44 Juerd_ Isn't it great to just say from_to(from => $from, to => $to, buf => $buf)?
13:45 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);
13:45 moritz_ or even from_to(:$from, :$to, :$buf)
13:45 moritz_ right :-)
13:45 colomon I'd like to break the Tests=2000 barrier sometime today...
13:45 dalek rakudo/ng: 8ba7332 | (Solomon Foster)++ | t/spectest.data:
13:45 dalek rakudo/ng: Turn on int.t.
13:45 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8ba7332170d16b991d1bf577a246b702d11e4042
13:46 mathw colomon: Go for it!
13:47 colomon rakudo: say atan2(-1, 0);
13:48 p6eval rakudo 7ef386: -1.5707963267949␤
13:48 colomon rakudo: say atan2(-1, 0) * -2;
13:48 p6eval rakudo 7ef386: 3.14159265358979␤
13:49 Baggio_ joined #perl6
13:51 mathw oooh pie
13:51 colomon nom nom nom
13:51 mathw the edible number
13:51 colomon rakudo: say 5.exp.Rat
13:51 p6eval rakudo 7ef386: 148.413159167876␤
13:52 colomon rakudo: say 5.exp.Rat(1e-10).perl
13:52 p6eval rakudo 7ef386: 5497075/37039␤
13:52 mathw I think I'm going to like Rat a lot
13:53 colomon I'm a big fan, for sure.
13:53 colomon 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:57 pugs_svn r29280 | colomon++ | [t/spec] Factor out e ** 5 and pi as variables set with fractions, replace 1..20 with 1...20.
14:09 dalek rakudo/ng: a113b8f | (Solomon Foster)++ | t/spectest.data:
14:09 dalek rakudo/ng: Turn on exp.t.
14:09 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a113b8f62d93c841d9a389dc32571657c461a6c3
14:14 colomon That's another 49 passing tests, 53 tests altogether.
14:14 colomon Now have Tests=1973, just need one more good file... ;)
14:15 colomon btw, we have about 15,000 hits on the Advent blog in the last 24 hours.
14:22 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:23 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.
14:26 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.
14:26 moritz_ ok
14:26 Tene moritz_: meaning that there might be reason to have a CONTROL in a CONTROL.
14:26 moritz_ colomon: interestingly enough about 250 of those seem to be secondary visitors from twitter :-)
14:27 moritz_ Tene: :-)
14:27 Tene sup dawg, I heard you like CONTROL blocks.
14:28 mdxi_ one day the full POKEDEX will be added to Unicode, and we can have the Mudkip operator
14:28 mdxi_ until then, i'll make do with the snowman
14:29 Tene So I put a control in your control so you can catch while you catch.
14:36 Baggio_ joined #perl6
14:36 pmurias joined #perl6
14:42 IllvilJa Hello!  Is it just me, or is github becoming the 'de facto CPAN' for perl6?
14:43 colomon github is nice because it encourages other people to contribute to projects, too.
14:43 colomon and it's got full history, etc.
14:43 IllvilJa That's quite cool.
14:43 jeremiah There is a danger though -
14:44 jeremiah People don't know that Github is the new CPAN
14:44 jeremiah And that makes it hard to find stuff
14:44 jeremiah I often see perl modules on Github that aren't on teh CPAN
14:44 jeremiah which kinda sucks
14:44 IllvilJa True.
14:44 mathw Well there are questions about Perl 6 modules and CPAN, are there not?
14:44 jeremiah Since Github is more for devs that for users
14:45 jeremiah mathw: What sort of questions?
14:46 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:47 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.
14:48 jeremiah But disabling CPAN would hurt perl6 I think
14:48 jeremiah IllvilJa: That makes sense, then they can get involved in development easily too
14:48 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 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?
14:49 IllvilJa (Ok, the automated link to Github is not in place I think)
14:51 pmurias being able to use a particular v
14:51 pmurias ~
14:51 colomon So: why is it exp ( Numeric $exponent: Numeric :$base = Num::e )
14:51 pmurias ~
14:51 pmurias sorry
14:51 colomon but log ( Numeric $x: Numeric $base = Num::e ) ???
15:01 pmichaud Tene: (get_bool)  -- the spec recently changed on this point.
15:01 pmichaud (as in, it changed within the last 10 days)
15:02 * pmichaud goes off to read backscroll.
15:03 xinming joined #perl6
15:03 meppl joined #perl6
15:04 Tene pmichaud: Oh, heh.  Sorry, then.  :)
15:04 alester joined #perl6
15:07 dalek rakudo/ng: a1468ab | (Solomon Foster)++ | src/core/ (2 files):
15:07 dalek rakudo/ng: Make a proto for exp so named arguments works, and at the same time remove the now redundant exp(Complex).
15:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a1468ab9d4ea15c6a2b79d897402d188c8eb6ffb
15:07 pugs_svn r29281 | colomon++ | [t/spec] Unfudge named argument tests that now work.
15:07 Tene pmichaud: any ideas about the vtable stuff?
15:07 colomon I'm in yr rakudo, slowing down yr spectests...
15:07 colomon afk for library storytime.
15:13 gbacon joined #perl6
15:19 pmichaud (still reading backscroll)
15:28 levi_ joined #perl6
15:28 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:29 moritz_ it does that from time to time
15:29 IllvilJa :-(
15:30 Patterner IllvilJa: works for me
15:31 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:32 KyleHa joined #perl6
15:32 IllvilJa trying 'ssh git@github.com' returns "authorization successful" so that part works.
15:32 moritz_ that shouldn't give you a timeout though
15:35 xinming joined #perl6
15:36 wagnerf_ joined #perl6
15:36 Baggio_ joined #perl6
15:38 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:39 IllvilJa Also trying to create a brand new 'git clone' of rakudo fails with a timeout (and I follow the instructions on http://rakudo.org/how-to-get-rakudo)
15:40 IllvilJa Is it possible for github to have timeout issues with individual repositories but not with others?
15:41 payload joined #perl6
15:41 moritz_ fwiw a 'git pull' worked fine here
15:41 moritz_ IllvilJa: did you clone proto with git://? or some other protocol?
15:43 IllvilJa moritz_: the command I use is from the page I referred to: 'git clone git://github.com/rakudo/rakudo.git'
15:43 jferrero joined #perl6
15:44 IllvilJa Trying right now, it still hangs.
15:46 moritz_ I used git@github.com:rakudo/rakudo.git, which uses ssh under the hood
15:46 moritz_ but git:// works too here
15:47 wagnerf_ it works for me also
15:47 Baggio_ joined #perl6
15:47 moritz_ IllvilJa: maybe try a portscan on github.com?
15:48 moritz_ IllvilJa: I somehow suspect that there's a firewall somewhere inbetween
15:48 Psyche^ joined #perl6
15:48 IllvilJa When I tried last week I know that the 'git:' variant worked.
15:49 IllvilJa However, when trying to use 'git@github.com:rakudo/rakudo.git' I get an intresting error message, quite immediately:
15:49 IllvilJa ERROR: Permission to rakudo/rakudo denied to illvilja.
15:49 IllvilJa fatal: The remote end hung up unexpectedly
15:49 moritz_ that's probably because you're not a rakudo committer
15:49 moritz_ and the ssh based clone URLs might be for committers only
15:51 IllvilJa Does not the 'git:' scheme use ssh under the hood too?
15:52 moritz_ no idea
15:57 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 wagnerf_ seems like a bug in the build process
15:57 wagnerf_ what would be the best place to report that ?
15:57 infrared left #perl6
15:58 wagnerf_ actually I think it's inside parrot
15:58 moritz_ if it's a parrot bug, http://trac.parrot.org/parrot/ # you need to create an account to submit a ticket :(
16:00 wagnerf_ moritz_, thanks
16:00 nihiliad joined #perl6
16:00 moritz_ for rakudo bugs, mailto:rakudobug@perl.org
16:05 [particle] joined #perl6
16:20 tarski joined #perl6
16:25 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.
16:26 TimToady it will likely depend on the implementation, at least until we reimplement a Perl 5 in Perl 6...
16:27 tarski i see. and how close is perl6 to version 1.0?
16:28 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.
16:28 TimToady at which point, rakudo may or may not yet implement 1.0  :)
16:29 TimToady 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?
16:29 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  :)
16:29 TimToady that Larry Wall guy
16:29 alexn_org joined #perl6
16:29 tarski TimToady, ok. so he will say when 1.0 is ready?
16:29 TimToady I strongly suspect so. :)
16:30 alexn_org joined #perl6
16:30 takadonet tarski: TimToady eq 'Larry Wall'
16:30 alexn_org joined #perl6
16:31 TimToady takadonet: now how am I supposed to get people's true opinions if you go telling them that?  :)
16:32 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...
16:32 takadonet TimToady: Sorry, normally I don't say anything but this time I felt I should...
16:33 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?  :)
16:34 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 :)
16:34 * PerlJam momentarily has an image of TimToady's face super-imposed on the BSD devil
16:34 moritz_ that could be a fun Perl 6 anti-logo :-)
16:34 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
16:36 TimToady tarski: sounds like an interesting thesis
16:37 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:38 tarski TimToady, at least a value's type, I mean
16:39 tarski 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 #perl6
16:40 TimToady tarski: no
16:40 TimToady you can add optional typing
16:40 TimToady but it's not primarily for compile-time safety
16:40 pmichaud would it be fair to say that Perl 6 is strongly typed, but that its default types are relatively weak?
16:40 jonathanturner it could be strong and dynamic, no?
16:40 TimToady it's to give more information to multiple dispatch
16:41 moritz_ pmichaud: depends on how you define "strongly typed"
16:41 Tene pmichaud: any chance you'll get to the list refactor today?
16:41 TimToady more like, it's strongly typed, but will let you get away with a number of interactions that look weakly typed
16:42 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
16:42 TimToady well, up to a point
16:43 TimToady 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.
16:43 Tene ah, okay, that's fine.  I'll stop harassing you so much.  :)
16:43 jonathanturner speaking of lists, is there a list concat function/operator?  I looked for one on the periodic table but didn't see it
16:43 pmichaud I recognize it's a huge blocker.
16:44 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?
16:44 TimToady jan_: list concat is just , in a list context
16:44 pmichaud moritz_: I think technically yes.
16:44 TimToady ETABFAIL
16:45 TimToady 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.  :-)
16:45 jonathanturner TimToady: ([1, 2, 3] , [4, 5, 6]).perl.say yields [[1, 2, 3], [4, 5, 6]]
16:45 moritz_ it's a bit like TDD
16:45 jonathanturner TimToady: I was thinking more along the lines of [1, 2, 3, 4, 5, 6]
16:45 TimToady yes, but you concatenated two arrays, not two lists
16:45 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?
16:46 pmichaud tarski: identity is  =:=
16:46 TimToady rakudo: say 1 === '1'
16:46 pmichaud tarski: equivalence is  eqv
16:46 p6eval rakudo 7ef386: 0␤
16:46 pmichaud or ===
16:46 moritz_ pmichaud: that's container identity
16:46 TimToady rakudo: say 1 eqv '1'
16:46 pmichaud or something like that.
16:46 p6eval rakudo 7ef386: 0␤
16:46 moritz_ rakudo: say 1 cmp '1'
16:46 p6eval rakudo 7ef386: 0␤
16:46 moritz_ ng: say 1 cmp '1'
16:46 p6eval ng a1468a: sh: ./perl6: No such file or directory␤
16:46 Tene So, what operators do ≟ and ≡ map to?
16:47 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
16:47 pmichaud jonathanturner: rakudo's   List.perl  is based on a much older specification.
16:47 jonathanturner ahh, got it
16:47 pmichaud that said that .perl on a list would return the brackets
16:47 pmichaud ng:  ((1,2,3), (4,5,6).perl.say
16:47 TimToady it used to be that a list in item context would produce an Array
16:47 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)␤
16:47 pmichaud oops
16:48 pmichaud ng:  ((1,2,3), (4,5,6)).perl.say
16:48 p6eval ng a1468a: (1, 2, 3, 4, 5, 6)␤
16:48 TimToady now it's just a Parcel, until it knows its context
16:48 pmichaud (that's wrong, though.)
16:48 TimToady er, something like that
16:48 moritz_ are @a and @@a the same variable now?
16:48 TimToady I realize I just contradicted myself  :)
16:48 rfordinal left #perl6
16:48 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
16:48 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)␤
16:48 TimToady moritz_: I'm still trying to figure out some way to make @@ go away :)
16:48 pmichaud ((1,2,3), (4,5,6)).perl.say   should result in  "((1, 2, 3), (4, 5, 6))"
16:49 jonathanturner ng: ((1, 2, 3) <<,>> (4, 5, 6)).perl.say
16:49 p6eval ng a1468a: 0␤
16:49 moritz_ TimToady: that would be greatly appreciated
16:49 pmichaud jonathanturner: what you really want is     list (1,2,3), (4,5,6)
16:49 pmichaud which will flatten the two parcels via list context
16:49 pmichaud ng:   (list (1,2,3), (4,5,6)).perl.say
16:49 p6eval ng a1468a: maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤
16:49 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
16:49 pmichaud bah.
16:50 jnthn TimToady: It's kind of an auto-\ I guess. :-)
16:50 moritz_ \<<(list) :/
16:50 TimToady yes, take all the embedded Parcels and reify them
16:51 jonathanturner shouldn't <<,>> pair up values like zip?
16:51 TimToady but recursively, probably
16:51 pmichaud <<,>> isn't implemented in ng
16:51 pmichaud (hypers aren't implemented in ng yet)
16:51 jonathanturner pmichaud: in rakudo it yields Bool::False
16:52 TimToady probably parsing it as < <,> >
16:53 TimToady which would be an ltm failure
16:53 pmichaud well, more precisely that we didn't implement the cheat for hyper-comma
16:53 pmichaud (the other hypers are entered as their own tokens directly)
16:53 pmichaud (in master, not in ng)
16:54 TimToady yes, another historical vestige, counting whole metaops as tokens...
16:54 TimToady but it's a really good way to blow up your longest token tables, I've discovered :)
16:55 TimToady the combinatorics get ferocious
16:55 jar_s joined #perl6
16:57 jar_s left #perl6
16:57 jonathanturner TimToady: sounds like debugging would be a pain, too
16:57 tylerni7 joined #perl6
16:57 slavik joined #perl6
17:01 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:02 TimToady and in a sense, it allows people to override a particular metaop with a longer longest-token of the same name
17:03 TimToady though people can do that under the old rules anyway
17:04 IllvilJa joined #perl6
17:04 TimToady well, in theory, it was possible, though I'm not sure any grammars quite do that right yet
17:04 TimToady I think even STD still tends to privilege its operator defs as keywords over user-defined ones in spots
17:04 jonathanturner TimToady: I take it that <<,>> and << , >> are two different things?  I did try < <,> > and got the same result
17:05 TimToady there's no << , >>
17:05 TimToady std: 1 << , >> 2
17:05 p6eval std 29281: [31m===[0mSORRY![31m===[0m␤Obsolete use of << to do left shift; instead, in Perl 6 please use +< or ~< at /tmp/pjFqsbuOGG line 1:␤------> [32m1 << [33m⏏[31m, >> 2[0m␤FAILED 00:01 106m␤
17:05 TimToady and whitespace isn't allowed in metaops
17:06 TimToady std: [*] 1,2,3
17:06 p6eval std 29281: ok 00:01 106m␤
17:06 TimToady std: [ * ] 1,2,3
17:06 p6eval std 29281: [31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/mBvSpdV34X line 1:␤------> [32m[ * ] [33m⏏[31m1,2,3[0m␤    expecting any of:␤  infix or meta-infix␤      infix stopper␤    standard stopper␤ statement modifier loop␤  terminator␤FAILED 00:01 104m␤
17:06 jonathanturner TimToady: I see, must be where rakudo differs from the std
17:06 TimToady std: [ * ], [ * ]
17:06 p6eval std 29281: ok 00:01 105m␤
17:07 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 <<
17:07 TimToady er, <<,
17:07 pmichaud we can easily fix that in the ng branch, though :)
17:07 moritz_ rakudo: say <<a b c>>
17:07 p6eval rakudo 7ef386: abc␤
17:07 pmichaud rakudo does recognize << in term position
17:07 jonathanturner I did << , (with a space) and got the same Bool::False
17:08 jonathanturner make that << , >>
17:08 pmichaud jonathanturner: right.  It still parses as  <  (< , >) >
17:08 IllvilJa Solved my issues with doing 'git pull' in my rakudo directory :-).
17:08 pmichaud where < , >  is the same as  (",")
17:08 moritz_ it probably parses it as 1 less-than < , >  greater-then 2
17:08 * moritz_ too slow
17:09 IllvilJa I edited the rakudo/.git/config file and altered the URL from 'git://github...' to 'http://github...' and then double checked that my http_proxy environment variable were correct.
17:09 IllvilJa After that it worked as a charm!
17:29 rfordinal3643 joined #perl6
17:33 pugs_svn r29282 | colomon++ | [t/spec] Add a few tests for the .exp method.
17:36 colomon Tests=1979
17:39 colomon rakudo: say 5.log.Rat(1e-10).perl
17:39 p6eval rakudo 7ef386: 940945/584642␤
17:40 colomon rakudo: say 0.5.log.Rat(1e-10).perl
17:40 p6eval rakudo 7ef386: -25469/36744␤
17:41 colomon rakudo: say 0.1.log.Rat(1e-10).perl
17:41 p6eval rakudo 7ef386: -254834/110673␤
17:42 justatheory joined #perl6
17:42 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)␤
17:43 colomon rakudo: say 5.0.log10.Rat(1e-10).perl
17:43 p6eval rakudo 7ef386: 49471/70777␤
17:44 stephenlb joined #perl6
17:47 cdarroch joined #perl6
17:50 jonathanturner left #perl6
17:57 simcop2387_ joined #perl6
17:58 buubot joined #perl6
17:58 payload joined #perl6
18:01 payload joined #perl6
18:05 fyskij joined #perl6
18:07 SmokeMachine joined #perl6
18:09 IllvilJa Given that Perl 6 has a butterfly as it's mascot, it is soo tempting to alter the text of this: http://www.blastwave-comic.com/index.php?p=comic&amp;nro=24 to create some weird futuristic marketing comic for Perl 6...
18:09 IllvilJa "So Perl 6 does not devour your brain or something?"  "Nope.  Completely harmless."
18:10 IllvilJa But in reality the last line might actually be a utter lie ;-).
18:11 payload joined #perl6
18:14 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 mdxi i'm hoping for something similar with perl6
18:18 fridim_ joined #perl6
18:21 pugs_svn r29283 | colomon++ | [t/spec] Tweak to deal with lack of pi and numeric constants, refudge for ng.
18:21 dalek rakudo/ng: bbfd577 | (Solomon Foster)++ | src/core/ (2 files):
18:21 dalek rakudo/ng: Make protos for log and log10, implement Any.log10 and Num.log10.
18:21 dalek rakudo/ng: Tidy things a tiny bit as well.
18:21 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/bbfd57768e90c3e21ee210f0e449f4008bd564cb
18:21 dalek rakudo/ng: d176dc9 | (Solomon Foster)++ | t/spectest.data:
18:21 dalek rakudo/ng: Add log.t to spectest.data.
18:21 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/d176dc910429ca438cd68a7dc66f79f99b3bbdbc
18:27 colomon Tests=2011, that's enough for me today.
18:30 * moritz_ feels good because he solved a riddle faster in perl 6 than it would have taken in Perl 5
18:30 moritz_ it was something "binary" encoded, and I didn't know how to numify those in Perl 5
18:31 moritz_ whereas :2($str) was nice and easy
18:32 ShaneC joined #perl6
18:40 cognominal joined #perl6
18:59 Wolfman2000 joined #perl6
19:02 moritz_ anybody willing to give up an advent calendar slot?
19:02 moritz_ I'd like to write something about the Whatever star
19:02 moritz_ and I have some tuits right now
19:02 moritz_ but no slot free
19:03 Wolfman2000 moritz_: I can free up a slot I think. Let me see what topics I have.
19:03 Wolfman2000 also: I just put in the Caesar code into my scheduled post if you want to see it.
19:05 Wolfman2000 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:06 pugs_svn r29284 | jafelds++ | Give moritz_++ a day to talk of the whatever *.
19:06 moritz_ Wolfman2000: ok, thanks
19:06 Wolfman2000 I can be on standby should things change.
19:11 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
19:11 pmichaud that works
19:12 iblechbot joined #perl6
19:12 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 *"
19:12 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
19:12 moritz_ pmichaud: that's part of my plan
19:12 pmichaud wfm
19:12 pmichaud moritz_++
19:13 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 Wolfman2000 And when I have to deal with PHP, it sometimes makes me not want to use the computer period.
19:16 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 pmichaud at the moment I'm thinking of "Path to Rakudo *"
19:16 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.
19:16 phenny Wolfman2000: I'll pass that on when masak is around.
19:16 frettled Is there a list of topics-to-be somewhere?
19:16 Wolfman2000 frettled: pugs svn
19:16 frettled ahaha
19:17 pmichaud frettled: svn.pugscode.org/pugs/misc/perl6advent-2009/schedule
19:17 moritz_ in misc/perl6advent-2009/
19:18 kaare_ joined #perl6
19:18 frettled It's been a while since I updated my pugs repository, so it's about time that I did it again.
19:18 frettled My god, it's full of tests!
19:18 Wolfman2000 as it should be
19:18 pugs_svn r29285 | pmichaud++ | [advent]:  Note that my Dec 24 posting is open for suggestions
19:18 pmichaud heh
19:19 pmichaud "2010 - A Perl 6 Odyssey:  The Year We Make Contact"
19:20 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?
19:20 pmichaud (with credit to rdice for the original inspiration :-)
19:20 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)
19:20 PerlJam pmichaud: nice title
19:20 pmichaud jnthn: nothing specific.  anything class/role related will undoubtedly be helpfu.
19:20 jnthn pmichaud: k
19:20 pmichaud *helpful
19:20 pmichaud afk for a bit
19:21 colomon list assignment? he said hopefully...
19:22 frettled pmichaud: «What we want for Christmas»?  ;)
19:24 PerlJam It would be nice to get a TimToady post in there some where.
19:24 PerlJam (or even outside the box of advent)
19:24 Tene I've currently got a secret christmas plan for Perl 6. :)
19:27 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.
19:28 frettled PerlJam: for as long as it takes ;)
19:29 rgrau I'd call it the 'nightmare before christmas'
19:29 PerlJam A boxing day post could be interesting
19:31 Wolfman2000 I'll be back later
19:32 colomon My wife suggested that we had enough posters to keep the "cool Perl 6 thing a day" going well into 2010...
19:33 PerlJam colomon: I tend to agree.
19:33 PerlJam How about we take a break after Dec 24 and then start it up again on Jan 1 and see how it goes?
19:33 PerlJam (It wouldn't be called perl6advent anymore of course)
19:34 colomon I'd certainly be willing to pitch in.
19:35 * PerlJam has errands to run; bbl
19:35 colomon BTW, we've broken 10,000 hits for today.
19:36 moritz_ \o/
19:40 jnthn We could do a series leading up to Rakudo *, and call it Wise Men. ;-)
19:43 * jnthn bbiab - dinner
19:46 moritz_ I've written a first version of my Whatever post: http://perl6advent.wordpress.com/?p=158&amp;preview=true
19:47 moritz_ 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:48 pmichaud moritz_: will do (later tonight)
19:48 pmichaud I was thinking of just a "Perl 6 Calendar"
19:48 pmichaud i.e., 365 postings about Perl 6
19:49 pmichaud similar to other "cartoon a day" or "joke a day" calendars :-)
19:49 mathw I'm sure we could manage that... somehow
19:49 rgrau [eq] ("whatever", "*" , "star")  ??
19:49 pmichaud it wouldn't bother me if the calendar started on dec 1 :-)
19:50 mathw heh
19:50 mathw I'm having enough trouble coming up with my third topic!
19:50 pmichaud mathw: there's a list of suggested topics in the perl6advent-2009 directory
19:51 pmichaud afaik we still don't have anyone covering the variations on the cross operator
19:51 pmichaud there's also reverse
19:52 colomon Rats!
19:52 colomon Cats!
19:52 TimToady rgrau: all "*" eq "star", but not all "*" are "whatever"
19:52 colomon (does anyone understand Cat yet, actually?  I've only noticed vague references to it....)
19:52 TimToady * is whatever only in term position
19:53 pmichaud mathw: you're also free to steal from my http://use.perl.org/~pmichaud/journal/38080 post about sorting
19:53 pmichaud (could use some extension, also)
19:54 moritz_ http://www.perlmonks.org/?node_id=809530 also has some things about sorting
19:54 mathw hmm, reverse would be good
19:54 mathw since you didn' treally look at it in your metaoperators post
19:54 mathw it'd be fairly short though
19:54 mathw there's not much to say about reverse
19:54 pmichaud I think cross is an excellent one, though.
19:54 arnsholt true
19:54 mathw but maybe I shouldn't be writing an essay every time
19:54 pmichaud X, X~, X+, X*, etc.
19:54 TimToady maybe "X" X "R"
19:55 TimToady RX, good for what ails ya...
19:55 pmichaud I also didn't cover the "triangle" form of reduce
19:55 pmichaud I don't see "series operator" in the list yet either
19:55 mathw triangle reduce?
19:56 colomon sequence operator!
19:56 TimToady though series isn't lazy in master, afaik
19:56 colomon is someone recording these in topic-brainstorming?
19:56 pmichaud colomon: I'm updating topic-brainstorming now
19:56 colomon pmichaud++
19:57 pmichaud oh, I don't see anyone covering junctions yet either :-)
19:57 TimToady nor allone
19:57 mathw junctions!
19:57 TimToady or would that be allnone?
19:57 mathw I'll do junctions!
19:57 pmichaud mathw: for Dec 13?
19:57 mathw yes
19:58 mathw I thought they should come before mucking around with traits
19:58 mathw virtually everything should come before that
19:58 * mathw cackles insanely
19:58 pmichaud triangle reduce is S03:4172, fwiw
19:59 moritz_ and NYI, iirc
19:59 pmichaud oh, yeah.
19:59 pmichaud nyi
19:59 moritz_ rakudo: say ([\+] 1..5).perl
19:59 * TimToady just cackles, an lets everyone draw their own conclusions
19:59 p6eval rakudo 7ef386: say requires an argument at line 2, near " ([\\+] 1.."␤in Main (file src/gen_setting.pm, line 2593)␤
19:59 TimToady *and
19:59 pmichaud so, implement triangle reduce, then write an advent post about it :-)
19:59 moritz_ ng: say [*] 1, 2, 3
19:59 p6eval ng d176dc: Confused at line 1, near "say [*] 1,"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
19:59 mathw pmichaud: just like that
19:59 mathw maybe if I didn't have a concert tomorrow I'd take you up on it
20:00 pmichaud I expect to have [*] and friends in ng implemented by the end of the week.
20:00 pmichaud (and yes, *after* fixing iterators and lists)
20:01 * mathw applauds
20:02 dbrock what's function composition in perl6?
20:02 pmichaud oh, we don't have hash.invert on the list either
20:03 moritz_ and hash.push
20:03 pmichaud right
20:03 moritz_ those two go together
20:03 pmichaud I'm guessing masak++ will cover placeholders as part of parameter passing syntax?
20:04 pmichaud if not, that's another possible topic
20:04 TimToady dbrock: there's no explicit function composition operator such as Haskell has
20:05 pmichaud jnthn: oh, if you're looking for something to implement in ng -- enums would be a good bet :-)
20:06 athomason joined #perl6
20:06 pugs_svn r29286 | pmichaud++ | [advent] Some updated idea for advent entries.
20:06 pmichaud idea*s*
20:06 pmichaud grrr
20:06 pmichaud Sometimes I really wish for an svn equivalent to   "git commit --amend"
20:07 pmichaud and as it was it took me a minute to remember the svn equivalent of "git pull".
20:07 pmichaud (apparently git koolaid has rotted my svn brane)
20:07 TimToady dbrock: it would not be terribly difficult to write one
20:08 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
20:08 pmichaud jnthn: keep in mind that enums are no longer role-ish, iiuc
20:09 jnthn pmichaud: No, that's true, but a role can be derived from them when on the RHS of does and but.
20:09 jnthn pmichaud: That's just gonna be another multi candidate of does though.
20:09 zaslon lolfrettledhazblogged! frettled++ 'Failure()<0xb5323980>': Failure()<0xb5320924>
20:09 jnthn OH NO Failure again!
20:09 TimToady zaslon is a problem child..
20:09 pmichaud jnthn: fair enough.  I just know that we'll be blocking on enum stuff soonish  (Order::* and others)
20:09 dbrock TimToady: ah, okay, thanks
20:10 jnthn pmichaud: Heh. Everything blocks on everything. ;-)
20:10 jnthn pmichaud: Wonder if we can move Bool to the setting. ;-)
20:10 pmichaud we need a few more circularity saws :-)
20:10 TimToady pmichaud: to the first approximation, you can write Order as a package of constants
20:10 jnthn Then that can be a proper enum too.
20:10 colomon TrigBase -- though we're not blocking on that because I've pulled the master hack into ng.
20:11 frettled OhnoIhavenotbloggedyet!
20:11 pmichaud I'd be happy if we did 'constant' before 'enum' :)
20:11 pmichaud frettled: that's why zaslon said "Failure"?
20:11 jnthn my $dog is want('walk'); # back soon
20:11 frettled pmichaud: probably!
20:11 pmichaud ENOWANT
20:11 jnthn pmichaud: Yes, looking at the weather outside, that's just how I feel about this. :-)
20:12 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
20:12 pmichaud weather here is +3C
20:12 zaslon lolfrettledhazblogged! frettled++ 'Oslo.pm Past and Future': http://howcaniexplainthis.blogspot.com/2009/12/oslopm-past-and-future.html
20:12 moritz_ somhow I've seen that lines a few times before :-/
20:12 frettled :(
20:12 colomon Finally up to 0C here.
20:13 TimToady supposed to go down to 0C here tonight; thinking about my baby avocado tree...
20:14 colomon moritz_: In the past and the future too, perhaps?
20:14 moritz_ avogadro tree: made of 6.022e23 molecules!
20:14 quantumEd lol
20:14 mathw so very small then?
20:14 TimToady still at risk from moles
20:14 * colomon is trying to resist blowing an hour studying petfinder.com again...
20:15 frettled Yahoo! Weather thinks it's 3 °C here now.
20:15 mathw maybe it has 6.022e23 leaves
20:15 moritz_ mathw: a polymere molecule can have macrosocopic dimensions
20:15 TimToady y'know, there's a perfectly good Unicode chraacter for ℃
20:15 mathw TimToady: but how do I type it?
20:15 moritz_ .u ℃
20:15 phenny U+2103 DEGREE CELSIUS (℃)
20:16 mathw compose o C produces ©
20:16 * moritz_ thought Compose ° C
20:16 mathw I don't have a button for that
20:16 ascent_ joined #perl6
20:16 * mathw has a british keyboard
20:16 moritz_ ah right, it's not on the US or GB keyboard
20:16 mathw irritatingly, no
20:17 TimToady .u degree celcius
20:17 phenny TimToady: Sorry, no results for 'degree celcius'.
20:17 TimToady .u degree celsius
20:17 phenny U+2103 DEGREE CELSIUS (℃)
20:18 TimToady someone needs to add that as an input method
20:18 TimToady where it pops up all the unicode candidates that match some string
20:18 TimToady or regex...
20:19 pmichaud I also find the tables at e.g.,  http://www.fileformat.info/info/unicode/char/2103/index.htm   to be useful at times
20:19 frettled TimToady: that unicode character looks weird :D
20:19 TimToady once we get everyone used to input methods, we can teach everyone 日本語.  :)
20:20 mathw that would be coolo
20:20 mathw metcheck says it's 5C here, feels like 1C
20:20 mathw So not at all bad
20:21 mathw 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
20:21 mathw weather assessment by cat: throw the cat outside and time how long until it returns
20:21 moritz_ cat sonar
20:22 xinming_ joined #perl6
20:26 jnthn It's not so much at that it's cold...it's just that the damp makes it an unenjoyable one.
20:27 * jnthn gets latest Rakudo ng built.
20:28 mathw yeah the damp is irritating
20:28 mathw it was chucking it down earlier
20:28 mathw I got rather wet below my coat's extent
20:29 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
20:29 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
20:29 mathw he's drying them on my trousers
20:29 mathw mmm
20:29 pmichaud (we won 2-0, so we're in the final championship game for our division :-)
20:29 mathw I always hated football at school
20:29 mathw I never understood why they made us play it when it was cold
20:29 mathw and outside
20:30 jnthn Rugby was worse becuase it was all that + agression.
20:30 mathw urgh yes
20:30 mathw I quite liked hockey, until people started trying to break my ankles
20:30 jnthn Most lethal, however, was hockey.
20:30 KyleHa joined #perl6
20:30 jnthn ...lol...
20:30 jnthn :-)
20:31 mathw I wasn't popular
20:31 jnthn Actually the other guys weren't so bad...it was the girls who were most dangerous!
20:31 pmichaud ..."were"?
20:31 mathw ah we never did those thing sin mixed groups
20:31 jnthn Freudian space? ;-)
20:31 * moritz_ likes table tennis. The only one how tried to break any limb there was ... moritz_
20:31 mathw yeah I like table tennis
20:32 jnthn pmichaud: Well, I haven't played since I left school. ;-)
20:32 mathw friend of mine used to play hockey really seriously
20:32 jnthn pmichaud: They may well be equally dangerous now though. :-)
20:32 mathw great fun
20:32 jnthn mathw: Oh, in terms of playing it I enjoyed it more than football or rugby.
20:33 jnthn 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
20:33 jnthn I...want...faster...builds.
20:33 jnthn :-/
20:33 moritz_ jnthn: if you convince pmichaud to compile the core files separately, we can parallelize build much better
20:34 mberends joined #perl6
20:34 mathw we have t odo that!
20:35 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 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.
20:35 pmichaud I'm fine with separate core builds, if someone else agrees to handle putting everything into a correct CORE lexical scope later.
20:36 pmichaud (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. ;-)
20:37 * 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)
20:37 pmichaud if it falls to me I also reserve the right to undo the split when I get around to dealing with CORE scope :)
20:38 * moritz_ was under the impression that pmichaud had the right to do virtually everything in rakudo
20:38 pmichaud troo
20:38 pmichaud I guess I just want to be able to do it and not hear lots of complaints about it :-)
20:38 pmichaud okay, I'll rephrase.
20:39 pmichaud I'm happy to allow a split to take place.
20:39 pmichaud Someone will eventually have to deal with getting everything into a core lexical scope.
20:39 pmichaud That someone may end up being me, which is fine.
20:39 pmichaud 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.
20:39 pmichaud :-)
20:40 pmichaud good enough?
20:40 moritz_ right :-)
20:40 mberends a legally watertight disclaimer ;)
20:41 moritz_ ng: sub öä { say 'foo' }; öä
20:41 p6eval ng d176dc: foo␤
20:41 moritz_ ng: sub öä($x) { say $x }; öä 'foo'
20:41 p6eval ng d176dc: foo␤
20:41 * moritz_ wonders why that fails in t/spec/S02-lexical-conventions/unicode.t
20:45 colomon joined #perl6
20:45 mberends joined #perl6
20:45 KyleHa joined #perl6
20:45 xinming_ joined #perl6
20:45 ascent_ joined #perl6
20:45 athomason joined #perl6
20:45 kaare_ joined #perl6
20:45 iblechbot joined #perl6
20:45 cognominal joined #perl6
20:45 ShaneC joined #perl6
20:45 fridim_ joined #perl6
20:45 SmokeMachine joined #perl6
20:45 buubot joined #perl6
20:45 cdarroch joined #perl6
20:45 stephenlb joined #perl6
20:45 justatheory joined #perl6
20:45 rfordinal3643 joined #perl6
20:45 IllvilJa joined #perl6
20:45 slavik joined #perl6
20:45 tylerni7 joined #perl6
20:45 tarski joined #perl6
20:45 [particle] joined #perl6
20:45 nihiliad joined #perl6
20:45 Patterner joined #perl6
20:45 gbacon joined #perl6
20:45 alester joined #perl6
20:45 meppl joined #perl6
20:45 quantumEd joined #perl6
20:45 takadonet joined #perl6
20:45 hcchien joined #perl6
20:45 IMeMyself joined #perl6
20:45 zaslon joined #perl6
20:45 pointme joined #perl6
20:45 betterworld joined #perl6
20:45 broquaint joined #perl6
20:45 jaldhar joined #perl6
20:45 jlaire joined #perl6
20:45 am0c joined #perl6
20:45 xomas joined #perl6
20:45 krunen joined #perl6
20:45 mdxi joined #perl6
20:45 nbrown_ joined #perl6
20:45 arthur-- joined #perl6
20:45 araujo joined #perl6
20:45 stuuf joined #perl6
20:45 drbean_ joined #perl6
20:45 ashizawa joined #perl6
20:45 mj41_ joined #perl6
20:45 dbrock joined #perl6
20:45 orafu joined #perl6
20:45 Grrrr joined #perl6
20:45 Khisanth joined #perl6
20:45 jan_ joined #perl6
20:45 r0bby joined #perl6
20:45 ssm joined #perl6
20:45 |Jedai| joined #perl6
20:45 zamolxes joined #perl6
20:45 synth joined #perl6
20:45 constant joined #perl6
20:45 hicx174 joined #perl6
20:45 krakan joined #perl6
20:45 pnu joined #perl6
20:45 dj_goku joined #perl6
20:45 Juerd_ joined #perl6
20:45 lestrrat joined #perl6
20:45 d^_^b joined #perl6
20:45 cotto joined #perl6
20:45 perigrin joined #perl6
20:45 KatrinaTheLamia joined #perl6
20:45 nothingmuch joined #perl6
20:45 dukelet0 joined #perl6
20:45 PZt joined #perl6
20:45 felipe joined #perl6
20:45 s1n joined #perl6
20:45 sbp joined #perl6
20:45 nsh joined #perl6
20:45 hugme joined #perl6
20:45 dbrock` joined #perl6
20:45 elmex joined #perl6
20:45 Cyrus joined #perl6
20:45 literal joined #perl6
20:45 avar joined #perl6
20:45 rjh_ joined #perl6
20:45 ilogger2 joined #perl6
20:45 astinus joined #perl6
20:45 akl joined #perl6
20:45 silug joined #perl6
20:45 jantore_ joined #perl6
20:45 bigpresh_ joined #perl6
20:45 BinGOs joined #perl6
20:45 estrai joined #perl6
20:45 jnthn joined #perl6
20:45 Gothmog_ joined #perl6
20:45 Woody2143 joined #perl6
20:45 eiro joined #perl6
20:45 mtve joined #perl6
20:45 tomaw_ joined #perl6
20:45 allbery_b joined #perl6
20:45 estrabd joined #perl6
20:45 kst joined #perl6
20:45 kolibrie joined #perl6
20:45 Lorn joined #perl6
20:45 hirschnase joined #perl6
20:45 lisppaste3 joined #perl6
20:45 xenoterracide joined #perl6
20:45 simcop2387 joined #perl6
20:45 rgrau_ joined #perl6
20:45 p6eval joined #perl6
20:45 cotto_work joined #perl6
20:45 yako joined #perl6
20:45 viklund joined #perl6
20:45 kcwu joined #perl6
20:45 jeremiah joined #perl6
20:45 rgrau joined #perl6
20:45 diakopter joined #perl6
20:45 spinclad joined #perl6
20:45 phenny joined #perl6
20:45 jiing joined #perl6
20:45 hatseflats joined #perl6
20:45 pugs_svn joined #perl6
20:45 dukeleto joined #perl6
20:45 cls_bsd joined #perl6
20:45 Infinoid joined #perl6
20:45 Woodi joined #perl6
20:45 ingy joined #perl6
20:45 jjore_ joined #perl6
20:45 Tene joined #perl6
20:45 japhb joined #perl6
20:45 Helios joined #perl6
20:45 parduncia joined #perl6
20:45 TimToady joined #perl6
20:45 PacoLinux joined #perl6
20:45 he_ joined #perl6
20:45 szabgab joined #perl6
20:45 renormalist joined #perl6
20:45 dalek joined #perl6
20:45 c1sung joined #perl6
20:45 Intensity joined #perl6
20:45 pmichaud joined #perl6
20:45 sjn joined #perl6
20:45 LionMadeOfLions joined #perl6
20:45 draxil42 joined #perl6
20:45 mathw joined #perl6
20:45 moritz_ joined #perl6
20:45 awwaiid joined #perl6
20:45 omega__ joined #perl6
20:45 mofino joined #perl6
20:45 bloonix joined #perl6
20:45 avuserow joined #perl6
20:45 stepnem joined #perl6
20:45 idemal joined #perl6
20:45 carlin joined #perl6
20:45 wolverian joined #perl6
20:45 sunnavy joined #perl6
20:45 yves joined #perl6
20:45 obra joined #perl6
20:45 ruz joined #perl6
20:45 mberends how can anyone get any programming done with such a great backlog to read?
20:45 moritz_ mberends: by igoring or skimming :-)
20:45 colomon mberends: only read backlog while you are waiting on make spectest
20:45 pmichaud lol
20:45 jnthn mberends: Drink LOTS of red bull and stay up all night so you can do both.
20:45 moritz_ ah, I think I know what's wrong...
20:45 pmichaud type "make spectest", then finish War-And-Peace.
20:45 moritz_ there's a my sub äöü () { 42 }
20:45 moritz_ earlier in the file
20:46 moritz_ so maybe it's picking the earlier variant
20:46 moritz_ are lexical subs supposed to work in ng?
20:46 jnthn moritz_: subs are leixcal by default in ng
20:46 moritz_ rakudo: { sub f () { say 1 } }; { sub f ($x) { say $x }; f(3) }
20:46 jnthn In theory.
20:46 p6eval rakudo 7ef386: Too many positional parameters passed; got 1 but expected 0␤in Main (file src/gen_setting.pm, line 324)␤
20:46 jnthn wtf.
20:46 moritz_ rakudo: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) }
20:46 jnthn Oh
20:46 p6eval rakudo 7ef386: 3␤
20:46 moritz_ forgot the my's
20:47 moritz_ 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␤
20:47 moritz_ grrrrr
20:47 moritz_ 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␤
20:47 jnthn moritz_: 1 less r and that'd have been a highlight for someone ;-)
20:47 moritz_ ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) }
20:47 p6eval ng d176dc: 3␤
20:48 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)␤
20:48 moritz_ ng: use Test; plan 2; { my sub äöü () { 42 }; is (äöü), 42, "Unicode subs with no parameters";
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)␤
20:48 moritz_ gah
20:48 jnthn ng: my $a := 1; my $b := 2; my $c := $a; say($a =:= $b); say($a =:= $c);
20:48 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)␤
20:48 jnthn nqp: my $a := 1; my $b := 2; my $c := $a; say($a =:= $b); say($a =:= $c);
20:48 p6eval nqp: 0␤1␤
20:48 jnthn \o/
20:48 * jnthn wanted it in nqp anyway.
20:49 lisppaste3 moritz_ pasted "lexical subs with non-ASCII fail in ng" at http://paste.lisp.org/display/91730
20:51 moritz_ ng: sub f(:$ä) { say $ä }; f(:ä<argl>)
20:52 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 http://paste.lisp.org/display/91731
20:52 moritz_ same error here locally
20:54 pmichaud I'm guessing it's the imcc bug issue
20:54 yahooooo joined #perl6
20:54 pmichaud they're in the same namespace, so imcc ends up short-circuiting the function call.
20:55 pmichaud (to the wrong function)
20:56 pmichaud I thought that particular bug was fixed.... but apparently not.  I'll clean up the PIR and reopen the trac ticket for it.
20:59 rfordinal joined #perl6
20:59 colomon pmichaud: is that the one that messes up operators frequently in ng?
20:59 pmichaud frequently messes up a lot of stuff, yes.
20:59 pmichaud in ng and master
21:00 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.
21:00 jnthn pmichaud: Yes, but how does it know that it shouldn't in this case?
21:01 jnthn erm, in the multi case that is...
21:01 pmichaud because there's a lexical symbol of the same name in scope
21:01 jnthn ah, ok
21:01 moritz_ does imcc even know about lexicalsß
21:01 jnthn :-)
21:02 pmichaud moritz_: yes, it has to
21:02 jnthn moritz_: Yes
21:02 pmichaud moritz_: as it's the thing that processes the :outer flags and the .lex declarations
21:03 * pmichaud is seriously tempted to simply replace subroutine calls with explicit "find_sub_not_null" opcodes in PCT
21:04 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
21:04 jnthn pmichaud: I might dare to start looking at S06-multi/* if you do. :-)
21:06 jnthn huh
21:06 jnthn now ng gives me a build error
21:06 jnthn perl6_ops.obj : error LNK2001: unresolved external symbol _GETATTR_CallSignature_results
21:06 * jnthn isn't sure how he can get that but nobody else. :-/
21:07 pmichaud I haven't tried building ng very recently.  Also, are you using Parrot HEAD?
21:07 pmichaud there was a recent branch merge dealing with CallSignature stuff, iirc
21:07 jnthn I used --gen-parrot
21:07 jnthn oh joy
21:07 colomon jnthn: which is almost parrot head -- I bumped it to HEAD a day or two ago.
21:08 pmichaud I think the branch merge was within the last 48 hours.
21:09 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
21:10 pmichaud (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.
21:10 colomon I bumped PARROT_REVISION 22 hours ago according to github.
21:11 colomon I did do rm -rf parrot parrot_install in the process on my local machine, mind you.
21:14 PerlJam I think there are files that are generated by parrot that aren't cleaned with "make realclean" yet should be
21:15 pmichaud that seems likely.
21:17 pmichaud jnthn: builds for me here locally.
21:17 pmichaud I'm guessing nuke the parrot trees and try that.
21:18 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:19 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 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 synth joined #perl6
21:21 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 #perl6
21:22 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.
21:22 * Tene nods.
21:22 Tene All i need to do is translate it into a dynamic var definition.
21:22 Tene my $*FATAL = Bool::True;
21:23 Tene So, simple.
21:23 PerlJam Weird ...  I just got asked about Perl 6 *twice* in one day from localish people.
21:23 pmichaud mainly just need for  fail() to work properly, and attempting to use a failure value to throw an exception
21:24 Tene Okay, that's doable.
21:24 TimToady PerlJam: now you know who reads slashdot
21:24 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.
21:24 PerlJam TimToady: heh!
21:24 TimToady or follows Tim O
21:24 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.
21:25 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;
21:25 p6eval rakudo 7ef386:  ( no output )
21:26 moritz_ ng: class Foo { method Bool { say "lol"; 0 } }; my Foo $a .= new; say 'wtf' if $a;
21:26 pmichaud I think it's 'true' in master.
21:26 p6eval ng d176dc: wtf␤
21:26 Tene right, should have been ng.
21:26 pmichaud looks like it works in ng :-)
21:26 pmichaud oh, wait.
21:26 moritz_ it does not.
21:27 Tene "Does not!" -- "Does too!"
21:27 Lorn joined #perl6
21:27 pmichaud rakudo:  class Foo { method true { say 'lol'; 0 } };  my Foo $a .= new;  say 'wtf' if $a;
21:27 p6eval rakudo 7ef386:  ( no output )
21:28 PerlJam uh oh ... *I* shouldn't have looked at slashdot
21:28 moritz_ pmichaud: p6eval + rakudo + class defintion = timeout
21:28 PerlJam TimToady-- for mentioning it :(
21:29 jnthn PerlJam: /. is really that bad? ;-)
21:32 cdarroch_ joined #perl6
21:33 moritz_ http://perl6advent.wordpress.com/2009/12/03/day-3-static-types-and-multi-subs/#comment-56 seems like people like MMD :-)
21:34 mathw MMD is something easy to get the hang of
21:34 mathw because people are used t omethod overloading
21:39 TimToady moritz_: say Mu; should say Mu() still; it's ~ that warns, not .Str, by current spec
21:40 dbrock rakudo: class A {}; class B {}; my A $x = B.new
21:40 moritz_ but say Mu ~ '' says \n only?
21:40 p6eval rakudo 7ef386:  ( no output )
21:41 TimToady no, say doesn't use ~
21:41 TimToady sorry
21:41 TimToady misread
21:41 moritz_ dbrock: somehow p6eval has problems with class defintions - that's not a rakudo problem though
21:41 TimToady the ~ will warn and just produce \n, yes
21:42 TimToady and "$foo stuff" is considered a form of ~
21:42 moritz_ I thought say() used .Stringy, in order to allow direct conversion to Buf?
21:42 TimToady likewise ~$foo
21:42 TimToady well, it ought to just use .Buf :)
21:42 TimToady in any case, say has to use something very primitive
21:43 TimToady so that junctions also print rather than autothreading
21:43 dbrock moritz_: hmm, so it doesn't just feed the code into rakudo?
21:43 TimToady I've been thinking of .Str as primitive compared to ~
21:43 TimToady and .Num as primitive compared to +
21:44 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
21:44 TimToady rather than primitive
21:44 moritz_ I've been thinking differently about it, from the object's point of view
21:44 TimToady in fact, ~ is .Stringy, I think, and + is .Numeric
21:45 moritz_ .Stringy and .Numeric give the object more freedom
21:45 moritz_ .Str just allows somethiing that returns Str, while .Numeric also allows Bufs
21:45 TimToady say isn't into giving freedom, anyway
21:45 TimToady so probably say really uses .Buf, or .Str.Buf, or some such
21:46 moritz_ maybe it should use .Buf, which in Object defaults to .Str.Buf
21:46 moritz_ erm, .Str.encode() or so
21:46 TimToady (modulo encoding... right
21:46 Tene 14:45 < treed> say <huey dewey loiue>.fmt       # 'huey dewey louie'
21:46 Tene 14:45 < treed> wow, .fmt even fixes typos!
21:46 moritz_ that's really magical!
21:49 sjohnson rakudo: say <huey dewey loiue>.fmt
21:49 p6eval rakudo 7ef386: huey dewey loiue␤
21:49 sjohnson <-- works for myth busters
21:52 dbrock haha
21:56 jnthn Gah! I get the same compilation failure, even after building with a completely clan Parrot tree.
21:56 jnthn *clean
21:57 jnthn I assume nobody else is having problems building ng? :-/
21:57 Tene jnthn: do you have an installed parrot?
21:58 jnthn Tene: Jus tusing --gen-parrot
21:58 jnthn Tene: I don't believe I have an installed one elsewhere
21:58 Tene jnthn: you might need to "git clean -xdf" your rakudo tree.  That'll remove *all* untracked files.
21:58 jnthn Tene: Certainly, there ain't one in my path.
21:59 pugs_svn r29287 | lwall++ | [S03,S12] remove redundant .Int and .true in describing conditional semantics
22:00 jnthn Tene: Oddly, I'm missing Parrot_ext_call too. Hm
22:05 jnthn Ah, that was a missing #include for extend.h...wonder why it didn't show up for @other.
22:06 Exodist joined #perl6
22:06 huf joined #perl6
22:06 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)␤
22:06 jnthn ng: sub foo(Any $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)␤
22:06 jnthn wtf
22:07 jnthn ng: say Junction ~~ Any
22:07 p6eval ng d176dc: 1␤
22:07 jnthn ffs
22:08 payload joined #perl6
22:08 jnthn OK, I don't understand how Rakudo builds for anyone.
22:08 jnthn ng that is
22:09 jnthn Given that GETATTR_CallSignature_results doesn't appear to be defined any more in Parrot.
22:10 Tene WFM
22:12 jnthn Tene: That's...odd.
22:12 arnsholt Make sure you guys have the same Parrot rev?
22:12 jnthn Tene: So what does is get resolved to?
22:12 jnthn During the compile?
22:13 jnthn 42920
22:13 Tene jnthn: what?
22:13 jnthn Tene: What Parrot revision have you got?
22:13 Tene 42896
22:14 jnthn Tene: Right. And in latest ng PARROT_REVISION is 42920.
22:15 jnthn 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.
22:19 Tene STD: my @list = 5 <<+>> 6;
22:19 moritz_ lc
22:20 Tene Ah.
22:20 Tene std: my @list = 5 <<+>> 6;
22:20 p6eval std 29286: ok 00:01 108m␤
22:20 Tene but that's quote, not hyper.
22:20 moritz_ std: my @list = 5 << foo bar >> 6
22:20 p6eval std 29286: [31m===[0mSORRY![31m===[0m␤Obsolete use of << to do left shift; instead, in Perl 6 please use +< or ~< at /tmp/hib8IKIxLv line 1:␤------> [32mmy @list = 5 << [33m⏏[31mfoo bar >> 6[0m␤FAILED 00:01 106m␤
22:21 jnthn Ugh...looks like Parrot changed how returns are stored. :-/
22:21 Tene Oh, what?
22:21 jnthn Yeah
22:21 moritz_ Tene: if it were a quote, it would be two terms in a row
22:21 jnthn CallSignature now seems to no longer have a results attr
22:21 Tene Ah.
22:22 Tene So, what does pointy on both sides do?
22:22 Tene rakudo: say (5 <<+>> 6).perl;
22:22 jnthn <-> is like -> but makes args rw by default.
22:22 jnthn oh
22:22 p6eval rakudo 7ef386: [11]␤
22:22 jnthn still hypers
22:22 jnthn auto-upgrades.
22:22 jnthn both sides.
22:22 Tene jnthn: so, makes an infinite list of both sides?
22:22 jnthn Well, not infinite.
22:22 Tene I thought that pointy side also auto-extended, yes?
22:23 jnthn Yeah but only to the maximum that is required.
22:23 Tene ah
22:23 jnthn And given both sides are considered a list of one thing...
22:23 jnthn ...you get a list of one thingy back.
22:44 jferrero joined #perl6
22:51 nihiliad joined #perl6
23:00 dalek rakudo/ng: 8d15415 | jnthn++ | src/ops/perl6.ops:
23:00 dalek rakudo/ng: Chase a Parrot change that broke our junction auto-threading code.
23:00 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8d154158b0ac001c349fb3d3756c7bfe0d893046
23:01 moritz_ lemme guess... we had no tests for that activated?
23:08 moritz_ ng: say True
23:08 p6eval ng d176dc: 1␤
23:09 moritz_ ng: say Bool::True
23:09 p6eval ng d176dc: 1␤
23:09 moritz_ ng: say True.WHAT
23:09 p6eval ng d176dc: Bool()␤
23:10 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)␤
23:10 moritz_ ng: say True.perl
23:10 p6eval ng d176dc: 1␤
23:10 TimToady ng: say True.key
23:10 p6eval ng d176dc: Method 'key' not found for invocant of class 'Bool'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
23:11 TimToady (.name no longer specced)
23:11 moritz_ replaced by?
23:11 TimToady .key
23:12 jnthn ng: say Mapping
23:12 p6eval ng d176dc: Could not find non-existent sub &Mapping␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
23:12 moritz_ kinda makes sense
23:12 jnthn oh.
23:12 TimToady hasn't been a Mapping type for some time now
23:12 jnthn wtf?
23:12 jnthn TimToady: What's it called now?
23:12 jnthn And when did it die?
23:12 moritz_ there is still a Mapping type
23:12 moritz_ but it's not used for enums
23:13 TimToady well, yes and no
23:13 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 constant Pairs are now called Enums
23:13 TimToady so its an EnumMap
23:13 jnthn OK, what should EnumMap inherit from?
23:13 romanhunt joined #perl6
23:13 romanhunt good day all
23:13 jnthn ah...damm.
23:13 * moritz_ should better shut up, he's not up-to-date anymore
23:13 jnthn TimToady: Heh. I'd just gone and defined Enum as...something a tad fancier.
23:14 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. ;-)
23:14 jnthn TimToady: Decided we'd have a crack at writing the enum implementation in the setting, just for fun. :-)
23:14 romanhunt anyone got a seconf to explain the concept of "Whatever"
23:14 romanhunt as in Whatever.pm
23:15 TimToady does your Enum role define a whole enumeration, or only one Enum pair?
23:15 TimToady if the former, it should be called Enumeration instead
23:15 moritz_ romanhunt: when Whatever is used as term (like in *+2), it returns a closure
23:15 romanhunt I was looking into possibly trying to fix the range to infinity todo
23:15 moritz_ rakudo: say (*+2)(20)
23:15 p6eval rakudo 7ef386: 22␤
23:16 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
23:16 TimToady good
23:16 jnthn TimToady: I was doing $value but Enum[$key, $value, $enumeration] to get the thingy we install in the namespace :-)
23:16 pugs_svn r29288 | moritz++ | [t/spec] unfudge some ord/chr tests for rakudo; ord("") should be undef
23:16 moritz_ romanhunt: there you have a slight chance of lazy lists beingaccessible
23:16 TimToady but why does it need to be a role?
23:17 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?
23:18 jnthn damm
23:18 jnthn *mixing a *role* into them
23:18 romanhunt does that require git'ing a branch other than the one described in the "workflow" example on rakudo.org?
23:18 romanhunt I apologize for my ignorance
23:18 jnthn TimToady: It should all work out pretty naturally then.
23:18 moritz_ romanhunt: git checkout -b ng --track origin/ng
23:18 moritz_ then perl Configure.pl; make spectest
23:19 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 TimToady something that installs a whole enumeration shouldn't be called an Enum
23:19 romanhunt thx. thias is my forst attempt at being part of a large project other than sending patches to openbsd upstream to various maintainers
23:19 TimToady the only vestive of the former use is that the keyword is still "enum" instead of "enumeration"
23:19 moritz_ romanhunt: welcome, and have fun!
23:20 jnthn TimToady: no, no...I'm using Enum as the role we mix into an *individual* value.
23:20 jnthn TimToady: Which menas it's the value + the extra few methods.
23:20 TimToady okay
23:21 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
23:21 TimToady as long as it ends up constant on both key and value
23:21 jnthn TimToady: It won't run yet, but it's a sketch...
23:21 jnthn 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.
23:22 TimToady nodnod
23:27 romanhunt moritz: thx will do
23:36 pugs_svn r29290 | lwall++ | [STD] slight tweaks to obsolscence messages
23:36 TimToady *obsolescence
23:36 TimToady (they now say "Unsupported use" to be less judgemental :)
23:37 wayland76 joined #perl6
23:38 jnthn Perl 5ish use of...? :-)
23:39 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...)
23:39 mberends jnthn: good ol' use of...
23:40 jnthn ;-)
23:40 dalek rakudo/ng: e07f8d5 | jnthn++ | src/metamodel/ (5 files):
23:40 dalek rakudo/ng: 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.
23:40 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e07f8d50b8ab17dde5596dfb0f94fb58a39dd8a3
23:40 dalek rakudo/ng: 2069f24 | jnthn++ | src/core/enum.pm:
23:40 dalek rakudo/ng: 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.
23:40 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2069f2476b758b6f97ef4cb02facf4f1cb307826
23:41 TimToady jnthn: well, someone might hack in 'use P5ish;' and then it would be supported.  :)
23:42 TimToady but I think the undercurrent of "Unsupported (and will never be supported)" is probably strong enough, and little harm done if not.
23:43 jnthn TimToady: *nod*
23:43 TimToady though we might have a "Deprecated" variant, I suppose...
23:43 romanhunt colomon: thx
23:43 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.
23:44 jnthn std: say $$
23:44 p6eval std 29289: [31m===[0mSORRY![31m===[0m␤Anonymous variable requires declarator at /tmp/awhUSNbHGA line 1:␤------> [32msay $$[33m⏏[31m<EOL>[0m␤    expecting twigil␤FAILED 00:02 107m␤
23:44 jnthn oh, that wasn't quite what I expected :)
23:44 jnthn std: say $^O
23:44 p6eval std 29289: [31m===[0mSORRY![31m===[0m␤Obsolete use of $^O variable; instead, in Perl 6 please use $?OS or $::OS at /tmp/67tHqeT5TF line 1 (EOF):␤------> [32msay $^O[33m⏏[31m<EOL>[0m␤FAILED 00:01 105m␤
23:44 jnthn oh, that's not bad.
23:45 jnthn Because of the "in Perl 6" bit.
23:45 TimToady I think the "in Perl 6 please use" is strong enough
23:45 jnthn TimToady: Yes.
23:45 TimToady I also dropped the "instead"
23:45 TimToady since it's already implied
23:45 jnthn TimToady: I'd forgot it said "in Perl 6" later on in the message.
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....
23:46 dalek rakudo/ng: 2edef04 | jnthn++ | src/Perl6/Compiler/Role.pm:
23:46 dalek rakudo/ng: Get role code generation using the attribute meta-protocol properly.
23:46 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2edef046e13e5043c792f32067c43dcb2251f3cd
23:46 dalek rakudo/ng: fcdef68 | jnthn++ | src/metamodel/RoleToClassApplier.nqp:
23:46 dalek rakudo/ng: Add missing helper sub that I forgot to implement in the role composer.
23:46 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/fcdef685d85eb49be867bf1a593ed0b5b1abfbdf
23:46 jnthn In that case, I'm happy. :-)
23:46 mberends it's a really grand way to say it
23:46 jnthn mberends: Your English is very English today. :-)
23:46 mberends jnthn: most be some heimweh ;)
23:46 TimToady here it says: Unsupported use of $^O variable; in Perl 6 please use $?OS or $::OS at...
23:47 mberends *must, gah
23:48 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 jnthn TimToady: that is, that this isn't really just an assignment?
23:48 jnthn I need to get ng handling that construct again...it's blocking me on passing a roles spectest...
23:49 jnthn And probably other tests.
23:49 jnthn But not sure quite how to put it back in.
23:49 jnthn Well, I know *a* way, but pmichaud will probably glare at me for it. ;-)
23:50 TimToady not explicitly, but I'd do it with a reducecheck, if I were to do it in the grammar
23:51 TimToady in any case, sometime after the = reduces both its arguments, which means no sooner than the opp reduction
23:52 TimToady (which is when a reducecheck runs)
23:52 TimToady 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
23:52 colomon comment about [Z] on the Advent blog:
23:52 colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say ([Z] @c).fmt;
23:53 p6eval rakudo 7ef386: Confused at line 2, near "@c).fmt;"␤in Main (file <unknown>, line <unknown>)␤
23:53 jnthn TimToady: OK.
23:53 colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say @c.perl
23:53 p6eval rakudo 7ef386: [1, 2, 3, 4, 5, 6]␤
23:54 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]]␤
23:54 carlin Argh, I thought I had fixed zaslon's failure problem
23:54 colomon rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = \@a, \@b; say [Z] @c;
23:54 p6eval rakudo 7ef386: Confused at line 2, near "@c;"␤in Main (file <unknown>, line <unknown>)␤
23:55 colomon Is [Z] simple NYI?
23:55 TimToady I suspect rakudo doesn't know about [Z]
23:55 TimToady all its metaops are hardwired currently
23:56 TimToady that will be fixed when ng reimplements them as higher-order functions
23:56 colomon Should [Z] work? (In ideal p6, I mean.)
23:56 TimToady std: [Z] 1,2
23:56 p6eval std 29290: ok 00:01 108m␤
23:56 zaslon joined #perl6
23:57 TimToady STD thinks it's fine
23:57 TimToady it's not too fiddly, or diffy
23:57 TimToady std: [&&] 1,2
23:57 colomon I wasn't sure if the meta operators were defined on list operators or not.
23:57 p6eval std 29290: ok 00:01 106m␤
23:59 TimToady std: [==>] 1,2
23:59 p6eval std 29290: [31m===[0mSORRY![31m===[0m␤Can't reduce ==> because sequencer operators are too fiddly at /tmp/aNcZcLOCIU line 1:␤------> [32m[==>][33m⏏[31m 1,2[0m␤    expecting prefix_circumfix_meta_operator__S_258reduce␤FAILED 00:01 104m␤
23:59 TimToady std: [,] 1,2
23:59 p6eval std 29290: ok 00:01 106m␤

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

Perl 6 | Reference Documentation | Rakudo