»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
00:03 patspam joined 00:06 snarkyboojum joined
avar I can't build rakudo, it fails with this: pastie.org/828145 00:09
jnthn wknight8111: I'd guess the April release. 00:10
avar: Hmm...looks like Parrot fails to build. :-/
wknight8111 jnthn: ok, thanks
jnthn odd though...I don't remember seeing that error here. 00:11
wknight8111: The aim is still April for R*, and I doubt we'd pick earlier in the month or off the usual Thursday without some good reason.
avar jnthn: It also opened up 2 perldoc pages interactively 00:12
jnthn ...
Wow
Maybe ask on #parrot :-/
or "make realclean" in the Parrot checkout and try again.
But I thought --gen-parrot did that, though. 00:13
wknight8111 jnthn: got some APIs in parrot getting renamed soon, I don't want to drop that bomb tto close to a release for you
jnthn wknight8111: Yeah, I saw
wknight8111: Twice as much typing to create a PMC now! :-P
TimToady pausenclown_: you're welcome :)
wknight8111 jnthn: was necessary for standards. I'm tired of parrot looking like amateur work 00:14
pausenclown_ TimToady: .oO( digital shizophrenia :-) 00:16
jnthn wknight8111: Ah yes, I agree with the motivation. :-)
OK, sleep time. 00:18
o/
TimToady \o
pmichaud my plan is week following april release 00:22
rakudo #28 will be released Apr 22, Rakudo * sometime in the week that follows 00:23
(Parrot 2.3.0 releases on Apr 20, iirc) 00:24
00:24 rgrau left, maerline joined, maerline left
snarkyboojum does current Rakudo build with perl Configure.pl --gen-parot ? 00:28
parrot even 00:29
because I currently get an error trying to build parrot - "Unable to locate parrot_config"
diakopter snarkyboojum: I had to run make clean under parrot/ 00:30
snarkyboojum I started from scratch - i.e. removed git repo, and cloned a new git repo etc 00:31
diakopter oh
snarkyboojum bugger :|
diakopter maybe just try running it again?
snarkyboojum will do :)
diakopter (without make clean)
snarkyboojum bugger - fell over again with the same error 00:35
gotta be something wrong on my end I guess - will have poke around 00:36
would a previously installed parrot in /usr/local/bin stuff things up? 00:39
*clueless* :)
pmichaud previously installed parrots have been known to cause problems, yes. 00:42
sometimes parrot grabs the install copy before any local copy.
00:43 brunov joined
snarkyboojum ah error is misleading methinks because Configure.pl doesn't check if the parrot build works or not.. so just falls through and can't find a parrot_config 00:58
(or something) :)
pugs_svn r29760 | lwall++ | [S04] bring gather/take description more in line with modern realities 01:02
01:05 wolf2k_ubuntu joined 01:08 hercynium joined 01:11 avar joined
wknight8111 pmichaud: ping 01:13
01:14 avar left, cognominal joined 01:15 avar joined
lue (The ping-pong ball is nowhere to be found, having soared miles and miles beyond the horizon) 01:18
01:23 snarkyboojum left 01:29 snarkyboojum joined 01:31 quester joined 01:36 snarkyboojum left 01:43 pausenclown_ left 01:45 snarkyboojum joined
lue everyone here: ping 01:48
snarkyboojum so if I have a parrot build error as part of the rakudo built, would I ask in #parrot? 01:56
s/built/build/
lue what's the specific build error? 01:57
snarkyboojum just lost it ;) will build again 01:59
lue alright. (meanwhile, where is everyone?) 02:00
snarkyboojum couldn't find a lib, looking in rakudo/blib which doesn't exist -lparrot or some such.. will get better info :)
lue maybe you should redownload parrot thru configure...? 02:03
snarkyboojum checking it out of SVN again as part of rakudo configure atm 02:04
lisppaste3 snarkyboojum pasted "parrot build error as part of rakudo build" at paste.lisp.org/display/95091 02:09
snarkyboojum there is a rakudo/parrot/blib but not a rakudo/blib, so it's not finding the library.. dunno :) 02:11
02:11 REPLeffect left
lue It seems to be just a simple download-parrot-thru-svn problem. If that's not it, then I can't help :/ 02:13
I barely know how it works myself.
02:13 REPLeffect joined
snarkyboojum why a simple download parrot thru svn problem? 02:15
lue I mean a fix it by downloading thru configure.
download to fix. 02:16
snarkyboojum ah - that works ok - and the build of parrot starts - no errors to speak doing the checkout via rakudo configure
02:16 wknight8111 left
snarkyboojum "to speak of" 02:16
lue Hey, if you want to laugh at computer-based idiots, go to www.rinkworks.com/stupid 02:18
I'm reading it right now. Very funny. 02:19
02:28 REPLeffect left 02:35 meppl left
diakopter pnog 02:44
gnop
lue pogn
pugs_svn r29761 | colomon++ | [t/spec] Use 2.sqrt instead of a hard-coded square root of two value. Change comment to reflect what is actually being tested now. 02:46
r29762 | colomon++ | [t/spec] Refudge tests for master.
02:47 colomon joined
lue rakudo: say "this".say; #just because 02:47
p6eval rakudo ed95e2: OUTPUT«this␤1␤»
lue rakudo: say "this".say;
p6eval rakudo ed95e2: OUTPUT«this␤1␤»
dalek kudo/master: 0daf89b | (Solomon Foster)++ | src/core/Any-num.pm:
Tweak rand not to complain about "too many arguments" when you don't actually pass it any arguments. Implement srand.
kudo/master: 73bf5cc | (Solomon Foster)++ | src/core/Any-num.pm:
Convert Any.atan2's $x argument to Num as well.
lue rakudo: die("like it was no thing"); 02:51
p6eval rakudo ed95e2: OUTPUT«like it was no thing␤current instr.: '&die' pc 15850 (src/builtins/Junction.pir:279)␤»
colomon rakudo: say (-1 + -1i).polar 02:52
p6eval rakudo ed95e2: OUTPUT«1.4142135623731-2.35619449019234␤»
colomon alpha: say (-1 + -1i).polar
p6eval alpha 30e0ed: OUTPUT«1.4142135623731-2.35619449019234␤»
colomon rakudo: say -1+1i 02:55
p6eval rakudo ed95e2: OUTPUT«-1 + -1i␤»
colomon ouch
alpha: say -1+1i
p6eval alpha 30e0ed: OUTPUT«-1 + 1i␤»
02:59 dugg left
lue how do you square numbers in perl? 02:59
03:00 joseweb joined
joseweb hi i wanna begin whit perl 6 03:00
go|dfish lue: number ** 2 03:05
lue thought so. Thought it might be different. 03:06
go|dfish joseweb: then do it! 03:07
lue rakudo: say (3i)**2; #should be -9
p6eval rakudo ed95e2: OUTPUT«-9 + 1.10218211923262e-15i␤»
lue Oi.
rakudo: say (3*sqrt(-1))**2
p6eval rakudo ed95e2: OUTPUT«NaN␤»
lue Interesting error. I'll have to (try to) fix it after homework. 03:11
colomon lue: Ot' 03:13
It's not an error.
03:13 quester left
colomon It's a feature. 03:13
rakudo: say sqrt(-1)
p6eval rakudo ed95e2: OUTPUT«NaN␤»
colomon rakudo: say sqrt(-1+0i)
p6eval rakudo ed95e2: OUTPUT«0 + 1i␤»
colomon sqrt doesn't go into complex numbers unless you specifically ask it to by passing it a complex number. 03:14
03:14 maerline joined
lue well, 3i squared should end up -9 (that's the original error) 03:14
colomon no, that's correct as well.
what you're interpreting as being wrong is just floating point noise.
the value it gave you is -9 to 14 decimal places. 03:16
lue but shouldn't √(-1)**2 = -1 ?
colomon on the other hand,
that's not how floating point numbers work. 03:17
If you're really worried about it for integral powers, you can say
rakudo: say 3i * 3i;
p6eval rakudo ed95e2: OUTPUT«-9 + 0i␤»
colomon but that will be inefficient if you go much beyond squares, and doesn't allow for fractional or negative powers. 03:18
joseweb thanks 03:19
lue ah well, I'll worry about it if I need to.
colomon rakudo: say -1+1i
p6eval rakudo ed95e2: OUTPUT«-1 + -1i␤»
colomon that's definitely wrong, on the other hand.
03:19 joseweb left
colomon It's some sort of parsing error. 03:19
lue On a calculator (TI-84 for example) complex numbers are a great way to store two numbers as one :)
Especially concerning limited space on such calculators. 03:20
03:20 maerline left, maerline joined
maerline rakudo: say [\+] 7,8,99; 03:20
p6eval rakudo ed95e2: OUTPUT«You can't backslash that at line 11, near "+] 7,8,99;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
lue I can't ? :( 03:22
colomon maerline: rakudo master doesn't have [+] or [\+] at the moment.
03:22 cj__ joined
maerline ah 03:22
colomon alpha: say [\+] 7,8,99
03:22 athomaso1 joined, LionMade1fLions joined
p6eval alpha 30e0ed: OUTPUT«say requires an argument at line 10, near " [\\+] 7,8,"␤in Main (file src/gen_setting.pm, line 2593)␤» 03:22
colomon okay, that surprises me.
maerline alpha: say [+] 7,8,99; 03:23
p6eval alpha 30e0ed: OUTPUT«114␤»
bkeeler what is the backslash supposed to do there?
colomon bkeeler: I believe it is supposed to return you all the partial results as well, as a list.
maerline 15, 114 03:24
colomon I've never actually used that syntax, so I could be wrong. :)
maerline pugs: say [\+] 7,8,99;
p6eval pugs: OUTPUT«715114␤»
colomon In the current Rakudo master, metaoperators are still very very limited. Hopefully we'll get them up and running again in the next few weeks.
03:25 cognominal left
maerline std: say [\+] 7,8,99; 03:25
p6eval std 29762: OUTPUT«ok 00:01 109m␤»
maerline rakudo: 77.say; 03:26
p6eval rakudo ed95e2: OUTPUT«77␤»
colomon TimToady, pmichaud: one of you guys out there? I'm not sure I'm up to figuring out how to patch Rakudo's parser for this bug. 03:27
bkeeler The complex one? 03:28
colomon yes.
03:28 LionMadeOfLions left, cj left
lue aren't all bugs complex in their own right? :D 03:28
colomon lue: no, some are dead simple. :)
token number:sym<complex> { <re=.numish>'+'<im=.numish>'\\'?'i' | <im=.numish>'\\'?'i' } 03:29
seems like this parses 1+1i as a single Complex, and 1-1i as an Int minus a Complex? 03:30
Actually, I guess that might suggest a solution, don't know how kosher it is.
lue Let's consult The Gospel According to Camel 03:31
...And in the New Testament, The Gospel According to Camelia 03:33
03:35 stephenlb left 03:36 maerline left
pugs_svn r29763 | colomon++ | [t/spec] Make the atan2 Rat tests a little smarter (catching a (now-fixed) Rakudo bug in the process). 03:41
colomon Okay, I've got all today's work checked in, time for bed.
lue goodnight, colomon. o/ 03:42
dalek kudo/master: 5fceb7e | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Take out the <re=.numish>'+'<im=.numish>'\\'?'i' branch of sym<complex>.
03:45
kudo/master: 6c478f2 | (Solomon Foster)++ | t/spectest.data:
Turn on rand.t and polar.t.
03:47 ShaneC left 03:54 patspam left 03:55 patspam joined 04:13 ash__ joined
diakopter std: &asdfasdf 04:17
p6eval std 29763: OUTPUT«ok 00:02 125m␤»
diakopter std: &asdfasdf &asdfasdf
p6eval std 29763: OUTPUT«Undeclared routine:␤ 'asdfasdf' used at line 1␤ok 00:01 126m␤»
04:22 maerline joined, maerline left, maerline joined 04:25 maerline left 04:28 arlinius joined
diakopter std: &asdfasdf(&asdfasdf) 04:35
p6eval std 29763: OUTPUT«ok 00:01 125m␤»
04:35 Trashlord joined
snarkyboojum worked out why Parrot wasn't building on my OS X machine - turns out that putting my local rakudo git repo in my PATH was causing Parrot configure to use that the lib directories to build from - even when I was building from a completely separate parrot svn copy 04:38
most bizarre and incredibly difficult to debug (with my skills) :|
04:42 xomas left
snarkyboojum I didn't trace through the whole parrot configure process but something to do with the steps in inter::libparrot 04:46
so by simply removing the rakudo git repo path from $PATH parrot build properly from the rakudo configure script 04:47
04:50 awwaiid joined, ggoebel left
snarkyboojum FWIW - have also summarised the issue in #parrot 04:53
04:58 Maddingu1 joined 05:00 Schwern left 05:01 brunov left 05:04 hercynium left, hercynium joined, hercynium left, hercynium joined
diakopter rakudo: my &say = ::say; &say(&say) 05:07
p6eval rakudo ed95e2: OUTPUT«Null PMC access in can()␤current instr.: 'perl6;Mu;!STORE' pc 1921 (src/builtins/Mu.pir:387)␤»
diakopter yay! more checks needed! </sarcasm><sarcasm> 05:08
05:10 ash__ left 05:39 wolf2k_ubuntu left
lue diakopter: √√√√√√√√√√√√√√ (hope it's enough) :D 05:46
Trashlord haha 05:55
TimToady well, there's always xx * if you need it 06:00
lue the third level on this keyboard is fun: µm ¾full TradeMark™ Register® 06:02
06:13 mssm joined 06:26 lue left 06:40 Su-Shee joined
Su-Shee good morning 06:42
06:46 ihrd joined 06:47 ihrd left 06:50 johnz joined 07:15 uniejo joined 07:21 payload joined 07:25 kaare joined 07:26 kaare is now known as Guest5053 07:27 justatheory left 07:57 clausi joined 08:05 k23z__ joined 08:18 jaldhar joined, iblechbot joined 08:21 patspam left 08:25 constant joined, constant left, constant joined 08:27 meppl joined 08:44 gbacon left 08:45 gbacon joined
moritz_ good morning 08:55
08:56 Maddingu1 is now known as Maddingue 09:00 jferrero joined 09:01 Schwern joined
mathw o/ 09:01
09:07 dakkar joined
colomon \o 09:09
09:10 payload left
frettled TimToady++ (S04 gather description) 09:33
And now it is a better morning that it was. Good morning to y'all!
09:34 masak joined
masak good mid-morning, #perl6. 09:34
colomon o/
masak I need help with some Japanese again. :) twitter.com/konnoblog/status/9215768108
all I get is that the person is dissatisfied with the lack of a '->=' operator in Perl 6. 09:36
lestrrat "I just used #Perl6 (tag) to get some attention. Why is it that no programming language (including perl) can do the equivalent of $a ->= $b ($a = $a->$b) ? that is my question"
masak lestrrat: thank you. 09:37
well, Perl 6 can.
masak puts together an example
moritz_ it's just spelled .=
lestrrat ducks, cause he doesn't really get what the guy was talking about anyway
moritz_ rakudo: my $name = 'moritz'; $name.=ucfirst; say $name
p6eval rakudo ed95e2: OUTPUT«Moritz␤»
moritz_ lestrrat: calling a method and assigning the result to the same variable, in one go 09:38
lestrrat aaaah
gotcha
masak alpha: class A { method foo() { say "OH HAI" } }; my A $a .= new; my $b = "foo"; $a.="$b"
p6eval alpha 30e0ed: OUTPUT«OH HAI␤»
masak \o/
moritz_ in Perl 5 you call methods with ->, so ->= seemed logical to him/her
masak that's the equivalent.
colomon are you sure he wasn't looking for a way to turn $a into the pair $a -> $b ?
masak hm, I shouldn't use say within the method; 09:39
alpha: class A { method foo() { "OH HAI" } }; my A $a .= new; my $b = "foo"; $a.="$b"; say $a
p6eval alpha 30e0ed: OUTPUT«OH HAI␤»
masak std: sub loop() { say "OH HAI" }; loop() 09:41
p6eval std 29763: OUTPUT«ok 00:01 109m␤»
masak rakudo: sub loop() { say "OH HAI" }; loop()
p6eval rakudo ed95e2: OUTPUT«Whitespace required after 'loop' at line 11, near "()"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak submits rakuodbug 09:42
09:42 cognominal joined
masak rakudo: class {} 09:42
p6eval rakudo ed95e2: OUTPUT«Invalid namespace key in set_pmc_keyed␤current instr.: 'perl6;ClassHOW;new' pc 3418 (src/gen/Attribute.pir:473)␤»
masak submits rakudobug
rakudo: say (!!0).WHAT
p6eval rakudo ed95e2: OUTPUT«Int()␤»
masak submits rakudobug 09:43
moritz_ masak: you submitted the first already
colomon I thought jnthn++ fixed <!> yesterday.
moritz_ erm, the one with anonymous classes
masak ok.
thanks.
colomon rakudo: say (!0).WHAT 09:44
p6eval rakudo ed95e2: OUTPUT«Int()␤»
masak that's an even simpler example :)
colomon > say (!0).WHAT 09:45
Bool()
p6eval is using an older version of rakudo
masak o.O
why?
moritz_ investigates
colomon dunno
moritz_ because parrot doesn't compile. 09:46
colomon yeah, it was a PR bump
15 hours ago
moritz_ maybe we should make the log files publicly available somehow
09:47 cosimo left
moritz_ makes a distclean and tries again 09:47
colomon maybe p5eval could report issues here?
moritz_ nope, that's not its job
maybe write another bot for that
but currently ENOTUITS
09:48 TiMBuS joined
moritz_ ok, now parrot compiled again 09:49
pugs_svn r29764 | moritz++ | [evalbot] make distclean in parrot before rebuilding; we do it only when rakudo requires a new version, so fairly seldom, and can thus trade CPU cycles for safety 09:52
colomon moritz_++ 09:54
moritz_ rakudo: say (!0).WHAT
p6eval rakudo ed95e2: OUTPUT«Int()␤»
colomon still old
moritz_ now running pbc_to_exe 09:55
rakudo: say (!0).WHAT
p6eval rakudo 6c478f: OUTPUT«Bool()␤»
masak \o/
colomon \o/ 09:57
and the boy is asleep again, so back to bed for me.
09:58 barney joined
moritz_ sleep well 09:58
10:00 fridim_ joined 10:03 k23z__ left 10:11 fridim_ left 10:16 quester joined 10:21 wanradt left
masak TimToady: how does gather interact with block exit phasers? specifically, does `.say for gather { take $_ for 1, 2, 3; LEAVE { say "OH HAI" } };` print "OH HAI\n1\nOH HAI\n2\nOH HAI\n3\n" or "1\n2\n3\nOH HAI\n"? 10:21
moritz_ it is *so* tempting to answer with "yes" here :-) 10:24
masak TimToady: 'yes' is not the answer I'm looking for. :) 10:27
10:28 krunen_ joined 10:29 TimToady_ joined, Maddingu1 joined 10:30 stepnem_ joined 10:33 cognominal left, dakkar left, Schwern left, mssm left, Maddingue left, TimToady left, avuserow left, PerlJam left, zibri left, krunen left, stepnem_ is now known as stepnem 10:34 avuserow joined
masak how can we help this guy? twitter.com/avarab/status/9210358607 10:40
10:41 payload joined
moritz_ is that the one who asked on p6u? 10:42
nope, different name
masak: invite him here
masak moritz_: yes, I can do that. just checking whether it's a known problem, whose solution one can easily give via Twitter.
moritz_ there are many known reasons why parrot might refuse to compile 10:43
mathw Bit difficult to offer him a solution without knowing what the compilation failure was
masak feels like 'invite him here' is a potentially complex operation with many single points of failure. :)
but sure, I will.
moritz_ no compiler installed, no make installed, old parrot install lying around
mathw Really bizarre system 10:44
missing dependency
misalignment of Mars with Proxima Centauri
10:44 cosimo joined
masak there, I tweeted him. 10:45
twitter.com/carlmasak/status/9228892096
moritz_ list.cs.brown.edu/pipermail/plt-sch...38167.html
masak++
mathw hah 10:49
mathw is mildly amused
10:49 payload left 10:51 frettled sets mode: +o masak
masak thanks. 10:51
10:53 patspam joined 11:00 IllvilJa left
masak S12:306 confuses me an scares me a little. 11:02
std: "$foo."methodcall"()"
p6eval std 29764: OUTPUT«Potential difficulties:␤ Useless use of quotes at /tmp/jFhZQszkLJ line 1:␤------> "$foo."methodcall"⏏()"␤ Variable $foo is not predeclared at /tmp/jFhZQszkLJ line 1:␤------> "$foo⏏."methodcall"()"␤ok 00:01 108m␤»
11:03 [synth] left
masak std: "$foo."$bar"()" 11:03
p6eval std 29764: OUTPUT«Potential difficulties:␤ Variable $bar is not predeclared at /tmp/LqaM7lVwcx line 1:␤------> "$foo."$bar⏏"()"␤ Variable $foo is not predeclared at /tmp/LqaM7lVwcx line 1:␤------> "$foo⏏."$bar"()"␤ok 00:01 106m␤»
masak std: my $foo; my $bar; "$foo."$bar"()"
p6eval std 29764: OUTPUT«ok 00:01 107m␤»
masak o.O
that's... sick.
mathw jaw... on floor 11:04
queasy kind of feeling
Shouldn't that sort of thing go inside {} 11:05
masak the reason S12:306 scares me is that it treats the above as something normally occurring, and outlines how a failure mode is commonly resolved... :/
11:05 wanradt_ joined
masak the failure mode being a runaway string parse in the case of "$foo." 11:05
mathw I'm more scared that the syntax is even supported 11:06
I can cope with method names provided by strings, but that ability to stick a literal string method call inside another one like that... well...
why would you even want to? 11:07
11:07 TiMBuS left
mathw although that's usually not the best way to ask about language features 11:08
just because I can't see a use for it...
but still, that sort of nested quote makes me feel very uncomfortable
it's just a bit *too* smart
masak agree. 11:13
though I'm also willing to be convinced by a very good use case. 11:14
I'm wondering why the string parsing was made rich rather than simple in this case.
lunch &
11:16 IllvilJa joined 11:24 payload joined 11:34 clausi left
jnthn o/ 11:37
masak lolitsjnthn! 11:38
I've thought about "$foo."methodcall"()" over lunch, and I've decided that until I get a good use case for it, I really don't like it.
it breaks Least Surprise. my brain/eyes scan to the quote mark before 'methodcall' and consider that to be the end of the string. 11:39
so would a naive enough syntax highlighter.
and all this non-obvious parsing for... what, exactly?
a 'consistency' gleaned only by those who understand that variable interpolation essentially puts the quote parser in a different mode? 11:40
jnthn huh
masak rants and raves
jnthn masak: Are the quotes there meta?
masak jnthn: yes. :(
jnthn Or are you saying that works/should work in a quoted string? 11:41
oh wtf
masak std: my $foo; my $bar; "$foo."$bar"()"
jnthn Well I said years ago on list that I thought parsing method calls in strings was a mistake.
p6eval std 29764: OUTPUT«ok 00:01 108m␤»
masak now I'm saying it too.
jnthn wishes masak better luck than he had convincing @Larry :-)
masak those quotes inside the quotes (which look EXACTLY THE SAME) don't live up to the maxim that different things should look different.
jnthn yeah 11:42
well
masak thes feature is one big FAQ.
jnthn "$foo.$bar()" # ugh, tries to invoke $bar?
masak I don't think I mind that one.
std: my $foo; my $bar; $foo.$bar() 11:43
p6eval std 29764: OUTPUT«ok 00:01 106m␤»
jnthn masak: My quotes weren't meta. :-P
masak I'm unfamiliar with the exact meaning of your 'meta'.
jnthn std: my $foo = 42; my $bar = method { say self }; say "$foo.$bar()" # what happens?
11:43 bluescreen joined
p6eval std 29764: OUTPUT«ok 00:01 107m␤» 11:43
masak but if you mean that you have an actual quoted string, then I understood that already. 11:44
and I'm saying I don't mind in that case.
jnthn oh.
:-/
masak the programmer better know what she's doing if she's using that syntax inside a quoted string.
jnthn I d[id|o]
masak it's the quoted-string-withing-a-quoted-string case I'm worried about.
jnthn It'd feel inconsistent to ban the one case and not the others though. 11:45
masak yeah. it's just that I can see the use for "$foo.$bar()" quite easily.
jnthn I'd not mind if they all needed a {...} 11:46
masak and the FAQ needn't be as big. it need just say "remember that $bar will be interpolated at call-time".
jnthn: I hear ya. not sure I think I'd need that much restriction.
jnthn $foo.$bar() and $foo."$bar"() are very different beasties and useful in different ways. 11:47
masak sure, sure.
it's "$foo."$bar"()" I don't see the use of.
jnthn Why not?
masak in all other corners of Perl 6, one is not allowed to use the same type of quotes withing a quoted string (without backwhacking them). 11:48
jnthn In a string, you want to interpolate a call on $foo to the method name in $bar
I fully agree that it looks weird.
masak here, that restriction is lifted, without a goodenuf explanation.
where 'explanation' means 'rationale language-design-wise'.
jnthn nod 11:50
The problem isn't seeing a use for it, just that it's an inconsistency then, I guess.
jnthn glances the commit log to see what happened while he rested 11:52
ooh, couple more tests 11:53
masak jnthn: oh! I put another round tuit in the make-anon-enums-happen machine last night.
jnthn colomon++
masak: ooh! What came out?
masak it didn't bring me any closer to the goal, but I have a few new questions.
I'll start with a nopaste.
gist.github.com/306536 11:55
11:56 redicaps joined
masak with that code, and the example 'enum <a b c>', I'm still getting "Method 'isa' not found for invocant of class 'Undef'" in the Perl6::Action::statementlist method. 11:56
so it parses, but it doesn't reach my panic method call as I hoped it would.
jnthn +method type_declarator($/, $key?) {
Should be 11:57
method type_declarator:sym<enum>($/) {
masak oh.
naturally.
jnthn Well, the $key? isn't doing any harm I guess.
Well, it's a change from before. :-)
masak tries that
jnthn When we didn't have any protoregexen.
masak I have an old still-unformulated question about the differences between multimethods and protoregexes, by the way. but it'll have to wait until I can verbalize it. 11:58
11:59 Lorn left
jnthn Alternatively, find a way to say it all in nouns and prepositions. :-) 12:00
masak :P
jnthn My 2c that may help your thought process is that I see the analogy as more of a way of explaining protoregexes to people who already grok the idea of multi-dispatch rather than anything at a deeper / implementation level. 12:01
masak ok.
arnsholt Protoregexes are essentially a dynamically computed disjunction, no? 12:02
masak I think my deepest point of confustion, at my present surface understanding, is why 'multi' is needed for multimethods, but not for regexes et al. with multiple definitions.
jnthn arnsholt: To some degree, yes
arnsholt: At least, so far as I follow them. 12:03
LTM plays into all of this somewhere though :-)
masak: multi isn't needed for multi-methods if you introduced a proto first.
masak oh!
jnthn: but still, you can't omit the proto in the case of regexes, and write 'multi regex' instead, can you? 12:04
maybe you can...
jnthn masak: I haven't seen it done.
masak me neither.
jnthn But that doesn't really answer the question. :-) 12:05
masak no.
jnthn: (backlogging) if you think that 'neither less-than nor greater-than' would have the same meaning as 'equals', you clearly haven't played with Surreal Numbers enough :) 12:07
jnthn In the alternate, you played with them too much. :-P
masak in surreal numbers, there are four relations: 'equal to', 'less than', 'greater than' and 'confused with'.
jnthn oh
That's...surreal.
masak it's wonderful.
it falls out naturally from two-player games of a certain type. 12:08
colomon o/
masak to all #perl6ers, I recomment with all my heart the books "Winning Ways" I and II.
jnthn adds it to the "things I should read up on" 12:09
masak s/ment/mend/
"Winning Ways', come to think of it, uses the same tools for humour as does #perl6.
and no-one draws a table like John Horton Conway. 12:10
12:16 ggoebel joined 12:17 ggoebel left 12:18 IllvilJa left
masak (from backlog) <joseweb> hi i wanna begin whit perl 6 -- <go|dfish> joseweb: then do it! -- <joseweb> thanks 12:19
I'm not sure whether to chuckle of frown at this exchange.
is it a foretaste of the inevitable dilusion of expert help at #perl6? 12:20
or is it just a confused, ultimately unhelpable newbie getting the best possible response?
12:23 quester left
moritz_ is sad he can't spend more time in #perl6 these days 12:23
masak hugme: hug moritz_ 12:24
hugme hugs moritz_
masak jnthn: yay! it workz! my panic panics! 12:30
\o/
now for the easy part. I think.
colomon can we do non-anonymous enums in master yet?
masak colomon: no. the anon ones are sort of a prereq. 12:31
colomon Ah. then let me encourage your progress! :)
masak feels encouraged :)
alpha does this: make PAST::Op.new( :pasttype('call'), :name('!create_anon)enum'). $values); 12:34
I'll see if I can do something analogous.
12:35 mssm joined
masak hm, first problem: I don't have an easy way to get at the $values. 12:35
I do <circumfix> in the token eype_declarator:sym<enum>.
so I guess $<circumfix> will contain something like what I want... :/ 12:36
moritz_ you probably need to create a new PAST node from $<circumfix> or something 12:37
moritz_ also has no idea, just guessing 12:38
jnthn $<circumfix>.ast gets you the AST for the circumfix that was parsed.
masak ok.
jnthn For non-anon ones you need to compile that and run it at compile time.
For anon ones you can get away with not doing that I guess.
masak right. as does alpha.
I'm sort of feeling my way forward, but it looks like it can be done. :) 12:39
jnthn masak: Heh, that's how I started in the grammar and actions. :-) 12:40
moritz_ rakudo: say "1" === "2"
p6eval rakudo 6c478f: OUTPUT«0␤»
masak rakudo: say 'five tons of flax' === 'a mammoth' 12:41
p6eval rakudo 6c478f: OUTPUT«0␤»
12:44 redicaps left
jnthn rakudo: say 'five tons of flax' == 'a mammoth' 12:45
p6eval rakudo 6c478f: OUTPUT«1␤»
mathw umm
I never knew that 12:46
jnthn mathw: Both numify to 0. :-)
mathw doh
of course
sorry I'm in C++ mode
jnthn
.oO( though claiming that Rakudo knows the weight of a mamoth coulda been fun for a while too )
mathw in which that's a compiler error anyway :)
masak another piece of progress: I'm now getting 'Could not find non-existent sub !create_anon_enum' 12:50
that's an error at run-time, even :) 12:51
hm, alpha has a src/builtins/gts.pir, master doesn't. 12:52
jnthn masak: Well done! You created AST nodes. :-)
masak \o/
jnthn masak: I HATE guts.pir
Die die die.
I mean, er...
masak maybe I should place that sub in Enum.pir in that folder instead.
jnthn src/glue/enum.pir
masak hokay.
jnthn Make that file and stick it in there, imo.
masak nod.
jnthn guts.pir ended up being this huge mess of everything.
(yes, I know that was my fault...I can still hate it :-)) 12:53
masak absolutely.
Su-Shee I'm looking forward to grep and map and list magic in perl6. this already is so incredebly useful in p5..
jnthn So now I'm going to take us down the path of lots of hateful tiny files instead. <grin>
masak :) 12:57
12:57 Trashlord left
mathw Tiny files are fine if they're well-named and their purposes are understood... it's when stuff is randomly scattered around a load of tiny files that it's irritating :) 13:00
pmichaud good morning, #perl6 13:01
moritz_ enables four more test files that pmichaud++ fixed yesterday 13:02
mathw oh hai pmichaud
pmichaud curses whatever cold/malady he has contracted this week :-( 13:03
mathw :(
colomon :(
mathw posts pmichaud a sack of lemons
moritz_ wishes pmichaud a quick recovery
jnthn pmichaud: Aww. :-(
pmichaud mmmmm, lemons
masak oh hai pmichaud
jnthn pmichaud: It is the time of year for such things, it seems. :-|
13:04 orafu left, orafu joined
dalek kudo/master: d5d58cc | moritz++ | t/spectest.data:
[t/spectest.data] re-enable four passing test files
13:04
takadonet morning all
colomon o/
mathw o/
takadonet I love seeing commit first thing in the morning :) 13:05
masak takadonet: \o
pmichaud tries to morph that into a Robert Duvall quote involving napalm, but fails. 13:06
moritz_ might be better that way :-)
masak jnthn: 'role', 'enum' on the one hand, 'contextuals', 'phasers', types' on the other... bit of a confusion as to singular/plural in that directory...
takadonet you are on early this morning pmichaud
colomon I love the smell of commits in the morning!
something like that. 13:07
masak commits are odourless :P
colomon smell of pushing commits...
masak unless the code stinks, of course :)
masak tries to keep quiet
13:07 Maddingu1 is now known as Maddingue
moritz_ I love the sight of dalek reporting commits in the morning 13:07
masak one of the few occasions where the sight of a dalek is appreciated. 13:08
colomon oh, hey, I've got a mystery for you guys 13:10
masak jnthn: Mapping is now better known as EnumMap, yes?
colomon ok(rand >= 0, 'rand returns numbers greater than or equal to 0');
ok(rand < 1, 'rand returns numbers less than 1');
those two tests gave master's parser fits.
I ended up skipping them.
masak colomon: maybe rand is parsed as a listop? 13:11
jnthn masak: Jes.
masak that could cause havoc.
pmichaud (singular/plural filenames) I'd be agreeable to renaming them (to the singular, I think)
jnthn phone
colomon masak: I should add that one or both of those worked fine in the REPL.
rakudo: use Test; ok(rand >= 0, 'rand returns numbers greater than or equal to 0');
p6eval rakudo 6c478f: OUTPUT«ok 1 - rand returns numbers greater than or equal to 0␤»
masak pmichaud: I can do that after I finish my current commit.
colomon rakudo: use Test; ok(rand < 1, 'rand returns numbers less than 1'); 13:12
p6eval rakudo 6c478f: OUTPUT«ok 1 - rand returns numbers less than 1␤»
masak colomon: I have no idea, then.
pmichaud isn't it a little early for "phone"? Normally that's 20h00 UTC on wednesdays :-) :-)
mathw That's a strange test 13:13
What if it wasn't going to return a negative value until the next time you called it?
masak mathw: sounds like you have a better way to test a random function up your sleeve. :) 13:14
now that's a potentially ambiguous sentence...
colomon mathw: pretty much all the rand tests are like that.
mathw my $u = Universe::Pocket.new(); $u->run( { loop { ok(0 <= rand < 1); } }, :timefactor(INFINITE));
we might need a bigger computer though... 13:15
pmichaud or a lot of patience
mathw masak: if you'd said it in Lojban, that ambiguity would have been replaced with almost universal incomprehensibility.
I know, there's no better way to test a rand function 13:16
The only way to ensure it's right is a formal proof of correctness of the algorithm
colomon Well, you might call it more than once, at any rate.
pmichaud we do call it more than once across multiple spectest runs :)
mathw I was just wondering if it would be possible to calculate the number of times you'd need to run it to get a significant chance of finding such a mistake 13:17
colomon I guess the good news is that I had to fudge out those two tests, but I unfudged three tests that alpha didn't pass. :)
mathw And then I realised that to figure that out you'd need to know how the algorithm was broken... so you might as well just fix it
pmichaud what file is this?
colomon rand.t
think it's S32-num
pmichaud my guess is that it thinks rand is a listop 13:19
masak mathw: your code reminded me of c2.com/cgi/wiki?PimcPiflPire
pmichaud and in the < case, it think it's starting a <...> list
masak mathw: that article has always fascinated me with its possibilities.
jnthn back
colomon Okay if I change the last todo in ord_and_chr.t to a skip? The final test is crashing on my machine...
pmichaud no objection here 13:20
jnthn masak: We can standardize the naming a bit. 13:21
pugs_svn r29765 | colomon++ | [t/spec] Change last fudge from todo to skip to avoid a crash.
13:21 dugg joined
masak jnthn: pmichaud already suggested to singularize the lot. 13:21
mathw masak: yes that's the kind of thing I was thinking of really 13:22
jnthn Yeah, I made the mistake of reading what I missed forwards rather than backwards. :-P
masak :)
colomon pmichaud: why would it think rand is a listop?
pmichaud because it doesn't know that rand is a term
masak jnthn: it's a tough call sometimes. whether to backlog backwards or forwards.
pmichaud any unknown bareword is assumed to be a listop
colomon ah. 13:23
pmichaud try token term:sym<rand> { <sym> } in Grammar.pm
that won't actually create the call to &rand, but we could at least see if it parses correctly with that in place
might actually need
token term:sym<rand> { <sym> >> }
See also term:sym<rand> in STD.pm . 13:24
or look at term:sym<Nil> in Grammar.pm for an example of how we do it for Nil
(and in Actions.pm as well, since Nil is a 0-ary function like rand) 13:25
colomon with <.nofun> ?
pmichaud yes
although in rand's case, there is some special error message handling to avoid p5-think (see STD.pm for the example) 13:26
I'd start by duplicating the code from Nil, just to get it working, and then try adding the error messages
afk, kid delivery 13:27
13:27 payload left
mathw kidsovernight.com? 13:27
jnthn mathw: thankfully, not found in the DNS... 13:28
mathw it just made me think of Grand Theft Auto
can't remember which game it was, but one of them had radio adverts for petsovernight.com
which I assume they did register... 13:29
else it would've been a porn site almost instantly
best bit of those games is the radio commercials
colomon okay, adding the stuff to the grammar and actions didn't break use of rand in the REPL. 13:30
jnthn
.oO( hardcore footage of pussy cats by night... )
colomon By golly, that works! pmichaud++ 13:31
jnthn Yay. :-)
pugs_svn r29766 | colomon++ | [t/spec] Unfudge two tests that now work. 13:38
dalek kudo/master: 2c23657 | (Solomon Foster)++ | src/Perl6/ (2 files):
Add rand as a term, cloning the Nil term's code.
13:39 ignacio_ joined
jnthn fwiw, I'm probably going to do a bunch of metamodel tweaking later on today, and try and get us back most of S12-introspection/*.t. 13:39
colomon \o/ 13:40
I really need to tackle $work today.
alas.
jnthn Yeah, I need to for the next hour or two as well... 13:41
colomon pmichaud: I have no idea how to port the .obs stuff from STD.pm's rand to Grammar.pm. But I've got basic functionality working now.
pmichaud I think Grammar.pm already has an obs method. 13:44
colomon pmichaud: search doesn't turn it up by that name.
pmichaud you're right. 13:45
it should be pretty close to what STD.pm has 13:46
I'd just avoid (or comment out) the %$*HIGHEXPECT line
(I'd also not put constraints on the parameters.... but that's just me :) 13:47
afk for a bit
jnthn: if working on the metamodel today (+1), keep in mind that we can't bump PARROT_REVISION until after tomorrow's release 13:48
jnthn pmichaud: Shouldn't need to, for what I want to do. 13:49
pmichaud: If we do, I'll hold off, of course.
But pretty sure not needed.
13:51 brunov joined
masak "Could not find non-existent sub postfix:++" 13:53
'tis &postfix:<++> nowadays, yes?
moritz_ probably, yes
masak seems so. 13:54
jnthn Aye.
moritz_ (though often .succ is OK too)
colomon though .succ returns the successor rather than changing the variable in place like ++, right?
jnthn right.
moritz_ right 13:55
masak I'll try to make the existing code work first. but thanks for the tip. :)
13:58 plainhao joined 14:00 plainhao left 14:04 pausenclown joined
pausenclown good morning. and on goes my journey to write an XML::Parser =) 14:05
masak pausenclown: you go, kid! but promise me to use a real XML parser for production purposes. :) 14:07
for your own wellbeing, as well as others'. 14:08
pausenclown lol. wanna look at my grammar?
masak always wants to look at Perl 6 code
lisppaste3 pausenclown pasted "rudimentary xml::parser grammar" at paste.lisp.org/display/95105 14:09
masak looks
pausenclown: you've come a fair way already, I see. 14:11
pausenclown when i'm done with the grammar, i probably need some help regarding the action classes (probably dom, sax, and twig)
what would u think would be easier to implement?
masak not sure DOM and SAX are the same category of things as action classes.
pausenclown: you might profit from having a look at krunen's xml at github. also, I've basically written the beginnings of a SAX parser in the Hitomi subproject of Web.pm. 14:12
jnthn You could build a DOM up in the actions, just as we build an AST in them for Rakudo.
masak aye. 14:13
pausenclown of course not. one builds a object tree and one offers a callback interface
arnsholt Should be possible to do push parsing with action classes, no?
masak jnthn: what do you make of this? gist.github.com/306640 -- especially the error message at the bottom.
how do junctions get into it? 14:14
jnthn You could also make the callbacks from action methods... :-)
masak: The error message is...wrong.
pistfix:<=> isn't defined in Junction.pir. 14:15
pausenclown masak: (re fair way) it helps when the grammar is basically already defined (www.w3.org/TR/REC-xml/)
jnthn ...post...
masak: I'd re-work to use .succ
Otherwise you need to create a read/write container.
masak ok.
pausenclown: yes. that's part of why it's so attractive to write an XML parser, I guess. 14:16
jnthn $P0 = '&postfix:<++>'(cur_val)
could be replaced with
masak it's as if Perl 6 grammars were made for creating XML parsers as a first use case. :)
jnthn $P0 = cur_val
cur_val = cur_val.'succ'()
masak jnthn: thanks. will try that.
pausenclown lol. this is just a warmup for my TT parser. -.- 14:17
masak jnthn: why is the first assignment to $P0 needed?
avar masak: re twitter.com/carlmasak/statuses/9228892096 : I was here all along. When I build it it dies by opening the src/packfile.c perldoc page, then "bit.ops - Bitwise Opcodes", then this: pastie.org/828904 14:18
jnthn masak: you can actually swap things around a bit I guess
masak avar: oh good.
jnthn result[cur_item] = cur_val
masak avar: (that you're here)
jnthn and then cur_val = cur_val.'succ'()
masak: In PIR = is binding rather than assignment...sometimes. 14:19
:-)
pausenclown btw, is there - by any chance - a collection of xml documents suitable to write test cases against?
masak jnthn: an utterly confusing answer, but I'll try to turn it into working code :P
lisppaste3 colomon pasted "My (failing) attempt to port STD.pm's rand magic to Grammar.pm" at paste.lisp.org/display/95107
masak pausenclown: why don't you check existing XML parsers on CPAN?
pausenclown masak: interesting idea =) 14:20
pmichaud colomon: did you add an obs method to the grammar?
colomon: also, I'd just start with the second (simpler) .obs warning and make sure it's working before doing the one above it 14:22
jnthn masak: Welcome. :P
pmichaud using postfix:<++> will likely start to work only on container PMCs, not on individual values (fwiw) 14:23
14:23 PerlJam joined
pmichaud so using .succ is far superior 14:23
jnthn
.oO( strangely, .succ is the way that doesn't ... )
14:24
pmichaud ..."didn't", perhaps?
things are different now :)
masak compiles the far superior code
14:25 ggoebel joined
PerlJam good morning all 14:25
masak PerlJam: \o 14:26
jnthn morning, PerlJam
colomon pmichaud: yes, added obs 14:28
pmichaud: actual error I'm getting is "Unknown operator precedence specification "%term" at line 1, near "\n""
pmichaud oh yes,. omit the <O('%term')> -- we aren't using that for terms yet. 14:29
colomon okay, trying that. 14:30
> say rand; 14:31
0.165018330651463
> say rand();
Unsupported use of rand(); in Perl 6 please use rand at line 1, near "();\n"
14:32 Trashlord joined
jnthn \o/ 14:32
colomon > say rand(10); 14:34
Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick at line 1, near "(10);\n"
pmichaud \o/
moritz_ ship it!
colomon moritz_: This time I'm remembering to run spectest first. ;) 14:35
pmichaud oh, this morning I was wondering if for trig and other tests it's worthwhile to split them into 'spec' and 'stress' tests? 14:39
'spec' are the tests that make sure things are basically working, 'stress' are where we try every combination of type and argument
colomon I think I'd be against eliminating the different types from the spec test, but certainly their testing could be a lot less exhaustive in the basic spec. 14:40
So say trying sin(Rat) on one Rat value rather than multiple Rat values. 14:41
pmichaud well, I was thinking we could also do #?rakudo stress 5 "skip these except when stress testing"
anyway, it's just a thought for consideration -- I'm fine with leaving everything in spec
colomon oooo, interesting way of handling it.
I'm expecting I'm going to reorganize the tests a good bit for Numeric/Real.
moritz_ colomon: I'd like to have 1 test per function, type and sign/quadrant 14:42
so sin(-1/16), sin(1/16) 14:43
colomon I'm also wondering how much performance we will get back by switching trigbase from strings to an enum.
moritz_ and chose values where the result is not something even (like 0 or 1)
[particle] the limits should also be tested
moritz_ you mean like sin(Inf)? 14:44
[particle] i mean boundary conditions
we know sin(0) = 1, we should test it
dalek kudo/master: 761d05a | (Solomon Foster)++ | src/Perl6/Grammar.pm:
Add obs method and port the smart version of rand from STD.pm.
moritz_ hopes that sin(0) == 0 :-) 14:45
[particle] please excuse my poor typing
14:45 uniejo left
[particle] of course sin(0) == 0 14:46
the transcendental functions should test values in range, at the edge of range, and outside the range to be complete 14:47
moritz_ so pretty much what we have now :-)
[particle] as well as error conditions (eg NaN)
it's not really stress testing, is it?
pmichaud [particle]: and we should test all of the numeric types 14:48
colomon the problem becomes when you multiply that by all the different ways of invoking the functions, and all the different types they can be invoked on.
pmichaud ...and all of the adverbs
and probably even the non-numerics
and we should check the metaops
[particle] pmichaud: there are ways to deal with the complexity, by reducing what's tested
let me see if i can dig up a paper on that
pmichaud [particle]: I agree, the tests you identified aren't "stress testing" 14:49
they're basic spec
[particle] i know i converted some parrot tests for this long ago
i wish i still had access to that presentation...
colomon and bugs show up in the darned places, like the crazy thing we had earlier this week when 3e0.sin would work but 3e0.sin('radians') wouldn't, because the wrong .sin method was being called. 14:50
14:50 brunov left
colomon Working on polar.t, I also found a case I had completely missed in the trig tests: calling atan2(Rat, Rat). 14:50
atan2(Rat, Int) worked, and atans2(Rat, Num), but not Rat, Rat.
anyway, I'm anticipating needing to add quite a few new test cases when Numeric/Real come down the pike, and I'm figuring on shaving back the quasi-redundant cases to avoid adding another 10,000+ test cases to spectest. :) 14:53
afk # time to exercise, then $work
masak set_pmc_keyed() not implemented in class 'EnumMap' 14:57
current instr.: '!create_anon_enum' pc 742 (src/glue/enum.pir:15)
jnthn: whoz op with that?
jnthn hm 14:58
maybe explicitly use .'postcircumfix:<{ }>' instead...
masak ok. 14:59
jnthn oh, I think someone just working out why some people's Parrot builds fail.
"make fails when environment variable PERLDOC="-i" is set"
masak: feel free to nopaste though 15:00
masak sure, just gonna try this first...
15:01 ggoebel left, ggoebel joined
jnthn masak: Note you'll need to decompose it 15:02
use postcircumfix to get hold of the thing to assign to
masak jnthn: yes.
nod.
got it :)
jnthn Then assign to it by calling &infix:<=>
\o/
masak I've seen that pattern a lot in PGE. :)
pmichaud enums are ro, yes? 15:03
jnthn oh, yeah
masak pmichaud: oh, so I should create the values in a hash first and then create the EnumMap at once, you mean?
jnthn masak: or build a Parrot hash
pmichaud I'm just saying I don't think you'd need the &infix:<=> step.
yes, build a Parrot hash might work 15:04
jnthn And then EnumMap.new passing that hash
as :flat :named
masak builds a Parrot hash
jnthn note root_new ['parrot';'Hash']
new ['Hash'] will work for now, but it's part of a headache I'm trying to eliminate. :-)
masak oki. 15:05
pmichaud speaking of headaches, time for me to take a short nap I think
bbl
Trashlord only a short one?
jnthn pmichaud: o/...have a good nap. 15:06
15:09 gigabo joined, gigabo left 15:13 pmurias joined
masak ok, so how do I call EnumMap.new from PIR with a Parrot hash as an argument? 15:19
jnthn $P0 = get_hll_global 'EnumMap'
masak ah.
thanks.
jnthn $P0.'new'(the_hash :flat :named)
15:19 brunov joined
masak you mentioned :flat and :named before... why are they needed? 15:20
jnthn |
Means you pass a bunch of named args rather than just one positional arg which is a hash. 15:21
masak ah, ok.
masak liked the one-char explanation '|' :) 15:22
15:22 wolf2k_ubuntu joined
masak by the way, two months later, the Perl 6 Advent Calendar still holds steady at 150±50 hits per day. love the long tail. 15:22
15:26 IllvilJa joined
IllvilJa Hello! o/ 15:26
masak IllvilJa: hello, fellow-with-a-Swedish-nick! \o 15:27
IllvilJa How's rakudo doing these days? I've done frequent 'git pull' followed by 'make; make install' from time to time and the codebase seem to be active with changes. 15:29
15:29 barney left
IllvilJa (which is a good thing :-) ) 15:29
masak big news from a few days back is that the ng branch became master. 15:30
IllvilJa Yes. That triggered my frequent 'gitpull-make-makeinstall' cycle :-D. 15:31
Only catch is that my CGI script (very basic toy one) to test rakudo-on-the-web refuse to run, and I suspect that 'use' statements don't work for now. 15:32
I understood some regressions in general were to be expected when rakudo-ng became the 'real' rakudo development branch. 15:33
jnthn Possibly. Also if you had pre-compiled PIR, be sure to re-compile it.
15:33 justatheory joined
IllvilJa Ok, so I should basically hunt down any .pir file lying around and delete it? 15:33
Or are such precompiled .pir files only created when explicitly requested and never by default when running rakudo? 15:34
Actually, I can check myself...
jnthn Only if you requested it normally.
Though installing modules may do it.
IllvilJa Well, the cgi script is 'alone' (no accompanying .pir file there).
jnthn ah, ok
IllvilJa Will a .pir file speed up initial startup for a rakudo perl script?
moritz_ aye 15:35
jnthn Pre-compilation is meant to, yes.
moritz_ though I only use it for modules, not scripts
IllvilJa Woo... then I'll look into that once the CGI script is running again :-).
jnthn Yeah, for non-modules it's probably not quite working again yet.
moritz_ need to add some .loadlib lines manuall
IllvilJa Ah. Pity to some extent, as I use a laptop from 2001 as the web server hosting the CGI script. 15:36
Start up times for rakudo is (currently) a bit long so it takes a little while before the web page starts to load at all (or you get an error message, like right now).
But eventually I suspect this issue becomes moot as rakudo and parrot start to approach the speed of light :-D. 15:37
(The latter is the goal, right? ;-) )
Wished I had time to dig down into things and track down WHAT goes wrong and contribute with fixing code but time constraints right now forces me to be a enthusiastic by stander, who occasionally for fun does 'gitpull-make-makeinstall' and then runs a random script 'to see what happens'. 15:38
masak looking at the two known translations of the Advent Calendar to other languages, both of them seem to have stalled. the Russian one after day 5 and the Japanese one after day 12. ky6uk.ugatu.net/perl-6-advent-calen...na-russkom d.hatena.ne.jp/uasi/archive 15:39
15:40 wasy joined
moritz_ can't blame them, it's much text 15:41
masak indeed.
moritz_ and we've been about 8 people or some, I guess the translation was only done by one or two people each
masak nod.
15:45 clausi joined
masak ./perl6 -e 'say (enum <a b c>).keys.elems' 15:46
3
\o/
man, this feels good.
masak runs spectests 15:47
jnthn masak++
masak :D
only the rest of the enums spec left. :) 15:48
jnthn ;-)
colomon \o/
pausenclown alpha: say "foo" ~~ /<[\xE000..\xFFFD]>/ 15:49
15:49 xomas joined, xomas left, xomas joined
p6eval alpha 30e0ed: OUTPUT«Malformed string␤in Main (file <unknown>, line <unknown>)␤» 15:49
pausenclown rakudo: say "foo" ~~ /<[\xE000..\xFFFD]>/
p6eval rakudo 761d05: OUTPUT«␤»
pausenclown mmh 15:50
masak hm...
alpha used to blow its fuses on that kind of large char range.
but not matching seems wrong too :) 15:51
oh wait. :)
no, that's right.
moritz_ it seems very right :-)
masak I retract all my claims. rakudo++ nqp-rx++
pausenclown yeah, the problem is the exception
moritz_ afaict f and o are ASCII and thus below 127
pausenclown rakudo: say "foo" ~~ /<[ \x0..\xFF \xE000..\xFFFD]>/ 15:52
p6eval rakudo 761d05: OUTPUT«␤»
masak pausenclown: I'd wager you won't be able to convince old Rakudo to match such a range.
pausenclown: at least I failed last time I tried.
pausenclown alpha: say "foo" ~~ /<[ \x0..\xFF]>/ 15:53
p6eval alpha 30e0ed: OUTPUT«f␤»
15:55 Psyche^ joined 15:56 justatheory left, Patterner left, Psyche^ is now known as Patterner
dalek kudo/master: f592840 | masak++ | (4 files):
basic implementation of anonymous enums
16:00
masak \o/
guess the next logical step is named enums. 16:02
jnthn masak: Did you try out the anonymous enum tests? 16:03
16:03 john joined
masak no. I can do that now. 16:03
jnthn Cool. :-)
I've finished my @other-task today. Short breeak, then I'll do some Rakudo hacking. :-)
16:03 john is now known as Guest889 16:04 Guest889 left 16:18 nihiliad joined 16:22 synth joined 16:25 cognominal joined
pmichaud (enums) ... can't we eliminate Perl6Pair in favor of Pair ? 16:27
16:29 payload joined
jnthn Maybe. 16:30
wait though
pmichaud originally we had Perl6Pair to avoid the conflict with the Parrot "Pair" type
(IIRC)
jnthn We should be creating Enum rather than Pair
Pair is mutable.
pmichaud however, (1) there are no longer naming conflcits with parrot types 16:31
jnthn But yes, that was why, and we should be able to rename...
pmichaud (2) parrot no longer has a Pair type :)
jnthn loves obs
takadonet obs? 16:32
jnthn takadonet: Lets us point out things that were valid Perl 5, but not Perl 6, and what should be used instead. :-)
pmichaud .obs(...)
(in the grammar)
jnthn adds two more just for fun, to ease himself into the metamodely stuff. 16:33
pmichaud: Perl6Pair is...gone already as far as I can see :-/ 16:34
pairproto = p6meta.'new_class'('Pair', 'parent'=>'Enum')
pmichaud okay, it's in the patch masak++ just added then
(there's a test for Perl6Pair in the masakpatch)
jnthn masak: In your patch, plz can haz s/Perl6Pair/Pair/, kplzthnx. :-) 16:35
(It'll probably fix a bug. :-))
masak sure thing.
pmichaud I also think we don't need to be cloning values there 16:36
masak ok, I'll remove that line.
16:36 cjk101010 joined
pmichaud one of the nicer things about the new container-based semantics is that we don't need to do a lot of cloning and/or copying -- our immutables are. :) 16:36
jnthn > while <STDIN> { }
Unsupported use of <STDIN>; in Perl 6 please use $*IN.lines
\o/
Pimp my errors. 16:37
masak fix pushed.
pmichaud masak++
.oO(if masak++ is now fixing bugs, who is wielding the sledgehammer?)
16:38
masak it's ok, I have two hands.
jnthn
.oO( hey, I have two hands also... )
16:39
pugs_svn r29767 | masak++ | [S26] Added Damian's even more latest changes 16:42
r29767 |
r29767 | A nifty command called 'patch' almost managed to apply the updates.diff
r29767 | file Damian sent to p6l. One hunk failed, but I poked it in manually. Also
r29767 | removed one line-ending whitespace.
masak scratch that. I have three hands.
masak <-- Zaphod Beeblebrox 16:43
dalek kudo/master: e23a053 | masak++ | src/glue/enum.pir:
[src/glue/enum.pir] two fixes

  - removed cloning step
16:46
16:47 rgrau joined
jnthn STD++ 16:49
# "when" arg assumes more things will become obsolete after Perl 6 comes out...
:-D
masak yeah. always liked that one. :) 16:50
jnthn Well, just scattered some more .obs goodness, plus the undef thingy that suggests what to use instead.
masak though what it would mean for Perl 6 to 'come out', I'm not sure... :)
jnthn masak: Well, perl6.org already "sings gay"... :-) 16:51
Eurgh. Does I really want to do this meta-model stuffs...
masak metamodels aren't gay. they're more like masturbation. 16:52
masak shuts up
16:52 clausi left
jnthn
.oO( good material for my nlpw meta-models talk )
16:54
masak what have I done? :)
jnthn We maybe don't want to know. :-P 16:56
:-/ Wish more of this PIR was NQP.
Hm. Another day.
jnthn makes the first tentative few changes 16:57
16:57 pausenclown left
dalek kudo/master: c9601d7 | jonathan++ | src/Perl6/Grammar.pm:
Add a few more .obs from STD.pm, and also add it's term:sym<undef> for suggesting alternatives to undef.
16:57
masak s/it's/its/
jnthn d'oh, yes, it is. 16:58
masak no, not 'it is'. genetive of 'it' :)
s/genetive/genitive/
jnthn :-) 16:59
pmichaud afk, lunch 17:01
17:01 dakkar joined 17:04 zibri joined
pmurias masak: is =head1\nFoo legal? 17:04
in Pod 6 17:05
masak pmurias: I don't know, see the latest S26 :)
pmurias: I just applied the changes, I didn't question them.
pmurias seems so 17:08
17:15 masak left
TimToady_ rakudo: my $x = \(1,2,3); say $x.WHAT 17:15
p6eval rakudo c9601d: OUTPUT«Capture()␤»
17:16 masak joined 17:18 mhsparks joined 17:21 cjk101010 left 17:25 riffraff joined
dalek kudo/master: 5e7ac5a | jonathan++ | docs/metamodel.pod:
Re-visit the Rakudo meta-model spec and try and be less wrong, though we still ain't all the way. The main issue the previous spec has was that meta-methods generally expected to get the metaclass as the first arg when constructing the class, but then would get the instance there. Also we were meant to be able to write trait_mod:<is> to add a parent as $child.^add_parent($parent), rather than $child.add_parent($child, $parent). Now we're going t
17:32
17:33 wolverian joined, mssm left 17:41 ignacio_ left
masak ./perl6 -e 'my %e1 = enum <foo>' 17:42
Method 'list' not found for invocant of class 'Perl6Str'
I think I see why this happens.
17:42 stephenlb joined
jnthn haha haha you filed that bug in my implementation back in the day :-P 17:43
*on 17:44
masak oh the irony :)
jnthn masak: I think the issue is that there's no .list method in Mu or Any.
pmichaud mentioned ".list" needing sorting out the other day, I think.
masak jnthn: oh, yes. you're right.
so I'll just try to add that then.
jnthn I'm not 100% what it's supposed to manufacture 17:45
A one element <thingy>. :-)
masak hm.
a List? :)
masak is naively old-skool
17:45 vamped joined
jnthn Maybe a Parcel will do. 17:46
then it's just
.sub 'list' :method
.param pmc thingy 17:47
.tailcall '&infix:<,>'(thingy)
.end
May be wrong, though.
17:47 mssm joined
masak tries that 17:47
jnthn Maybe a Seq is mor elike it.
masak aye.
where should I put it? none of the core/Any-*.pm files seems a good candidate. 17:48
maybe in Mu?
jnthn Do it in Mu
pmichaud can review it and tweak it. 17:49
colomon Hmmm... I would have thought returning an iterator (via gather / take, probably) would be appropriate here?
jnthn colomon: gather/take seems odd when there's just one element. :-)
As does an iterator...maybe that's right though.
17:49 wanradt_ left
colomon Ah, so not an issue if it is enum <Radians Degrees> (say?)? 17:50
masak jnthn: ".sub 'list' :method" or ".sub '' :vtable('list') :method" ?
jnthn .sub 'list' :method
You don't want to expose this as a Prrot vtable method
masak ok. 17:51
jnthn You want it callable.
17:53 nihiliad left 17:54 nihiliad joined 17:55 Chillance joined 17:57 ignacio_ joined 18:04 cdarroch joined, cdarroch left, cdarroch joined
masak jnthn: too few positional arguments: 1 passed, 2 (or more) expected 18:04
sure it oughtn't just be 'self' rather than 'thingy'? 18:05
jnthn masak: oh!
yes
masak :) 18:06
18:07 riffraff left
jnthn <- refactoring metamodel, may be distracted ;-) 18:08
colomon Do you guys know if there was a reason that alpha's splice was not implemented in terms of pir::splice? (I mean, not using that shortcut, but using the PIR splice op.)
18:08 ShaneC1 joined
jnthn colomon: Not sure off-hand, sorry. 18:08
colomon I'm torn, because on the one hand it looks like alpha's splice could be easily ported to master. 18:09
And on the other hand, it seems like pir::splice would probably be a lot more efficient, and it's already being using to implement push and unshift in master...
pmichaud pir::splice doesn't do nearly what we want
colomon pmichaud: ah. 18:10
pmichaud splice also gets much more tricky when dealing with laziness :)
colomon should I just grab alpha's splice, then?
pmichaud alpha's splice is almost certainly wrong
in alpha, lists and arrays were subclasses of Parrot's ResizablePMCArray
colomon in alpha, splice is implemented entirely in terms of push, as nearly as I can see. 18:11
pmichaud in master, Seq and Array have separate attributes for reified and non-reified components
colomon I'm sure that's not the most efficient implementation, but I don't see why it wouldn't work. push reifies first, right?
18:11 payload left, REPLeffect joined
pmichaud well, it would mean that splice is non-lazy, certainly. 18:12
if things are going to be non-lazy, then we might as well use pir::splice, yes.
18:12 macae joined
pmichaud one other big difference is that unlike alpha, arrays and hashes in master are now arrays of ObjectRef PMCs instead of the values themselves 18:12
anyway, the simplest approach would be to make sure that the invocant and the values to be spliced are fully reified, then use pir::splice to insert the elements to be spliced into the invocant's @items attribute. 18:14
I'm not at all a fan of the way splice is implemented in alpha, fwiw. Horribly inefficient. 18:15
colomon sure, I was just thinking in terms of functions that could be gotten back up and running by tomorrow. :) 18:18
pmichaud in general I think I'm still biased a bit more towards "correct implementation" than "running quickly" for the ng branch. 18:19
(now 'master' branch)
colomon how were you thinking of making splice lazy, btw?
pmichaud unless it's likely to win us a ton of capabilities or tests that we don't currently have
well, laziness isn't fully working in Seq/Array as it is
colomon I can see how to do unshift or push, but not a full splice.
pmichaud but essentially,
given @foo.splice($offset, $size, @values) 18:20
dalek kudo/master: 0e70eab | masak++ | src/builtins/Mu.pir:
[src/builtins/Mu.pir] added .list method
kudo/master: de7b7e6 | masak++ | t/spectest.data:
[t/spectest.data] uncomment S12-enums/anonymous.t
pmichaud in @foo, we make sure the first $offset elements are reified
we then create an unreified portion consisting of @values, all of the reified elements of @foo after $offset, and the unreified portion of @foo 18:21
colomon pmichaud: gotcha.
pmichaud and set that to be @foo's new unreified portion
colomon yes, that would be nice
masak spooky! that's how I imagined it :)
pmichaud of course, we also have to make sure that we don't have any inherent references in @values that might change if evaluated lazily 18:23
i.e., if @foo.splice($offset, $size, $b, $c, $d)
we want to make sure that we get the values of $b, $c, and $d at the time of the splice, and not at the time that they're later reified.
(in @foo) 18:24
18:25 justatheory joined
colomon is suddenly content to let pmichaud get to splice in his own good time... 18:25
pmichaud which is why I'd be okay with an eager version of splice for the time being :-) 18:26
but I'm not a huge fan of one built using lots of .push/.elems/assignment 18:27
colomon ah, so eager using pir::splice would be okay with you?
pmichaud yes.
colomon I will take a look at that, then. 18:28
18:32 rgrau left
jnthn masak: Nice work! 18:35
masak jnthn: thanks! named enums up next. :)
jnthn Scary.
18:35 quietfanatic joined
masak thanks for the encouragement :P 18:35
jnthn ;-) 18:36
It's OK, my local Rakudo is in such a good state it won't even start up. ;-)
masak then it has no bugs. that's the best state.
18:36 ignacio_ left
jnthn No, the crash message at startup is LTA though. 18:37
masak yeah, but that's only one thing :)
jnthn I should fix it to say "Give up, go for beer." Then the whole thing is great.
colomon masak++
masak wishes he had the presence of mind to hack on Rakudo more often 18:38
colomon pmichaud: I think I've got a basic eager slice up and running, except I've no clue how to return a Parcel of the deleted elements.
pmichaud colomon: can I see what you have thus far? 18:39
lisppaste3 colomon pasted "Array.splice" at paste.lisp.org/display/95118 18:40
pmichaud looking. 18:41
fwiw, self!fill returns @!items :-)
colomon I thought it must. :)
as you can probably guess, I cribbed heavily from unshift and push. 18:42
pmichaud I'm going to guess that you need to obtain the saved items before you splice them 18:43
so
$size = self.elems - $offset
(in the signature, or use something //= )
*use something akin to
then @ret = self[$offset+1..$offset+$size] 18:44
maybe no +1
(brane is fuzzy today... take my code/suggestions with salt)
colomon ooo, do we have that much of array slices working? sweet.
pmichaud I'm pretty sure we do. 18:45
colomon okay, I'll have a go at that.
pmichaud rakudo: my @a = 1..100; say @a[56..60];
p6eval rakudo de7b7e: OUTPUT«5758596061␤»
pmichaud looks like yes. :)
colomon :) 18:46
18:49 masak left
colomon erm... appears Range is even more broken than I thought on strings. 18:49
rakudo: say 'e'..'z'
p6eval rakudo de7b7e:
..OUTPUT«efghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeeefegeheiejekelemeneoepeqereseteuevewexeyez…
pmichaud RIGHT
oops
(capslock) 18:50
it needs to be checking for length also
colomon oh, I see.
when it does 'z'.succ, it gets aa, which is less than 'z'. Sigh....
pmichaud yes, I'm still not happy with the string-range semantics :) 18:51
colomon agreed.
snarkyboojum rakudo: my @a = 1..100; say @a[56..56];
colomon good news is, minus an obi-wan error, I've got splice working, I think.
p6eval rakudo de7b7e: OUTPUT«get_pmc_keyed() not implemented in class 'Array'␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10532 (src/builtins/Role.pir:243)␤»
18:53 ignacio_ joined
colomon > my @a = 1..10; say @a.splice(3, 2, 'e'..'y'); say @a; 18:53
45
123efghijklmnopqrstuvwxy678910
jnthn Nice!
pmichaud colomon++ 18:54
colomon pmichaud++ # pointing the way
pmichaud that's my job :)
colomon now to start throwing splice.t at it...
PerlJam Hmm. 18:56
18:56 dakkar left
PerlJam rakudo: say 'a'..'z' 18:57
p6eval rakudo de7b7e:
..OUTPUT«abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeeefegeheiejekelemeneoepeqereseteuevewex…
PerlJam rakudo: say 'a'..'x'
p6eval rakudo de7b7e: OUTPUT«abcdefghijklmnopqrstuvwx␤»
PerlJam rakudo: say 'a.1'..'c.5'
p6eval rakudo de7b7e: OUTPUT«a.1b.1c.1␤»
jnthn Meanwhile, my Rakuod now survives startup again. :-)
*Rakudo 18:58
PerlJam rakudo: say 'a1.jpg'..'c5.jpg'
p6eval rakudo de7b7e: OUTPUT«a1.jpga2.jpga3.jpga4.jpga5.jpga6.jpga7.jpga8.jpga9.jpgb0.jpgb1.jpgb2.jpgb3.jpgb4.jpgb5.jpgb6.jpgb7.jpgb8.jpgb9.jpgc0.jpgc1.jpgc2.jpgc3.jpgc4.jpgc5.jpg␤»
jnthn That's...cool.
quietfanatic rakudo: sub X (Str $a, Int $b) {...}; X ('abc', 3) 18:59
p6eval rakudo de7b7e: OUTPUT«Nominal type check failed for parameter '$a'; expected Str but got Parcel instead␤current instr.: 'X' pc 195 (EVAL_1:78)␤»
18:59 justatheory left
quietfanatic kinda...unexpected, though I see why 18:59
PerlJam quietfanatic: you want a better error? 19:00
quietfanatic No, though it certainly wouldn't hurt.
jnthn Wow, all the sanity tests pass here again too.
PerlJam I can't see how perl could warn you that you're doing something weird in that case 19:01
quietfanatic I don't think this is the way it ought to be.
jnthn Trouble is, it finds out about the type check fail on the first param before it gets to find out about the missing second one. 19:02
PerlJam I guess since it's always a Parcel that does this, it could check the sig of the Parcel and compare with the sig of the sub and make a good guess for the warning.
quietfanatic No, I mean the fact that it's passing one Parcel argument instead of the two arguments.
jnthn Oh, I think htat's right.
or at least, spec. 19:03
:-)
pmichaud it's certainly following the spec.
quietfanatic I mean perhaps it's right by spec
but
I think there'll by many others after me who'll get confused by this.
pmichaud function calls now always require the parens next to the function call, or use unspace
quietfanatic I guess I'm questioning the spec then, huh :)
PerlJam quietfanatic: so ... we should be more vocal about whitespace sensitivity? :)
quietfanatic I don't know.
jnthn PerlJam: Finally, we found a way to appeal to Python programmers! ;-) 19:04
quietfanatic It's the fact that the parentheses are turning two things into one.
pmichaud that's what parentheses do -- they group things together :)
quietfanatic ...
well, at least I know what I was doing wrong now. 19:06
PerlJam quietfanatic: you could try to convince TimToady that bare parens shouldn't create a Parcel and that you should use the Parcel() constructor for that. 19:09
:-)
pmichaud parens don't create parcels 19:10
commas do
quietfanatic ...doubtful :|
pmichaud it's not the parens that are creating a parcel
the space after the X turns it into a listop
PerlJam pmichaud: right, I knew that. Just temporary forgetfulness on my part.
quietfanatic No this is correct. I was just using Haskell recently is all. :) 19:12
pugs_svn r29768 | lwall++ | [S02,S04] more clarification of when parcels are and aren't used. 19:16
r29768 | Use "argument" as a technical term meaning either a real parcel or an object
r29768 | that can be used independent of context as an argument (but return chunks
r29768 | are also arguments in the old "parcel" sense.)
PerlJam Hmm. I wonder if Perl 6 could have some "stopper" that makes X into a function? I guess . does that, but you still need to be cognizant of whitespace
pmichaud ()
PerlJam of course, there's always the unspace too
pmichaud X() # function
X\ ('abc',3) # function 19:17
PerlJam pmichaud: I mean something like X $ (...) gets treated like X(...) where $ is the "stopper"
snarkyboojum rakudo: sub X (Str $a) { ... }; X ();
p6eval rakudo de7b7e: OUTPUT«Nominal type check failed for parameter '$a'; expected Str but got Parcel instead␤current instr.: 'X' pc 187 (EVAL_1:76)␤»
pmichaud PerlJam: see unspace :-) 19:18
TimToady_ PerlJam: he doesn't need to convince me of that--we've been moving that direction for a few weeks now
quietfanatic :?
19:20 nihiliad left, nihiliad joined 19:21 jferrero left 19:22 donaldh joined 19:30 donaldh_ joined 19:32 donaldh left 19:37 ash__ joined 19:39 wanradt_ joined
quietfanatic rakudo: my @a = 3, 4, 5; say @a[*-1] 19:43
p6eval rakudo de7b7e: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
quietfanatic whatevercode NYI? 19:44
pmichaud nyi
I'll likely work on it soonish
quietfanatic alright 19:45
colomon rakudo: my @a = 1..10; say @a[2..2] 19:46
p6eval rakudo de7b7e: OUTPUT«get_pmc_keyed() not implemented in class 'Array'␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10532 (src/builtins/Role.pir:243)␤»
colomon rakudo: my @a = 1..10; say @a[2..3]
p6eval rakudo de7b7e: OUTPUT«34␤» 19:47
pmichaud slicing doesn't know what to do with empty parcels, I'm guessing
colomon rakudo: my @a = 1..10; say @a[2..^3]
p6eval rakudo de7b7e: OUTPUT«get_pmc_keyed() not implemented in class 'Array'␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10532 (src/builtins/Role.pir:243)␤»
pmichaud looking.
colomon It shouldn't be empty, it should have one element, right?
pmichaud oh, true.
snarkyboojum that's what I was wondering :)
colomon but I'll bet you're on the right track anyway. :)
19:48 uniejo joined
PerlJam rakudo: my @a = 1..10; say @a[2..0] 19:48
p6eval rakudo de7b7e: OUTPUT«␤»
PerlJam I'd say it knows how to deal with empty parcels 19:49
pmichaud say eager(2..2).perl
rakudo: say eager(2..2).perl
p6eval rakudo de7b7e: OUTPUT«(2, )␤»
pmichaud rakudo: say eager(2..2).elems
p6eval rakudo de7b7e: OUTPUT«1␤»
pmichaud that's..... weird
ash__ shouldn't 2..0 do 2, 1, 0? 19:50
PerlJam ash__: no
ash__ ah
colomon ash__: no, no counting down.
19:50 cognominal left
colomon rakudo: say 5, 4 ... 0 19:50
p6eval rakudo de7b7e: OUTPUT«Method 'pred' not found for invocant of class 'Seq'␤current instr.: '&prefix:<-->' pc 342905 (src/gen/core.pir:47335)␤»
colomon do'h!
ash__ is that hard to do with a range or something?
pmichaud okay, I see the problem... now looking for a fix 19:51
PerlJam ash__: not hard to do, but it opens up the possibilities for inadvertent errors.
colomon ash__: Ranges are defined as always increasing.
PerlJam ash__: imagine $x..$y
colomon series allow you to do crazy things.
pmichaud (that doesn't end up in infinite loop)
colomon when they work, they're not completely implemented yet.
pmichaud oh! I see the fix.
easy-peasy
jnthn Heh, I just had a "I see the fix" moment too. :-)
colomon rakudo: say (5, 4 ... *).batch(10) 19:52
p6eval rakudo de7b7e: OUTPUT«543210-1-2-3-4␤»
jnthn 's metamodel refactor is going better than expected.
pmichaud not only that, but the fix involves deleating silly lines of code
colomon \o/
jnthn ooh
Just fixed the nasty I had.
ash__ ah, so there is a way to count down, just not using ..
jnthn spectests again, hoping for the best.
PerlJam (removing code to add functionality)++
pmichaud spectesting now 19:53
colomon rakudo: say 5 ... 1
p6eval rakudo de7b7e: OUTPUT«54321␤»
colomon ash__: ah, that way of doing it works now. :)
pmichaud is continually surprised by the things that work in rakudo already :) 19:54
PerlJam pmichaud: so what was the @a[2..2] failure?
er, what was the fix?
colomon I think like half of the series cases are implemented at the moment.
19:55 ktne joined
pmichaud it's a false optimization in the slicing code 19:55
jnthn Dinner time. But I'm down to two test files with issues in S14 in the meta-model refactor! \o/ 19:56
That's gone...surprisingly better than expected.
pmichaud > my @a = 1..10; say @a[2..2];
3
19:56 exussum0 joined
pmichaud the slice code was attempting to be smart about optimizing the case where a list ended up with a single element. unfortunately, it optimized to the wrong code. 19:57
so, I just removed the misoptimization and let it do things naturally, which is likely more correct anyway. 19:58
(there is a minor potential for infinite recursion... but we'll deal with that if/when it appears)
TimToady_ phone 20:00
colomon Let pmichaud check in first! ;)
s/check in/push/
pmichaud pushed 215a019 20:01
colomon \o/
snarkyboojum I pointed out that bug earlier too :)
colomon snarkyboojum++ 20:02
20:03 cognominal joined 20:06 clausi joined
colomon pmichaud++ 20:07
dalek kudo/master: 215a019 | pmichaud++ | src/builtins/Positional.pir:
Fix bug with slices and lists (ranges) of a single element, reported by
20:08
20:09 cognominal left, rgrau joined
awwaiid Woot! ng branch now master! 20:11
20:11 justatheory joined
PerlJam awwaiid: yep. quite nice. 20:12
awwaiid rebuilds from scratch
20:13 cognominal joined, exussum0 left 20:14 wknight8111 joined
colomon hmmm, what does it mean if the $size parameter to splice is negative. everything but $size.abs characters? 20:15
PerlJam colomon: if the spec doesn't say, follow Perl 5's behavior. 20:17
colomon PerlJam: that would assume I remember Perl 5's behavior. :)
ah, perldoc. 20:18
awwaiid so git clone says the fetch failed. am I missing something?
colomon "If LENGTH is negative, removes the elements from OFFSET onward except for -LENGTH elements at the end of the array." 20:19
awwaiid: what was your command line? (could github be down?)
awwaiid git clone github.com/rakudo/rakudo.git ; it fetches a bunch of stuff and dies soon after: error: Unable to find faf43a6ba2a6319da5fc2c89863d3d1fe6b26198 under github.com/rakudo/rakudo.git
I re-ran several times, and it doesn't alway sgive me the same blob identifier 20:20
not a big deal, I was just messing around with it and I should be doing some actual $work anyway :)
colomon git clone github.com/rakudo/rakudo.git
awwaiid colomon, right, that's what I ran 20:21
(the rest was commentary :) )
colomon awwaiid: meant to paste that into my terminal window, and missed. :)
awwaiid ahhh
TimToady_ colomon: in most spots we've tried to replace magical negatives with *-$n closures, but I'm not sure it works there 20:22
colomon weird, it seems to have downloaded it okay for me, but I got a long string of messages from git I don't remember ever seeing before.
PerlJam awwaiid: you should be using the git protocol rather than http 20:27
20:27 meppl left
PerlJam awwaiid: git clone git://github.com/rakudo/rakudo.git 20:28
see if that helps
colomon: all those "walk" and "got" messages are from using the http protocol 20:30
colomon aw.
ah.
still, doing it that way did work for me, I've got a complete build from that download now. 20:31
PerlJam awwaiid: what version of git are you using? maybe you've got an older, buggier one. 20:33
colomon rakudo: sub f(Int $a) { say $a; }; my @a = 1..10; f(@a); 20:34
p6eval rakudo de7b7e: OUTPUT«Nominal type check failed for parameter '$a'; expected Int but got Array instead␤current instr.: 'f' pc 239 (EVAL_1:91)␤»
colomon should that work in p6? splice.t appears to be full of things like that... 20:35
alpha: sub f(Int $a) { say $a; }; my @a = 1..10; f(@a);
p6eval alpha 30e0ed: OUTPUT«Nominal type check failed for parameter '$a'; expected Int but got Array instead␤in Main (file src/gen_setting.pm, line 324)␤»
ash__ std: sub f(Int $a) { say $a; }; my @a = 1..10; f(@a);
p6eval std 29768: OUTPUT«ok 00:01 112m␤»
jnthn back from nom 20:36
PerlJam rakudo: sub f(Int $a) { say $a; }; my @a = 1..10; f(+@a)
p6eval rakudo de7b7e: OUTPUT«Nominal type check failed for parameter '$a'; expected Int but got Num instead␤current instr.: 'f' pc 242 (EVAL_1:92)␤»
20:36 REPLeffect left
colomon yes, and then there's that complication. :) 20:36
but I bet jnthn++ knows the answer...
I see that splice.t wasn't part of alpha's spectest. 20:37
jnthn colomon: The issue probably somewhat is that + probably calls .Num 20:38
colomon: When in The Future it should call .Numeric
colomon jnthn: I was referring to the older issue there.
rakudo: sub f(Int $a) { say $a; }; my @a = 1..10; f(@a); 20:39
p6eval rakudo 215a01: OUTPUT«Nominal type check failed for parameter '$a'; expected Int but got Array instead␤current instr.: 'f' pc 239 (EVAL_1:91)␤»
colomon that one.
splice.t is full of stuff like that.
PerlJam seems to me that that's working as expected.
colomon I'm thinking it shouldn't actually work that way anymore?
I mean, shouldn't work like splice.t is expecting.
PerlJam colomon: right. 20:40
colomon jnthn: what think you?
PerlJam splice.t is wrong-headed
colomon PerlJam: it definitely seems creaky
jnthn colomon: Implementation is correct. 20:41
colomon: Int $a is a type check, not a coercion.
colomon jnthn++, PerlJam++ # thank you
jnthn sub f($a as Int) { ... } would do what the test seems to be thinking
apart from coercions are NYI
PerlJam half expects to discover later that jnthn implemented coercions immediately after saying they were NYI :-) 20:42
awwaiid PerlJam, git version 1.6.1. I can't use the git protocol because of corporate firewall. I just ran it again and it still fails. 20:44
20:44 cognominal left
awwaiid I'll do it from home where I can use git:// 20:44
PerlJam awwaiid: dunno then. It works for me (and 1.6.1 isn't buggy that I know of)
though I am using 1.6.6
oh, no, i'm using 1.6.3.3 on this box 20:45
20:47 lichtkind joined
ash__ 1.7.0 is out, i don't get any weird messages from github, like colomon said he was getting 20:49
git 1.7.0 that is
20:49 cognominal joined
jnthn PerlJam: Actually, a spec commit by TimToady++ not so long ago made me feel "OK, now it looks almsot concrete enough to get some of the basic cases of it in place" :-D 20:49
colomon ash__: I'm fairly sure PerlJam was correct that that was because of using http: rather than git: like I normally do. 20:50
ash__ ah, well i use the git protocol, not http, so thats probably true
jnthn PerlJam: I'll do it in the next couple of weeks, I expect, especially if I'm reminded about it. :-)
20:50 donaldh_ left
colomon rakudo: my @a = 1..10; say @a[0..^14] 20:51
p6eval rakudo 215a01: OUTPUT«12345678910␤»
PerlJam gets to work writing an irssi script to ping jnthn once or twice a day ;>
jnthn :-P
colomon rakudo: my @a = 1..10; say @a[0..^10]
p6eval rakudo 215a01: OUTPUT«12345678910␤»
jnthn OK, my dinner is nommed.
Now let's fix the last couple of spectests I've gone and broken.
colomon rakudo: my @a = 1..10; my @b = @a[0..^10]; say @b 20:52
p6eval rakudo 215a01: OUTPUT«12345678910␤»
20:54 wolf2k_ubuntu left 20:56 bluescreen left, bluescreen joined 20:57 takadonet left
ash__ rakudo: my @a = 1...10; say @a[1...3]; 20:59
p6eval rakudo 215a01: OUTPUT«234␤»
ash__ rakudo: my @a = 1...10; say @a[1...^3]; 21:00
p6eval rakudo 215a01: OUTPUT«2␤»
ash__ is that right?
colomon doesn't seem like it. 21:04
rakudo: my @a = 1...10; say @a[1...^4]; 21:05
p6eval rakudo 215a01: OUTPUT«2␤»
ash__ does ... have ^ version?
colomon no.
so that's what you're seeing there.
rakudo: say ^3
p6eval rakudo 215a01: OUTPUT«012␤»
ash__ so... is that saying 1 ... 0, 1, 2? 21:06
pugs_svn r29769 | colomon++ | [t/spec] Change broken tests, fudge some others.
colomon ash__: I think so. 21:07
I don't know why it is accepted, actually.
ash__ should that give an error?
colomon maybe?
ash__ std: 1 ... ^6 21:08
p6eval std 29768: OUTPUT«ok 00:01 108m␤» 21:09
ash__ rakudo: my @a = 4...^5; say @a.perl; 21:11
p6eval rakudo 215a01: OUTPUT«[4, 3, 2, 1]␤»
ash__ so, its doing 4 ... 0 i guess 21:12
TimToady_ yes, but it shouldn't throw away the rest of the ^ list
should end up 4 3 2 1 0 1 2 3 4 21:13
... is only supposed to like the first one (or maybe two) elements of the list on the right
s/like/look at/
21:13 macae left, cognominal left
TimToady_ and it only looks at the 2nd if the 1st is * or closure 21:14
and we're not sure about * :)
colomon did someone else break rat.t, or is that my doing? 21:16
jnthn pmichaud: Meta-model changes/fixes/refactorings are looking good. :-)
jnthn is much, much happier with the code now.
ash__ what is changing in the meta-model? 21:17
jnthn ash__: The way I had it before meant the the declarational parts expected to get the metaclass passed as the first parameter. 21:18
colomon rakudo: say <a b c>.[4/3]
jnthn ash__: When it should be the type object really.
p6eval rakudo 215a01: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;List;get' pc 10199 (src/builtins/Role.pir:40)␤»
jnthn And thus Foo.^add_method(...) couldn't work, and the introspection stuff was rather a mess too.
21:19 cognominal joined
jnthn Was a mess-up in my initial implementation, but one that I'm quite glad to resolve. 21:19
dalek kudo/master: 4c3dd04 | (Solomon Foster)++ | src/core/Array.pm:
Eager implementation of Array.splice.
21:21
kudo/master: 29b941d | (Solomon Foster)++ | src/core/Array.pm:
Tweak Array.splice to handle negative offset and/or size.
kudo/master: dc301e8 | (Solomon Foster)++ | t/spectest.data:
Turn on splice.t.
colomon I'm getting a rat.t error in spectest, but as p6eval here showed the same bug before I pushed this code, I'm pretty sure this code is not at fault. 21:22
jnthn colomon: I see it too, and that's before I pulled those commits you just made.
colomon I'm suspecting pmichaud++'s last patch is the culprit. 21:23
jnthn I gotta re-test now you've made 'em though! :-P
colomon :D
pmichaud colomon: yes, my last patch is probably the culprit 21:25
rakudo doesn't know what to do with 4/3
fixing
ash__ colomon it does that also with decimals, if you do <a b c>.[0.5] it gives you the error you got 21:26
pmichaud (I'm guessing it should intify in that case. Or should it numify?)
I'll intify for now.
ash__ can you have have a non-integer index in [ ] on an @ ? 21:27
other than * I guess
colomon pmichaud: intify
ash__: yes
intify or floor? 21:28
ash__ what other kinds of index's are permitted in [ ]?
pmichaud well, lots of stuff can appear inside of the [ ] :-) 21:29
@a[3..5]
ash__ ah, true.. i forgot ranges
21:29 uniejo left
pmichaud also @a[3,4,5] 21:29
also @a[*]
21:29 ignacio_ left
pmichaud also @a[*-1] 21:29
:-)
ash__ but you cant do 0.5, or 7/8's? 21:30
pmichaud also @a[@b]
PerlJam ash__: you can, but you're going to get @a[0]
pmichaud spectesting fix now
21:33 meppl joined
dalek kudo/master: 0d2009c | jonathan++ | src/ (11 files):
Refactor the meta-model to bring it in line with the earlier changes to metamodel.pod, and so things Akshually Work somewhat more like they should. Also should unblock fixing up introspection.
21:33
21:33 dugg left
pmichaud oops 21:35
pulling jnthn++'s changes, rebuilding, and *then* spectesting fix
jnthn ;-)
pmichaud: Good plan - it was > 1000 line diff.
rakudo: Rat.^add_method('lol', method ($what) { say "lol$what" }); 3/4.lol('cat') 21:37
p6eval rakudo 215a01: OUTPUT«No such attribute 'parrotclass'␤current instr.: 'perl6;ClassHOW;add_method' pc 4303 (src/metamodel/ClassHOW.pir:421)␤»
jnthn ETOOSOON.
colomon yeah, that hasn't even picked up my latest changes yet. ;) 21:38
pmichaud fix failed, trying again
jnthn Oh well, at least the fact it doesn't work in what p6eval curretnly has shows my refactor was worth doing for something.
21:39 clausi left
jnthn
.oO( even if it was just so we can add a lol method to Rat )
21:39
pmichaud laughing rats sounds ... disturbing.
jnthn Of course the non-disgusting way to do it is with augment. :-)
pmichaud not that augmented rats are much better
TimToady_ colomon: btw 21:41
std: rand()
p6eval std 29769: OUTPUT«===SORRY!===␤Unsupported use of rand(); in Perl 6 please use rand at /tmp/UNuHZylp41 line 1:␤------> rand⏏()␤FAILED 00:01 107m␤»
pmichaud rakudo: rand()
p6eval rakudo dc301e: OUTPUT«Unsupported use of rand(); in Perl 6 please use rand at line 11, near "()"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
21:42 bluescreen left
TimToady_ rakudo: say rand.() 21:42
colomon TimToady_: copied obs and the heart of your rand grammar into Rakudo this morning. :)
p6eval rakudo dc301e: OUTPUT«invoke() not implemented in class 'Float'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady_ colomon: okay, still backlogging
pmichaud std: say rand.() # just curious
p6eval std 29769: OUTPUT«ok 00:01 105m␤»
colomon TimToady_++ # the obs stuff is really cool... 21:43
TimToady_ I figger anyone who says .() knows what they're doing
jnthn Now now, don't get obsessed.
pmichaud wfm :)
21:44 gabiruh joined
TimToady_ hmm, wonder why I lost my zwiebach 21:44
21:45 clausi joined 21:46 clausi left 21:47 TimToady_ is now known as TimToady
pmichaud > my @a = 1..10; say @a[7/2] 21:47
4
> my @a = 1..10; say @a[2..2] 21:48
3
colomon \o/
pmichaud spectesting now
jnthn PerlJam: oh btw... 22:01
> sub foo($x as Int) { say $x.WHAT; say $x; }; foo(7/3)
Int()
2
;-)
PerlJam jnthn++ :)
pugs_svn r29770 | lwall++ | [S04] clarify that leave phasers do not trip till after an exception is handled (and not resumed) 22:03
TimToady phenny: tell masak r29770 answers your take question; resumably exceptions don't trigger LEAVE blocks 22:04
phenny TimToady: I'll pass that on when masak is around.
jnthn Tested. Pushed. 22:07
22:07 Guest5053 left
jnthn Seems we're lacking tests for it though. 22:07
dalek kudo/master: f0da535 | jonathan++ | src/ (10 files):
Implement coercion ($x as Foo) in signature binding.
22:08
pmichaud pushed fix for @a[5/2] 22:09
jnthn Nice 22:10
Who's release manager for tomorrow? 22:11
22:11 justatheory left, jaldhar left
pmichaud looks like Su-Shee 22:11
22:11 Su-Shee left
jnthn Aha, cool. 22:12
pmichaud 2010-02-18 Rakudo #26 (Su-Shee)
22:12 jaldhar joined 22:13 justatheory joined
jnthn pmichaud: Maybe good to add Copenhagen.pm to the suggested releases list now too? 22:13
s/releas/release nam/
vamped colomon asked a question that I didn't see answered. do fractions "intify or floor?" as in @a[15/4]
TimToady what do you mean by intify, if not floor?
dalek kudo/master: b517009 | pmichaud++ | src/builtins/Positional.pir:
Handle the case where a Position receives a single non-integer index.
22:14
kudo/master: db3f45a | pmichaud++ | src/ (10 files):
Merge branch 'master' of [email@hidden.address]
vamped does 15/4 -> 3 or 4
TimToady we never round by default
vamped ok. answered. thanks. 22:15
TimToady and having exact rats somewhat takes away the use case for rounding anyway 22:16
as for floor vs trunction, it doesn't matter for subscripts :)
vamped I'm very excited about that feature: exact rats 22:17
TimToady I hope we can optimize 'em enough to compete with Nums, at least on 64-bit machines
pugs_svn r29771 | jnthn++ | [t/spec] Add a few basic tests for coercion using the as trait in a signature. 22:19
jnthn pmichaud: It may be good to do a little more ROADMAP whacking before the release too. 22:20
pmichaud: The top three major items are, afaict, done.
Should we just mark them [DONE] or move them to another section of the doc or...?
22:20 nbrown left 22:21 nbrown joined
pmichaud jnthn: I'll work on it tonight. 22:22
PerlJam oh, that reminds me ... I think rakudo.org/status needs updating
pmichaud yes, rakudo.org needs lots of updates
mathw evening 22:23
jnthn oh hai mathw
pmichaud: OK, cool.
mathw hai jnthn
22:24 Trashlord left
pmichaud hmmm, should we see about moving rakudo.org to wordpress? I thought wordpress worked very well for the advent calendar 22:25
dalek kudo/master: a74f35a | jonathan++ | t/spectest.data:
Add S06-traits/as.t to spectest.data.
pmichaud (since we've discussed in the past the possibility of moving rakudo.org to something other than drupal) 22:26
jnthn pmichaud: Well....can WordPress handle static pages well too?
pmichaud I'll look into it a bit.
I would think so.
jnthn It's not a priority for me, but no objections. 22:27
Others may feel more strongly.
hudnix I would think that in the interest of perl Team Spirit, Movable type would be more appropriate. 22:29
ash__ wordpress has Pages (static pages) and Posts (the blarg)
so it can do both
22:29 supernovus joined
ash__ <-- has to work with wordpress a lot at work 22:29
pmichaud personally, I'm not interested in the underlying language as much as I am how easy it is to work with 22:30
ash__ wordpress is almost a defacto standard for blogs, if you want a more bloggish site
pmichaud well, it's not bloggish so much as we'd like a reasonable cms 22:31
jnthn Thing is, we don't want it too blogish.
imo
pmichaud there are blog-like aspects (e.g., news stories), but it's really more of "where can one get information about ...."
jnthn Right. News stories is only one part of it.
ash__ wordpress is a good blog, as a CMS, its not the greatest, it can act as one, but i wouldn't say its a great CMS
MODx is a decent CMS, again this is from my work experience because its what we use at my office 22:32
22:35 Chillance left
ash__ but i haven't ever used drupal so, i have no idea how it compares to what you have setup already 22:35
supernovus One of my planned "hobby projects" is writing a basic CMS with at least "wiki", "blog", "link db" and "image gallery" modules in Perl 6. Basically, replicate the functionality of my current huri.net site, but in Perl 6 (the current site is using non-Moose Perl 5, and is rather scary dark magic that I'm surprised still works actually...) 22:38
pmichaud well, part of the issue we have with drupal is that it doesn't appear to have a good remote admin interface 22:40
(at least our current instance of it does not) 22:41
and we don't have easy access to admin privileges
pugs_svn r29772 | lwall++ | [S02] copyo spotted by Smylers++
22:42 brunov left 22:44 iblechbot left
jnthn pmichaud: Yeah, that's my gripe with the current set up. It's not so much I have a problem with how it looks/posting on it. 22:45
Just management of it.
pmichaud jnthn: right, that's the only reason I'm looking at/for alternatives.
jnthn Ah, OK.
22:46 bbear joined
jnthn rakudo: (1,2,3).Array 22:46
p6eval rakudo a74f35: OUTPUT«Method 'Array' not found for invocant of class 'Parcel'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pmichaud nyi 22:47
although .Seq works
rakudo: (1,2,3).Seq
p6eval rakudo a74f35: ( no output )
jnthn pmichaud: ah, ok
that'll do me for now.
pmichaud: Arguably .roles(:tree) should be returning nested Seqs anyway.
Or will those flatten?
pmichaud both Seq and Array flatten, iirc
but they can be Seq of Seq or Array of Array 22:48
jnthn Does putting them inside an ObjectRef prevent that?
pmichaud having them as a scalar objectref prevents it
that's what happens with circumfix:<[ ]>, for example
jnthn oh, maybe I can just call that.
If I call that with a parcel, will it DTRT?
pmichaud yes, that works nicely
yes 22:49
in fact, that's what [1,2,3] is :-)
jnthn tries it
Trying to fix up the introspection tests. :-)
22:49 jferrero joined
ash__ rakudo: my @a = 1, 2, 3; say @a.WHAT; 22:50
p6eval rakudo a74f35: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 13733 (src/builtins/Routine.pir:122)␤»
bbear Hello. I want begin Perl, but I want begin perl 6 to be not outdated.
What do you think ?
ash__ that should say "Array()" right? 22:51
pmichaud ash__: yes, that's what I'd expect.
not sure why that fails.
vamped bbear: perl 5 will not be outdated for a very long time (neither will perl 6 be) 22:52
pmichaud rakudo: my @a; say @a.WHAT;
p6eval rakudo a74f35: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 13733 (src/builtins/Routine.pir:122)␤»
bbear Is perl 6 mature to use in prod ?
pmichaud bbear: probably not.
bbear: depends on your prod requirements
bbear I want a book to learn perl, but all perl 5 books are exhausted.
ash__ rakudo: my @a = 1, 2, 3; my $b = @a; say $b.WHAT: 22:53
p6eval rakudo a74f35: OUTPUT«Confused at line 11, near "say $b.WHA"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
bbear prod requirements means 'it works it's enough' , but I would rather to say '
22:53 justatheory left, justatheory joined, athenot joined
bbear when I will finish to learn it, perl 6 will be usable and used on many platforms.' 22:53
ash__ oops, i see what I did, i put a : where i meant ; 22:54
rakudo: my @a = 1, 2, 3; my $b = @a; say $b.WHAT; # still gives there error, oh well
p6eval rakudo a74f35: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 13733 (src/builtins/Routine.pir:122)␤»
bbear could you give me the name of a good hand book ? 22:55
ash__ for perl 6?
bbear or for perl 5.
so if perl 5 will be not outdated, yes for perl 5. 22:56
22:56 pausenclown joined
bbear I will have time to learn perl 6 after learned perl 5. I guess it's not so different. 22:56
ash__ are ( ) immutable arrays (or lists)? still? Or did that get changed?
bbear ash__: so not, a handbook for perd 5
pmichaud rakudo: ash__ neither 22:57
p6eval rakudo a74f35: OUTPUT«Could not find non-existent sub &neither␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pmichaud oops
ash__: neither
parentheses only group items
in particular, (3) is an Int, not a list or array
ash__ bbear i liked "Learning Perl" when I was learning perl 5
22:58 justatheory left
dalek kudo/master: 324f561 | jonathan++ | (2 files):
Fix role introspection and turn S12-introspection/roles.t back on.
22:58
jnthn bbear: If you're programmed a good bit before, Programming Perl is, imo, very good.
ash__ so... is there no way to make a list now? just wondering
pausenclown alpha: @cmd = ('get','put','try','find','copy','fold','spindle','mutilate'); say "go get a copy" =~ / @cmd /;
p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "cmd /;"␤in Main (file <unknown>, line <unknown>)␤»
pausenclown alpha: @cmd = ('get','put','try','find','copy','fold','spindle','mutilate'); say "go get a copy" ~~ / @cmd /;
p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "cmd /;"␤in Main (file <unknown>, line <unknown>)␤»
22:59 payload joined, lue joined
pausenclown strange. 22:59
rakudo: @cmd = ('get','put','try','find','copy','fold','spindle','mutilate'); say "go get a copy" ~~ / @cmd /;
p6eval rakudo a74f35: OUTPUT«Confused at line 11, near "say \"go ge"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
pmichaud variable interpolation in regexes isn't supported yet 23:00
ash__ you forgot my
pausenclown alpha: my @cmd = ('get','put','try','find','copy','fold','spindle','mutilate'); say "go get a copy" ~~ / @cmd /;
p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "cmd /;"␤in Main (file <unknown>, line <unknown>)␤»
ash__ i guess before, it seemed there was a clear distinction between a list made with ( ) and a list made with [ ] in that one was mutable, so, can you still make an immutable list with like the list op or List.new? 23:01
pausenclown whenever i wanna try something cool, it doesnt work XP
bbear I programmed a bit before. 23:02
pausenclown I programmed 8!
+)
bbear ;)
23:04 justatheory joined
bbear intermediate perl is not good ? 23:05
pausenclown are you talking about the book? 23:06
snarkyboojum bbear: lots of good info at learn.perl.org and learn.perl.org/books.html 23:07
pmichaud ash__: ( ) has never meant "make a list"
vamped "intermediate perl" is 2nd book in series, but "learning perl" is required reading, first.
pmichaud ash__: it's easy to confuse it that way (e.g., PerlJam did it earlier as well :-)
pausenclown better learn Perl 6 now. it will be ready on christmas. 23:08
ash__ okay, got ya, i guess i was thinking in terms of python still, since they have a [ ] as a mutable array and ( ) as an immutable tuple 23:09
for some reason i thought that was also true in perl 6
vamped ash: i've read that somewhere too. old spec?
23:10 ktne left
lue Hooray! The daleks are gone! (or is that bad...?) 23:10
23:11 PerlJam left, Juerd left 23:12 pmichaud left, hatseflats left, pugs_svn left, dukeleto left
lue Aaah! Everyone's timing out. 23:12
ash__ freenode does that from time to time
anyway, i gotta go
23:13 ash__ left 23:18 bbear left
pausenclown what the hell does "curmudgeonly" mean? (from exegesis 5) 23:20
vamped look at thefreedictionary.com 23:21
curmudgeon: An ill-tempered person full of resentment and stubborn notions. 23:22
that's an interesting word! lol.
pausenclown ah. lol i parsed it like |curmudge only" 23:23
and looked up curmudge 23:24
which didnt worl
vamped silly german (?)
pausenclown how the heck do you know?
vamped i pay attention to those sort of things -- something said in this channel previously. dunno what. 23:25
23:25 pugs_svn joined
pausenclown not likely 23:26
pausenclown goes checking the firewall
=)
23:26 dalek joined
pausenclown rakudo: say "foo" ~~ / < <alpha> - [A-Za-z] >+ / 23:29
23:29 jnthn joined
p6eval rakudo 324f56: OUTPUT«Confused at line 11, near "say \"foo\" "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤» 23:29
23:29 PerlJam joined, hatseflats joined
pausenclown rakudo: say "foo" ~~ / < +<alpha> - [A..Za..z] >+ / 23:30
p6eval rakudo 324f56: OUTPUT«Confused at line 11, near "say \"foo\" "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:31 pmurias left
pausenclown alpha: say "foo" ~~ / < +<alpha> - [A..Za..z] >+ / 23:31
p6eval alpha 30e0ed: OUTPUT«perl6regex parse error: Quantifier follows nothing in regex at offset 278, found '<'␤in Main (file <unknown>, line <unknown>)␤»
pausenclown alpha: say "foo" ~~ / <+<alpha> - [A..Za..z] >+ /
p6eval alpha 30e0ed: OUTPUT«perl6regex parse error: Error parsing enumerated character class at offset 277, found '<'␤in Main (file <unknown>, line <unknown>)␤»
pausenclown 277? 23:32
23:35 hatseflats left 23:36 dalek left, PerlJam left, jnthn left, pugs_svn left 23:52 meppl left 23:53 hatsefla1s joined, PerlJam joined 23:54 jnthn joined, dalek joined
dalek kudo/master: 1940345 | jonathan++ | src/metamodel/ClassHOW.pir:
More introspection fixes, to start getting .^parents and .^attributes back into shape.
23:56
kudo/master: 5e7d64c | jonathan++ | src/core/Mu.pm:
Quick tweak that gets signature unpacking of objects working again.
23:57 pugs_svn joined
jnthn grr...disconnects. 23:57