»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:02 justatheory left 00:06 quester_ joined 00:11 wknight8111 left 00:18 justatheory joined 00:30 cosimo left 00:38 rgrau left 00:39 yinyin joined 00:42 cosimo joined 00:46 eternaleye left
diakopter method invocations 00:53
perlesque: my $a = list_int.new(); $a.Add(1); says($a.ToString())
p6eval perlesque: OUTPUT«Sprixel.Runtime.list_int␤»
diakopter afk& 00:54
01:05 baisong joined 01:14 Chillance left 01:19 Kyril left 01:21 eternaleye joined 01:26 justatheory left 01:27 plobsing joined 01:30 ejs left
quester_ karma quester 01:43
buubot: karma quester 01:44
buubot quester_: quester has karma of 7
01:48 cosimo left 01:57 Psyche^ joined 02:00 Patterner left, Psyche^ is now known as Patterner 02:16 mberends_ left 02:17 alester joined 02:22 cosimo joined 02:29 snarkyboojum joined
snarkyboojum would be cool if Perl 6 got a slot at Emerging Languages Camp emerginglangs.com/ :) 02:31
great list of speakers there already emerginglangs.com/speakers/ 02:33
02:36 astrojp left
lue (hello!) snarky: what is Emerging Languages about? 02:36
snarkyboojum hey lue
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:37
lue It's not so much an emerging language, but rather a "beta" :) 02:38
snarkyboojum lue: Perl 6?
lue yeah. emerging implies it has yet to be realized. 02:39
It's realized, just NYI :)
snarkyboojum Io, Newspeak, Go, etc 02:40
would be cool to see Perl 6 there and perhaps Fortress :)
diakopter emerging does not imply it has yet to be realized
imo.
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 :)
diakopter I think p6 qualifies as emerging with the rest of those languages
snarkyboojum definitely
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 :)
lue rakudo: my @a = (97,102,154); say chr(@a »+» 2) 02:44
p6eval rakudo 842d2b: OUTPUT«␤»
lue that wasn't what I wanted :) 02:46
02:48 molaf joined
diakopter rakudo: my @a = 97,102,154; say @a >>+>> 2 02:53
p6eval rakudo 842d2b: OUTPUT«99104156␤»
03:04 alester left
snarkyboojum rakudo: my @a = 97,102,154; say .chr for @a >>+>> 2 03:12
p6eval rakudo 842d2b: OUTPUT«c␤h␤␤»
lue \o/ 03:13
03:16 jaldhar joined 03:20 _jaldhar_ left 03:21 meppl left, snarkyboojum left 03:29 alester joined 03:33 snarkyboojum joined 03:48 molaf left 04:01 meppl joined 04:14 quester_ left 04:41 JimmyZ joined, nihiliad left 04:42 nihiliad joined 04:46 nihiliad left, JimmyZ left 04:47 nihiliad joined 04:52 bacek joined 05:00 ReiniUrban joined 05:01 rurban left, ReiniUrban is now known as rurban 05:05 ejs joined 05:13 arthur-- joined 05:21 jonasbn joined 05:27 snarkyboojum left 05:38 kaare joined, kaare is now known as Guest15949 05:43 snarkyboojum joined 05:56 uniejo joined
diakopter got expression statements working. but not implied return expressions/statements yet. probably won't do that. 06:00
perlesque: my $a = list_int.new(); $a.Add(1); $a.Add(33523); say($a.Count); 06:10
p6eval perlesque: OUTPUT«2␤»
diakopter perlesquel:
perlesquel: .
p6eval perlesquel: OUTPUT«2␤real 0.13␤user 0.05␤sys 0.01␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«2␤real 0.05␤user 0.04␤sys 0.01␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«2␤real 0.05␤user 0.04␤sys 0.01␤»
diakopter heh
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␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«10000000␤real 0.85␤user 0.34␤sys 0.25␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«10000000␤real 0.63␤user 0.32␤sys 0.28␤»
diakopter cool. mono must cache the JITted edition
moritz_ good morning 06:17
diakopter moritz_: hi :) 06:20
sorear perlesque: my $a = list_int.new(); loop (my $x = 0; $x < 10000000; $x+=1) { $a.Add($x) }; $a.Sort(); 06:28
p6eval perlesque: ( no output ) 06:29
sorear perlesquel: .
p6eval perlesquel: OUTPUT«real 11.73␤user 6.27␤sys 0.09␤»
06:29 _jaldhar joined
sorear good, mono isn't using quicksort 06:29
06:32 iblechbot joined 06:33 jaldhar left
diakopter hee 06:37
adding string literals (so I can have BigInteger) 06:38
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
..TriAxis.RunSharp.CodeGen.RecordLabe…
diakopter perlesque: my $a = list_int.new(); loop (my $x = 10000000; $x > 0; $x-=1) { $a.Add($x) }; $a.Sort();
p6eval perlesque: ( no output ) 06:43
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«real 6.51␤user 6.28␤sys 0.23␤»
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␤»
diakopter just checking
btw, the entirety of the declaration of list_int in the sprixel codebase is: public class list_int : List<int> { public list_int() { } } 06:47
06:48 ejs left, agentzh joined 06:54 iblechbot left
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)␤»
IllvilJa o/ 07:44
07:55 rekhajos joined
moritz_ \o 07:55
mathw o/ 07:56
diakopter there we go. 08:04
string literals (double quotes only, no interpolation of course)
and bigints.
08:04 ejs joined
mathw scowls at C++ 08:05
jnthn morning 08:06
moritz_ jnthn is up before 11am? what's wrong? :-)
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);
p6eval perlesque: OUTPUT«323532352352335487498720970091290383401750920198234091853␤104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«323532352352335487498720970091290383401750920198234091853␤104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609␤real 0.08␤user 0.07␤sys 0.01␤»
mathw diakopter: big :)
diakopter indeed. 08:08
mathw sighs
moritz_ diakopter: just use single quotes, then you're closer to a proper Perl 6 subset
diakopter true.
mathw Seems I either need to start mucking about with storing stuff on the heap, or use boost::any. Hmph.
moritz_ diakopter: and get a bot that reports perlesque commits here 08:09
mathw I may have outsmarted myself
08:09 ejs left
diakopter perlesque: my $a = BigInteger.Create('323532352352335487498720970091290383401750920198234091853'); say($a); say($a * $a); 08:10
p6eval perlesque: OUTPUT«323532352352335487498720970091290383401750920198234091853␤104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609␤»
diakopter moritz_: fixed :)
perlesque: say('blah\'blah')
p6eval perlesque: OUTPUT«blah\'blah␤»
diakopter heh
08:14 ejs joined
diakopter jnthn: .net method calls & field lookups work 08:15
as part of expressions and just as statements.
fields/properties I mean.
constructors too
tomorrow night, indexers and perl hash 08:16
moritz_ don't forget the svnbot
jnthn diakopter++
diakopter what about the svnbot? 08:17
(I no longer know how to add repos)
moritz_ diakopter: start a new one
diakopter start a new svnbot?
moritz_ yes
diakopter lol 08:18
you funny
moritz_ I mean a new instance
not write a new one
diakopter heh; oh
diakopter been awake too long
moritz_ not always crazy as batshit 08:19
diakopter aka "guano"
as in "he's guano crazy, man!" 08:20
diakopter is scared to look at my last 50 commit diffs. 08:21
they must be .... horrendous.
08:21 iblechbot joined
diakopter I can barely stand to look at the latest code itself. 08:21
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:24
if only I could document how to use it...... 08:25
bedime and stuff. 08:26
bedtime.
-|o
jnthn o/ 08:30
08:30 dakkar joined 08:40 mikehh left 08:44 clintongormley joined 08:46 espadrine joined 08:49 espadrine left, espadrine joined
dalek kudo: a8e70ac | moritz++ | build/ (2 files):
bump PARROT_REVISION, and change config_lib from .pasm to .pir

  trac.parrot.org/parrot/ticket/1560
