»ö« | 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«ch» | ||
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«2real 0.13user 0.05sys 0.01» | ||
diakopter | perlesquel: . | ||
p6eval | perlesquel: OUTPUT«2real 0.05user 0.04sys 0.01» | ||
diakopter | perlesquel: . | ||
p6eval | perlesquel: OUTPUT«2real 0.05user 0.04sys 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«10000000real 0.85user 0.34sys 0.25» | ||
diakopter | perlesquel: . | ||
p6eval | perlesquel: OUTPUT«10000000real 0.63user 0.32sys 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.73user 6.27sys 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.51user 6.28sys 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«323532352352335487498720970091290383401750920198234091853104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609» | ||
diakopter | perlesquel: . | ||
p6eval | perlesquel: OUTPUT«323532352352335487498720970091290383401750920198234091853104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609real 0.08user 0.07sys 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«323532352352335487498720970091290383401750920198234091853104673183018635762051195880641675025911077541657140975340976318439009451886396769037962956991911264692783640973609» | ||
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«10» | ||
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«11» | ||
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«8796916888746296» | ||
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 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
alpha 30e0ed: OUTPUT«4740509414053647405094140536» | |||
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«10» | ||
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«11» | ||
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 11current 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 0current 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 namespaceCode()» | ||
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 11current 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«32353235235233548749872097009129038340175092019823409185389802398508972093049720934702938047029375029384027061110921090766766775280194790261046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921… | |||
diakopter | perlesquel: . | ||
p6eval | perlesquel: | ||
..OUTPUT«32353235235233548749872097009129038340175092019823409185389802398508972093049720934702938047029375029384027061110921090766766775280194790261046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921… | |||
diakopter | perlesquel: . | ||
p6eval | perlesquel: | ||
..OUTPUT«32353235235233548749872097009129038340175092019823409185389802398508972093049720934702938047029375029384027061110921090766766775280194790261046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921… | |||
16:19
Guest59659 joined
|
|||
diakopter | perlesquel: . | 16:19 | |
p6eval | perlesquel: | ||
..OUTPUT«32353235235233548749872097009129038340175092019823409185389802398508972093049720934702938047029375029384027061110921090766766775280194790261046731830186357620511958806416750259110775416571409753415573980637392440108758122884245953868577279689790767933051570883784793962261481603921… | |||
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 failedFAILED 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\'hireal 0.04user 0.03sys 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 failedFAILED 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 1current 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 1current 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 exceededcurrent 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::foocurrent 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 11current 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 1current 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
|