»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
berekuk left
|
|||
clsn__ | Why were we even expecting 「」 to work without Q or q or something? | 00:03 | |
00:04
Adriaaan left
00:05
lemOn91 left,
rindolf left
00:06
raiph joined
00:10
jac50 joined
00:14
rurban left
00:20
btyler left
|
|||
lue | clsn__: 「」 is the quoting form of Q(), like '' is for q() and "" is for qq() | 00:22 | |
clsn__ | Oh... I didn't see that when I tried it. What is Q()'s nature, as opposed to q()? That is, what does it quote or not quote? I understand q and qq are just Q with adverbs. | 00:23 | |
lue | Q is the base quoting language, without any special interpretations, such as backslashes. | ||
clsn__ | Does q() do any specials? | 00:25 | |
Ah, I see q[\] doesn't work but has to be q[\\] whereas Q[\] works. | 00:26 | ||
lue | r: say Q[Hello!\n\]; say q[Hello!\n\]]; | ||
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«Hello!\n\Hello!\n]» | ||
clsn__ | So in q[], the only(?) special interpretation is that \ can quote the close-quote character(s), or another \? | ||
lue | :q :single Interpolate \\, \q and \' (or whatever) | 00:27 | |
perlcabal.org/syn/S02.html#Q_forms has more information on the matter :) | 00:28 | ||
clsn__ | Heh... Kind of funny interactions... q<<\>>>> works, q<<>>> doesn't (and shouldn't), but <<\>>> also throws an error. Probably rightly, but it just seems odd. | ||
lue | clsn__: yeah, that's one of those areas where I wish << >> wasn't interpreted as «». It reads better as q«\»», q«»>, and q«\»> | 00:30 | |
(which is my guess on how P6 reads those) | |||
clsn__ | What good does quoting \q[] inside another \q[] accomplish? | ||
lue | I don't know what that \q part is about. | 00:31 | |
raydiak | dunno, but \qq inside q is quite useful | ||
clsn__ | I don't know that it's a <</« thing. I think it's more that multiple openers are allowed. The same would probably happen with q<<<\>>>>>> and q<<<\>>>>> | ||
lue | r: say q<<<alive?>>> | 00:32 | |
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«alive?» | ||
clsn__ | raydiak: I see! So used to thinking "q doesn't interpolate!" that I didn't consider that you could locally override it. | ||
lue | r: say q<<<\>>>>>>; say q<<<\>>>>> | ||
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileCouldn't find terminator >>>at /tmp/tmpfile:1------> say q<<<\>>>>>>; say q<<<\>>>>>⏏<EOL> expecting any of: …» | ||
clsn__ | 「」 doesn't work for me as a quoting form of Q[]; is that NYI? | 00:34 | |
BenGoldberg | r: say q<<<\>>>>>>; say q<<<\>>>>>> | 00:35 | |
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«>>>>>>» | ||
lue | clsn__: NYI | 00:36 | |
clsn__ | 'k, | ||
lue is seeing if he can fix that right now, actually | |||
clsn__ | yay. | 00:37 | |
lue | Won't actually be able to push such a change until I get a commit bit or set up a fork though. | 00:38 | |
clsn__ | Mm. And I see that <1/2> for Rat literals is also NYI. Parses as Str. Which is why Rat.perl doesn't round-trip in Rakudo. | ||
Wait, maybe not... It's supposed to make a something that is both a Rat and a Str, so maybe it's right that WHAT shows it as a str. | 00:39 | ||
Nah. <1/2>.^methods only shows Str stuff. | 00:40 | ||
00:42
raiph left
|
|||
lue | clsn__: <1/2> → Rat, < 1/2 > → RatStr, «1/2» → RatStr, « 1/2 » → RatStr , IIRC | 00:43 | |
clsn__ | S02: Literals specified in angle brackets are always subject to val() processing, so <1/2> produces a value that is both a Rat and a Str. | ||
grondilu | r: say .WHAT for <1/2>, < 1/2 >, «1/2», « 1/2 » | 00:44 | |
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«(Str)(Str)(Str)(Str)» | ||
lue | n: say .WHAT for <1/2>, < 1/2 >, «1/2», « 1/2 » | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«(Rat)(RatStr)(RatStr)(RatStr)» | ||
lue | niecza++ | ||
lue & for a minute | |||
grondilu | IIRC, this used to work on rakudo | ||
:/ | |||
lue does not remember that, but could be wrong | 00:49 | ||
BenGoldberg | r: say <1/2>.RatStr | 00:50 | |
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«No such method 'RatStr' for invocant of type 'Str' in block at /tmp/tmpfile:1» | ||
BenGoldberg | r: say RatStr.new(<1/2>) | ||
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUndeclared name: RatStr used at line 1» | ||
00:50
panchiniak left
|
|||
lue | clsn__: here's a counter to the part of S02 you cited :) perlcabal.org/syn/S02.html#Rational_literals | 00:51 | |
Also, under Allomorphic Value Semantics: "Any such literal, when written without spaces, produces a pure numeric value without a stringy allomorphism." | 00:52 | ||
clsn__ | I know; in fact, the part I quoted is the last paragraph of that section. | ||
At any rate, <1/2>.WHAT === Str is Not Right. | 00:53 | ||
lue | agreed. As you can guess though, implementing allomorphic types will take a bit of work :) | ||
00:54
araujo left
|
|||
clsn__ | You bet. | 00:54 | |
00:55
araujo joined
00:58
jnap left
00:59
jnap joined
01:00
regreg joined
01:01
thou left
01:03
jnap left
01:11
telex left
01:12
telex joined
01:17
treehug88 left,
vky left
01:23
jnap joined
01:35
araujo left
01:41
thou joined
01:47
araujo joined
|
|||
[Coke] | moritz: github.com/blog/1772-diffable-more...zable-maps | 01:49 | |
02:00
LingeringSouls joined
|
|||
LingeringSouls | wow anagrams solution at rosetta code. Perl 5 implementation runs very quick less than 10 secs. Perl 6 implementation on rakudo took 4 hours. | 02:01 | |
[Coke] | LingeringSouls: which rakudo? | 02:02 | |
LingeringSouls | 2013.12 | ||
maybe i didn't compile it correctly? | 02:03 | ||
[Coke] | rosettacode.org/wiki/Anagrams#Perl_6 ? | ||
LingeringSouls | yeah | ||
[Coke] | LingeringSouls: also, which backend? | ||
LingeringSouls | parrot | ||
[Coke] | parrot/jvm/moar? | ||
k. | |||
02:03
Alina-malina left
|
|||
clsn__ | Interesting... | 02:06 | |
r: subset Prime of Int where *.is-prime; sub pid(Int $p-->Prime) { $p; }; {CATCH {default {say $_.perl}}; say pid(18) } | |||
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6, rakudo-moar 90b3d6: OUTPUT«X::TypeCheck::Return.new(operation => "returning", got => 18, expected => Prime)» | ||
clsn__ | That worked; the exception was caught. | ||
r: subset Prime of Int where *.is-prime; sub pid(Int $p-->Prime) {CATCH {default {say $_.perl}}; $p}; say pid(18) | |||
camelia | rakudo-parrot 90b3d6, rakudo-jvm 90b3d6: OUTPUT«Type check failed for return value; expected 'Prime' but got 'Int' in sub pid at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | ||
..rakudo-moar 90b3d6: OUTPUT«Type check failed for return value; expected 'Prime' but got 'Int' in any return_error at src/vm/moar/Perl6/Ops.nqp:596 in sub pid at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | |||
clsn__ | This time it wasn't. So the exception is thrown *after* the return, not while it's still inside the routine. | 02:07 | |
So your routine can't trap itself about to return something illegal. | |||
[Coke] | you're trying to use the last value of the catch as a return? | 02:09 | |
that seems dubious. | 02:10 | ||
02:10
kbaker joined
|
|||
clsn__ | No, I was trying to catch the return of an illegal return value. | 02:13 | |
I guess it makes sense. After all, even after catching it, I never did return something legal. What are you going to do then? Go into an infinite loop of catching? | 02:14 | ||
Just interesting is all. | |||
I suppose you can check it inside the sub by smartmatching against &?ROUTINE.returns (though it seems a little dumb since you presumably know the return type if you wrote it.) | 02:22 | ||
In much the same way you can do ub nextprime(Prime $p is copy) { $p.=succ; $p.=succ until $p ~~ &?ROUTINE.signature.params[0].constraints; $p } | 02:27 | ||
Which is sort of what I was playing with the other day. Again, sort of long-winded, since you know the constraints yourself since you put them there. | 02:28 | ||
(note, though, that the constrained parameter comes through as a normal type with constraints, not as the subset.) | |||
[Coke] | going through the anagram example, it's the first .join where things seem to start slowing down | 02:31 | |
"he said, eyeballing it." | 02:34 | ||
02:42
jnap left
|
|||
[Coke] | (hurm. I take that back, and head to bed.) | 02:45 | |
02:49
kbaker left
02:55
[particle]1 joined
02:57
xenoterracide left,
xenoterracide_ joined
02:58
molaf joined
02:59
[particle] left,
flussence joined
03:15
xenoterracide_ left
03:21
skids left
03:23
xenoterracide_ joined
03:26
flussence left
03:28
kaleem joined
03:30
jlaire left
03:31
flussence joined,
beastd left
03:37
skids joined,
skids left,
skids joined
|
|||
skids | r: my %f; %f{1} = { a => 1 }; %f{2} =%f{1}; %f{1}{"a"} = 2; %f.say | 03:38 | |
camelia | rakudo-parrot 90b3d6, rakudo-moar 90b3d6: OUTPUT«("1" => {"a" => 2}, "2" => {"a" => 2}).hash» | ||
..rakudo-jvm 90b3d6: OUTPUT«("2" => {"a" => 2}, "1" => {"a" => 2}).hash» | |||
03:55
rurban joined
|
|||
grondilu | r: my %f; %f{1} = { a => 1 }; %f{2} := %f{1}; %f{1}{"a"} = 2; %f.say | 03:59 | |
camelia | rakudo-parrot 90b3d6, rakudo-moar 90b3d6: OUTPUT«("1" => {"a" => 2}, "2" => {"a" => 2}).hash» | ||
..rakudo-jvm 90b3d6: OUTPUT«("2" => {"a" => 2}, "1" => {"a" => 2}).hash» | |||
04:00
molaf left
|
|||
grondilu | r: my %f; %f{1} = { a => 1 }; %f{2} = Hash.new: %f{1}; %f{1}{"a"} = 2; %f.say | 04:01 | |
camelia | rakudo-jvm 90b3d6: OUTPUT«("2" => {"a" => 1}, "1" => {"a" => 2}).hash» | ||
..rakudo-parrot 90b3d6, rakudo-moar 90b3d6: OUTPUT«("1" => {"a" => 2}, "2" => {"a" => 1}).hash» | |||
04:08
xenoterracide_ left
04:37
lue left
04:39
cognominal left
04:40
cognominal joined
04:47
Timbus left
04:50
lue joined,
kaleem left
04:51
kaleem joined
05:01
colomon left
|
|||
BenGoldberg | m: say (1e-14).fmt('%.19f') | 05:20 | |
camelia | rakudo-moar 90b3d6: OUTPUT«0..92233720368548e+19» | ||
05:20
colomon joined
05:22
kaleem left
05:25
[Sno] left
05:29
BenGoldberg left
05:37
sftp left
05:40
Alina-malina joined
05:48
sftp joined
05:54
thou left
06:13
kaleem joined
06:18
rurban left
06:24
cxreg left
06:25
SamuraiJack__ joined
06:27
[Sno] joined
|
|||
moritz | good morning. | 06:38 | |
06:38
cxreg joined
06:49
xenoterracide_ joined
06:59
xinming left,
xinming joined
07:00
FROGGS joined,
yves_ left,
yves_ joined
07:02
go|dfish joined
07:04
dagurval_ left,
dagurval joined
07:05
hugme left
07:06
hugme joined,
ChanServ sets mode: +v hugme
07:08
LingeringSouls left
07:09
xenoterracide_ left
07:19
rurban joined
07:53
rurban left
08:04
darutoko joined
|
|||
raydiak | is it appropriate to open a rakudo pull request for a trivial typo fix in docs/? | 08:06 | |
08:06
SamuraiJack__ left
|
|||
grondilu | sure, why not? | 08:11 | |
raydiak | forcing someone whose time is valuable to mark an e-mail as read and go accept the request just to change 1 character in a doc seemed inconsiderate, somehow | 08:15 | |
08:15
zakharyas joined
|
|||
grondilu | I've done it once, jnthn merged it and did not complain. | 08:16 | |
I think it's just a matter of one click to the "merge button", isn't it? | |||
raydiak | more or less...idk, people act in funny ways that I don't understand sometimes...like you'd think tipping someone with coins instead of no tip at all would be a good thing, but people don't react to that well either, I've discovered | 08:19 | |
anyway, I'm sure you're right | |||
08:20
zakharyas left
|
|||
grondilu | just make it clear the pull request is just a typo fix | 08:20 | |
raydiak | will do; thanks grondilu++ | 08:21 | |
08:22
jac50 left
08:24
Rotwang joined
|
|||
moritz | raydiak: merging trivial pull requests is nearly no effort | 08:24 | |
raydiak: so, go ahead | |||
merging non-trivial pull requests that require review is much more effort | |||
raydiak | funny...if it was non-trivial (a substantial contribution), I wouldn't hesitate :) | 08:26 | |
moritz: this is all your fault anyway...came across the typo while I was trying to figure out how to try to figure out why .Array::[] works, as you suggested | 08:30 | ||
or .[], for that matter | 08:31 | ||
08:33
zakharyas joined
|
|||
moritz feels almost guilty | 08:38 | ||
dalek | kudo/nom: 2ce599a | raydiak++ | docs/architecture.html: Fix typo |
||
kudo/nom: e4e8625 | moritz++ | docs/architecture.html: Merge pull request #251 from raydiak/nom Just a trivial typo fix |
|||
moritz | raydiak: thanks | ||
raydiak | moritz: you're welcome; thanks for keeping me on my toes, I genuinely appreciate it | 08:41 | |
08:42
kurahaupo_mobile left
|
|||
moritz | somehow the layout of github.com/rakudo/rakudo/pull/251 is rather broken in my firefox | 08:43 | |
... and looks fin in firefox on my other machine. Weird. | 08:46 | ||
*fine | |||
raydiak | heh | ||
zoom not at 100%, perhaps? | |||
moritz | moritz.faui2k3.org/tmp/ff-pull-request.png | 08:50 | |
zoom doesn't seem to make a difference | |||
gfldex | moritz: did you force a reload with ctrl-LMB on the reload button? | 08:51 | |
08:51
rurban joined
|
|||
raydiak | huh...you have textual names instead of the gravatars | 08:51 | |
08:52
dmol joined
|
|||
moritz | gfldex: I did a ctrl+shift+r which seems to do the same thing | 08:52 | |
raydiak | does this load?: 2.gravatar.com/avatar/a38ecf4c33b9...dac33a2a4b | 08:55 | |
08:56
berekuk joined
|
|||
lizmat | does for me | 08:58 | |
raydiak | I mean in moritz's apparently broken corner of the internet :) | ||
moritz | it does | 08:59 | |
raydiak | odd | ||
short of busting out dev tools to inspect the http headers or checking the browser console for errors, nothing jumps to mind | 09:03 | ||
moritz | firebug doesn't show any errors in the network tab | 09:06 | |
though the console says "Content Security Policy: The page's settings blocked the loading of a resource: An attempt to execute inline scripts has been blocked" | |||
raydiak | ah...haven't heard that one before...inline js is a security threat too, now? | 09:07 | |
09:08
Alula left
|
|||
moritz | well, there's a Content-Security-Policy header that can forbid such things | 09:09 | |
which can be a nice protection against XSS | |||
raydiak | ah, that's what it meant by "The page's settings" | 09:10 | |
I don't see any scripts on that page related to those images, or any inline js at all | 09:11 | ||
any browser extentions that might do it? an overzealous adblocker or something? | 09:13 | ||
moritz | maybe | 09:14 | |
09:18
Rotwang left
09:22
rurban left
09:32
daniel-s_ joined
|
|||
raydiak | g'night all | 09:32 | |
09:32
dakkar joined
09:34
SamuraiJack__ joined
09:44
berekuk left
|
|||
masak | antenoon, #perl6 | 10:17 | |
10:19
rurban joined
|
|||
moritz | \o masak | 10:21 | |
FROGGS | o/ | 10:25 | |
10:40
kivutar left
10:53
rurban left
10:57
dalek left
10:58
dalek joined,
ChanServ sets mode: +v dalek
11:30
Adriaaan joined
11:37
bjz left
11:38
bjz joined
11:42
bjz left
11:44
bjz joined
11:50
fhelmberger joined
12:02
kaleem left
12:03
Adriaaan left
12:05
sjn joined
12:17
araujo left
12:21
immortal is now known as erkan
12:25
rindolf joined
12:51
SamuraiJack__ left
12:53
skids left
12:55
xinming left
12:56
xinming joined
13:00
daniel-s_ left
|
|||
timotimo | constant $GROWTH_RATE of Num where 0..* = 1.6; | 13:02 | |
does this make sense? o_O | |||
masak | um. no. | 13:05 | |
std: constant $GROWTH_RATE of Num where 0..* = 1.6; | |||
camelia | std 09dda5b: OUTPUT«===SORRY!===Missing initializer on constant declaration at /tmp/S9Jmb4OdrW line 1:------> constant $GROWTH_RATE of Num ⏏where 0..* = 1.6;Two terms in a row at /tmp/S9Jmb4OdrW line 1:------> constant $GROWTH_…» | ||
timotimo | thank you | ||
masak | short story: 'where' does not go there. | ||
timotimo | it would have to have a subset defined for it, aye? | ||
masak | bigger problem: why do you even need to restrict a constant in the first place? :P | ||
timotimo | hah | ||
for clarity | 13:06 | ||
masak | yeah, you need a level of indirection with a subset here. | ||
then you can do 'constant MySubset $GROWTH_RATE = 1.6;' | |||
dalek | ecs: ff5dbb6 | (Timo Paulssen)++ | S26-documentation.pod: fix strange perl6 code in alias example |
13:08 | |
13:10
Ven joined,
Sqirrel joined
13:12
mtk joined
13:21
Adriaaan joined,
rindolf left
13:24
SamuraiJack__ joined
|
|||
masak | oh, that code was TheDamian++'s, applied by me. heh. | 13:29 | |
timotimo++ | |||
13:34
kurahaupo_mobile joined
13:40
ajr joined,
ajr is now known as Guest60696,
Guest60696 is now known as ajr_
13:46
varna joined,
varna left,
kbaker joined
13:49
ggherdov joined
14:09
bluescreen10 joined
14:19
jnap joined
14:36
yves_ left,
yves_ joined
|
|||
timotimo | :P | 14:38 | |
14:43
skids joined
14:48
btyler joined
14:49
ggoebel1114 joined
14:51
ggoebel1113 left
14:54
kaare_ left,
kaare_ joined,
treehug88 joined
|
|||
Ulti | just built Rakudo-moar on my macbook \o/ but the REPL doesn't let you press up to get the previous line anymore :< | 14:55 | |
masak | Ulti: I think that needs to have readline installed. | 14:56 | |
it's something of a FAQ, but I don't know that we have the answer written down somewhere. | 14:57 | ||
14:58
kaare_ left,
treehug88 left
15:00
xenoterracide_ joined,
treehug88 joined
15:03
thou joined
|
|||
btyler | Ulti: linenoise was acting goofy on OSX and linux (starting a repl led to an infinite sprew of '>'), so jnthn++ hacked in a simple placeholder so that the Moar release could go out | 15:04 | |
15:04
ajr_ left
|
|||
Ulti | ahh ok | 15:04 | |
masak | btyler++ # knows stuff | 15:09 | |
15:09
ajr joined,
ajr is now known as Guest16779
15:10
Guest16779 is now known as ajr_
15:14
kivutar joined
|
|||
Ulti | just noticed something sort of weird | 15:16 | |
r: say [**] ^8 | |||
camelia | rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«0» | ||
Ulti | r: say [**] ^10 | ||
camelia | rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(timeout)» | 15:17 | |
Ulti | maybe thats really not doing what I though it was | ||
moritz | m: say [**] ^20 | ||
camelia | rakudo-moar e4e862: OUTPUT«0» | ||
Ulti | but the time it takes to calculate grows in a scary way | ||
moritz | Ulti: ** is right-associative | 15:18 | |
Ulti: so it calculates 0 ** (1 ** (2 ** ( 3 ** ... ) ) ) | |||
Ulti: which means it has to calculate the full inner expression, before returning 0 | |||
Ulti | oh | ||
that would explain it a bit more | |||
masak .oO( but a *sufficiently clever* compiler... ) :P | 15:19 | ||
Ulti | apart from my moar build is still doing ^10 but the one here did ^20 fairly snappy | ||
15:21
rurban joined
|
|||
Ulti | looks like moar is the answer though >:3 | 15:21 | |
moritz | Ulti: I wonder why camelia was so quick to answer | ||
Ulti | maybe it just pm's a magician behind the curtain who answers | 15:22 | |
moritz | it does ^8 in < 0.3s for me | ||
and still works on ^9 | 15:23 | ||
1m8.395s for ^9 | |||
Ulti | ^8 isnt coming back to me on my laptop | ||
at least in a time I want to really wait for | |||
^6 is 0.437s | 15:24 | ||
15:25
regreg left
|
|||
Ulti | also its eating 20% of my RAM whilst it thinks about that | 15:25 | |
moritz | 1m39s for ^10 here | ||
moritz seems to have a little bit faster cores than Ulti | 15:26 | ||
15:26
ajr_ left
|
|||
Ulti | its impressive how its using a gigabyte of RAM to do something relatively numerical and its fluctuating wildly too | 15:27 | |
jnthn | I suspect it'll be spending all of its time in the big integer library | 15:28 | |
Ulti | 1.3GB then down to 0.9 really rapidly | ||
so I guess its building big numbers then tearing them down constantly | |||
heh a fun blunder on my part :) big ints are big | 15:32 | ||
15:38
ajr_ joined
15:42
ajr_ left
15:43
ajr_ joined
15:52
salv0 joined
16:02
Psyche^ left
16:03
colomon left
16:04
Psyche^ joined
|
|||
PerlJam | What's the magic incantation to get the rakudo debugger to work? | 16:10 | |
FROGGS | make m-install | ||
that m- is for "magic" here :o) | |||
PerlJam | :-) clearly. | 16:11 | |
jnthn | I normal make install, if you've got Moar, should install it for that. | ||
PerlJam | If I've done "perl Configure.pl --backends=jvm,moar" would not "make install" also install the debugger? | ||
timotimo | it should | 16:12 | |
(though it may forget to +x it) | |||
PerlJam | I guess the short of it is ... I must've done something wrong because I don't have a debugger :) | ||
timotimo | did you run configure.pl very recently? | ||
PerlJam | yesterdayish? | 16:13 | |
jnthn | PerlJam: It'll install (in theory) as perl6-debug-m | ||
16:13
pmurias joined
|
|||
PerlJam | maybe day before | 16:13 | |
timotimo | that should be good enough | ||
just to be safe, try again? | |||
jnthn | PerlJam: Note taht it does not install a UI of any kind | ||
PerlJam | timotimo: aye, trying now :) | ||
jnthn | That needs doing separately; at the moment, by hand since Panda doesn't work on Moar yet | ||
pmurias | perl6: my $foo = gather take 123; | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«Potential difficulties: $foo is declared but not used at /tmp/tmpfile line 1:------> my ⏏$foo = gather take 123;» | 16:14 | |
..rakudo-jvm e4e862: OUTPUT«(timeout)» | |||
( no output ) | |||
16:20
colomon joined
|
|||
timotimo | jnthn: i liked the way you slipped a "oh by the way, i've been on this brand new backend all the time!" into your presentation | 16:22 | |
16:23
[Sno] left
|
|||
jnthn | ;) | 16:24 | |
masak | jnthn++ | ||
jnthn | Yes, it ran all the demos. | ||
Except the JVM one. | |||
timotimo | of course :) | 16:25 | |
16:25
pdcawley left
|
|||
timotimo | did you make sure nobody noticed until you showed that slide? :) | 16:25 | |
masak .oO( * jnthn .oO( have to make sure nobody knows about my VM! ) ) | 16:26 | ||
masak wonders if that's the first time in IRC history someone has done a nested thought bubble. | 16:27 | ||
jnthn | timotimo: That I was using perl6-m was a giveaway for those in the know. | ||
PerlJam | masak: first I've seen | ||
jnthn | .oO( * masak .oO( I must be really special doing this! ) ) |
||
masak | haha | ||
what have I unleash'd | 16:28 | ||
PerlJam | .oO( * jnthn .oO( * mask .oO( I wonder if this is the first 3-way nested thought bubble ) ) ) |
||
:-P | |||
masak | the horror | ||
next up: aleph-null-nested thought bubbles. | |||
16:28
pdcawley joined
|
|||
PerlJam | masak: with unicode! :) | 16:28 | |
masak | that'd be right before we tackle the higher cardinalities. | ||
jnthn | Even nested thought bubbles are not a regular language... :P | 16:29 | |
16:33
regreg joined
|
|||
masak .oO( TOxCDx85xCDx87xCCxB9xCCxBAxC6x9D̴ȳ̳ TH̘ExCDx84xCCx89xCDx96 ͠P̯͍̭O̚N̐Y̡ HxCDxA8xCDx8AxCCxBDxCCx85xCCxBExCCx8ExCCxA1xCCxB8xCCxAAxCCxAFExCCxBExCDx9BxCDxAAxCDx84xCCx80xCCx81xCCxA7xCDx98xCCxACxCCxA9 xCDxA7xCCxBExCDxACxCCxA7xCCxB6xCCxA8xCCxB1xCCxB9xCCxADxCCxAFCxCDxADxCCx8FxCDxA5xCDxAExCDx9FxCCxB7xCCx99xCCxB2xCCx9DxCDx96Oͮ͏̮̪̝͍MxCDx8AxCCx92xCCx9AxCDxAAxCDxA9xCDxACxCCx9AxCDx9CxCCxB2xCCx96ExCCx91xCDxA9xCDx8CxCDx9DxCCxB4xCCx9FxCCx9FxCDx99xCCx9ESxCDxAFxCCxBFxCCx94xCCxA8xCDx80xCCxA5xCDx85xCCxABxCDx8ExCCxAD ) | 16:33 | ||
ah, in-jokes. | |||
16:35
zakharyas left,
kurahaupo_mobile left,
ajr_ left
16:37
breinbaas joined
16:51
Sqirrel_ joined,
Sqirrel left
16:52
rindolf joined
16:55
geekosaur left
|
|||
skids | .oO( Functional thought bubbles ).oO( * masak ) |
16:55 | |
16:57
geekosaur joined
|
|||
PerlJam | ) thinking outside of the bubble .oO( | 16:59 | |
17:03
rurban_ joined
|
|||
raydiak | good morning | 17:11 | |
17:13
SamuraiJack__ left
|
|||
timotimo | hello raydiak :) | 17:14 | |
17:18
nebuchadnezzar left
17:19
pdcawley left
17:22
berekuk joined
17:23
FROGGS left,
huf_ is now known as huf
17:30
xenoterracide_ left
17:33
fhelmberger left
|
|||
dalek | kudo-star-daily: 5db0fac | coke++ | log/ (5 files): today (automated commit) |
17:33 | |
17:35
molaf joined
17:41
raiph joined
17:42
[Sno] joined
17:45
cognominal left
17:46
cognominal joined
18:08
pmurias left
|
|||
vendethiel | is there executable class bodies (like in ruby etc) ? | 18:09 | |
or proxies (?) are the recommended wya ? | |||
18:12
ajr joined,
ajr is now known as Guest60761,
Guest60761 is now known as ajr_
18:14
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
18:18
kurahaupo_mobile joined
18:20
erkan left
18:21
vky joined
18:24
dakkar left
18:29
pecastro joined
18:30
pecastro left
18:31
pecastro joined,
pecastro left
18:32
FROGGS joined
|
|||
FROGGS | hello from a couch | 18:33 | |
raydiak | \o from a chair | ||
nwc10 | dear camelia, please rebuild Moar | 18:34 | |
raydiak | r: say $*PERL<compiler><build-date> | 18:41 | |
camelia | rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..rakudo-moar e4e862: OUTPUT«2014-02-06T10:18:10Z» | |||
..rakudo-parrot e4e862: OUTPUT«2014-02-06T10:24:25Z» | |||
raydiak | r: say $*PERL.perl | 18:45 | |
camelia | rakudo-moar e4e862: OUTPUT«{"name" => "rakudo", "compiler" => {"name" => "rakudo", "ver" => "2014.01-65-ge4e8625", "release-number" => "", "build-date" => "2014-02-06T10:18:10Z", "codename" => ""}}» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-parrot e4e862: OUTPUT«{"name" => "rakudo", "compiler" => {"name" => "rakudo", "ver" => "2014.01-65-ge4e8625", "release-number" => "", "build-date" => "2014-02-06T10:24:25Z", "codename" => ""}}» | |||
raydiak | r: say "foo" | ||
camelia | rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«foo» | |||
raydiak | o_O | 18:46 | |
did IO::Socket break under jvm or something? | 18:47 | ||
r: say 1 | 19:01 | ||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«1» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
19:01
darutoko left
|
|||
raydiak | (or perhaps the jvm evalserver crashed?) | 19:02 | |
FROGGS | evalbot control restart | 19:03 | |
19:03
rindolf left
19:04
camelia joined
|
|||
FROGGS | r: say 1 # this will take a while | 19:04 | |
19:04
berekuk left
19:05
ChanServ sets mode: +v camelia
|
|||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«1» | 19:05 | |
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
FROGGS | :/ | ||
19:08
rindolf joined
19:15
nebuchadnezzar joined
19:18
zakharyas joined,
itz_ left
19:19
denisboyun joined,
itz joined,
kurahaupo__ joined
19:20
kurahaupo_mobile left
|
|||
vendethiel | DAMMIT I forgot to report the bug | 19:30 | |
well admittedly I only got on the comp for an hour or so during the day :/ | |||
19:32
berekuk joined
19:33
SamuraiJack__ joined
|
|||
itz | is "ufo" obsolete? | 19:36 | |
colomon | itz: I know I haven't used it (directly, anyway) in at least a year | 19:37 | |
might still work, I dunno | |||
itz | I was finding a ufo-m modified version useful | 19:38 | |
timotimo | i've sometimes used ufo | 19:39 | |
it doesn't do custom Build.pm, though | |||
FROGGS | itz: there is a fork on github for ufo-m | 19:42 | |
timotimo | ooooh | 19:43 | |
a fork or a branch? | |||
19:44
telex left
|
|||
FROGGS | a fork | 19:44 | |
github.com/iProcess/mufow64 | 19:45 | ||
ohh, it is not a fork actually | |||
19:45
Sqirrel_ left
|
|||
timotimo | i have never heard of this person or this ... thing | 19:47 | |
19:47
Rotwang joined
|
|||
FROGGS | timotimo: his nick is V_C_S | 19:48 | |
itz | thats identical to my fork :) | ||
FROGGS | err, V_S_C probably | ||
timotimo | ah, yes! | ||
FROGGS | I'd prefer a ufo version that does the right thing depending on the currently used backed | 19:49 | |
itz | I was wondering about that... | ||
timotimo | yes | ||
FROGGS | because in the end it is just about three or four different lines of code | ||
19:50
telex joined
|
|||
itz | it might be useful as a stopgap before panda works | 19:50 | |
19:50
telex left
19:52
telex joined
|
|||
itz | perl6: say $?VM | 20:00 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] i…» | 20:01 | |
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileVariable '$?VM' is not declaredat /tmp/tmpfile:1------> say $?VM⏏<EOL> expecting any of: postfix» | |||
20:05
Augustus joined
|
|||
Augustus | Hi guys, I have a (hopefully) quick question. Can anyone explain the conditions where a grammar *does NOT* do longest token matching, and how do you force it to do LTM? | 20:06 | |
FROGGS | Augustus: /[ a || b ]/ does sequential matching, while /[ a | b ]/ does LTM | 20:08 | |
Augustus | yes, but not under all conditions | ||
moritz | m: say (1, 2, 18).max | 20:09 | |
camelia | rakudo-moar e4e862: OUTPUT«18» | ||
moritz | m: say (1, 2, 18).minmax | ||
camelia | rakudo-moar e4e862: OUTPUT«1..18» | ||
Augustus | I need to know how to force [a | b] to do LTM when it doesn't | ||
FROGGS | p: say "aabbabbbbbbbbbbbbb" ~~ / b+ / | ||
camelia | rakudo-parrot e4e862: OUTPUT«「bb」» | ||
moritz | you can't force LTM; you can only avoid things that are LTM stoppers | 20:10 | |
FROGGS | Augustus: do you mean that? | ||
moritz | Augustus: perlcabal.org/syn/S05.html#Longest-...n_matching has the gory details | ||
Augustus | moritz: what are LTM stoppers? | ||
moritz: I read through S05 and it was a little dense | |||
FROGGS | code blocks for example | ||
Augustus | as far as I can tell I'm not doing any of those things | ||
moritz | Augustus: then show your code | 20:11 | |
FROGGS | what moritz said | ||
Augustus | <var> '=' [<expr> | <term>] | ||
simple example, but it's not doing LTM | |||
moritz | well, LTM descends into subrules | ||
20:12
molaf left
|
|||
moritz | so it only LTMs if <expr> and <term> both do LTM | 20:12 | |
FROGGS | now we'd need to know how expr and term looks like | ||
Augustus | they consist of literals and alternations only, or subrules that are literals or alternations | ||
moritz | then you have found a bug. | 20:13 | |
FROGGS | can you create a self containing example? a simple script that you can put in a gist? | ||
Augustus | the grammar i have is only 30 lines long with a few rules in the first place. what do you mean by put in a gist? | 20:15 | |
skids | gist.github.com | 20:16 | |
FROGGS | Augustus: well, put that grammar in a gist (github's nopaste), including a test string and the invocation of the grammar | ||
that that we just need to download an run it, to see something | |||
(every nopaste service is fine) | 20:17 | ||
moritz | r: say (1..5).from | 20:18 | |
camelia | rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«No such method 'from' for invocant of type 'Range' in block at /tmp/tmpfile:1» | |||
moritz | r: say (1..5).min | ||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«1» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
Augustus | moritz, FROGGS: Here is just the grammar, see if it's obvious. I can also upload the whole script too. gist.github.com/anonymous/8851771 | 20:19 | |
moritz | Augustus: which string exhibits non-LTM behavior? | ||
itz | r: say $*VM<name> | 20:20 | |
Augustus | moritz, FROGGS: in particular, the assignment rule always matches a term instead of taking a longer expression, so "x = 2 + 3" will match "x = 2" and leave the "+ 3" | ||
camelia | rakudo-moar e4e862: OUTPUT«moar» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-parrot e4e862: OUTPUT«parrot» | |||
moritz | Augustus: oh; rules imply <.ws>, and <.ws> stops LTM | ||
mystery solved. | |||
Augustus | hmm, ok, how do I stop that? | ||
moritz | don't use rule, or try writing your own ws that doesn't stop LTM | 20:21 | |
FROGGS | make it a token and replace possible whitespace by \s* ? | ||
Augustus | ahh, ok | ||
tokens will still match subrules/subtokens? | |||
FROGGS | yes | 20:22 | |
Augustus | ok, i'll give that a try and let you know. thanks! | ||
FROGGS | cool :o) | ||
Augustus | awesome, thanks, that worked. Is there a good place to see a summary of the differences between rules and tokens? | 20:24 | |
20:25
denisboyun left
|
|||
moritz | S05 :-) | 20:28 | |
20:28
[particle]1 left
20:29
[particle] joined,
Ven left
|
|||
skids | This section in particular: perlcabal.org/syn/S05.html#Regexes_...ng_strings | 20:30 | |
Augustus | moritz: ok, I'll keep going through S05 ;) One more quick question. How would you recommend doing optional parenthesis around an expression? Make another rule that says ['('<expr>')'] | <expr> or is there a way to do it with ? like so: '('? <expr> ')'? except the second one isn't optional if the first one is found? | ||
moritz | Augustus: ['('<expr>')'] | <expr> | 20:31 | |
Augustus | moritz: Ok. it is possible, though, with backreferences or something, to do it the other way, right? It's just more complicated? | 20:32 | |
skids: Thanks, that is helpful | |||
moritz | well, you can do things with capturing the optional '(' and then using an assertion when matching the the closing ')' | 20:33 | |
Augustus | moritz: Ok. I'm curious to try doing that just to learn how all the stuff works. I'll look at the assertions section. | 20:34 | |
20:39
cooper_ joined
20:40
cooper_ is now known as cooper
20:41
cooper left,
cooper joined
|
|||
moritz | masak: github.com/moritz/world-map run perl6-m map.pl > test.svg; firefox test.svg; | 20:43 | |
20:49
psch joined
|
|||
psch | hi #perl6 | 20:49 | |
i'm doing things wrong again \o/ | 20:50 | ||
i've been trying to factor out the typed exception code from World and Optimizer into a role | |||
jnthn | psch: UR DOING IT RONG | ||
FROGGS | RONG /o\ | ||
20:50
berekuk left
|
|||
psch | but in the role i get a 'Cannot invoke null object' when trying to call subst() | 20:50 | |
jnthn | So am I, though. Just lost 30 mins debugging 'cus I confused bits with bytes... | ||
psch: Yeah, known NQP limitation :( | 20:51 | ||
Not your fault. | |||
psch | jnthn: so nqp core functions can't be invoked from roles? | ||
jnthn | psch: Yeah. There's a bug in that area. Rakudo has a bunch of code that deals with the issue. | ||
psch: For now I can only really suggest copying subst, and filing an NQP ticket saying "arghh fix this" | 20:52 | ||
psch | well, that's slightly reassuring at least, in so far as it's not actively my fault :) | 20:53 | |
i'll go with copying subst i guess; where should the ticket go? | 20:54 | ||
masak | wow, moritz++! | 20:55 | |
masak tries it | |||
20:55
berekuk joined
|
|||
psch | oh, also i've just now built my patch for parrot, and it doesn't die there, in contrast to moar..? | 20:56 | |
timotimo | moritz: now make one that's able to distort the sizes of countries based on some number data :D | 20:57 | |
jnthn | psch: Add it as an NQP ticket (GitHub issues, perl6/nqp) | 21:00 | |
psch: Moar has stricter closure rules. | |||
psch: JVM will end up following the same rules as Moar, when I get time to do the rather painful refactors. | |||
psch | jnthn: alright, will do, thanks | ||
jnthn | psch: The JVM approach suffers a few threading-related bugs. | 21:01 | |
timotimo | the stricter rules are wanted then? | ||
jnthn | timotimo: Yes, they make us fix bugs in code-gen, etc. | ||
timotimo | that's good | ||
21:03
xenoterracide_ joined
|
|||
psch | gist.github.com/peschwa/8852488 # can i have a bit of advice or an explanation for this as well? | 21:09 | |
i'm not sure i should change the signature or the callers, seeing as it's all over World and Actions | 21:10 | ||
updated to make it obvious that there's not a random string but the exception name in the broken case | 21:11 | ||
timotimo | it would seem like getting an iterator of a string, you'll get individual characters | ||
nqp: say(nqp::islist("FooBar")); | |||
camelia | nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0» | 21:12 | |
timotimo | er. | ||
actually you have a list with strings in it | |||
psch | timotimo: exactly, but i still get letters | ||
or characters rather | |||
timotimo | oh | ||
you shouldn't put a new my in an inner block | |||
psch | oh, right | 21:13 | |
timotimo | also, if you are in the last line where you join(...), you may have $ex_type be just a string | ||
you should use @ex_name instead | |||
21:14
denis_boyun joined
|
|||
psch | that does explain how the error message comes i guess | 21:15 | |
timotimo | yes :) | 21:17 | |
21:18
Augustus left,
psch left
21:22
psch joined
|
|||
psch .oO( stupid crashing vm *grumble* ) | 21:23 | ||
21:24
SamuraiJack__ left
21:25
regreg left
21:27
kaare_ joined
|
|||
skids | .oO(why doesn't nqp-jvm also have the syswrite error) |
21:33 | |
21:36
itz_ joined
21:38
SamuraiJack__ joined
21:39
lizmat_ joined
21:41
bluescreen10 left
21:43
lizmat left
21:51
itz_ left,
itz_ joined
21:59
SamuraiJack__ left
|
|||
japhb_ | What's the right syntax for destructuring a pair? I want to do: for @pairs -> ... syntax here for extracting $k and $v ... { # Now I can just directly talk about the k/v of each pair | 21:59 | |
22:00
rindolf left
|
|||
japhb_ | I guess I can do: for @pairs>>.kv -> $k, $v { # but that feels repetitive | 22:01 | |
22:02
zakharyas left
|
|||
psch | m: my %a = { a => 1, b => 2 }; for %a -> $k, $v { say "$k: $v" } # this? | 22:03 | |
camelia | rakudo-moar e4e862: OUTPUT«a 1: b 2» | ||
psch | huh | ||
no, probably not | |||
masak | m: my $p = "foo" => 42; for $p xx 4 -> (:$key, :$value) { say "$key maps to $value" } | ||
camelia | rakudo-moar e4e862: OUTPUT«foo maps to 42foo maps to 42foo maps to 42foo maps to 42» | ||
psch | i don't even understand what it actually does | ||
masak | japhb_: ^^ | 22:04 | |
japhb_ | psch, I've specifically got an array of pairs, not a hash. | ||
masak++ | |||
Thanks! | |||
masak bows | |||
psch | japhb_: right, i don't read thoroughly enough, you mentioned the array, sorry | ||
japhb_ | psch, No worries. :-) | 22:05 | |
22:06
treehug88 left
|
|||
japhb_ | r: my @a = foo => 1, bar => 2; @a.perl.say; for @a.list -> (:$k, :$v) { .say for $k.perl, $v.perl } | 22:06 | |
camelia | rakudo-parrot e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2)2 unexpected named parameters passed (key, value) in sub-signature in block at /tmp/tmpfile:1» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-moar e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2) in block at /tmp/tmpfile:1» | |||
japhb_ | r: my @a = foo => 1, bar => 2; @a.perl.say; for @a -> (:$k, :$v) { .say for $k.perl, $v.perl } | ||
camelia | rakudo-parrot e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2)2 unexpected named parameters passed (key, value) in sub-signature in block at /tmp/tmpfile:1» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
..rakudo-moar e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2) in block at /tmp/tmpfile:1» | |||
japhb_ | OK, what's wrong there? | 22:07 | |
skids doesn't even know how masak's example worked. | |||
psch | i think :key and :value are magic there | ||
masak | no, not really. | ||
a Pair is an object. | |||
japhb_ | r: my @a = foo => 1, bar => 2; @a.perl.say; for @a -> (:$key, :$value) { .say for $key.perl, $value.perl } | ||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2)"foo"1"bar"2» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
masak | m: say Pair.^attributes | ||
camelia | rakudo-moar e4e862: OUTPUT«Mu $!key Mu $!value» | 22:08 | |
japhb_ | >.< | ||
raydiak | r: my @a = foo => 1, bar => 2; @a.perl.say; for @a -> (:key($k), :value($v)) { .say for $k.perl, $v.perl } | ||
japhb_ | OK, I understand. | ||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2)"foo"1"bar"2» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
masak | rakudo-jvm seems busted. | ||
psch | huh | ||
japhb_ | Yeah, quite. | ||
raydiak | I was complaining about that hours ago | ||
22:08
treehug88 joined
|
|||
psch | ooh the -> ( ) takes a Pair? | 22:08 | |
masak | don't need complaining. need moritz++ or equivalent. | ||
psch: no, the -> ( ) takes an object. | |||
psch | oh, now i get it | 22:09 | |
japhb_ | psch, masak's point was that Pair is not special. It's just an object. So it can be destructured as one using standard subsignature methods. | ||
psch | the array has pairs | ||
of course | |||
that was the whole point amirite | |||
masak | see S06:1791 | 22:10 | |
synopsebot | Link: perlcabal.org/syn/S06.html#line_1791 | ||
japhb_ | Yeah, I was stuck thinking of finding a syntax that was similarly special to destructuring of arrays. | ||
But I didn't need that. | |||
masak | nope. | ||
there's one syntax for arrays, and one for objects. | |||
confusingly, the array one is [], but the objects one is () | |||
it has to be that way because {} is taken for the block itself :) | |||
japhb_ | Mind you, 'for @a -> (:$key, :$value)' is not much better than 'for @a>>.kv -> $k, $v' for concision. | 22:11 | |
raydiak | *shrug* didn't know who to talk to, so I though a general public mention might get someone's attention eventually...FROGGS++ tried restarting it with no change | ||
jnthn | masak: Note that you can use (...) for arrays too | 22:12 | |
PerlJam | japhb_: the latter would have been clearer IMHO | 22:13 | |
jnthn | masak: [...] forces a Positional type constraint also, iirc | ||
japhb_ | r: my @a = foo => 1, bar => 2; @a.perl.say; for @a>>.kv -> { .say for $^k.perl, $^v.perl } | ||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfilePlaceholder variable '$^k' cannot override existing signatureat /tmp/tmpfile:1------> >>.kv -> { .say for $^k.perl, $^v.perl }⏏<EOL> …» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
japhb_ | r: my @a = foo => 1, bar => 2; @a.perl.say; for @a>>.kv { .say for $^k.perl, $^v.perl } | ||
camelia | rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«Array.new("foo" => 1, "bar" => 2)"foo"1"bar"2» | ||
..rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | |||
masak | jnthn: oh, that makes sense. | 22:14 | |
japhb_ | Hmmm, that may be even better for very simple loops. | ||
22:17
stevan_ joined
|
|||
masak | r: my @a = foo => 1, bar => 2; for @a { say .key.perl; say .value.perl } | 22:20 | |
camelia | rakudo-jvm e4e862: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.» | ||
..rakudo-parrot e4e862, rakudo-moar e4e862: OUTPUT«"foo"1"bar"2» | |||
22:20
vky left
|
|||
masak | I'd do it that way, I think. | 22:20 | |
skids never knew attributes could explode into subsignatures. Thought just things that looked more like named args. | 22:21 | ||
22:31
stevan_ left
|
|||
skids | Funny distinction of attribute vs accessor method there. | 22:32 | |
r-parrot: sub foo((:$a,:$b)) { $a.perl.say; $b.perl.say }; class c { has $.a; method b () { $!a }}; my c $c .= new(:a<a>); $c.b.say; foo($c) # virtual attribs need not apply | 22:34 | ||
r-p: sub foo((:$a,:$b)) { $a.perl.say; $b.perl.say }; class c { has $.a; method b () { $!a }}; my c $c .= new(:a<a>); $c.b.say; foo($c) # virtual attribs need not apply | 22:35 | ||
camelia | rakudo-parrot e4e862: OUTPUT«a"a"Any» | ||
timotimo | it differentiates into attributes and methods? :o | ||
skids | Yeah that's what threw me. | ||
It is what the spec says. | 22:36 | ||
timotimo | well, a method kind of smells like impure, global-state-mutating, ... | ||
psch | hrm | 22:38 | |
i'm really not quick today | |||
subst references match | |||
and declaring subst as sub or method in my role doesn't work | |||
so each of the two calls to subst need to be fully unrolled calls to subst, with nested calls to match | |||
that definitely makes me sad | 22:39 | ||
masak | :/ | ||
timotimo | i have a headache and don't understand what happened | ||
skids commute | 22:40 | ||
jnthn | psch: Well, other solution is adding before your role a "my class Hacks { method subst(*@x) { subst(|@x) } }" and then Hacks.subst(...) | ||
22:41
kbaker left
|
|||
psch | jnthn: that sounds a bit more brain-friendly right now | 22:41 | |
22:44
skids left
22:48
hugme left
22:49
hugme joined,
ChanServ sets mode: +v hugme
|
|||
masak | 'night, #perl6 | 22:50 | |
jnthn | 'night, masak | 22:52 | |
timotimo | good night masak | ||
22:52
BenGoldberg joined
|
|||
psch | jnthn++, timotimo++ # refactoring help | 23:08 | |
i'm down to 18 failing tests that should pass, which is something like 400% improvement \o/ | 23:09 | ||
timotimo | that sounds great good work | ||
psch | timotimo: well, most of it was subst not getting resolved | 23:10 | |
the ones that fail now probably are because of things i don't quite get yet | |||
but i don't think i have the brains to keep going now | |||
e.g. "not ok 696 - right exception type (X::Method::NotFound)\n# Got: (X::Redeclaration)\n# Expected: (X::Method::NotFound)" | 23:11 | ||
what's most confusing to me right now is that some cases of X::Syntax::Confused also don't pass anymore | |||
but yeah, i'll look into that tomorrow or over the weekend | |||
there's also still a few bits of code i still have to pull into the role i think | 23:12 | ||
23:13
Rotwang left,
[particle] left
|
|||
psch | actually i think no case for X::Syntax::Confused passes anymore, with "Error while compiling type" | 23:13 | |
anyway, i'll be back tomorrow or over the weekend o/ | 23:14 | ||
23:14
psch left
23:15
gfldex left
23:25
telex left
23:26
telex joined
23:28
berekuk left,
vky joined
23:33
gfldex joined
23:34
larks left
23:37
kivutar left
23:41
btyler left
23:43
gfldex left,
[particle] joined
23:45
gfldex joined
23:47
dmol left
23:59
berekuk joined
|