Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-04-19

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:06 quester_ joined #perl6
00:18 justatheory joined #perl6
00:39 yinyin joined #perl6
00:42 cosimo joined #perl6
00:53 diakopter method invocations
00:53 diakopter perlesque: my $a = list_int.new(); $a.Add(1); says($a.ToString())
00:53 p6eval perlesque: OUTPUT«Sprixel.Runtime.list_int␤»
00:54 diakopter afk&
01:05 baisong joined #perl6
01:21 eternaleye joined #perl6
01:27 plobsing joined #perl6
01:43 quester_ karma quester
01:44 quester_ buubot: karma quester
01:44 buubot quester_: quester has karma of 7
01:57 Psyche^ joined #perl6
02:17 alester joined #perl6
02:22 cosimo joined #perl6
02:29 snarkyboojum joined #perl6
02:31 snarkyboojum would be cool if Perl 6 got a slot at Emerging Languages Camp http://emerginglangs.com/ :)
02:33 snarkyboojum great list of speakers there already http://emerginglangs.com/speakers/
02:36 astrojp left #perl6
02:36 lue (hello!) snarky: what is Emerging Languages about?
02:36 snarkyboojum hey lue
02:37 snarkyboojum seems to be a free conference that'll be co-located with OSCON 2010 or something, and will cover a bunch of new-ish languages which are trying to solve interesting problems
02:38 lue It's not so much an emerging language, but rather a "beta" :)
02:38 snarkyboojum lue: Perl 6?
02:39 lue yeah. emerging implies it has yet to be realized.
02:39 lue It's realized, just NYI :)
02:40 snarkyboojum Io, Newspeak, Go, etc
02:40 snarkyboojum would be cool to see Perl 6 there and perhaps Fortress :)
02:40 diakopter emerging does not imply it has yet to be realized
02:40 diakopter imo.
02:41 snarkyboojum well, emerging implying revealing, and Perl 6 is certainly still being revealed on a daily basis :)
02:41 lue that's what pops in my head :)
02:41 diakopter I think p6 qualifies as emerging with the rest of those languages
02:41 snarkyboojum definitely
02:42 lue well, today it's emerging, but tomorow it could be fully implemented, and the next day completely unrealized :)
02:42 snarkyboojum looks like a kickarse conference anyway :)
02:44 lue rakudo: my @a = (97,102,154); say chr(@a »+» 2)
02:44 p6eval rakudo 842d2b: OUTPUT«␤»
02:46 lue that wasn't what I wanted :)
02:48 molaf joined #perl6
02:53 diakopter rakudo: my @a = 97,102,154; say @a >>+>> 2
02:53 p6eval rakudo 842d2b: OUTPUT«99104156␤»
03:12 snarkyboojum rakudo: my @a = 97,102,154; say .chr for @a >>+>> 2
03:12 p6eval rakudo 842d2b: OUTPUT«c␤h␤œ␤»
03:13 lue \o/
03:16 jaldhar joined #perl6
03:29 alester joined #perl6
03:33 snarkyboojum joined #perl6
04:01 meppl joined #perl6
04:14 quester_ left #perl6
04:41 JimmyZ joined #perl6
04:42 nihiliad joined #perl6
04:47 nihiliad joined #perl6
04:52 bacek joined #perl6
05:00 ReiniUrban joined #perl6
05:05 ejs joined #perl6
05:13 arthur-- joined #perl6
05:21 jonasbn joined #perl6
05:38 kaare joined #perl6
05:43 snarkyboojum joined #perl6
05:56 uniejo joined #perl6
06:00 diakopter got expression statements working.  but not implied return expressions/statements yet.  probably won't do that.
06:10 diakopter perlesque: my $a = list_int.new(); $a.Add(1); $a.Add(33523); say($a.Count);
06:10 p6eval perlesque: OUTPUT«2␤»
06:10 diakopter perlesquel:
06:10 diakopter perlesquel: .
06:10 p6eval perlesquel: OUTPUT«2␤real 0.13␤user 0.05␤sys 0.01␤»
06:10 diakopter perlesquel: .
06:10 p6eval perlesquel: OUTPUT«2␤real 0.05␤user 0.04␤sys 0.01␤»
06:10 diakopter perlesquel: .
06:10 p6eval perlesquel: OUTPUT«2␤real 0.05␤user 0.04␤sys 0.01␤»
06:10 diakopter heh
06:12 diakopter perlesque: my $a = list_int.new(); loop (my $x = 0; $x < 10000000; $x+=1) { $a.Add($x) }; say($a.Count);
06:12 p6eval perlesque: OUTPUT«10000000␤»
06:12 diakopter perlesquel: .
06:12 p6eval perlesquel: OUTPUT«10000000␤real 0.85␤user 0.34␤sys 0.25␤»
06:12 diakopter perlesquel: .
06:12 p6eval perlesquel: OUTPUT«10000000␤real 0.63␤user 0.32␤sys 0.28␤»
06:12 diakopter cool. mono must cache the JITted edition
06:17 moritz_ good morning
06:20 diakopter moritz_: hi :)
06:28 sorear perlesque: my $a = list_int.new(); loop (my $x = 0; $x < 10000000; $x+=1) { $a.Add($x) }; $a.Sort();
06:29 p6eval perlesque:  ( no output )
06:29 sorear perlesquel: .
06:29 p6eval perlesquel: OUTPUT«real 11.73␤user 6.27␤sys 0.09␤»
06:29 _jaldhar joined #perl6
06:29 sorear good, mono isn't using quicksort
06:32 iblechbot joined #perl6
06:37 diakopter hee
06:38 diakopter adding string literals (so I can have BigInteger)
06:42 diakopter perlesque: my $a = list_int.new(); loop (my $x = 10000000; $x > =; $x-=1) { $a.Add($x) }; $a.Sort();
06:42 p6eval perlesque: OUTPUT«␤Unhandled Exception: System.ArgumentException: An element with the same key already exists in the dictionary.␤at System.Collections.Generic.Dictionary`2<string, System.Reflection.Emit.Label>.Add (string,System.Reflection.Emit.Label) <0x0027f>␤at
06:42 p6eval ..TriAxis.RunSharp.CodeGen.RecordLabe…
06:42 diakopter perlesque: my $a = list_int.new(); loop (my $x = 10000000; $x > 0; $x-=1) { $a.Add($x) }; $a.Sort();
06:43 p6eval perlesque:  ( no output )
06:43 diakopter perlesquel: .
06:43 p6eval perlesquel: OUTPUT«real 6.51␤user 6.28␤sys 0.23␤»
06:45 diakopter perlesque: my $a = list_int.new(); loop (my $x = 10000000; $x > 0; $x-=1) { $a.Add($x) }; $a.Sort(); say(33);
06:45 p6eval perlesque: OUTPUT«33␤»
06:45 diakopter just checking
06:47 diakopter btw, the entirety of the declaration of list_int in the sprixel codebase is:  public class list_int : List<int> { public list_int() { } }
06:48 agentzh joined #perl6
07:08 sorear rakudo: (^500).sort.eager
07:08 p6eval rakudo 842d2b: OUTPUT«Method 'sort' not found for invocant of class 'Range'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
07:44 IllvilJa o/
07:55 rekhajos joined #perl6
07:55 moritz_ \o
07:56 mathw o/
08:04 diakopter there we go.
08:04 diakopter string literals (double quotes only, no interpolation of course)
08:04 diakopter and bigints.
08:04 ejs joined #perl6
08:05 * mathw scowls at C++
08:06 jnthn morning
08:06 moritz_ jnthn is up before 11am? what's wrong? :-)
08:07 mathw He can't sleep for worrying about the volcanic ash cloud and its effects on European air traffic?
08:07 diakopter perlesque: my $a = BigInteger.Create("323532352352335487498720970091290383401750920198234091853"); say($a); say($a * $a);
08:07 p6eval perlesque: OUTPUT«323532352352335487498720970091290383401750920198234091853␤104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609␤»
08:07 diakopter perlesquel: .
08:07 p6eval perlesquel: OUTPUT«323532352352335487498720970091290383401750920198234091853␤104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609␤real 0.08␤user 0.07␤sys 0.01␤»
08:07 mathw diakopter: big :)
08:08 diakopter indeed.
08:08 * mathw sighs
08:08 moritz_ diakopter: just use single quotes, then you're closer to a proper Perl 6 subset
08:08 diakopter true.
08:08 mathw Seems I either need to start mucking about with storing stuff on the heap, or use boost::any. Hmph.
08:09 moritz_ diakopter: and get a bot that reports perlesque commits here
08:09 mathw I may have outsmarted myself
08:10 diakopter perlesque: my $a = BigInteger.Create('323532352352335487498720970091290383401750920198234091853'); say($a); say($a * $a);
08:10 p6eval perlesque: OUTPUT«323532352352335487498720970091290383401750920198234091853␤104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609␤»
08:10 diakopter moritz_: fixed :)
08:10 diakopter perlesque: say('blah\'blah')
08:10 p6eval perlesque: OUTPUT«blah\'blah␤»
08:10 diakopter heh
08:14 ejs joined #perl6
08:15 diakopter jnthn: .net method calls & field lookups work
08:15 diakopter as part of expressions and just as statements.
08:15 diakopter fields/properties I mean.
08:15 diakopter constructors too
08:16 diakopter tomorrow night, indexers and perl hash
08:16 moritz_ don't forget the svnbot
08:16 jnthn diakopter++
08:17 diakopter what about the svnbot?
08:17 diakopter (I no longer know how to add repos)
08:17 moritz_ diakopter: start a new one
08:17 diakopter start a new svnbot?
08:17 moritz_ yes
08:18 diakopter lol
08:18 diakopter you funny
08:18 moritz_ I mean a new instance
08:18 moritz_ not write a new one
08:18 diakopter heh; oh
08:18 * diakopter been awake too long
08:19 * moritz_ not always crazy as batshit
08:19 diakopter aka "guano"
08:20 diakopter as in "he's guano crazy, man!"
08:21 * diakopter is scared to look at my last 50 commit diffs.
08:21 diakopter they must be .... horrendous.
08:21 iblechbot joined #perl6
08:21 diakopter I can barely stand to look at the latest code itself.
08:24 diakopter csmeta is, like, yacc, but after 5 years of pumping iron 4 hours/day and training for decathalon and completing PhDs.  And the resulting compilers are just as bloated/heady, too.
08:25 diakopter if only I could document how to use it......
08:26 diakopter bedime and stuff.
08:26 diakopter bedtime.
08:26 diakopter -|o
08:30 jnthn o/
08:30 dakkar joined #perl6
08:44 clintongormley joined #perl6
08:46 espadrine joined #perl6
08:49 espadrine left #perl6
08:49 espadrine joined #perl6
09:06 dalek rakudo: a8e70ac | moritz++ | build/ (2 files):
09:06 dalek rakudo: bump PARROT_REVISION, and change config_lib from .pasm to .pir
09:06 dalek rakudo: This introduces a new test failure which is discussed at
09:06 dalek rakudo: http://trac.parrot.org/parrot/ticket/1560
09:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a8e70acdf61589f29f80d7b840f8c06e7aa5f483
09:33 masak joined #perl6
09:34 masak oh hai, #perl6
09:35 moritz_ oh hai masak
09:35 jnthn mwahahaitsmasak
09:35 masak I found the disastrous bug.
09:36 jnthn oh noes
09:36 jnthn and oh yay
09:36 jnthn masak++
09:36 jnthn How disasterous is it?
09:36 masak it took all of yesterday evening. and half of the night.
09:36 jnthn :-(
09:36 masak jnthn: it's bad.
09:36 jnthn Damm.
09:36 mikehh joined #perl6
09:36 masak but the problem might be with Parrot, and some sneaky 'optimization'.
09:36 jnthn Got a short test case?
09:36 moritz_ do tell.
09:36 jnthn We've already been burnt by that.
09:37 masak rakudo: my $t = 0; sub foo { my @a; my &bar = { say +@a }; unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
09:37 p6eval rakudo 842d2b: OUTPUT«1␤0␤»
09:37 masak alpha: my $t = 0; sub foo { my @a; my &bar = { say +@a }; unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
09:37 p6eval alpha 30e0ed: OUTPUT«1␤1␤»
09:37 * masak submits rakudobug
09:37 masak I'll five you a minute or so :)
09:40 moritz_ soo... &bar has some wrong lexical @a?
09:40 masak rakudo: my $t = 0; sub foo { my @a; my &bar = { say @a.WHICH }; unless $t++ { foo; push @a, "OH HAI"; say @a.WHICH; bar; } }; foo
09:40 p6eval rakudo 842d2b: OUTPUT«87969168␤88746296␤»
09:40 masak yep.
09:40 moritz_ rakudo: my $t = 0; sub foo { my @a; my &bar = { say @a.perl };  $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
09:40 masak alpha: my $t = 0; sub foo { my @a; my &bar = { say @a.WHICH }; unless $t++ { foo; push @a, "OH HAI"; say @a.WHICH; bar; } }; foo
09:40 p6eval rakudo 842d2b: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
09:40 p6eval alpha 30e0ed: OUTPUT«47405094140536␤47405094140536␤»
09:41 masak the @a in &bar gets bound to the @a in the foo call called by foo, not the foo call called by the outermost scope.
09:42 moritz_ maybe related to RT #73034, which also discusses variable sharing in closures
09:43 * masak looks
09:43 moritz_ that one is responsible for the man-or-boy test not working in master
09:43 moritz_ Knuth++
09:44 masak I have no way to know whether mine is the same, so I'll go ahead and submit it anyway.
09:44 masak they do look related.
09:44 moritz_ sure
09:44 moritz_ maybe include a reference to that ticket
09:44 masak *nod*
09:46 masak until I can find a workaround, this bug blocks the conversion of GGE to master.
09:46 moritz_ don't use closures :-)
09:47 masak very funny. :)
09:47 moritz_ ok, that was not funny
09:47 * jnthn looks forward to the closure of these tickets
09:48 masak the closure in question is one and a half screenful of code, called five times throughout the optable parser.
09:48 jnthn pmichaud++ did at one point have a patch that got man or boy passing again in master.
09:48 riffraff joined #perl6
09:48 moritz_ so why didn't he commit? did it break everything else?
09:48 jnthn Yes.
09:48 jnthn rakudo: my $t = 0; sub foo { my @a; my &bar = { say +@a }; unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
09:48 p6eval rakudo 842d2b: OUTPUT«1␤0␤»
09:48 masak to heck with everything else!
09:49 jnthn rakudo: my $t = 0; sub foo { my @a; my &bar = pir::clone({ say +@a }); unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
09:49 p6eval rakudo 842d2b: OUTPUT«1␤1␤»
09:49 masak jnthn++
09:49 masak there's the workaround. (eww!) :)
09:49 jnthn rakudo: my $t = 0; sub foo { my @a; my &bar = pir::newclosure({ say +@a }); unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
09:49 p6eval rakudo 842d2b: OUTPUT«Attempting to do sub operation on non-Sub.␤current instr.: 'foo' pc 204 (EVAL_1:83)␤»
09:49 jnthn Ah.
09:49 jnthn masak: Nod.
09:49 jnthn masak: Well
09:49 jnthn masak: I wasn't suggesting you use it.
09:49 masak I probably will.
09:49 jnthn masak: I was more pondering the kind of fix we may need.
09:55 broquaint joined #perl6
10:11 pugssvn r30406 | moritz++ | [t/spec] comparing Date objects
10:11 pugssvn r30407 | moritz++ | [t/spec] unfudge a passing TODO test for rakudo
10:15 espadrine left #perl6
10:15 dalek rakudo: 5386067 | moritz++ | src/core/Signature.pm:
10:15 dalek rakudo: work around TT #1560
10:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/53860671b6a0a29158251e6e611b44dba1a6b7fe
10:16 xinming_ joined #perl6
10:32 masak leto++ # http://conferences.mongueurs.net/yn2010/talk/2670
10:32 jnthn Wow. :-)
10:34 jnthn I'm kind of proud that we've got a Slovak word into the YAPC::NA schedule. :-)
10:36 jnthn Pm has three talks. :-)
10:38 masak awesome. I heard YAPC::NA accepted all talks this year. o.O
10:40 jnthn Ooh. :-)
10:40 jnthn It looks like a decent schedule.
10:40 * jnthn remembers that he should submit for YAPC::EU
10:42 masak oh right
10:49 jnthn Still trying to decide what to talk about.
10:49 jnthn .oO( "The best 6 beers to drink while writing a Perl 6 compiler" )
10:51 * masak .oO( "The whole of OO theory explicated through alcoholic beverages" )
10:52 mathw .oO( "A Study of the Correlation Between Beer Drunk and Quality of Code Produced While Drinking" )
10:52 masak xkcd has prior art :)
10:52 mathw is theirs specialised on Rakudo?
10:52 mathw :)
10:53 masak admittedly not.
10:53 mathw Well then
10:53 mathw Obviously inferior
10:53 mathw No camels
10:53 mathw Or onions
10:54 jnthn I was going to submit that talk, but I bottled out.
10:55 * jnthn ponders submitting one about how awesome Perl 6 signatures are
10:55 mathw signature unpacking!
10:55 jnthn Yeah, including that
10:56 jnthn And the whole "write what you know" approach that a bunch of it enables.
10:56 jnthn Plus probably things like, how you can use them in given/when to look at the shape of a data structure.
10:57 jnthn I think I'll submit something on that.
10:57 jnthn And then maybe a longer tutorial-style session on Rakudo guts.
10:58 jnthn "How Rakudo works and how to hack on it"
10:58 jnthn Or some such.
10:59 mathw that would be awesome
10:59 mathw I would like to go to that
11:00 * masak too
11:00 jnthn OK, sounds like it may be a good one then.
11:01 mathw When/where is YAPC::EU?
11:01 jnthn mathw: Pisa, start of August.
11:01 mathw I've asked this before I think
11:01 mathw hmm
11:01 mathw Pisa
11:01 jnthn mathw: If you don't want to fly, the train options work pretty well.
11:01 jnthn As in, much better for you than for me.
11:01 mathw heh
11:01 jnthn I wanted to train it.
11:01 jnthn But...think I'll end up flying.
11:01 mathw Nottingham->St Pancras International->HIGH SPEED 1 WHOOSH
11:01 mathw ahem
11:01 jnthn One way at least.
11:01 mathw still quite excited by that part
11:01 jnthn Yeah, it's kinda cool. :-)
11:02 mathw and they want to build one up to Birmingham, Leeds, Glasgow and Edinburgh
11:02 mathw and they're even talking about electrifying the midland main line :o
11:03 jnthn Yeah, but the timescale... :-/
11:03 mathw yeah
11:03 mathw what do you use for european train investigation
11:04 jnthn bahn.de
11:04 mathw heh me too
11:04 jnthn It tends to get upset if you ask about Pisa at the moment though. :|
11:04 jnthn So I've been sticking in Florence, which is real close.
11:04 mathw well
11:04 mathw it just quoted me 19 hours to get to Pisa
11:04 mathw but that's if I leave in 90 minutes
11:05 mathw so presumably includes sleeping on a platform somewhere
11:05 masak rakudo: my $obj = { foo => [0 xx 42, { bar => { baz => [0, 0, 0, "OH HAI"]}}]}; my $locator = -> $root, $x, $y { $root.<foo>[$x]<bar>{$y}[3] }; say $obj.$locator(42,"baz")
11:05 p6eval rakudo 538606: OUTPUT«OH HAI␤»
11:05 masak \o/
11:05 jnthn I think there's a Paris - Italy sleeper train.
11:05 mathw hmm no, it's a sleeper from paris to milan
11:05 * jnthn lovers sleeper trains.
11:05 mathw and it tells me I have to make my own way from Paris Nord to Paris-Bercy
11:05 jnthn er, loves
11:06 masak freudian slip? :P
11:06 jnthn OH NOES WHAT IF THERE'S A STRIKE!
11:06 jnthn masak: ...well. :-)
11:06 mathw yeah unfortunately
11:06 jnthn mathw: Actually I wish I was joking about the strike.
11:06 mathw it looks like flying is a far, far better option
11:06 masak that *would* be kind of nice, a regular sleeper train with a regular lover on it. :)
11:06 mathw well, probably
11:07 mathw what's a good place to look at flights without having to know what airline you're flying with already
11:07 jnthn mathw: Last time I had to use the Paris metro there WAS one.
11:07 jnthn mathw: I use expedia.co.uk
11:07 jnthn They have all but the most budget airlines.
11:07 jnthn e.g. easyjet are on there
11:07 jnthn But RyanAir not
11:07 jnthn I actually count that as a benefit. ;-)
11:08 mathw haha
11:08 mathw so it's the 4th-6th of August
11:08 mathw aikido summer school is until the 2nd
11:08 jnthn nod
11:08 mathw and I have that week off to recover
11:08 mathw so I could go without booking any more holiday
11:08 mathw just need to find the money
11:08 mathw and renew my passport
11:08 mathw I just might regret taking a plane journey with my muscles still in shreds
11:10 mathw bah, no flights from EMA
11:14 mathw yes the other thing that would be useful is 'I want to go here from one of several major airports in the UK, which airports can I use'
11:14 mathw rather than guessing
11:14 * mathw doesn't like flights
11:14 mathw oh well
11:14 mathw time for lunch &
11:32 snarkyboojum left #perl6
11:46 cognominal rakudo: sub a( :$a) { say $a }; my %a = < a a >; a( %a<a> :p )
11:46 p6eval rakudo 538606: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
11:46 cognominal rakudo: sub a( :$a) { say $a }; my %a = < a a >; a( %a<a>  )
11:46 p6eval rakudo 538606: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: 'a' pc 241 (EVAL_1:89)␤»
11:46 masak S12: 'The C<method> declarator on an anonymous method has the primary effect of making the declaration of the invocant optional.' so what should (method {}).WHAT return?
11:47 moritz_ something that smartmatches against Routine
11:48 masak ah, perhaps more tellingly: "Note however that, like any anonymous closure, an anonymous method can only be dispatched to directly, like a sub. [...] But fundamentally, there's no such thing as a method closure."
11:48 envi^home joined #perl6
11:48 masak that sounds almost like it should return Sub() rather than Method()
11:48 * moritz_ thought that all blocks were closures, notionally
11:49 masak sure, but some blocks are more closures than others :P
11:49 masak subs good, methods baaaaad!
11:50 alester joined #perl6
11:50 moritz_ rakudo: class A { say (method foo { 23 }).WHAT };
11:50 p6eval rakudo 538606: OUTPUT«Code()␤»
11:50 moritz_ rakudo: class A { say (method foo { 23 }) ~~ Routine };
11:50 p6eval rakudo 538606: OUTPUT«0␤»
11:50 moritz_ I'm pretty sure that's wrong
11:50 masak rakudo: say (method foo { 23 }).WHAT
11:50 p6eval rakudo 538606: OUTPUT«Useless declaration of has-scoped Method in a module; add our or my to install it in the lexpad or namespace␤Code()␤»
11:51 masak rakudo: say (method { 23 }).WHAT
11:51 p6eval rakudo 538606: OUTPUT«Method()␤»
11:51 masak o.O
11:51 jnthn masak: Should return a Method
11:51 jnthn Because that's the declarator you used.
11:51 masak so... an anon method gets to be a Method.
11:51 masak but a named method is just Code?
11:51 moritz_ that's just weird and wrong :-)
11:51 * masak submits rakudobug
11:52 masak jnthn: why?
11:52 moritz_ you know, if it's not ~~ Routine, then return() should pass through its boundaries
11:52 masak aye.
11:52 jnthn Yes, "just Code" is wrong
11:52 jnthn (I know why we get that one wrong, though)
11:52 masak jnthn: but why is Method() on an anon method right?
11:52 jnthn Because it is.
11:52 jnthn You wrote "method", you've got a method.
11:53 masak even though S12 says there is no such thing as an anon method?
11:53 jnthn wtf?
11:53 masak see quote above.
11:54 jnthn "The C<method> declarator on an anonymous method"
11:54 jnthn Yup, seems like there is such a thing. :-)
11:54 moritz_ masak: nope, that quoted talked about being a closure or not
11:54 jnthn It said there's no such thing as a method closure
11:54 masak oh, I see.
11:54 jnthn That is, something that's not a Routine
11:54 masak ah, right. that makes much more sense.
11:54 masak I didn't trigger on the word 'closure', it seems.
11:55 jnthn :-)
11:55 jnthn Anyway, please don't lets break the "routine declarator name <-> type" thingy.
11:55 masak agreed.
11:56 jnthn To clarify, the fact that we get something of type Method implies nothing at all to the method dispatcher.
11:57 jnthn The method dispatcher knows about things because .^add_method was called, which happens to get done for you if you write a named method within a package that understands add_method.
11:57 jnthn That said, the dispatcher does care about Submethod.
11:58 jnthn But the routine type and the dispatch semantics are otherwise quite unrelated.
11:58 jnthn Methods ain't so special after all. :-)
12:00 jnthn (this means you can call add_method and pass in a sub, or even a closure, or generally just anything callable)
12:01 cognominal Where the support of operator adverbs is specified? operator adverbs are mentionned here and there but that's it.
12:01 moritz_ probably STD.pm
12:02 cognominal the source of all knowledges :)
12:03 cognominal SDT.pm6, even
12:03 moritz_ http://www.perlmonks.org/?node_id=835419 "The current state of Perl6"
12:04 masak std: sub foo {}; foo(:a :b :c)
12:04 p6eval std 30407: OUTPUT«ok 00:01 109m␤»
12:04 masak rakudo: sub foo(:$a, :$b, :$c) {}; foo(:a :b :c)
12:04 p6eval rakudo 538606: OUTPUT«Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
12:05 * masak submits rakudobug
12:05 moritz_ std: :a :b
12:05 p6eval std 30407: OUTPUT«ok 00:01 107m␤»
12:05 moritz_ is that the same as :a, :b?
12:05 masak aye.
12:05 masak S02: "Two or more adverbs can always be strung together without intervening punctuation anywhere a single adverb is acceptable."
12:06 moritz_ list of arbitrary things to remember, anybody?
12:06 jnthn grr
12:06 jnthn I don't like that.
12:06 masak cognominal: I find that the explanations in S02, though scattered, mostly cover adverbs.
12:06 * jnthn hopes the spec will change to match Rakudo there
12:07 masak jnthn, moritz_: I think it's a stubborn remnant from when adverbs didn't fulfill the two-terms-in-a-row restriction *at all*.
12:07 * moritz_ thinks that adverbs should go, entirely
12:07 moritz_ adverbs on operators, that is
12:07 jnthn moritz_: Operator adverbs?
12:08 jnthn Or the foo(:a :b) being same as foo(:a, :b)?
12:08 moritz_ think like %foo<bar>:delete
12:08 moritz_ *things
12:08 masak moritz_++ # reply on replmonks
12:09 moritz_ or whatever other adverbs exists on operators
12:09 masak moritz_: I'm also very skeptical to that form. TimToady seems to like it.
12:09 masak moritz_: I do think that the ones in S09 have merit.
12:09 jnthn phone
12:10 moritz_ masak: and yet he called them design smell
12:10 masak he did? I didn't know that.
12:11 masak I'll wait being 100% certain until I can get my grubby hands on an actual implementation of those, but they do feel pretty fit-to-the-task to me.
12:11 masak however, I don't like adverbs that act like the main predicate in the statement, like :delete.
12:11 colomon My impression is that TimToady was high on adverbs a few years back, and has come back down more recently.
12:12 masak that was my main complaint against the test adverbs reform as well.
12:12 colomon (like, in the last year.)
12:12 moritz_ http://irclog.perlgeek.de/perl6/2009-11-05#i_1691230 # adverbs are usually a desgin smell
12:12 colomon and good morning.
12:12 masak colomon: \o
12:13 masak well, in retrospect, I'm glad we got rid of :by
12:13 masak but mostly because the C<...> operator does a much better job scooping up that semantics.
12:13 masak and C<..> becomes much purer in what it means.
12:15 colomon ...++
12:15 moritz_ colomon++ # implementing most of ...
12:15 masak colomon++
12:15 colomon TimToady's design madevit easy
12:16 colomon *made it
12:16 cognominal "adverb as a design smell". I interpret that as "use them when nothing else can apply" not as "adbverbs are bad".
12:16 masak me too.
12:16 masak and it doesn't mean the adverbs in S09 are necessarily a design smell.
12:16 cognominal meaning if you have to resort to adverbs, something is probably wrong in the language
12:16 moritz_ whatever it is, I still don't like :delete and :exists on hash subscripts
12:17 moritz_ and the special case of :foo :bar feels also wrong
12:17 moritz_ especially since in perl 5 the stacked file test operators are &&'ed together
12:18 moritz_ buubot: eval: $_ = '/'; -e -d
12:18 buubot moritz_: 1
12:18 moritz_ buubot: eval: $_ = '/'; -e -f
12:18 buubot moritz_: No output.
12:18 masak moritz_: I still don't think it falls under the 'lists of arbitrary things to remember' clause, though.
12:18 pmichaud good morning, #perl6
12:18 colomon o/
12:18 masak pmichaud! \o/
12:19 moritz_ masak: I do
12:20 masak pmichaud: do you think http://rt.perl.org/rt3/Ticket/Display.html?id=74488 is identical to http://rt.perl.org/rt3/Ticket/Display.html?id=73034
12:20 masak ?
12:20 pmichaud masak: looking
12:21 pmichaud masak: likely yes.  The problem is that the closure isn't being cloned upon assignment.
12:21 masak ah.
12:21 masak so I'll merge the tickets, then?
12:22 pmichaud wfm
12:22 * masak does it
12:22 pmichaud I'm hoping to spend some time with the rt queue this morning to (1) see if there's any lhf I can work on and (2) re-familiarize myself with the current state of rakudo dev
12:23 moritz_ \o/
12:23 masak \o/
12:24 pmichaud might get sidetracked though; wife may be experiencing one of those chemo side-effects that requires a trip to the doctor :-(
12:25 pmichaud bbiab -- taking kid to school
12:27 iblechbot joined #perl6
12:36 masak A slightly unexpected effect of the 'Larry gets the colon' design principle is that it's possible to notice in retrospect where applied his "designer's privilege" :)
12:37 masak how many 'different' colons does Perl 6 have?
12:37 moritz_ masak: didn't we count them at one point? :-)
12:37 masak no, that was plusses, I think.
12:37 masak operator adverb, named argument, named parameter...
12:37 * moritz_ thought we counted lots of different meta characters
12:38 masak ...invocant paramter, invocant argument...
12:38 moritz_ labels:
12:38 colomon whatever you call it when you go @a.push:
12:38 masak ooh!
12:38 moritz_ in regexes: non-backtracking : :: :::
12:38 masak colomon: 'method invocation colon', perhaps?
12:39 colomon wfm
12:39 masak in regexes, as quantifier modifiers.
12:39 masak *: *:! *:? etc
12:39 masak in namespaces. Foo::Bar
12:40 moritz_ longnames, Foo:auth<bar>
12:40 masak operators, postfix:<*>
12:40 moritz_ type captures, :(::Foo $x, Foo)
12:40 moritz_ masak: that's longnames, too
12:40 masak oh, ok.
12:40 moritz_ signatures :(...)
12:41 moritz_ sigil for Abstraction  ::NotYetDeclaredType.new()
12:41 masak that's almost the same as the type capture.
12:41 moritz_ nope
12:41 masak but there's a difference in declaration/use, I guess.
12:41 moritz_ it's quite different
12:41 moritz_ at least semantically
12:42 moritz_ syntatically it might be the same
12:42 moritz_ not sure
12:42 ruoso joined #perl6
12:43 moritz_ so at least 9 different uses
12:45 masak I count 14.
12:45 masak though some of these can be consitered the same in the sense that they're duals of each other.
12:45 moritz_ I count invocant (argument|parameter) as one
12:46 masak I don't.
12:46 moritz_ as well as : :: ::: in regexes as one
12:46 masak oh, me too.
12:46 masak but I counted the *:? one as distinct.
12:46 masak even though it shares some traits.
12:46 masak with :
12:47 masak hm, or rather a* : shares some traits with a*:
12:49 pmichaud there's  a*:  and a:* in regexes
12:49 pmichaud the first is ':' as cut operator, the second is ':' as quantifier "sigil"
12:49 masak 'a:*' ?
12:49 masak is that right?
12:49 pmichaud yes
12:49 masak I read that as the * quantifier on a lone cut operator.
12:50 masak as 'a :*'
12:50 pmichaud nope
12:50 masak fairenuf.
12:50 pmichaud it's actually part of the quantifier.
12:50 masak you've implemented more Perl 6 grammar engines than I have :P
12:50 pmichaud that's not necessarily a good thing :P
12:50 masak oh, right! yes, you're right!
12:51 masak now I remember my surprise at seeing ':' connected to the parse_quant subroutine :)
12:51 masak postfix::, to be exact.
12:51 pmichaud it's just that the colon is optional in most places where we put a quantifier.
12:51 masak *nod*
12:52 masak so 'a:*' is actually 'a*'
12:53 masak in August, when sitting in on szabgab++'s Perl 6 course, I accidentally uttered "That's not a named parameter colon, that's a method invocation colon." The poor syntax-assaulted neophytes *groaned*. (through no fault of szabgab, who was very pedagogic.)
12:56 masak it left me with the realization that Perl 6 is maybe best learned over an extended period...
12:57 moritz_ masak: like, years? :-)
12:57 SmokeMachine joined #perl6
12:57 masak We have until 2038 to learn it :)
12:58 moritz_ and then... what? :-)
12:58 masak 4. profit!
12:58 masak (duh)
12:59 moritz_ d'oh
12:59 * moritz_ wants to profit now
12:59 masak 2038, as we all know, is the year Perl 6 will finally be released. arstechnica says so.
13:01 ReiniUrban joined #perl6
13:01 masak since that's three years after the Singularity, we'll actually have handed over the spec and the spectest suite to a superhuman artificial intelligent, the so-called Perl 6 Head.
13:01 masak the spec will share only an 11% similarity with the one we have today.
13:01 masak but it'll be great.
13:01 moritz_ that's most important, yes
13:02 moritz_ though I'd like it to be "awesome" or "grand", not just "great" :-)
13:02 masak it'll be more typesafe than Haskell, faster than C, and more golfed than Perl 5.
13:02 masak and it'll have a better web preparedness than PHP.
13:02 masak thank you Perl 6 Head!
13:03 * pmichaud registers perl6head.org .
13:03 moritz_ and easier to learn than relativistic quantum physics
13:03 masak moritz_: exac,,, what? o.O
13:03 * moritz_ registers perl6feet.org
13:04 * masak registers perl6solarplexus.org
13:05 dalek joined #perl6
13:05 kaare joined #perl6
13:13 bloonix joined #perl6
13:29 Trashlord joined #perl6
13:31 ejs joined #perl6
13:32 molaf joined #perl6
13:34 jnthn Does the DateTime stuff in Perl 6 have a concept of "just a time, don't care about date" as well as a "have a date, don't care about time"?
13:35 alester joined #perl6
13:35 moritz_ the latter: yes
13:35 moritz_ and it's even implemented
13:36 moritz_ rakudo: say Date.today() - Date.new('1984-03-03') # my age in days
13:36 p6eval rakudo 538606: OUTPUT«9543␤»
13:36 jnthn Yeah, I knew that, I meant is there a standalone "Time" too?
13:36 moritz_ don't think so
13:36 masak I've been thinking about that.
13:37 moritz_ because a day length depends on the actual day
13:37 masak my current stance is "just use two scalars" :)
13:37 masak or three, or whatever.
13:37 jnthn Well, my current use case is "a task that runs at a certain time every day".
13:37 jnthn (Just came up in $dayjob)
13:37 masak jnthn: You can do that with DateTime.
13:37 jnthn OK
13:37 masak jnthn: and what moritz_said.
13:37 masak s/_/_ /
13:38 pmichaud where can I find moritz_++'s patch for rakudo Match objects?  I've lost the reference.
13:38 masak $dt.hms
13:38 moritz_ pmichaud: in nqp there's a branch...
13:38 jnthn masak: How very British. ;-)
13:38 masak jnthn: :D
13:38 moritz_ pmichaud: '
13:38 moritz_ erm
13:39 moritz_ pmichaud: refactor_mob_generation
13:39 pmichaud moritz_: tnx
13:41 moritz_ it's not very efficient, but I didn't know how decouple the logic from the actual creation of the match object otherwise
13:41 moritz_ it creates an additional RPA and a Hash for each mob creation
13:43 pmichaud okay
13:43 pmichaud what's the git command to view the diff between that branch and HEAD ?
13:43 pmichaud or between that branch and trunk?
13:44 moritz_ git diff refactor_mob_generation master
13:44 pmichaud pmichaud@orange:~/nqp-rx$ git diff refactor_mob_generation master
13:44 pmichaud fatal: ambiguous argument 'refactor_mob_generation': unknown revision or path not in the working tree.
13:45 jnthn Maybe origin/refactor_mob_generation
13:45 moritz_ right, jnthn++
13:45 moritz_ I have a local branch with that name too
13:45 pmichaud jnthn++
13:45 moritz_ so it worked for me
13:45 jnthn pmichaud: If you want to work on the branch, create a local one that tracks the remote.
13:45 moritz_ pmichaud: you might diff against becd0e9ea6541b6862cea49c93f296becb6f0585 instead of master, then you see less unrelated changes
13:45 jnthn But just to read it's fine to do it that way.
13:46 pmichaud I'm just reading for now
13:47 pmichaud uh oh, too many perl 6 ism made it into HLL::Grammar :-(
13:47 pmichaud crap.
13:47 moritz_ (which is not part of my branch, just for reference)
13:47 pmichaud (right, I knew that.)
13:48 pmichaud those have to get fixed today, unfortunately.
13:48 pmichaud i.e., before the parrot release.
13:48 jnthn Which things specifically?
13:48 pmichaud \e is one.
13:49 jnthn \e already was parsed in there
13:49 jnthn All that happened was a bug fix.
13:49 jnthn iirc, anyway.
13:50 pmichaud http://github.com/perl6/nqp-rx/commit/b17415a4def6dea00c31baee69bb65399553bc7c   shows it being added, not fixed.
13:50 jnthn Ah yes
13:50 jnthn It was fixed in strings.
13:50 jnthn I figured if we handled \e and \f in strings, it was fine to handle them in regexes too. :-/
13:50 pmichaud anyway, HLL::Grammar is supposed to be only for things that are pretty common across all languages
13:50 pmichaud regexes, yes.
13:51 pmichaud but that would be Regex::P6Regex, not HLL::Grammar
13:51 jnthn Ah. I was just following the pattern of nl/cr/tab
13:51 jnthn Which didn't seem unsensible.
13:51 pmichaud sure, but \n, \r, and \t
13:51 pmichaud are common across many languages
13:51 pmichaud afaik, \e and some of the others are fairly p6-specific
13:52 moritz_ so, should rakudo subclass HLL::Grammar and add those things?
13:52 jnthn fairy nuff.
13:52 PacoLinux joined #perl6
13:53 pmichaud rakudo already subclasses HLL::Grammar
13:53 Guest59659 joined #perl6
13:53 pmichaud (so yes :-)
13:53 pmichaud the idea is that HLL::Grammar stays somewhat minimal, and then individual HLLs add the appropriate extensions.  Although I'll grant perhaps I didn't follow that rule myself all that well.
13:54 pmichaud anyway, we probably need to clean that up.
13:55 pmichaud otherwise some HLL may end up with \e meaning escape and no good way to remove it.
13:55 pmichaud (short of overriding the rule to take it out, which is a bit of a pain and slows things down unnecessarily)
14:00 masak if I want to use perl6 -n to sum a bunch of values, how do I declare a variable that persists between iterations? 'our $sum'?
14:00 jnthn or state
14:00 pmichaud why not follow the suggestion of having a method on Cursor that creates a Match object of the appropriate type?
14:00 masak jnthn: would one be preferable to the other?
14:00 jnthn masak: our because it's 2 less characters
14:00 masak :)
14:01 jnthn masak: Given that you're writing a one-liner if using -n ;-)
14:01 masak aye.
14:01 jnthn Outside of one-liners, state, becasue the scope is more restricted. :-)
14:01 masak ah.
14:02 moritz_ pmichaud: how would it do that, without duplicating the logic in Cursor.MATCH?
14:02 pmichaud moritz_: it just has to create the object, it doesn't have to set the values.  Cursor.MATCH does the setting of the values.
14:02 pmichaud looking.
14:03 moritz_ pmichaud: that doesn't solve the problem of turning RPAs and CodeStrings into appropriate HLL types
14:03 ash_ joined #perl6
14:04 pmichaud moritz_: so, we do the same for those types as well.
14:04 moritz_ pmichaud: that works... it's not very generic if HLLs chose a quite different structure for their match object, but fine by me
14:05 pmichaud well, I prefer this because it keeps to using the array/hash interface for match objects
14:05 pmichaud an HLL would still want/need to overload that interface, even if it chose a completely different internal structure
14:05 moritz_ wfm
14:07 ash_ hows rakudo going these days? (been really busy the last week-ish so i haven't even updated my rakudo in a week)
14:07 pmichaud and, of course, a HLL always has the option of overriding Cursor.MATCH completely :-)
14:07 moritz_ pmichaud: and duplicating lots of logic that pokes private attributes - not a good idea, if you ask me
14:07 Guest59659 joined #perl6
14:08 moritz_ it completely breaks encapsulation
14:08 moritz_ which is why I didn't do it in the first place
14:08 pmichaud well, "poke private attributes" is an optimization at the moment, not a design feature
14:08 pmichaud it's trivial to keep it from doing that.
14:08 moritz_ fsvo "trivial"
14:08 moritz_ :-)
14:08 pmichaud where is .MATCH non-trivially setting attributes?
14:09 moritz_ not setting, retrieving
14:09 pmichaud that's not poke, that's "peek"  :-P
14:09 pmichaud and it's the same point.
14:09 moritz_ ok :-)
14:09 pmichaud a person can write .MATCH w/o having to poke/peek the attributes directly.
14:10 pmichaud .MATCH simply does it that way as a speed optimization.  Think of it as a compiler being able to inline the getter/setters :-)
14:10 moritz_ ok
14:12 moritz_ so... the path forward is to factor out creation of RPAs, Match objects and strings out of MATCH into methods into Cursor
14:12 pmichaud still looking
14:12 moritz_ and have Regex::Cursor.MATCH call those?
14:12 pmichaud I'm trying to see if I can avoid the creation of RPAs and Hashes
14:13 pmichaud i.e., to delegate that part to the Match object
14:15 pmichaud for CodeString, we probably need to eliminate that from Cursor altogether
14:15 pmichaud i.e., !cursor_init shouldn't force things to be CodeString -- it should just accept whatever it gets passed.
14:16 pmichaud (and the caller can pass a CodeString if that's what is wanted, which would be likely the case for code parsing but not for other things)
14:16 rjh joined #perl6
14:16 rjh hi all
14:16 moritz_ hi rjh
14:16 rjh how many tests does perl 6 currently have?
14:17 moritz_ ash_: sorry for not answering your questions earlier... it's making quite some progress, though there's always things to do
14:17 moritz_ rjh: maybe 40k
14:17 [particle] ...not enough.
14:18 moritz_ aye
14:18 smash_ joined #perl6
14:18 smash_ hello everyone
14:18 rjh thanks. i just wrote a stackoverflow answer on "the current state of Perl 6", and i'm trying to pimp it out
14:18 moritz_ oh, is it the same one as on reddit?
14:18 rjh think it was based on that, yes
14:19 moritz_ there's also a discussion on perlmonks
14:19 pmichaud urls handy?
14:19 * moritz_ goes a-looking
14:19 rjh http://perlmonks.org/?node_id=835419
14:19 rjh http://www.reddit.com/r/perl/comments/bswu5/the_reason_i_still_use_perl_5_gets_things_done/
14:19 moritz_ http://stackoverflow.com/questions/2666428/the-current-state-of-perl6
14:19 [particle] well, rakudo passes 30k tests, which is 79+% of the test suite
14:19 rjh pretty much everyone at my place of work thought perl 6 was vaporware
14:20 [particle] 30 * 100/79
14:22 rjh parts of my answer may be ill-informed or just plain wrong :)
14:23 [particle] rjh: you're wrong, and your mother dresses you funny.
14:23 moritz_ rjh: Rakudo star was planned for 2010-Q2
14:23 moritz_ rjh: which is April...June. And that's still the plan
14:23 jnthn It still is, last I checked. :-)
14:23 [particle] rjh: trying to creep you out less.
14:23 rjh the difference between this channel and #perl on irc.perl.org is pretty absurd
14:23 moritz_ rjh: #perl is ... differnt
14:23 dakkar joined #perl6
14:24 masak rjh: 'vapourware' isn't really applicable to open-source projects with recurring releases.
14:24 masak rjh: the sentiment and the frustration behind the term are, of course.
14:25 [particle] we're still marketing perl 6 the wrong way
14:25 Guest59659 joined #perl6
14:25 moritz_ [particle]: what would be the right way?
14:25 [particle] we should not be addressing  'vaporware' by responding directly
14:25 [particle] "we're not vaporware!" doesn't fly.
14:26 [particle] the right way is to release, endorse, and promote Rakudo *
14:26 masak no argument there.
14:26 masak so let's do that.
14:26 [particle] precisely.
14:26 [particle] and have a book to go with it.
14:26 pmichaud well, we still have to deal with the "production ready" aspect of the discussion
14:26 [particle] and get bloggers involved.
14:27 pmichaud there are still too many people who are equating "Rakudo *" with "production ready" and we need to reset that expectation.
14:27 [particle] pmichaud: yes, that's true, but it must follow r*, not precede it
14:27 [particle] ah, in that case...
14:28 rjh heh, calling it an alpha or beta release would sort that one out.
14:28 rjh i'm still not sure what the * means :)
14:28 moritz_ Whatever
14:28 [particle] get the perl foundation to publish a post about the coming of r*.  lay out there what the goals of r* are, and what it's limitations are likely to be.
14:28 [particle] get 'the h open source' /., and others to pick it up
14:29 pmichaud well, one of the ROADMAP tasks is to write the R* release announcement.  :-)
14:29 moritz_ if somebody has some time to write a nice article, you could send it to lwn.net (but contact that guys/gals first)
14:29 [particle] rjh: in perl 6, there's a construct called 'Whatever', which is represented by '*'
14:29 pmichaud (alpha/beta)  yeah, we might be able to make use of that.
14:29 moritz_ they even pay for it, and two weeks later you can use it for any purpose you want
14:30 [particle] so 'rakudo *' means much more to someone familiar with that concept than to an outsider
14:30 rjh particle: i'm familiar with the whatever star, i just didn't think laterally enough
14:30 rjh :)
14:30 [particle] lwn++
14:31 [particle] who's doing marketing for tpf now? get them in the loop via email, or on irc now.
14:31 [particle] we're planning r*, how can you help us succeed?
14:32 [particle] or, i should say, we're planning the first release of rakudo *...
14:32 [particle] since pmichaud++ has mentioned that r* is a series of releases
14:32 rjh on one hand though, perl 6 is just awesome. shouldn't take long for the hype to spread
14:32 [particle] the hype won't spread until people can take it seriously
14:33 [particle] i mean, it may spread as hype, but not as fact
14:33 rjh what's the watershed for taking it seriously?
14:35 [particle] for some, it seems "production ready"
14:35 [particle] i suspect for others, it's treating it like traditional language releases, with alpha/beta etc tags
14:36 [particle] we don't have a project manager per se for perl 6, nor for rakudo
14:36 slavik [particle]: I am waiting for .debs to appear :)
14:36 [particle] .debs exist, don't they?
14:36 slavik afaik, there is no "make install" for rakudo
14:37 [particle] parrot .debs exist, not certain about rakudo
14:37 moritz_ slavik: that's not true since... early 2009 or so
14:37 slavik oh
14:37 slavik then I think make install does something broken
14:37 slavik that might've been the issue
14:37 [particle] slavik: willing to try it and report bugs?
14:37 slavik [particle]: later today
14:37 moritz_ slavik: it installs to the location where it found parrot_config
14:37 [particle] slavik++
14:38 slavik hmm
14:38 slavik moritz_: but we want it in a "system" location, no?
14:38 moritz_ btw http://rakudo.org/how-to-get-rakudo lists 5 OS/packages which come with rakudo packages
14:38 slavik so that perl6 is in the PATH
14:38 pmichaud 14:36 <[particle]> we don't have a project manager per se for perl 6, nor for rakudo
14:38 pmichaud <-- project manager
14:38 moritz_ slavik: well, it does that if you install parrot in system location, too
14:38 [particle] pmichaud: yes, you wear many hats
14:39 slavik moritz_: but not if I use rakudo to fetch parrot?
14:39 moritz_ slavik: which kinda makes sense, since you can't run rakudo without parrot
14:39 moritz_ slavik: the not by default
14:39 slavik moritz_: but if I install parrot via --gen-parrot, it doesn't go into a system location
14:39 [particle] pmichaud: i'll give you that, you are the rakudo project manager. sorry.
14:39 slavik or is this by design?
14:39 Guest59659 joined #perl6
14:40 pmichaud slavik: we just haven't added the --prefix option to Configure.pl yet
14:40 slavik pmichaud: :(
14:40 [particle] tpf hasn't figured out how to market perl 6, since it's "just a spec and tests"
14:40 diakopter rjh: you can change "more likely Christmas 2011" to something else...
14:40 [particle] i think tpf needs to market perl 6 as a spec, tests, and a flock of implementations
14:40 diakopter rjh: also, I don't know why you describe rakudo star as "non-alpha"
14:41 moritz_ pmichaud: we do have --gen-parrot-prefix
14:41 pmichaud slavik: that wouldn't be all that hard to do, except that it makes overall build/install much more complicated when dealing with system permissions.
14:41 pmichaud moritz_: ah yes, we do have --gen-parrot-prefix
14:41 masak Alias: ping
14:41 rjh diakopter: i was misinformed, i'll update my post
14:41 smash_ you don't need the --gen-parrot (an shouldn't even have it) for a .deb package
14:42 moritz_ so if the user who builds rakudo has write permissions to the system location it works
14:42 rjh i ... don't know how to describe it. it's an alpha release, but there are already monthly alpha releases for rakudo
14:42 pmichaud moritz_: sure, but I tend to think of the process as being  "make" (via normal user) and "make install" via superuser.  Rakudo's Configure.pl doesn't really support that.
14:42 diakopter the recommended adjective before "release" is "usable"  (not "functional" as you put it)
14:42 * rjh reads Pm's blog again
14:43 pmichaud at least, not for auto-generation of Parrot.
14:43 slavik what's the latest version of parrot?
14:43 moritz_ rjh: the monthly releases are usually called "developer" releases, not "alpha"
14:43 moritz_ slavik: 2.2, tomorrow 2.3 will be released
14:43 slavik looks like ubuntu lucid has 2.0 in repo
14:43 moritz_ and 2.3 is a "support" parrot release again
14:43 moritz_ *supported
14:44 diakopter rjh: "The Perl 6 spec has around 40,000 unit tests" needs to be clarified to "The Perl 6 spec has around X00,000 unit tests, of which 40,000 have been written"
14:45 rjh "currently..." ?
14:45 moritz_ pmichaud: well, it can't really - one thing that dpkg-buildpackage does is offer an option for a "make me root" command, such as sudo or fakeroot
14:45 diakopter rjh: right.
14:45 diakopter rjh: but it must the emphasized the test suite is very incomplete too
14:45 rjh ok
14:46 moritz_ diakopter: uhm, there's no clear goal on how many tests Perl 6 needs
14:46 moritz_ I agree it's incomplete
14:46 diakopter no, not clear.  istr TimToady mentioning here on #perl6 that he thought the test suite was about 1/3 complete
14:47 diakopter or maybe it was 1/X where X was less than 10
14:47 rjh btw, is the spec even finalised?
14:47 * moritz_ remembers some 1/2
14:47 moritz_ rjh: no
14:47 moritz_ rjh: and it won't be, until it's implemented
14:47 pmichaud rjh: the spec can't really be finalized until we have some working implementations :-)
14:47 rjh makes sense, it's already had a lot of work done as implementors have discovered holes, right?
14:47 diakopter rjh: you should read http://perl6.org/specification/ and the Synopsis 1 it links to
14:47 rjh s/holes/corner cases/
14:48 pmichaud "holes" is correct.  :-)
14:48 diakopter :)
14:48 Guest59659 joined #perl6
14:48 ash_ joined #perl6
14:49 pmichaud iiuc, we're *still* trying to work out the exact semantics of lists, iterators, and list context.
14:49 diakopter amen.
14:49 jnthn I fear so. :-(
14:49 pmichaud (and I'd have to classify that are more "hole"-ish than "corner case")
14:49 pmichaud *that as
14:50 masak pmichaud++ # realist
14:50 rjh how about laziness?
14:50 pmichaud that falls into the same hole.
14:50 rjh i haven't seen/read a lot about perl 6's take on that
14:50 masak that's related to lists.
14:50 ash__ joined #perl6
14:50 masak you can do some of it in Rakudo already.
14:50 pmichaud we have some degrees of laziness implemented, but there are places where the spec does surprising/unwanted things.
14:50 masak but you're more likely to fall down the hole... what pmichaud said.
14:51 diakopter rjh: did those two urls help?
14:51 masak every time I get a MapIterator or a GatherIterator rather than the lazy list I wanted, I feel my expectations are not matched up with Rakudo's behaviour.
14:52 pmichaud those still need to go away
14:52 rjh diakopter: clarified it, yes.
14:53 rjh i recall want() going away because it was too difficult to implement
14:53 masak pmichaud: good.
14:53 masak rjh: no, not difficult. impossible.
14:53 moritz_ rjh: not difficult - impossible
14:53 moritz_ :-)
14:53 rjh haha
14:53 masak as in literally impossible.
14:53 pmichaud difficult we can do.  impossible we do only some of the time.
14:53 masak :)
14:53 moritz_ rjh: basically want() relies on context flowing inwards
14:53 diakopter right. as in, in the strongly-typed case ;)
14:53 rjh good example of some of the crazy stuff in the spec
14:53 moritz_ rjh: which is true for perl 5, but not in Perl 6
14:54 masak rjh: well, want() was never an important part of the spec. MMD dispatch and the like was.
14:55 masak and they are incompatible with each other.
14:57 * diakopter would like to see TimToady clarify "practical" (in both of its uses in S01)
14:57 ash_ joined #perl6
14:59 masak diakopter: the first use is already a bound variable, because it's used in the context 'As implementations start to agree on what is practical...'
14:59 ash_ joined #perl6
14:59 masak the second use, however, is not thusly bound.
14:59 diakopter :P
14:59 diakopter sort of.
15:00 hghgd joined #perl6
15:00 * moritz_ is glad that in the case of want(), there was agreement that impossible is also impractical :-)
15:02 smash_ who's cutting the next rakudo release ?
15:02 masak well it would be kinda fun to see someone try to implement want() and MMD just for the heck of it, to see how far one can get. :)
15:03 masak but it shouldn't stand in the way of more important goals.
15:03 moritz_ smash_: no volunteer so far... I'll do it if nobody else volunteers first
15:03 jnthn masak: Heh, there's enough stuff that's kinda fun to try and implement that still is in the spec. ;-)
15:04 masak too true.
15:05 moritz_ I think it's kinda easy to come up with examples that can be very hard to implement
15:05 masak I should think so, given that it's impossible!
15:06 masak 'impossible' implies 'very hard' :)
15:06 alester joined #perl6
15:06 moritz_ multi a(Int, Str); multi a(Str, Int); sub b { my $x = c(); return $x, want() }; a(|b())
15:06 moritz_ actually, other way round
15:06 moritz_ first call want, then c()
15:06 diakopter masak: I see a distinction between "the criteria by which a Perl 6 spec-something is determined practical or not", and "the implementations reconciling their perceptions/assessments of those spec-somethings against those criteria, once they are defined"
15:06 moritz_ then want() would need to type-infere c() completely
15:07 masak diakopter: sure, me too.
15:07 smash_ moritz_: sorry, i can't volunteer for this one (overwhelmed with work) but you can schedule me for one of the next releases
15:07 masak diakopter: I just meant that I didn't think that the first meaning was used unclearly in S01.
15:08 moritz_ masak: colomon++ volunteered for May, so I'll add you for June
15:08 diakopter just b/c I asked for clarification doesn't mean I meant it was used unclearly :P  I was being pretty demanding. :D
15:08 masak moritz_: sure thing.
15:08 rjh why would you return want() ?
15:09 moritz_ why not?
15:09 rjh i guess i'm really asking, is there a subset of want's functionality that could actually be implemented
15:09 uniejo joined #perl6
15:09 rjh (personally i think want() is a horrible idea)
15:10 Guest59659 joined #perl6
15:10 pmichaud rjh: we've pretty much decided that the correct approach is to follow something like Contextual::Return.  I.e., you return an object that can respond to context.
15:10 masak diakopter: can you give an example of what would be a clarification such as the one you seek?
15:10 rjh right
15:11 masak and that feels much more along the lines of Perl 6 typology, too.
15:12 dalek rakudo: 1fc9d8a | moritz++ | docs/release_guide.pod:
15:12 dalek rakudo: masak++ does the June release
15:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1fc9d8aed9eea5db24d6eb50d9cf415906541cdd
15:12 masak \o/
15:12 pmichaud oh, take me off of the April release.
15:12 moritz_ pmichaud: as I said, if nobody else can be found, I'll do it
15:13 pmichaud anyone who wants to do the April release can do it.  I'm not yet reliable enough to commit to it (and I had myself down assuming that April would be R* month)
15:13 diakopter masak: sure; "here, 'practical' means able to be implemented sometime in the next 0-5 years (assuming 0.5-10x current human resources) in a consistent way with the rest of the spec-things, such that the level of incoherence is not utterly ridiculed by fahnbois of other emerging (or entrenched) languages".
15:13 masak meh.
15:14 pmichaud "is not utterly ridiculed by"   <-  even more impossible than want()
15:14 moritz_ pmichaud: I've planned release managers for the following monthly releases under the assumption that Rakudo * will not be a monthly release, but actually a separate release
15:14 pmichaud moritz_: that's correct.
15:14 diakopter pmichaud: oh :'(
15:14 pmichaud Rakudo * is a separate release stream
15:14 pmichaud eventually it'll have its own release managers and cycle (likely not monthly)
15:14 masak we're working at full speed towards working Perl 6 implementations. I don't think the spec should commit to schedules or predictions beyond that.
15:14 moritz_ diakopter: "next 0-5 years" requires looking into the future
15:15 moritz_ diakopter: which is not really a practical requirement for evaluation
15:15 diakopter right, I think using "practical" requires future-looking.
15:15 jnthn The spec shouldn't start getting into timelines.
15:15 dalek nqp-rx: 18c5d12 | pmichaud++ | src/HLL/ (2 files):
15:15 dalek nqp-rx: Remove \e from quoted-string handling, it's too P6-specific to
15:15 dalek nqp-rx: be part of HLL::Grammar.  It's okay to add it to NQP::Grammar, though.
15:15 dalek nqp-rx: The other escape sequences (\f, \0, etc.) can stay, though.
15:15 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/18c5d12b9b056f351d814710ca497fd89af459c7
15:15 dalek nqp-rx: 3ac0b79 | pmichaud++ | src/NQP/ (2 files):
15:15 dalek nqp-rx: Add \e quote_escape to NQP.
15:15 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3ac0b797bbb5c191ed8ef6abba25b216a1764883
15:15 diakopter I didn't say the spec should start getting into timelines.
15:16 jnthn What's 0-5 years then?
15:16 masak diakopter: the reason Perl 6 isn't 6.0.0 yet is not because we haven't set enough deadlines.
15:16 jnthn masak: Indeed.
15:16 moritz_ another reason is that we spend far too much time speculating about 6.0.0, and too little time hacking :-)
15:17 diakopter I mis-answered masak's question.
15:17 masak moritz_: speak for yourself :P
15:17 * masak is hacking as we speak
15:17 dalek rakudo: 796c566 | pmichaud++ | docs/release_guide.pod:
15:17 dalek rakudo: Remove myself from the April release manager -- open for others.
15:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/796c566ff9fd39af68937c0c838171d254a7a123
15:18 masak and I frankly don't care much about 6.0.0, which I consider to be something of a side-effect of people using and caring about Perl 6 in day-to-day tasks.
15:18 [particle] masak: it's ok if one part of your brain works that way
15:19 diakopter masak: I mis-answered your question (more)
15:19 [particle] but you do care about perl 6.0.0, because then you can say you have 5+ years experience on your resume ;)
15:19 moritz_ pmichaud: you should either get those changes into parrot before tomorrow's release (dangerous) or note them in the deprecation doc
15:19 pmichaud moritz_: they're not dangerous, or shouldn't be.
15:19 moritz_ pmichaud: all the better
15:19 masak [particle]: what does that have to do with 6.0.0? I use Perl 6 in my work already.
15:21 diakopter masak: I answered it as if you asked "can you give an example of what would be a **definition of the criteria the implementations might use**?"; I'm sorry.
15:21 diakopter jnthn: I'm sorry for being unclear and misleading you as to my communication intent.
15:21 diakopter moritz_: also you.
15:22 masak I'm not really sure what you're apologising for, but it's OK.
15:22 diakopter miscommunication (by answering the wrong question)
15:23 masak I still don't see in which way you mis-interpreted my question.
15:23 diakopter I read it too quickly.
15:23 diakopter and didn't think enough before answering.
15:24 masak I do that all the time :)
15:24 diakopter I wasn't trying to blame you for writing an unclear question.
15:24 diakopter please don't feel that.
15:24 masak I don't.
15:25 diakopter so you don't need to look for the way in which I mis-interpreted your question; I read things that weren't there.
15:25 masak ah, OK.
15:27 ash_ know whats funny? ruby lets you declare a function with as many arguments as you want, but it only actually can dispatch functions with less than 15 arguments, because of how the dispatch functions, they have to manually expand the arguments in C (via a switch statement)... i wonder if there is any way around that...
15:27 moritz_ ash_: yes, use Perl :-)
15:27 diakopter I doubt IronRuby has that limitation
15:27 moritz_ or an array
15:28 ash_ yeah, but i am trying to figure out how to write my own method dispatcher for nq-nqp, and so i was looking at how other people do it
15:28 masak ash_: if your function has 15 parameters, those are not your only problams.
15:29 masak I think I'm usually getting to have severe doubts somewhere up around 9 parameters :)
15:30 ash_ yeah, having 9 or more parameters seems like you might want to split the function up
15:30 masak indeed.
15:31 ash_ python does a stack based mechanism, so you don't have to count your arguments, you just ask for them after the functions called, wonder how parrot does it...
15:31 jnthn Or maybe even invest in a composite data structure. :-)
15:32 moritz_ masak: uhm, named arguments can easily exceed 9. Also slurpy params..
15:32 masak moritz_: precisize 'can' here.
15:32 masak I'm talking about what's advisable.
15:33 masak but yet, the stigma is smaller for nameds, and nonexistent for slurpies.
15:33 moritz_ masak: I've seen multi-line say()s against which there was nothing to say
15:33 ash_ with a slurpy i can exceed 9, but with named, i don't think i have exceeded 9 before... (personally)
15:34 masak moritz_: sorry, what?
15:35 moritz_ masak: just forget it... I made my point about slurpies
15:35 ash_ i think i will push the variables via a stack, so its only truly limited by memory...
15:40 Guest59659 joined #perl6
15:52 dalek rakudo: fe6ca94 | masak++ | docs/release_guide.pod:
15:52 dalek rakudo: [release_guide.pod] vacant slots more visually distinct
15:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/fe6ca942b6fb6d3b357c8ea1cc46877e72a293fe
15:58 Guest59659 joined #perl6
15:58 dalek rakudo: ba591c9 | masak++ | docs/release_guide.pod:
15:58 dalek rakudo: [release_guide.pod] one more slot
15:58 dalek rakudo: My commit and pmichaud++'s passed each other in mid-air. :)
15:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/ba591c917d2c7e3596b5eea256178e5a01dc327e
15:59 rurban joined #perl6
16:02 mberends joined #perl6
16:02 justatheory joined #perl6
16:04 Guest59659 joined #perl6
16:07 * mberends is ready to give up trying to master Win32::PerfLib. (and still types PerlfLib almost every time)
16:10 mberends it's easier to relent and add a dependency to one of the many non-core modules that takes away the pain.
16:13 masak swimming &
16:14 NordQ joined #perl6
16:15 diakopter mberends: if you're on windows already... why not just inline a bunch of vbs
16:15 diakopter :P
16:15 mberends diakopter: thanks! :P
16:16 stephenlb joined #perl6
16:16 mberends diakopter: your recent perlesque updates rock!
16:17 * mberends misread 'perlesquel' as 'perlsequel' and thought it was a pun about perl6-ng or a database...
16:18 diakopter hee
16:18 mberends diakopter: I'll volunteer to do some of the documenting.
16:18 diakopter my $a = BigInteger.Create('3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026'); say($a); say($a * $a);
16:19 diakopter perlesque: my $a = BigInteger.Create('3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026'); say($a); say($a * $a);
16:19 p6eval perlesque:
16:19 p6eval ..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
16:19 diakopter perlesquel: .
16:19 p6eval perlesquel:
16:19 p6eval ..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
16:19 diakopter perlesquel: .
16:19 p6eval perlesquel:
16:19 p6eval ..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
16:19 Guest59659 joined #perl6
16:19 diakopter perlesquel: .
16:19 p6eval perlesquel:
16:19 p6eval ..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
16:19 * diakopter revels
16:19 moritz_ diakopter: woah, stop that
16:19 diakopter ok
16:20 bbkr joined #perl6
16:25 Guest59659 joined #perl6
16:27 Juerd But can anyone confirm that this HugeInteger is correct? :)
16:28 bbkr contest: what is the smartest way of checking in P6 if string contains unique characters? i came up with '$_ = "abcdc"; say "OK" if (split "", $_).uniq.join.chars ~~ $_.chars' but i believe this can be shorter
16:28 IllvilJa joined #perl6
16:29 colomon bbkr: you mean, contains only unique characters?
16:29 mberends at this point TimToady would usually say you should use comb() instead of split()
16:30 bbkr "abc" - unique characters. "abcb" - not "OK" because "b" is twice
16:30 ejs joined #perl6
16:31 bbkr rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq.join.chars ~~ $_.chars
16:31 p6eval rakudo ba591c: OUTPUT«OK␤»
16:31 rgrau joined #perl6
16:32 colomon rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq.elems ~~ $_.char
16:32 p6eval rakudo ba591c: OUTPUT«Method 'char' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:32 colomon :\
16:32 jnthn chars
16:32 bbkr comb() is slightly shorter, but stil it's way too long for PERL :)
16:32 colomon rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq.elems ~~ $_.chars
16:32 p6eval rakudo ba591c: OUTPUT«OK␤»
16:32 jnthn rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq == $_.chars
16:32 p6eval rakudo ba591c: OUTPUT«OK␤»
16:32 colomon jnthn++ # noticing stupid cut-n-paste error
16:33 rjh left #perl6
16:33 jnthn Because a list numifies to the number of elements and == enforcces numeric context, you don't need the .elems.
16:33 jnthn also
16:33 moritz_ and you can even omit the $_ from $_.
16:33 jnthn yes, that :)
16:34 jnthn rakudo: $_ = "abcd"; say "OK" if .comb(/./).uniq == .chars
16:34 p6eval rakudo ba591c: OUTPUT«OK␤»
16:34 bbkr jnthn: cool one :) i'm thinking about some smart regexp using lookahead
16:34 moritz_ rakudo: $_ = "abcd"; say "OK" if $_.comb.uniq.join eq $_
16:34 p6eval rakudo ba591c: OUTPUT«OK␤»
16:34 moritz_ rakudo: $_ = "abcd"; say "OK" if .comb.uniq.join eq $_
16:34 p6eval rakudo ba591c: OUTPUT«OK␤»
16:34 mberends omit the (/./) as well
16:34 moritz_ rakudo: say "OK" unless 'abcd' ~~ /(.).*$0/
16:34 p6eval rakudo ba591c: OUTPUT«OK␤»
16:34 moritz_ rakudo: say "OK" unless 'abcda' ~~ /(.).*$0/
16:35 p6eval rakudo ba591c:  ( no output )
16:35 jnthn cute
16:37 moritz_ rakudo: say "OK" if 'abcda' !~~ /(.).*$0/ # if ... ! is actually shorter than 'unless'
16:37 p6eval rakudo ba591c:  ( no output )
16:37 arthur-_ joined #perl6
16:37 moritz_ rakudo: say "OK" if 'abcd' !~~ /(.).*$0/
16:37 p6eval rakudo ba591c: OUTPUT«OK␤»
16:38 bbkr wow, thanks. i was trying that, but couldn't find that \1 changed to $0.
16:39 * jnthn is ever happier that it akshually works in Rakudo. :-)
16:39 bbkr this will do the trick for http://search.cpan.org/~bbkr/Integer-Tiny-0.3/lib/Integer/Tiny.pm rewrite to P6. thanks again!
16:40 smash_ hmm, is it me or last parrot .deb package was for version 0.7.0 ?
16:41 moritz_ std: /\1/
16:41 p6eval std 30407: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unrecognized regex backslash sequence at /tmp/dO71VYoPEA line 1:␤------> [32m/\[33m⏏[31m1/[0m␤Check failed␤FAILED 00:01 110m␤»
16:41 jnthn rakudo: /\1/
16:41 p6eval rakudo ba591c: OUTPUT«Confused at line 11, near "/\\1/"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:41 jnthn aww.
16:42 jnthn LTA.
16:42 jnthn rakudo: say "but \1 should get caught..."
16:42 p6eval rakudo ba591c: OUTPUT«Unrecognized backslash sequence: '\1' at line 11, near " should ge"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:42 jnthn Guess the regex parser needs a tweak. :-)
16:42 TimToady well, the regex message should probably catch \1 and tell them about $0
16:43 jnthn That'd be EMA.
16:43 moritz_ TimToady: I'd implement that, but I need to run..
16:43 * diakopter starts
16:44 diakopter TimToady: does gimme5 strip out type annotations? if so, can I start adding type annotations to STD.pm6
16:45 jnthn Ugh. That'll probably make it a bit harder for Rakudo to copy/paste from STD, fwiw. Minor inconvenience.
16:46 diakopter for lexicals & contextuals
16:47 TimToady testing an EMA patch
16:48 Chillance_ joined #perl6
16:50 Chillance joined #perl6
16:51 espadrine joined #perl6
16:54 M_o_C joined #perl6
16:55 espadrine left #perl6
16:55 alester joined #perl6
16:57 NordQ joined #perl6
16:59 NordQ joined #perl6
17:01 pugssvn r30408 | lwall++ | [STD] EMA message on /\42/
17:04 NordQ joined #perl6
17:06 pugssvn r30409 | lwall++ | [STD] don't include attempted octals like \040
17:06 TimToady afk &
17:08 daemon joined #perl6
17:09 colomon pmichaud, etc: Any thoughts on a hackathon to coincide with YAPC:NA?
17:10 rurban Ah larry is fixing it for my compiler (those octals broke it I guess)
17:10 [particle] colomon: would like it to happen... need to see if tpf will fund one
17:13 smash_ and what about YAPC::EU ?
17:13 PerlJam [particle]: Could Hague funding be used?
17:14 [particle] i think this would come from tpf general fund
17:14 * colomon just registered for YAPC:NA.  now to check and make sure I can stay with the in-laws...
17:14 CokeBot9000 (hackathon at YAPC::NA) +1 on that. someone should ping the coordinators about space and time.
17:14 [particle] i'll contact karen, i'd like to book travel myself
17:14 [particle] i imagine the hackathon would either be weekend before, during tutorials (thu-fri), or weekend after
17:15 [particle] i'd prefer weekend before, but that doesn't work wonderfully, as the hype machine won't be fully engaged until after the presentations
17:15 colomon hmmm, weekend before is best for me too, I think.
17:16 CokeBot9000 weekend after is probably the worst slot.
17:16 nihiliad joined #perl6
17:19 NordQ joined #perl6
17:21 NordQ joined #perl6
17:23 NordQ joined #perl6
17:24 diakopter rurban: how do you know?
17:25 rurban Just guessing. I got a report lately that STD.pm does no compile anymore. And the last errors were octals
17:26 rurban In my case unsupported magic octals
17:30 NordQ joined #perl6
17:32 rv2733 joined #perl6
17:35 NordQ joined #perl6
17:37 NordQ joined #perl6
17:38 mj41 joined #perl6
17:41 NordQ joined #perl6
17:44 NordQ joined #perl6
17:47 alester joined #perl6
17:49 charsbar joined #perl6
17:55 mj41 joined #perl6
18:08 justatheory joined #perl6
18:32 slavik joined #perl6
18:39 pmurias joined #perl6
18:40 pmurias diakopter: you should use double quotes instead of single ones because double quotes don't handle all the backslash escapes
18:48 iblechbot joined #perl6
18:54 tri1 joined #perl6
18:58 diakopter pmurias: I'll add the double quote version too.  I made the single-quote one accept backslash-escaped single-quotes though.
18:59 diakopter but I neglected to unescape them in the resulting string yet :)
18:59 diakopter perlesque: say('hi\'hi')
18:59 p6eval perlesque: OUTPUT«hi\'hi␤»
18:59 diakopter perlesquel: .
18:59 p6eval perlesquel: OUTPUT«hi\'hi␤real 0.04␤user 0.03␤sys 0.00␤»
18:59 masak joined #perl6
18:59 diakopter q/
18:59 masak ahoy, #perl6.
19:00 masak diakopter: \h
19:00 pmurias diakopter: what's the point of having single quotes when you have double ones
19:00 pmurias ?
19:04 diakopter as moritz_ pointed out, b/c double quotes likely won't ever have interpolation
19:04 diakopter actually though, that wouldn't make it a more precise subset
19:05 pmurias being a subset is only important to the extent that it helps memorising syntax
19:06 tri1 left #perl6
19:06 diakopter pmurias: good point; true :)
19:06 diakopter I keep forgetting it's just an assembly language ;)
19:07 pmurias hm, how can i checkout a copy of sprixel i can commit to?
19:08 diakopter see http://code.google.com/p/csmeta/source/checkout
19:08 diakopter what are you committing :P
19:09 * araujo now wants to test how fast compile rakudo with 8GB Ram
19:09 pmurias diakopter: tests at first
19:10 ash_ joined #perl6
19:11 * pmurias hates the fact that google chrome can't handle a lot of google sites
19:11 molaf joined #perl6
19:11 masak it doesn't?
19:11 * masak never had any problems
19:12 diakopter pmurias: what kind of test harness?
19:13 pmurias prove
19:13 diakopter heh; ok
19:14 diakopter the only "bug" that I know of currently is that it doesn't properly catch certain implied returns as invalid
19:14 pmurias TAP::Harness
19:14 diakopter that, and some parse failures throw red herring exceptions
19:15 diakopter since it's a one-pass "JIT"ter (emitting while parsing)
19:15 diakopter (and so backtracking too far causes problems)
19:16 diakopter another good reason to make it only an assembly language ;)
19:16 diakopter (so all input is much more likely valid)
19:17 pmurias diakopter: why do you use your own parser generator?
19:17 diakopter why not?
19:18 diakopter are there other MIT/BSD licensed ones?
19:18 diakopter that, and theoretically it's flexible enough to support all of STD/Cursor's semantics
19:19 diakopter eventually.
19:19 diakopter should push come to shove. ;)
19:20 pmurias the error messages are uninfromative and misleading
19:20 diakopter like what?
19:20 diakopter (see what I wrote above about the errors)
19:20 diakopter (did you?)
19:21 pmurias perlesque: 1
19:21 p6eval perlesque:  ( no output )
19:21 pmurias perlesque: if (1) {1}
19:21 p6eval perlesque: OUTPUT«␤Unhandled Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.␤at string.FormatHelper (System.Text.StringBuilder,System.IFormatProvider,string,object[]) <0x008c0>␤at string.Format
19:21 p6eval ..(System.IFormatPr…
19:21 ash_ i can say, from my experience (with trying to implementing nqp on the llvm) that most of the parser generators are not well suited for perl6-like grammars
19:21 diakopter pmurias: it's strongly typed
19:21 diakopter conditions must be CLR bool
19:21 diakopter not int
19:22 diakopter otoh, I could inject the coercion at compiletime.
19:23 diakopter perlesque: if (1<2) {1}
19:23 p6eval perlesque:  ( no output )
19:23 pmurias i'm not sure doing stuff implicitly is a good idea
19:23 diakopter me neither
19:24 diakopter unless it will be extremely helpful for the std conversion
19:24 diakopter certainly it needs bool literals
19:26 pmurias diakopter: why did you choose svn instead of git?
19:26 diakopter frankly, b/c I can't be bothered to learn git, yet. :(
19:27 diakopter I installed TortoiseHg and learned a bit of mercurial, though; maybe some of that knowledge will transfer.
19:27 CokeBot9000 diakopter: I've started drinking the cool aid. it's quite bitter at first. =-)
19:27 diakopter I likes me my GUIs.
19:27 CokeBot9000 diakopter: what os?
19:28 CokeBot9000 oh, guessing win based on the DLR stuff. =-)
19:28 ash_ github now lets you checkout git repos with svn
19:28 diakopter win7 64-bit, visual studio 2010
19:28 ash_ they introduced it on april 1st, but it actually works
19:28 diakopter CokeBot9000: perlesque doesn't actually use the DLR, but I did steal its BigInteger and Complex classes
19:29 ash_ http://github.com/blog/626-announcing-svn-support
19:29 pmurias ash_: checking out git repos with svn seems wrong
19:29 diakopter since they're MS-PL licensed (basically Apache)
19:29 ash_ so you can access it via git or svn, without using git-svn
19:29 pmurias the svn cli client is trash
19:30 arnsholt pmurias: I've never really had any trouble with it
19:30 moritz_ std: /\1/
19:30 p6eval std 30409: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of the 1-based special form '\1' as a backreference; in Perl 6 please use the 0-based variable '$0' instead at /tmp/fbMqsyVEil line 1:␤------> [32m/\1[33m⏏[31m/[0m␤Check failed␤FAILED 00:01 110m␤»
19:31 pmurias arnsholt: you must be very lucky
19:31 ash_ there are git-* bridges for almost every kind of repository system now, which i find kinda interesting
19:31 pmurias git-svn is very nice
19:31 pmurias arnsholt: you must be very lucky i always used to encouter bugs in it
19:32 arnsholt Huh. One of my friends at uni keeps ranting about issues he hits with SVN, but I've never really had any problems with it
19:32 arnsholt But Git is quite nice. As long as it doesn't do something I haven't seen before
19:32 arnsholt When that happens, all bets are off
19:33 jaldhar_ joined #perl6
19:33 crazed left #perl6
19:35 moritz_ svn usually works quite well for me
19:36 moritz_ but older version had lots of trouble with renaming files, for example
19:36 ash_ as long as people don't do "mv oldfile oldfile.bak" i am okay with any scm
19:36 moritz_ when you svn mv'ed a file, you couldn't do any further renaming/deleting/whatever before committing
19:37 moritz_ there are still occasional bugs when svn informs you that some files are missing, and 'svn up' doesn't restore them
19:41 pmurias diakopter: see failing tests i commited
19:43 SmokeMachine joined #perl6
19:49 ShaneC joined #perl6
19:50 ShaneC left #perl6
19:51 dalek nqp-rx: 7662467 | pmichaud++ | src/Regex/Cursor.pir:
19:51 dalek nqp-rx: Remove 'pos' register fossil noticed by muixirt++ .
19:51 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7662467981beb7c0836e60830a079d636eb119fc
19:58 gurjeet joined #perl6
20:01 mberends perl6: say $*PID;
20:01 p6eval rakudo ba591c: OUTPUT«0␤»
20:01 p6eval ..elf 30409: OUTPUT«20073␤»
20:01 p6eval ..pugs: OUTPUT«␤»
20:02 gurjeet moritz_: Is ilbot under some specific licence? I wish to use it on #postgresql .
20:02 moritz_ gurjeet: "same terms as perl itself"
20:02 moritz_ gurjeet: I can put it into #postgres myself (and run on irclog.perlgeek.de), or you can set up your own instance
20:03 moritz_ gurjeet: whatever you prefer
20:03 gurjeet Well, I wanted to setup my own, but I need to ask the admins at #postgres first
20:03 moritz_ sure
20:04 Kyril joined #perl6
20:04 gurjeet The license stuff is not mentioned anywhere in sources, is it?
20:04 moritz_ gurjeet: http://github.com/moritz/ilbot for the code... there's a home at http://moritz.faui2k3.org/en/ilbot
20:04 hghgd_ joined #perl6
20:04 moritz_ gurjeet: uhm, dunno... if not I should change that
20:05 gurjeet Yeah, clarity on license is a must I'd say for any open-source project
20:05 gurjeet Thanks for listening
20:06 moritz_ gurjeet: it started its live inside another repo which had a general licensing policy, so I could try that as an excuse :-)
20:06 gurjeet :)
20:07 moritz_ gurjeet: anyway, there's no installer for it yet... if you encounter problems, feel free to /msg me
20:07 gurjeet Sure.. will do
20:14 moritz_ gurjeet: added license.
20:14 dalek nqp-rx: 72d4125 | pmichaud++ | build/ (2 files):
20:14 dalek nqp-rx: Bump PARROT_REVISION to latest Parrot, and switch Parrot's
20:14 dalek nqp-rx: config_lib.pasm to be the new config_lib.pir .
20:14 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/72d41258fd2aeb30e7f7e21a814eb5c30b2bebdd
20:14 hercynium joined #perl6
20:16 gurjeet moritz_: Thanks.. thats helpful
20:16 dalek rakudo: 346e76d | (Martin Berends)++ | t/spectest.data:
20:16 dalek rakudo: [t/spectest.data] remove S02-magicals/pid.t (1 test) because is was crashing instead of passing and $*PID is NYI
20:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/346e76db0f23c331281fc630476c3681abc974d3
20:17 nihiliad joined #perl6
20:19 _buno_ joined #perl6
20:19 pugssvn r30410 | mberends++ | [S02-magicals/pid.t] change an incorrect global $PID to $*PID, and rename $pugs to $perl6_executable
20:28 nihiliad joined #perl6
20:41 diakopter pmurias: if.t is wrong
20:41 diakopter it's not a Perl 6 implementation
20:41 alester joined #perl6
20:41 diakopter it's an assembly language that's perlish.
20:42 diakopter function calls need parens.
20:42 pmurias diakopter: why is if.t wrong?
20:43 pmurias fixing
20:44 pmurias diakopter: they still fail
20:45 diakopter it's still wrong
20:45 diakopter double quotes.
20:47 pmurias i'll try to change the awfull error message
20:48 diakopter :|
20:48 diakopter please don't... it will take lots of work
20:48 diakopter it's not for human entry
20:48 diakopter errors aren't important at all
20:49 diakopter likewise for comments
20:49 diakopter I didn't intend to implement comments at all
20:50 pmurias comments are important
20:50 diakopter for generated code?  I suppose I could see that.
20:50 moritz_ but it's humans that write the compilers that emit the code
20:50 moritz_ and that need to debug the generated code too
20:51 pmurias it's sometimes helpfull to insert comments to help reading the generated code
20:52 diakopter ok :)
20:52 diakopter I'll port them from jsmeta's grammar
20:52 diakopter $work_meeting&
20:53 pmurias so that you can see what a given bit of code is generated from
20:59 ReiniUrban joined #perl6
21:05 alester joined #perl6
21:08 wknight8111 joined #perl6
21:25 nihiliad joined #perl6
21:30 SmokeMachine joined #perl6
21:33 ash_ woot, perl 5.12 is now in macports
21:52 takadonet left #perl6
21:53 [particle] joined #perl6
22:01 jhuni joined #perl6
22:28 jnthn rakudo: rakudo: sub foo(&foo = &foo) {}; foo
22:28 p6eval rakudo 346e76: OUTPUT«Confused at line 11, near "rakudo: su"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
22:28 jnthn rakudo: sub foo(&foo = &foo) {}; foo
22:28 p6eval rakudo 346e76:  ( no output )
22:28 jnthn rakudo: sub foo(&foo = &foo) {say &foo}; foo
22:28 p6eval rakudo 346e76: OUTPUT«Any()␤»
22:29 diakopter rakudo: sub foo(&foo = 1) {say foo}; foo
22:29 p6eval rakudo 346e76: OUTPUT«invoke() not implemented in class 'Integer'␤current instr.: 'foo' pc 179 (EVAL_1:77)␤»
22:30 jnthn heh
22:30 jnthn I think we forget to type check default values. :=)
22:31 diakopter :|)
22:34 diakopter rakudo: my %hash = sub (){},,,,,,,,,,,,,,1; say %hash
22:34 p6eval rakudo 346e76: OUTPUT«_block48   1␤␤»
22:42 bloonix joined #perl6
22:44 hercynium joined #perl6
22:46 ash_ rakudo: sub foo(&foo) { ... }; sub foo(&foo = &foo) { say &foo }; foo;
22:46 p6eval rakudo 346e76: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: 'foo' pc 210 (EVAL_1:88)␤»
22:46 ash_ hmmm
22:46 ash_ which one got 0 but expected 1?
22:46 m6locks lol
22:47 m6locks the last one?
22:47 ash_ no, i bet it was the sub foo(&foo = &foo) <--- that second foo
22:48 ash_ rakudo: sub foo(&foo) { ... }; sub foo(&foo = &foo(1)) { say &foo }; foo;
22:48 p6eval rakudo 346e76: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: 'foo' pc 210 (EVAL_1:88)␤»
22:48 ash_ hmm
22:48 ash_ nope, guess not
22:52 jnthn rakudo: my($a) = 5; say 'alive'
22:53 p6eval rakudo 346e76: OUTPUT«alive␤»
22:54 ash_ rakudo: sub foo(&bar = &foo) { say &bar }; foo;
22:54 p6eval rakudo 346e76: OUTPUT«foo␤»
22:54 ash_ rakudo: sub foo(&bar = &foo) { say bar }; foo; # recursion, woot?!
22:54 p6eval rakudo 346e76: OUTPUT«maximum recursion depth exceeded␤current instr.: '_block42' pc 326 (EVAL_1:134)␤»
22:56 jnthn rakudo: module A::B; A::B::foo
22:56 p6eval rakudo 346e76: OUTPUT«Can not find sub A::B::foo␤current instr.: 'perl6;Perl6Exception;throw' pc 14818 (src/builtins/Seq.pir:41)␤»
22:56 Kyril joined #perl6
23:00 jnthn rakudo: say Rat.new.Str
23:00 p6eval rakudo 346e76: OUTPUT«0␤»
23:02 jnthn rakudo: (sub { say "hello" #`(hello) }).()
23:02 p6eval rakudo 346e76: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
23:02 jnthn rakudo: (sub { say "hello" }).()
23:02 p6eval rakudo 346e76: OUTPUT«hello␤»
23:02 jnthn rakudo: sub { say "hello" }.()
23:02 p6eval rakudo 346e76: OUTPUT«Confused at line 11, near "sub { say "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:05 jnthn rakudo: sub foo { say "OH HAI" }; class A { method bar {} }; &A::bar = &foo; A.new.bar
23:05 p6eval rakudo 346e76: OUTPUT«Null PMC access in getprop()␤current instr.: '&infix:<=>' pc 16989 (src/builtins/Junction.pir:245)␤»
23:06 jnthn rakudo: class Y {has $.z}; subset X of Y where {.z ==0}; my $q = 4; say $q ~~ X;
23:06 p6eval rakudo 346e76: OUTPUT«Method 'z' not found for invocant of class 'Integer'␤current instr.: '_block82' pc 384 (EVAL_1:54605216)␤»
23:09 orafu joined #perl6
23:13 nihiliad joined #perl6
23:19 envi^home joined #perl6
23:29 jnthn Oh hey, my patch for hash slices removes more code than it adds. :-)
23:30 Juerd That's nice :)
23:31 pugssvn r30411 | jnthn++ | [t/spec] Various unfudging of hash slice tests; also re-fudge hash-ref.t so we can run it again.
23:31 Exodist joined #perl6
23:31 dalek rakudo: 35bcd52 | jonathan++ |  (9 files):
23:31 dalek rakudo: Get hash slices essentially working. In the process, move Associative role completely into the setting. Nothing in PIR actually did it, plus we now have the ability to augment the role into classes in the core setting anyway, so it's no problem to add to things first defined in PIR anyway. Slight re-think of how we handle non-Perl 6 hashes that seems rather cleaner to me; need to tweak array indexing similarly, will do it soon.
23:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/35bcd522471cfade800d4e28c0039128367107b3
23:31 dalek rakudo: ba19436 | jonathan++ | t/spectest.data:
23:31 dalek rakudo: Turn on hash_ref.t.
23:31 jnthn Mostly because I replaced a wobload of PIR with a little bit of Perl 6. :-)
23:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/ba1943626e144dfbd7d8e96b2e64472be048419d
23:33 Juerd How do the new Perl 6 implementations generally compare to the PIR ones in terms of performance?
23:33 jnthn We maybe win a bit because multi-dispatcher in Perl 6 can cache various stuff whereas the Parrot one can't, and lose a little bit elsewhere.
23:34 jnthn The code-path for just indexing a single hash element hasn't changed though.
23:34 Juerd I see
23:35 jnthn Well, it's not that the Parrot one couldn't.
23:35 jnthn It's just that it doesn't.
23:35 kensanata joined #perl6
23:36 jnthn rakudo: class A { method foo() {} }; A.new.foo(42)
23:36 p6eval rakudo 346e76: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤current instr.: 'perl6;A;foo' pc 399 (EVAL_1:171)␤»
23:39 jnthn rakudo: say (abs(412).WHAT)
23:39 p6eval rakudo 346e76: OUTPUT«Int()␤»
23:41 * jnthn has closed several tickets and probably given 4-5 to moritz++ that can be closed after spectests. :-)
23:43 jnthn rakudo: class A { method postcircumfix:<{ }>() {} }; my &r = {;}; if 0 { if 0 { my $a } }
23:43 p6eval rakudo 346e76:  ( no output )
23:48 alester joined #perl6

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

Perl 6 | Reference Documentation | Rakudo