09:06
09:33 masak joined
masak oh hai, #perl6 09:34
moritz_ oh hai masak 09:35
jnthn mwahahaitsmasak
masak I found the disastrous bug.
jnthn oh noes 09:36
and oh yay
masak++
How disasterous is it?
masak it took all of yesterday evening. and half of the night.
jnthn :-(
masak jnthn: it's bad.
jnthn Damm.
09:36 mikehh joined
masak but the problem might be with Parrot, and some sneaky 'optimization'. 09:36
jnthn Got a short test case?
moritz_ do tell.
jnthn We've already been burnt by that.
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␤»
masak alpha: my $t = 0; sub foo { my @a; my &bar = { say +@a }; unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
p6eval alpha 30e0ed: OUTPUT«1␤1␤»
masak submits rakudobug
I'll five you a minute or so :)
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
p6eval rakudo 842d2b: OUTPUT«87969168␤88746296␤»
masak yep.
moritz_ rakudo: my $t = 0; sub foo { my @a; my &bar = { say @a.perl }; $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
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
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)␤»
alpha 30e0ed: OUTPUT«47405094140536␤47405094140536␤»
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:41
moritz_ maybe related to RT #73034, which also discusses variable sharing in closures 09:42
masak looks 09:43
moritz_ that one is responsible for the man-or-boy test not working in master
Knuth++
masak I have no way to know whether mine is the same, so I'll go ahead and submit it anyway. 09:44
they do look related.
moritz_ sure
maybe include a reference to that ticket
masak *nod*
until I can find a workaround, this bug blocks the conversion of GGE to master. 09:46
moritz_ don't use closures :-)
masak very funny. :) 09:47
moritz_ ok, that was not funny
jnthn looks forward to the closure of these tickets
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
moritz_ so why didn't he commit? did it break everything else? 09:48
jnthn Yes.
rakudo: my $t = 0; sub foo { my @a; my &bar = { say +@a }; unless $t++ { foo; push @a, "OH HAI"; say +@a; bar; } }; foo
p6eval rakudo 842d2b: OUTPUT«1␤0␤»
masak to heck with everything else!
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␤»
masak jnthn++
there's the workaround. (eww!) :)
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
p6eval rakudo 842d2b: OUTPUT«Attempting to do sub operation on non-Sub.␤current instr.: 'foo' pc 204 (EVAL_1:83)␤»
jnthn Ah.
masak: Nod.
masak: Well
masak: I wasn't suggesting you use it.
masak I probably will.
jnthn masak: I was more pondering the kind of fix we may need.
09:55 broquaint joined 10:02 agentzh left
pugssvn r30406 | moritz++ | [t/spec] comparing Date objects 10:11
r30407 | moritz++ | [t/spec] unfudge a passing TODO test for rakudo
10:15 espadrine left
dalek kudo: 5386067 | moritz++ | src/core/Signature.pm:
work around TT #1560
10:15
10:16 xinming_ joined, yinyin left 10:19 xinming left 10:28 ruoso left
masak leto++ # conferences.mongueurs.net/yn2010/talk/2670 10:32
jnthn Wow. :-)
I'm kind of proud that we've got a Slovak word into the YAPC::NA schedule. :-) 10:34
Pm has three talks. :-) 10:36
masak awesome. I heard YAPC::NA accepted all talks this year. o.O 10:38
jnthn Ooh. :-) 10:40
It looks like a decent schedule.
jnthn remembers that he should submit for YAPC::EU
masak oh right 10:42
jnthn Still trying to decide what to talk about. 10:49
.oO( "The best 6 beers to drink while writing a Perl 6 compiler" )
masak .oO( "The whole of OO theory explicated through alcoholic beverages" ) 10:51
mathw
.oO( "A Study of the Correlation Between Beer Drunk and Quality of Code Produced While Drinking" )
10:52
masak xkcd has prior art :)
mathw is theirs specialised on Rakudo?
:)
masak admittedly not. 10:53
mathw Well then
Obviously inferior
No camels
Or onions
jnthn I was going to submit that talk, but I bottled out. 10:54
jnthn ponders submitting one about how awesome Perl 6 signatures are 10:55
mathw signature unpacking!
jnthn Yeah, including that
And the whole "write what you know" approach that a bunch of it enables. 10:56
Plus probably things like, how you can use them in given/when to look at the shape of a data structure.
I think I'll submit something on that. 10:57
And then maybe a longer tutorial-style session on Rakudo guts.
"How Rakudo works and how to hack on it" 10:58
Or some such.
mathw that would be awesome 10:59
I would like to go to that
masak too 11:00
jnthn OK, sounds like it may be a good one then.
mathw When/where is YAPC::EU? 11:01
jnthn mathw: Pisa, start of August.
mathw I've asked this before I think
hmm
Pisa
jnthn mathw: If you don't want to fly, the train options work pretty well.
As in, much better for you than for me.
mathw heh
jnthn I wanted to train it.
But...think I'll end up flying.
mathw Nottingham->St Pancras International->HIGH SPEED 1 WHOOSH
ahem
jnthn One way at least.
mathw still quite excited by that part
jnthn Yeah, it's kinda cool. :-)
mathw and they want to build one up to Birmingham, Leeds, Glasgow and Edinburgh 11:02
and they're even talking about electrifying the midland main line :o
jnthn Yeah, but the timescale... :-/ 11:03
mathw yeah
what do you use for european train investigation
jnthn bahn.de 11:04
mathw heh me too
jnthn It tends to get upset if you ask about Pisa at the moment though. :|
So I've been sticking in Florence, which is real close.
mathw well
it just quoted me 19 hours to get to Pisa
but that's if I leave in 90 minutes
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")
p6eval rakudo 538606: OUTPUT«OH HAI␤»
masak \o/
jnthn I think there's a Paris - Italy sleeper train.
mathw hmm no, it's a sleeper from paris to milan
jnthn lovers sleeper trains.
mathw and it tells me I have to make my own way from Paris Nord to Paris-Bercy
jnthn er, loves
masak freudian slip? :P 11:06
jnthn OH NOES WHAT IF THERE'S A STRIKE!
masak: ...well. :-)
mathw yeah unfortunately
jnthn mathw: Actually I wish I was joking about the strike.
mathw it looks like flying is a far, far better option
masak that *would* be kind of nice, a regular sleeper train with a regular lover on it. :)
mathw well, probably
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.
mathw: I use expedia.co.uk
They have all but the most budget airlines.
e.g. easyjet are on there
But RyanAir not
I actually count that as a benefit. ;-)
mathw haha 11:08
so it's the 4th-6th of August
aikido summer school is until the 2nd
jnthn nod
mathw and I have that week off to recover
so I could go without booking any more holiday
just need to find the money
and renew my passport
I just might regret taking a plane journey with my muscles still in shreds
bah, no flights from EMA 11:10
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
rather than guessing
mathw doesn't like flights
oh well
time for lunch &
11:16 alester left 11:32 snarkyboojum left 11:34 iblechbot left
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)␤»
cognominal rakudo: sub a( :$a) { say $a }; my %a = < a a >; a( %a<a> )
p6eval rakudo 538606: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: 'a' pc 241 (EVAL_1:89)␤»
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?
moritz_ something that smartmatches against Routine 11:47
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
11:48 envi^home joined
masak that sounds almost like it should return Sub() rather than Method() 11:48
moritz_ thought that all blocks were closures, notionally
11:48 rekhajos left
masak sure, but some blocks are more closures than others :P 11:49
subs good, methods baaaaad!
11:50 alester joined
moritz_ rakudo: class A { say (method foo { 23 }).WHAT }; 11:50
p6eval rakudo 538606: OUTPUT«Code()␤»
moritz_ rakudo: class A { say (method foo { 23 }) ~~ Routine };
p6eval rakudo 538606: OUTPUT«0␤»
moritz_ I'm pretty sure that's wrong
masak rakudo: say (method foo { 23 }).WHAT
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()␤»
masak rakudo: say (method { 23 }).WHAT 11:51
p6eval rakudo 538606: OUTPUT«Method()␤»
masak o.O
jnthn masak: Should return a Method
Because that's the declarator you used.
masak so... an anon method gets to be a Method.
but a named method is just Code?
moritz_ that's just weird and wrong :-)
masak submits rakudobug
jnthn: why? 11:52
moritz_ you know, if it's not ~~ Routine, then return() should pass through its boundaries
masak aye.
jnthn Yes, "just Code" is wrong
(I know why we get that one wrong, though)
masak jnthn: but why is Method() on an anon method right?
jnthn Because it is.
You wrote "method", you've got a method.
masak even though S12 says there is no such thing as an anon method? 11:53
jnthn wtf?
masak see quote above.
jnthn "The C<method> declarator on an anonymous method" 11:54
Yup, seems like there is such a thing. :-)
moritz_ masak: nope, that quoted talked about being a closure or not
jnthn It said there's no such thing as a method closure
masak oh, I see.
jnthn That is, something that's not a Routine
masak ah, right. that makes much more sense.
I didn't trigger on the word 'closure', it seems.
jnthn :-) 11:55
Anyway, please don't lets break the "routine declarator name <-> type" thingy.
masak agreed.
jnthn To clarify, the fact that we get something of type Method implies nothing at all to the method dispatcher. 11:56
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
That said, the dispatcher does care about Submethod.
But the routine type and the dispatch semantics are otherwise quite unrelated. 11:58
Methods ain't so special after all. :-)
(this means you can call add_method and pass in a sub, or even a closure, or generally just anything callable) 12:00
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
cognominal the source of all knowledges :) 12:02
SDT.pm6, even 12:03
12:03 alester left
moritz_ www.perlmonks.org/?node_id=835419 "The current state of Perl6" 12:03
masak std: sub foo {}; foo(:a :b :c) 12:04
p6eval std 30407: OUTPUT«ok 00:01 109m␤»
masak rakudo: sub foo(:$a, :$b, :$c) {}; foo(:a :b :c)
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)␤»
masak submits rakudobug 12:05
moritz_ std: :a :b
p6eval std 30407: OUTPUT«ok 00:01 107m␤»
moritz_ is that the same as :a, :b?
12:05 moritz_ sets mode: +v p6eval
masak aye. 12:05
S02: "Two or more adverbs can always be strung together without intervening punctuation anywhere a single adverb is acceptable."
moritz_ list of arbitrary things to remember, anybody? 12:06
jnthn grr
I don't like that.
masak cognominal: I find that the explanations in S02, though scattered, mostly cover adverbs.
jnthn hopes the spec will change to match Rakudo there
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
adverbs on operators, that is
jnthn moritz_: Operator adverbs?
Or the foo(:a :b) being same as foo(:a, :b)? 12:08
moritz_ think like %foo<bar>:delete
*things
masak moritz_++ # reply on replmonks
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.
moritz_: I do think that the ones in S09 have merit.
jnthn phone
moritz_ masak: and yet he called them design smell 12:10
masak he did? I didn't know that.
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
however, I don't like adverbs that act like the main predicate in the statement, like :delete.
colomon My impression is that TimToady was high on adverbs a few years back, and has come back down more recently.
masak that was my main complaint against the test adverbs reform as well. 12:12
colomon (like, in the last year.)
moritz_ irclog.perlgeek.de/perl6/2009-11-05#i_1691230 # adverbs are usually a desgin smell
colomon and good morning.
masak colomon: \o
well, in retrospect, I'm glad we got rid of :by 12:13
but mostly because the C<...> operator does a much better job scooping up that semantics.
and C<..> becomes much purer in what it means.
colomon ...++ 12:15
moritz_ colomon++ # implementing most of ...
masak colomon++
colomon TimToady's design madevit easy
*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".
masak me too.
and it doesn't mean the adverbs in S09 are necessarily a design smell.
cognominal meaning if you have to resort to adverbs, something is probably wrong in the language
moritz_ whatever it is, I still don't like :delete and :exists on hash subscripts
and the special case of :foo :bar feels also wrong 12:17
especially since in perl 5 the stacked file test operators are &&'ed together
buubot: eval: $_ = '/'; -e -d 12:18
buubot moritz_: 1
moritz_ buubot: eval: $_ = '/'; -e -f
buubot moritz_: No output.
masak moritz_: I still don't think it falls under the 'lists of arbitrary things to remember' clause, though.
pmichaud good morning, #perl6
colomon o/
masak pmichaud! \o/
moritz_ masak: I do 12:19
masak pmichaud: do you think rt.perl.org/rt3/Ticket/Display.html?id=74488 is identical to rt.perl.org/rt3/Ticket/Display.html?id=73034 12:20
?
pmichaud masak: looking
masak: likely yes. The problem is that the closure isn't being cloned upon assignment. 12:21
masak ah.
so I'll merge the tickets, then?
12:21 Guest15949 left
pmichaud wfm 12:22
masak does it
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
moritz_ \o/ 12:23
masak \o/
pmichaud might get sidetracked though; wife may be experiencing one of those chemo side-effects that requires a trip to the doctor :-( 12:24
bbiab -- taking kid to school 12:25
12:27 iblechbot joined
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:36
how many 'different' colons does Perl 6 have? 12:37
moritz_ masak: didn't we count them at one point? :-)
masak no, that was plusses, I think.
operator adverb, named argument, named parameter...
moritz_ thought we counted lots of different meta characters
masak ...invocant paramter, invocant argument... 12:38
moritz_ labels:
colomon whatever you call it when you go @a.push:
masak ooh!
moritz_ in regexes: non-backtracking : :: :::
masak colomon: 'method invocation colon', perhaps?
colomon wfm 12:39
masak in regexes, as quantifier modifiers.
*: *:! *:? etc
in namespaces. Foo::Bar
moritz_ longnames, Foo:auth<bar> 12:40
masak operators, postfix:<*>
moritz_ type captures, :(::Foo $x, Foo)
masak: that's longnames, too
masak oh, ok.
moritz_ signatures :(...)
sigil for Abstraction ::NotYetDeclaredType.new() 12:41
masak that's almost the same as the type capture.
moritz_ nope
masak but there's a difference in declaration/use, I guess.
moritz_ it's quite different
at least semantically
syntatically it might be the same 12:42
not sure
12:42 ruoso joined
moritz_ so at least 9 different uses 12:43
masak I count 14. 12:45
though some of these can be consitered the same in the sense that they're duals of each other.
moritz_ I count invocant (argument|parameter) as one
masak I don't. 12:46
moritz_ as well as : :: ::: in regexes as one
masak oh, me too.
but I counted the *:? one as distinct.
even though it shares some traits.
with :
hm, or rather a* : shares some traits with a*: 12:47
pmichaud there's a*: and a:* in regexes 12:49
the first is ':' as cut operator, the second is ':' as quantifier "sigil"
masak 'a:*' ?
is that right?
pmichaud yes
masak I read that as the * quantifier on a lone cut operator.
as 'a :*' 12:50
pmichaud nope
masak fairenuf.
pmichaud it's actually part of the quantifier.
masak you've implemented more Perl 6 grammar engines than I have :P
pmichaud that's not necessarily a good thing :P
masak oh, right! yes, you're right!
now I remember my surprise at seeing ':' connected to the parse_quant subroutine :) 12:51
postfix::, to be exact.
pmichaud it's just that the colon is optional in most places where we put a quantifier.
masak *nod*
so 'a:*' is actually 'a*' 12:52
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:53
it left me with the realization that Perl 6 is maybe best learned over an extended period... 12:56
moritz_ masak: like, years? :-) 12:57
12:57 SmokeMachine joined
masak We have until 2038 to learn it :) 12:57
moritz_ and then... what? :-) 12:58
masak 4. profit!
(duh)
moritz_ d'oh 12:59
moritz_ wants to profit now
masak 2038, as we all know, is the year Perl 6 will finally be released. arstechnica says so.
13:01 ReiniUrban joined
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
the spec will share only an 11% similarity with the one we have today.
13:01 rurban left, ReiniUrban is now known as rurban
masak but it'll be great. 13:01
moritz_ that's most important, yes
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.
and it'll have a better web preparedness than PHP.
thank you Perl 6 Head!
pmichaud registers perl6head.org . 13:03
moritz_ and easier to learn than relativistic quantum physics
masak moritz_: exac,,, what? o.O
moritz_ registers perl6feet.org
13:04 dalek left
masak registers perl6solarplexus.org 13:04
13:05 dalek joined, kaare joined, kaare is now known as Guest33393 13:13 bloonix joined 13:26 ejs left 13:28 Trashlord left 13:29 Trashlord joined 13:30 Trashlord is now known as Guest59659 13:31 ejs joined 13:32 molaf joined 13:34 ejs left
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:34
13:35 alester joined
moritz_ the latter: yes 13:35
and it's even implemented
rakudo: say Date.today() - Date.new('1984-03-03') # my age in days 13:36
p6eval rakudo 538606: OUTPUT«9543␤»
jnthn Yeah, I knew that, I meant is there a standalone "Time" too?
moritz_ don't think so
13:36 alester left
masak I've been thinking about that. 13:36
moritz_ because a day length depends on the actual day 13:37
masak my current stance is "just use two scalars" :)
or three, or whatever.
jnthn Well, my current use case is "a task that runs at a certain time every day".
(Just came up in $dayjob)
masak jnthn: You can do that with DateTime.
jnthn OK
masak jnthn: and what moritz_said.
s/_/_ /
pmichaud where can I find moritz_++'s patch for rakudo Match objects? I've lost the reference. 13:38
masak $dt.hms
moritz_ pmichaud: in nqp there's a branch...
jnthn masak: How very British. ;-)
masak jnthn: :D
moritz_ pmichaud: '
erm
pmichaud: refactor_mob_generation 13:39
pmichaud moritz_: tnx
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
it creates an additional RPA and a Hash for each mob creation
pmichaud okay 13:43
what's the git command to view the diff between that branch and HEAD ?
13:43 Guest33393 left
pmichaud or between that branch and trunk? 13:43
moritz_ git diff refactor_mob_generation master 13:44
pmichaud pmichaud@orange:~/nqp-rx$ git diff refactor_mob_generation master
fatal: ambiguous argument 'refactor_mob_generation': unknown revision or path not in the working tree.
jnthn Maybe origin/refactor_mob_generation 13:45
moritz_ right, jnthn++
I have a local branch with that name too
pmichaud jnthn++
moritz_ so it worked for me
jnthn pmichaud: If you want to work on the branch, create a local one that tracks the remote.
moritz_ pmichaud: you might diff against becd0e9ea6541b6862cea49c93f296becb6f0585 instead of master, then you see less unrelated changes
jnthn But just to read it's fine to do it that way.
pmichaud I'm just reading for now 13:46
uh oh, too many perl 6 ism made it into HLL::Grammar :-( 13:47
crap.
moritz_ (which is not part of my branch, just for reference)
pmichaud (right, I knew that.)
those have to get fixed today, unfortunately. 13:48
i.e., before the parrot release.
jnthn Which things specifically?
pmichaud \e is one.
jnthn \e already was parsed in there 13:49
All that happened was a bug fix.
iirc, anyway.
pmichaud github.com/perl6/nqp-rx/commit/b174...399553bc7c shows it being added, not fixed. 13:50
jnthn Ah yes
It was fixed in strings.
I figured if we handled \e and \f in strings, it was fine to handle them in regexes too. :-/
pmichaud anyway, HLL::Grammar is supposed to be only for things that are pretty common across all languages
regexes, yes.
but that would be Regex::P6Regex, not HLL::Grammar 13:51
13:51 riffraff left
jnthn Ah. I was just following the pattern of nl/cr/tab 13:51
Which didn't seem unsensible.
pmichaud sure, but \n, \r, and \t
are common across many languages
afaik, \e and some of the others are fairly p6-specific
moritz_ so, should rakudo subclass HLL::Grammar and add those things? 13:52
13:52 Guest59659 left
jnthn fairy nuff. 13:52
13:52 PacoLinux joined
pmichaud rakudo already subclasses HLL::Grammar 13:53
13:53 Guest59659 joined
pmichaud (so yes :-) 13:53
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.
anyway, we probably need to clean that up. 13:54
otherwise some HLL may end up with \e meaning escape and no good way to remove it. 13:55
(short of overriding the rule to take it out, which is a bit of a pain and slows things down unnecessarily)
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
pmichaud why not follow the suggestion of having a method on Cursor that creates a Match object of the appropriate type?
masak jnthn: would one be preferable to the other?
jnthn masak: our because it's 2 less characters
masak :)
jnthn masak: Given that you're writing a one-liner if using -n ;-) 14:01
masak aye.
jnthn Outside of one-liners, state, becasue the scope is more restricted. :-)
masak ah.
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.
looking.
moritz_ pmichaud: that doesn't solve the problem of turning RPAs and CodeStrings into appropriate HLL types 14:03
14:03 ash_ joined
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
pmichaud well, I prefer this because it keeps to using the array/hash interface for match objects 14:05
an HLL would still want/need to overload that interface, even if it chose a completely different internal structure
moritz_ wfm
14:06 Guest59659 left
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 :-)
moritz_ pmichaud: and duplicating lots of logic that pokes private attributes - not a good idea, if you ask me
14:07 Guest59659 joined
moritz_ it completely breaks encapsulation 14:08
which is why I didn't do it in the first place
pmichaud well, "poke private attributes" is an optimization at the moment, not a design feature
it's trivial to keep it from doing that.
moritz_ fsvo "trivial"
:-)
pmichaud where is .MATCH non-trivially setting attributes?
moritz_ not setting, retrieving 14:09
pmichaud that's not poke, that's "peek" :-P
and it's the same point.
moritz_ ok :-)
pmichaud a person can write .MATCH w/o having to poke/peek the attributes directly.
.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
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
moritz_ and have Regex::Cursor.MATCH call those?
pmichaud I'm trying to see if I can avoid the creation of RPAs and Hashes
i.e., to delegate that part to the Match object 14:13
for CodeString, we probably need to eliminate that from Cursor altogether 14:15
i.e., !cursor_init shouldn't force things to be CodeString -- it should just accept whatever it gets passed.
14:15 uniejo left
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
14:16 rjh joined
rjh hi all 14:16
moritz_ hi rjh
rjh how many tests does perl 6 currently have?
moritz_ ash_: sorry for not answering your questions earlier... it's making quite some progress, though there's always things to do 14:17
rjh: maybe 40k
[particle] ...not enough.
moritz_ aye 14:18
14:18 smash_ joined
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
moritz_ oh, is it the same one as on reddit?
rjh think it was based on that, yes
moritz_ there's also a discussion on perlmonks 14:19
pmichaud urls handy?
moritz_ goes a-looking
rjh perlmonks.org/?node_id=835419
www.reddit.com/r/perl/comments/bswu...ings_done/
moritz_ stackoverflow.com/questions/2666428...e-of-perl6
[particle] well, rakudo passes 30k tests, which is 79+% of the test suite
rjh pretty much everyone at my place of work thought perl 6 was vaporware
[particle] 30 * 100/79 14:20
rjh parts of my answer may be ill-informed or just plain wrong :) 14:22
14:22 Guest59659 left
[particle] rjh: you're wrong, and your mother dresses you funny. 14:23
moritz_ rjh: Rakudo star was planned for 2010-Q2
rjh: which is April...June. And that's still the plan
jnthn It still is, last I checked. :-)
[particle] rjh: trying to creep you out less.
rjh the difference between this channel and #perl on irc.perl.org is pretty absurd
14:23 dakkar left
moritz_ rjh: #perl is ... differnt 14:23
14:23 dakkar joined
masak rjh: 'vapourware' isn't really applicable to open-source projects with recurring releases. 14:24
rjh: the sentiment and the frustration behind the term are, of course.
[particle] we're still marketing perl 6 the wrong way 14:25
14:25 Guest59659 joined
moritz_ [particle]: what would be the right way? 14:25
[particle] we should not be addressing 'vaporware' by responding directly
"we're not vaporware!" doesn't fly.
the right way is to release, endorse, and promote Rakudo * 14:26
masak no argument there.
so let's do that.
[particle] precisely.
and have a book to go with it.
pmichaud well, we still have to deal with the "production ready" aspect of the discussion
[particle] and get bloggers involved.
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
ah, in that case...
rjh heh, calling it an alpha or beta release would sort that one out.
i'm still not sure what the * means :) 14:28
moritz_ Whatever
[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.
get 'the h open source' /., and others to pick it up
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)
[particle] rjh: in perl 6, there's a construct called 'Whatever', which is represented by '*'
pmichaud (alpha/beta) yeah, we might be able to make use of that.
moritz_ they even pay for it, and two weeks later you can use it for any purpose you want
14:29 Guest59659 left
[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
:)
[particle] lwn++
who's doing marketing for tpf now? get them in the loop via email, or on irc now. 14:31
we're planning r*, how can you help us succeed?
or, i should say, we're planning the first release of rakudo *... 14:32
since pmichaud++ has mentioned that r* is a series of releases
rjh on one hand though, perl 6 is just awesome. shouldn't take long for the hype to spread
[particle] the hype won't spread until people can take it seriously
i mean, it may spread as hype, but not as fact 14:33
rjh what's the watershed for taking it seriously?
[particle] for some, it seems "production ready" 14:35
i suspect for others, it's treating it like traditional language releases, with alpha/beta etc tags
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 :)
[particle] .debs exist, don't they?
slavik afaik, there is no "make install" for rakudo
[particle] parrot .debs exist, not certain about rakudo 14:37
moritz_ slavik: that's not true since... early 2009 or so
slavik oh
then I think make install does something broken
that might've been the issue
[particle] slavik: willing to try it and report bugs?
slavik [particle]: later today
moritz_ slavik: it installs to the location where it found parrot_config
[particle] slavik++
slavik hmm 14:38
moritz_: but we want it in a "system" location, no?
moritz_ btw rakudo.org/how-to-get-rakudo lists 5 OS/packages which come with rakudo packages
slavik so that perl6 is in the PATH
pmichaud 14:36 <[particle]> we don't have a project manager per se for perl 6, nor for rakudo
<-- project manager
moritz_ slavik: well, it does that if you install parrot in system location, too
[particle] pmichaud: yes, you wear many hats
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
slavik: the not by default
slavik moritz_: but if I install parrot via --gen-parrot, it doesn't go into a system location
[particle] pmichaud: i'll give you that, you are the rakudo project manager. sorry.
slavik or is this by design?
14:39 Guest59659 joined
pmichaud slavik: we just haven't added the --prefix option to Configure.pl yet 14:40
slavik pmichaud: :(
[particle] tpf hasn't figured out how to market perl 6, since it's "just a spec and tests"
diakopter rjh: you can change "more likely Christmas 2011" to something else...
[particle] i think tpf needs to market perl 6 as a spec, tests, and a flock of implementations
diakopter rjh: also, I don't know why you describe rakudo star as "non-alpha"
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.
moritz_: ah yes, we do have --gen-parrot-prefix
masak Alias: ping
rjh diakopter: i was misinformed, i'll update my post
smash_ you don't need the --gen-parrot (an shouldn't even have it) for a .deb package
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
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.
diakopter the recommended adjective before "release" is "usable" (not "functional" as you put it)
rjh reads Pm's blog again
pmichaud at least, not for auto-generation of Parrot. 14:43
slavik what's the latest version of parrot?
moritz_ rjh: the monthly releases are usually called "developer" releases, not "alpha"
slavik: 2.2, tomorrow 2.3 will be released
slavik looks like ubuntu lucid has 2.0 in repo
moritz_ and 2.3 is a "support" parrot release again
*supported
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:44
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
diakopter rjh: right.
rjh: but it must the emphasized the test suite is very incomplete too
rjh ok
moritz_ diakopter: uhm, there's no clear goal on how many tests Perl 6 needs 14:46
I agree it's incomplete
14:46 ash_ left, Guest59659 left
diakopter no, not clear. istr TimToady mentioning here on #perl6 that he thought the test suite was about 1/3 complete 14:46
14:47 jonasbn left
diakopter or maybe it was 1/X where X was less than 10 14:47
rjh btw, is the spec even finalised?
moritz_ remembers some 1/2
rjh: no
rjh: and it won't be, until it's implemented
pmichaud rjh: the spec can't really be finalized until we have some working implementations :-)
rjh makes sense, it's already had a lot of work done as implementors have discovered holes, right?
diakopter rjh: you should read perl6.org/specification/ and the Synopsis 1 it links to
rjh s/holes/corner cases/
pmichaud "holes" is correct. :-) 14:48
diakopter :)
14:48 Guest59659 joined, ash_ joined
pmichaud iiuc, we're *still* trying to work out the exact semantics of lists, iterators, and list context. 14:49
diakopter amen.
jnthn I fear so. :-(
pmichaud (and I'd have to classify that are more "hole"-ish than "corner case")
*that as
masak pmichaud++ # realist 14:50
rjh how about laziness?
pmichaud that falls into the same hole.
rjh i haven't seen/read a lot about perl 6's take on that
masak that's related to lists.
14:50 ash__ joined
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.
masak but you're more likely to fall down the hole... what pmichaud said.
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.
pmichaud those still need to go away 14:52
14:52 ash_ left, ash__ is now known as ash_
rjh diakopter: clarified it, yes. 14:52
i recall want() going away because it was too difficult to implement 14:53
masak pmichaud: good.
rjh: no, not difficult. impossible.
moritz_ rjh: not difficult - impossible
:-)
rjh haha
masak as in literally impossible.
pmichaud difficult we can do. impossible we do only some of the time.
masak :)
moritz_ rjh: basically want() relies on context flowing inwards
diakopter right. as in, in the strongly-typed case ;)
rjh good example of some of the crazy stuff in the spec
moritz_ rjh: which is true for perl 5, but not in Perl 6
masak rjh: well, want() was never an important part of the spec. MMD dispatch and the like was. 14:54
and they are incompatible with each other. 14:55
14:56 ash_ left
diakopter would like to see TimToady clarify "practical" (in both of its uses in S01) 14:57
14:57 ash_ joined
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
14:59 ash_ left, ash_ joined
masak the second use, however, is not thusly bound. 14:59
diakopter :P
sort of.
15:00 hghgd joined
moritz_ is glad that in the case of want(), there was agreement that impossible is also impractical :-) 15:00
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. :)
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
jnthn masak: Heh, there's enough stuff that's kinda fun to try and implement that still is in the spec. ;-)
masak too true. 15:04
moritz_ I think it's kinda easy to come up with examples that can be very hard to implement 15:05
15:05 Guest59659 left
masak I should think so, given that it's impossible! 15:05
'impossible' implies 'very hard' :) 15:06
15:06 alester joined
moritz_ multi a(Int, Str); multi a(Str, Int); sub b { my $x = c(); return $x, want() }; a(|b()) 15:06
actually, other way round
first call want, then c()
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"
moritz_ then want() would need to type-infere c() completely
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
masak diakopter: I just meant that I didn't think that the first meaning was used unclearly in S01.
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
masak moritz_: sure thing.
rjh why would you return want() ?
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
rjh (personally i think want() is a horrible idea) 15:09
15:10 Guest59659 joined
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?
rjh right
masak and that feels much more along the lines of Perl 6 typology, too. 15:11
dalek kudo: 1fc9d8a | moritz++ | docs/release_guide.pod:
masak++ does the June release
15:12
masak \o/
pmichaud oh, take me off of the April release.
moritz_ pmichaud: as I said, if nobody else can be found, I'll do it
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".
masak meh.
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
pmichaud moritz_: that's correct.
diakopter pmichaud: oh :'(
pmichaud Rakudo * is a separate release stream
eventually it'll have its own release managers and cycle (likely not monthly)
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.
moritz_ diakopter: "next 0-5 years" requires looking into the future
diakopter: which is not really a practical requirement for evaluation 15:15
diakopter right, I think using "practical" requires future-looking.
jnthn The spec shouldn't start getting into timelines.
dalek p-rx: 18c5d12 | pmichaud++ | src/HLL/ (2 files):
Remove \e from quoted-string handling, it's too P6-specific to

The other escape sequences (\f, \0, etc.) can stay, though.
p-rx: 3ac0b79 | pmichaud++ | src/NQP/ (2 files):
Add \e quote_escape to NQP.
diakopter I didn't say the spec should start getting into timelines.
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.
jnthn masak: Indeed.
moritz_ another reason is that we spend far too much time speculating about 6.0.0, and too little time hacking :-)
diakopter I mis-answered masak's question. 15:17
masak moritz_: speak for yourself :P
masak is hacking as we speak
dalek kudo: 796c566 | pmichaud++ | docs/release_guide.pod:
Remove myself from the April release manager -- open for others.
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
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 ;)
moritz_ pmichaud: you should either get those changes into parrot before tomorrow's release (dangerous) or note them in the deprecation doc
pmichaud moritz_: they're not dangerous, or shouldn't be.
moritz_ pmichaud: all the better
masak [particle]: what does that have to do with 6.0.0? I use Perl 6 in my work already.
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
15:21 baisong left
diakopter jnthn: I'm sorry for being unclear and misleading you as to my communication intent. 15:21
moritz_: also you.
masak I'm not really sure what you're apologising for, but it's OK. 15:22
15:22 moritz_ sets mode: +ooo masak diakopter [particle]
diakopter miscommunication (by answering the wrong question) 15:22
15:22 moritz_ sets mode: +vvvv hugme dalek pugssvn p6eval, moritz_ sets mode: +vv _ilbot2 ilogger2
masak I still don't see in which way you mis-interpreted my question. 15:23
diakopter I read it too quickly.
and didn't think enough before answering.
masak I do that all the time :) 15:24
diakopter I wasn't trying to blame you for writing an unclear question.
please don't feel that.
masak I don't.
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:26 Guest59659 left
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 :-)
diakopter I doubt IronRuby has that limitation
moritz_ or an array
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.
I think I'm usually getting to have severe doubts somewhere up around 9 parameters :) 15:29
ash_ yeah, having 9 or more parameters seems like you might want to split the function up 15:30
masak indeed.
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. :-)
moritz_ masak: uhm, named arguments can easily exceed 9. Also slurpy params.. 15:32
masak moritz_: precisize 'can' here.
I'm talking about what's advisable.
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
ash_ with a slurpy i can exceed 9, but with named, i don't think i have exceeded 9 before... (personally)
masak moritz_: sorry, what? 15:34
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:36 arthur-- left 15:40 iblechbot left, Guest59659 joined 15:47 rurban left, nihiliad left
dalek kudo: fe6ca94 | masak++ | docs/release_guide.pod:
[release_guide.pod] vacant slots more visually distinct
15:52
15:55 Guest59659 left 15:58 Guest59659 joined
dalek kudo: ba591c9 | masak++ | docs/release_guide.pod:
[release_guide.pod] one more slot
15:58
15:59 rurban joined 16:02 mberends joined, justatheory joined 16:03 Guest59659 left 16:04 Guest59659 joined
mberends is ready to give up trying to master Win32::PerfLib. (and still types PerlfLib almost every time) 16:07
it's easier to relent and add a dependency to one of the many non-core modules that takes away the pain. 16:10
16:10 IllvilJa left
masak swimming & 16:13
16:13 masak left 16:14 NordQ joined
diakopter mberends: if you're on windows already... why not just inline a bunch of vbs 16:15
:P
mberends diakopter: thanks! :P
16:16 stephenlb joined
mberends diakopter: your recent perlesque updates rock! 16:16
16:17 Guest59659 left
mberends misread 'perlesquel' as 'perlsequel' and thought it was a pun about perl6-ng or a database... 16:17
diakopter hee 16:18
mberends diakopter: I'll volunteer to do some of the documenting.
diakopter my $a = BigInteger.Create('3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026'); say($a); say($a * $a);
perlesque: my $a = BigInteger.Create('3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026'); say($a); say($a * $a); 16:19
p6eval perlesque:
..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
diakopter perlesquel: .
p6eval perlesquel:
..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
diakopter perlesquel: .
p6eval perlesquel:
..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
16:19 Guest59659 joined
diakopter perlesquel: . 16:19
p6eval perlesquel:
..OUTPUT«3235323523523354874987209700912903834017509201982340918538980239850897209304972093470293804702937502938402706111092109076676677528019479026␤1046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921…
diakopter revels
moritz_ diakopter: woah, stop that
diakopter ok
16:20 bbkr joined 16:22 jhuni left 16:24 Guest59659 left 16:25 Guest59659 joined
Juerd But can anyone confirm that this HugeInteger is correct? :) 16:27
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
16:28 IllvilJa joined
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()
bbkr "abc" - unique characters. "abcb" - not "OK" because "b" is twice 16:30
16:30 ejs joined 16:31 envi^home left
bbkr rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq.join.chars ~~ $_.chars 16:31
p6eval rakudo ba591c: OUTPUT«OK␤»
16:31 rgrau joined
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)␤»
colomon :\
jnthn chars
bbkr comb() is slightly shorter, but stil it's way too long for PERL :)
colomon rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq.elems ~~ $_.chars
p6eval rakudo ba591c: OUTPUT«OK␤»
jnthn rakudo: $_ = "abcd"; say "OK" if $_.comb(/./).uniq == $_.chars
p6eval rakudo ba591c: OUTPUT«OK␤»
colomon jnthn++ # noticing stupid cut-n-paste error
16:33 rjh left
jnthn Because a list numifies to the number of elements and == enforcces numeric context, you don't need the .elems. 16:33
16:33 Guest59659 left
jnthn also 16:33
moritz_ and you can even omit the $_ from $_.
jnthn yes, that :)
rakudo: $_ = "abcd"; say "OK" if .comb(/./).uniq == .chars 16:34
p6eval rakudo ba591c: OUTPUT«OK␤»
bbkr jnthn: cool one :) i'm thinking about some smart regexp using lookahead
moritz_ rakudo: $_ = "abcd"; say "OK" if $_.comb.uniq.join eq $_
p6eval rakudo ba591c: OUTPUT«OK␤»
moritz_ rakudo: $_ = "abcd"; say "OK" if .comb.uniq.join eq $_
p6eval rakudo ba591c: OUTPUT«OK␤»
mberends omit the (/./) as well
moritz_ rakudo: say "OK" unless 'abcd' ~~ /(.).*$0/
p6eval rakudo ba591c: OUTPUT«OK␤»
moritz_ rakudo: say "OK" unless 'abcda' ~~ /(.).*$0/
p6eval rakudo ba591c: ( no output ) 16:35
16:35 alester left
jnthn cute 16:35
moritz_ rakudo: say "OK" if 'abcda' !~~ /(.).*$0/ # if ... ! is actually shorter than 'unless' 16:37
p6eval rakudo ba591c: ( no output )
16:37 arthur-_ joined
moritz_ rakudo: say "OK" if 'abcd' !~~ /(.).*$0/ 16:37
p6eval rakudo ba591c: OUTPUT«OK␤»
bbkr wow, thanks. i was trying that, but couldn't find that \1 changed to $0. 16:38
16:38 hicx174 left
jnthn is ever happier that it akshually works in Rakudo. :-) 16:39
bbkr this will do the trick for search.cpan.org/~bbkr/Integer-Tiny-...er/Tiny.pm rewrite to P6. thanks again!
smash_ hmm, is it me or last parrot .deb package was for version 0.7.0 ? 16:40
moritz_ std: /\1/ 16:41
p6eval std 30407: OUTPUT«===SORRY!===␤Unrecognized regex backslash sequence at /tmp/dO71VYoPEA line 1:␤------> /\⏏1/␤Check failed␤FAILED 00:01 110m␤»
jnthn rakudo: /\1/
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)␤»
jnthn aww.
LTA. 16:42
rakudo: say "but \1 should get caught..."
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)␤»
jnthn Guess the regex parser needs a tweak. :-)
TimToady well, the regex message should probably catch \1 and tell them about $0
jnthn That'd be EMA. 16:43
moritz_ TimToady: I'd implement that, but I need to run..
diakopter starts
TimToady: does gimme5 strip out type annotations? if so, can I start adding type annotations to STD.pm6 16:44
jnthn Ugh. That'll probably make it a bit harder for Rakudo to copy/paste from STD, fwiw. Minor inconvenience. 16:45
diakopter for lexicals & contextuals 16:46
TimToady testing an EMA patch 16:47
16:48 Chillance_ joined 16:49 Chillance_ left 16:50 Chillance joined 16:51 espadrine joined 16:54 M_o_C joined 16:55 espadrine left, alester joined 16:57 NordQ left, NordQ joined 16:59 NordQ left, NordQ joined 17:00 dakkar left
pugssvn r30408 | lwall++ | [STD] EMA message on /\42/ 17:01
17:04 NordQ left, NordQ joined
pugssvn r30409 | lwall++ | [STD] don't include attempted octals like \040 17:06
TimToady afk &
17:08 daemon joined
colomon pmichaud, etc: Any thoughts on a hackathon to coincide with YAPC:NA? 17:09
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
smash_ and what about YAPC::EU ? 17:13
PerlJam [particle]: Could Hague funding be used?
[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...
CokeBot9000 (hackathon at YAPC::NA) +1 on that. someone should ping the coordinators about space and time.
[particle] i'll contact karen, i'd like to book travel myself
i imagine the hackathon would either be weekend before, during tutorials (thu-fri), or weekend after
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.
CokeBot9000 weekend after is probably the worst slot. 17:16
17:16 nihiliad joined 17:19 NordQ left, NordQ joined 17:21 NordQ left, NordQ joined 17:23 NordQ left, NordQ joined
diakopter rurban: how do you know? 17:24
rurban Just guessing. I got a report lately that STD.pm does no compile anymore. And the last errors were octals 17:25
17:25 alester left
rurban In my case unsupported magic octals 17:26
17:30 NordQ left, NordQ joined, smash_ left 17:32 rv2733 joined 17:34 NordQ left 17:35 NordQ joined 17:37 NordQ left, NordQ joined, ash_ left 17:38 mj41 joined 17:41 NordQ left, NordQ joined 17:44 NordQ left, NordQ joined 17:47 alester joined 17:48 molaf left, charsbar_ left 17:49 charsbar joined 17:50 cotto_w0rk is now known as cotto_work, mj41 left 17:55 mj41 joined 18:00 justatheory left 18:07 NordQ left 18:08 justatheory joined 18:30 alester left 18:32 slavik joined 18:39 pmurias joined
pmurias diakopter: you should use double quotes instead of single ones because double quotes don't handle all the backslash escapes 18:40
18:47 nihiliad left 18:48 iblechbot joined 18:54 tri1 joined
diakopter pmurias: I'll add the double quote version too. I made the single-quote one accept backslash-escaped single-quotes though. 18:58
but I neglected to unescape them in the resulting string yet :) 18:59
perlesque: say('hi\'hi')
p6eval perlesque: OUTPUT«hi\'hi␤»
diakopter perlesquel: .
p6eval perlesquel: OUTPUT«hi\'hi␤real 0.04␤user 0.03␤sys 0.00␤»
18:59 masak joined
diakopter q/ 18:59
masak ahoy, #perl6.
diakopter: \h 19:00
pmurias diakopter: what's the point of having single quotes when you have double ones
?
19:00 M_o_C left
diakopter as moritz_ pointed out, b/c double quotes likely won't ever have interpolation 19:04
actually though, that wouldn't make it a more precise subset
pmurias being a subset is only important to the extent that it helps memorising syntax 19:05
19:06 tri1 left
diakopter pmurias: good point; true :) 19:06
I keep forgetting it's just an assembly language ;)
pmurias hm, how can i checkout a copy of sprixel i can commit to? 19:07
diakopter see code.google.com/p/csmeta/source/checkout 19:08
what are you committing :P
araujo now wants to test how fast compile rakudo with 8GB Ram 19:09
pmurias diakopter: tests at first
19:10 ash_ joined
pmurias hates the fact that google chrome can't handle a lot of google sites 19:11
19:11 molaf joined
masak it doesn't? 19:11
masak never had any problems
diakopter pmurias: what kind of test harness? 19:12
pmurias prove 19:13
diakopter heh; ok
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
diakopter that, and some parse failures throw red herring exceptions
since it's a one-pass "JIT"ter (emitting while parsing) 19:15
(and so backtracking too far causes problems)
another good reason to make it only an assembly language ;) 19:16
19:16 masak left
diakopter (so all input is much more likely valid) 19:16
19:16 SmokeMachine left
pmurias diakopter: why do you use your own parser generator? 19:17
diakopter why not?
are there other MIT/BSD licensed ones? 19:18
that, and theoretically it's flexible enough to support all of STD/Cursor's semantics
eventually. 19:19
should push come to shove. ;)
pmurias the error messages are uninfromative and misleading 19:20
diakopter like what?
(see what I wrote above about the errors)
(did you?)
pmurias perlesque: 1 19:21
p6eval perlesque: ( no output )
pmurias perlesque: if (1) {1}
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
..(System.IFormatPr…
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
diakopter pmurias: it's strongly typed
conditions must be CLR bool
not int
otoh, I could inject the coercion at compiletime. 19:22
19:22 molaf left
diakopter perlesque: if (1<2) {1} 19:23
p6eval perlesque: ( no output )
pmurias i'm not sure doing stuff implicitly is a good idea
diakopter me neither
unless it will be extremely helpful for the std conversion 19:24
certainly it needs bool literals
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. :(
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. =-)
diakopter I likes me my GUIs.
CokeBot9000 diakopter: what os?
oh, guessing win based on the DLR stuff. =-) 19:28
ash_ github now lets you checkout git repos with svn
diakopter win7 64-bit, visual studio 2010
ash_ they introduced it on april 1st, but it actually works
diakopter CokeBot9000: perlesque doesn't actually use the DLR, but I did steal its BigInteger and Complex classes
ash_ github.com/blog/626-announcing-svn-support 19:29
pmurias ash_: checking out git repos with svn seems wrong
diakopter since they're MS-PL licensed (basically Apache)
ash_ so you can access it via git or svn, without using git-svn
pmurias the svn cli client is trash
arnsholt pmurias: I've never really had any trouble with it 19:30
moritz_ std: /\1/
p6eval std 30409: OUTPUT«===SORRY!===␤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:␤------> /\1⏏/␤Check failed␤FAILED 00:01 110m␤»
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
pmurias git-svn is very nice
arnsholt: you must be very lucky i always used to encouter bugs in it
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
But Git is quite nice. As long as it doesn't do something I haven't seen before
When that happens, all bets are off
19:33 jaldhar_ joined 19:35 ejs left
moritz_ svn usually works quite well for me 19:35
19:35 _jaldhar left
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
moritz_ when you svn mv'ed a file, you couldn't do any further renaming/deleting/whatever before committing
there are still occasional bugs when svn informs you that some files are missing, and 'svn up' doesn't restore them 19:37
pmurias diakopter: see failing tests i commited 19:41
19:42 hercynium left 19:43 SmokeMachine joined 19:49 ShaneC joined 19:50 ShaneC left
dalek p-rx: 7662467 | pmichaud++ | src/Regex/Cursor.pir:
Remove 'pos' register fossil noticed by muixirt++ .
19:51
19:58 gurjeet joined
mberends perl6: say $*PID; 20:01
p6eval rakudo ba591c: OUTPUT«0␤»
..elf 30409: OUTPUT«20073␤»
..pugs: OUTPUT«␤»
gurjeet moritz_: Is ilbot under some specific licence? I wish to use it on #postgresql . 20:02
moritz_ gurjeet: "same terms as perl itself"
gurjeet: I can put it into #postgres myself (and run on irclog.perlgeek.de), or you can set up your own instance
gurjeet: whatever you prefer 20:03
gurjeet Well, I wanted to setup my own, but I need to ask the admins at #postgres first
moritz_ sure
20:03 uniejo left 20:04 Kyril joined
gurjeet The license stuff is not mentioned anywhere in sources, is it? 20:04
moritz_ gurjeet: github.com/moritz/ilbot for the code... there's a home at moritz.faui2k3.org/en/ilbot
20:04 hghgd_ joined
moritz_ gurjeet: uhm, dunno... if not I should change that 20:04
gurjeet Yeah, clarity on license is a must I'd say for any open-source project 20:05
Thanks for listening
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 :)
moritz_ gurjeet: anyway, there's no installer for it yet... if you encounter problems, feel free to /msg me 20:07
20:07 hghgd left
gurjeet Sure.. will do 20:07
20:12 Exodist left
moritz_ gurjeet: added license. 20:14
dalek p-rx: 72d4125 | pmichaud++ | build/ (2 files):
Bump PARROT_REVISION to latest Parrot, and switch Parrot's
20:14 hercynium joined
gurjeet moritz_: Thanks.. thats helpful 20:16
dalek kudo: 346e76d | (Martin Berends)++ | t/spectest.data:
[t/spectest.data] remove S02-magicals/pid.t (1 test) because is was crashing instead of passing and $*PID is NYI
20:17 nihiliad joined 20:19 _buno_ joined
pugssvn r30410 | mberends++ | [S02-magicals/pid.t] change an incorrect global $PID to $*PID, and rename $pugs to $perl6_executable 20:19
20:20 Chillance left 20:27 nihiliad left 20:28 nihiliad joined
diakopter pmurias: if.t is wrong 20:41
it's not a Perl 6 implementation
20:41 alester joined
diakopter it's an assembly language that's perlish. 20:41
function calls need parens. 20:42
pmurias diakopter: why is if.t wrong?
fixing 20:43
diakopter: they still fail 20:44
diakopter it's still wrong 20:45
double quotes.
pmurias i'll try to change the awfull error message 20:47
diakopter :| 20:48
please don't... it will take lots of work
it's not for human entry
errors aren't important at all
likewise for comments 20:49
I didn't intend to implement comments at all
pmurias comments are important 20:50
diakopter for generated code? I suppose I could see that.
moritz_ but it's humans that write the compilers that emit the code
and that need to debug the generated code too
pmurias it's sometimes helpfull to insert comments to help reading the generated code 20:51
diakopter ok :) 20:52
I'll port them from jsmeta's grammar
$work_meeting&
pmurias so that you can see what a given bit of code is generated from 20:53
20:59 ReiniUrban joined 21:00 rurban left 21:01 ReiniUrban is now known as rurban 21:02 alester left 21:05 alester joined 21:08 SmokeMachine left, wknight8111 joined 21:12 _buno_ left 21:16 gurjeet left 21:25 nihiliad left, nihiliad joined 21:27 alester left 21:30 SmokeMachine joined 21:31 iblechbot left, ruoso left
ash_ woot, perl 5.12 is now in macports 21:33
21:48 [particle] left 21:52 takadonet left 21:53 [particle] joined 21:55 hghgd_ is now known as h, h is now known as Guest52061 21:57 SmokeMachine left 22:01 jhuni joined, hercynium left 22:13 pmurias left 22:14 Kyril left
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)␤»
jnthn rakudo: sub foo(&foo = &foo) {}; foo
p6eval rakudo 346e76: ( no output )
jnthn rakudo: sub foo(&foo = &foo) {say &foo}; foo
p6eval rakudo 346e76: OUTPUT«Any()␤»
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)␤»
jnthn heh 22:30
I think we forget to type check default values. :=)
diakopter :|) 22:31
rakudo: my %hash = sub (){},,,,,,,,,,,,,,1; say %hash 22:34
p6eval rakudo 346e76: OUTPUT«_block48 1␤␤»
22:41 bloonix left 22:42 bloonix joined 22:44 hercynium joined
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)␤»
ash_ hmmm
which one got 0 but expected 1?
m6locks lol
the last one? 22:47
ash_ no, i bet it was the sub foo(&foo = &foo) <--- that second foo
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)␤»
ash_ hmm
nope, guess not
jnthn rakudo: my($a) = 5; say 'alive' 22:52
p6eval rakudo 346e76: OUTPUT«alive␤» 22:53
ash_ rakudo: sub foo(&bar = &foo) { say &bar }; foo; 22:54
p6eval rakudo 346e76: OUTPUT«foo␤»
ash_ rakudo: sub foo(&bar = &foo) { say bar }; foo; # recursion, woot?!
p6eval rakudo 346e76: OUTPUT«maximum recursion depth exceeded␤current instr.: '_block42' pc 326 (EVAL_1:134)␤»
22:55 ash_ left
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
jnthn rakudo: say Rat.new.Str 23:00
p6eval rakudo 346e76: OUTPUT«0␤»
23:01 clintongormley left
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)␤»
jnthn rakudo: (sub { say "hello" }).()
p6eval rakudo 346e76: OUTPUT«hello␤»
jnthn rakudo: sub { say "hello" }.()
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:03 nihiliad left
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)␤»
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 left, orafu joined 23:13 nihiliad joined 23:19 envi^home joined 23:24 meppl left 23:29 daemon left
jnthn Oh hey, my patch for hash slices removes more code than it adds. :-) 23:29
23:30 rgrau left
Juerd That's nice :) 23:30
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
23:31 Exodist joined
dalek kudo: 35bcd52 | jonathan++ | (9 files):
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
kudo: ba19436 | jonathan++ | t/spectest.data:
Turn on hash_ref.t.
jnthn Mostly because I replaced a wobload of PIR with a little bit of Perl 6. :-)
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.
The code-path for just indexing a single hash element hasn't changed though. 23:34
Juerd I see
jnthn Well, it's not that the Parrot one couldn't. 23:35
It's just that it doesn't.
23:35 kensanata joined
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)␤»
jnthn rakudo: say (abs(412).WHAT) 23:39
p6eval rakudo 346e76: OUTPUT«Int()␤»
jnthn has closed several tickets and probably given 4-5 to moritz++ that can be closed after spectests. :-) 23:41
rakudo: class A { method postcircumfix:<{ }>() {} }; my &r = {;}; if 0 { if 0 { my $a } } 23:43
p6eval rakudo 346e76: ( no output )
23:48 alester joined