»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:03
perimosocordiae left
00:06
kfo joined
00:11
MayDaniel left
|
|||
dalek | rixel: 7603dda | diakopter++ | sprixel/Program.cs: more [p6]eval tweaks |
00:13 | |
rixel: dfbf4be | diakopter++ | sprixel/Program.cs: pathsep |
00:14 | ||
rixel: 381627b | diakopter++ | sprixel/Program.cs: Path.DirectorySeparatorChar, I mean |
00:16 | ||
rixel: 2a17fca | diakopter++ | sprixel/src/compiler/PerlesqueEval.cs: another attempt |
00:29 | ||
00:29
Mowah left
00:45
mtk left
|
|||
dalek | rixel: 946e415 | diakopter++ | sprixel/src/compiler/PerlesqueEval.cs: add .exe back <SIGH> |
00:47 | |
diakopter | yay! | 00:51 | |
perlesque: gist.github.com/798791 | |||
p6eval | perlesque: OUTPUT«socks 4 50sunglasses 7 20note-case 22 80waterproof overclothes 43 75waterproof trousers 42 70suntan cream 11 70banana 27 60glucose 15 60sandwich 50 160water 153 200compass 13 35map 9 150value: 1030 weight: 396» | ||
00:51
mtk joined
|
|||
diakopter | # knap01 example, translated from TimToady's & sorear's | 00:51 | |
00:51
Vlavv left
|
|||
diakopter | (speedy) :) | 00:52 | |
donri_ | it runs gists? | 00:54 | |
diakopter | all of the p6eval targets do ;) | ||
dalek | albot: f8923f1 | (Perl 6 Evalbot)++ | evalbot.pl: perlesque - to save the assembly first |
00:56 | |
diakopter | perlesque: my $stopwatch=Diagnostics::Stopwatch.StartNew(); my int $i=1_000_000_000; while ($i--) { }; say($stopwatch.Elapsed); # harumph | 01:00 | |
p6eval | perlesque: OUTPUT«00:00:03.9364270» | ||
diakopter | sorear: that answers that... | ||
01:01
Trashlord left
|
|||
diakopter | phenny: tell sorear see the backclog where I left this msg; a merely integer decrementing routine isn't sped up by running it after saving it to disk (but the knap01 was sped up tremendously) | 01:02 | |
phenny | diakopter: I'll pass that on when sorear is around. | ||
01:04
Vlavv joined
01:07
s1n left
01:10
icwiener_ joined
01:13
icwiener left
01:16
icwiener_ left,
achilles14 joined
01:18
s1n joined
|
|||
sorear wanders back | 01:21 | ||
phenny | sorear: 01:02Z <diakopter> tell sorear see the backclog where I left this msg; a merely integer decrementing routine isn't sped up by running it after saving it to disk (but the knap01 was sped up tremendously) | ||
diakopter | (also I got knqp01 to work in 2-3 seconds) :) | 01:22 | |
01:22
jimr23 joined
|
|||
sorear | diakopter: niecza/std have colored ==SORRY== output, via ansi codes, and irssi interprets it fine :) | 01:22 | |
diakopter | right, I was thinking of rakudo and others | 01:23 | |
01:24
achilles14 left
|
|||
sorear | diakopter: I never intended to suggest disk-saving would make much of a difference | 01:24 | |
diakopter: mono and .net are both JITs; they do not save executable code in normal operation, regardless of AssemblyBuilderAccess | 01:25 | ||
diakopter | I didn't say you suggested disk-saving would make much of a difference | ||
sorear | (and mono --aot makes execution *slower*, not faster) | ||
01:26
uvtc joined
|
|||
diakopter | I was referring to our off-channel discussion where I mentioned that mono was 20x faster in disk-saving mode | 01:26 | |
01:27
jimr23 left
|
|||
diakopter | so you suggested making a simple integer decrementing program and see if the different mode affects that | 01:27 | |
uvtc | Can anyone please point me to that plot of Rakudo performance over time? I can't find the link. | ||
diakopter has no idea | 01:28 | ||
uvtc | It had some given script (or maybe more than one) run on the various monthly releases. | 01:29 | |
sorear | diakopter: oh, I completely forgot about that | ||
uvtc: isparrotfastyet.??? | 01:30 | ||
IIRC | |||
colomon | uvtc: it was more than one. | ||
umm... I had the source open in my browser before a recent crash. | |||
uvtc | colomon: was it something you put together? | ||
colomon | nope | ||
I was just hoping to run it against more recent Rakudos | |||
uvtc | If nothing else, it might be useful to choose a handful of the more intensive Rosetta Code examples and group them into a suite to gauge perf. | 01:32 | |
diakopter | you mean the less intensive ones... | 01:33 | |
the more intensive ones won't terminate ..... ever | |||
uvtc | Well, ones that take a minute or two ... ah. | ||
diakopter | with the larger inputs, of course. | 01:34 | |
colomon | now, we do have a repo for benchmark scripts: | ||
github.com/perl6/bench-scripts | |||
uvtc | Oh, excellent. Is there any data on how long the current Rakudo/Parrot takes to run them all? | 01:35 | |
I think it would be very useful to have a tool to run the whole suite and time it -- so the total execution time can be tracked over releases. | 01:36 | ||
Ooof. Kids. Gotta go. afk | 01:37 | ||
01:37
uvtc left
|
|||
colomon | uvtc: that's the tool I had open in my browser. :( | 01:37 | |
colomon reckons that if he searches enough through the ir clog, he'll find it again. | 01:38 | ||
gil.di.uminho.pt/users/smash/rakudo-bench.html is the graphs.... | 01:47 | ||
ooo, and it links to the script! score! | |||
diakopter | colomon: nice find | 01:48 | |
hopefully the test scripts themselves aren't being "optimized" over time to show artificial improvement | 01:49 | ||
colomon | Would be much easier to find if the text of the page actually said "rakudo star benchmarks", I imagine. :) | ||
diakopter | (or at least, if they are, all the back timings would need recomputed) | ||
colomon | I think he was recomputing everything every time. | ||
01:49
formalin14 joined
|
|||
diakopter | with each of the past releases? | 01:50 | |
colomon | That's what I remember seeing when I was poking around the source, yes. | 01:51 | |
yeah, it looks like smash just has a directory named ~/rakudo with a bunch of rakudos in it. | 01:53 | ||
01:54
formalin14 left
01:55
uvtc joined,
formalin14 joined
|
|||
uvtc | That's it. :) Thanks for finding that, colomon. | 01:55 | |
colomon | Bah, I should be getting colomon-- for not getting around to getting it all running again. | 01:56 | |
formalin14 | Where can I find some cookbook or examples or tests? | ||
uvtc | colomon: might be useful if that page was linked to from rakudo.org/status | 01:57 | |
colomon | formalin14: There's quite a few small examples at rosettacode.org/wiki/Category:Perl_6 | 01:58 | |
uvtc: agreed. | |||
formalin14 | thanks colomon, I will take a look. | ||
uvtc | formalin14: Also github.com/perl6/perl6-examples (as linked to by the perl6.org docs page) | 01:59 | |
colomon | formalin14: and also modules.perl6.org/ | 02:00 | |
02:01
noganex_ joined
02:04
formalin14 left
02:05
lopaway is now known as lopnor,
noganex left,
lopnor is now known as lopaway,
lopaway is now known as lopnor,
formalin14 joined
02:06
uvtc left
02:15
donri_ left,
formalin14 left
03:05
Tene_ is now known as Tene
03:12
jrockway left
03:20
Chillance left
03:31
jrockway joined
04:03
jaldhar left,
jaldhar joined
04:23
Su-Shee_ joined
04:27
Su-Shee left,
nymacro left
04:30
lopnor is now known as lopaway
04:42
jferrero left
04:49
Rotwang left
05:00
zorgnax joined
05:02
woosley joined
05:04
zorgnax left
05:36
masonkramer_ joined,
masonkramer left
05:37
Alias left
05:52
nymacro joined,
Aphelionz joined
06:11
ymasory left
|
|||
TiMBuS | heeey whycome my perl6 irc bot isnt on the modules.perl6.org page? is there something wrong with my repo setup | 06:20 | |
06:26
justatheory left,
justatheory joined
06:31
justatheory left
06:34
kaare_ joined
06:49
isBEKaml joined
06:51
isBEKaml left
06:53
Aphelionz left
06:58
zby_home joined
07:00
benabik joined
07:03
stifynsemons left
07:27
tt joined
07:38
rdesfo left
07:46
_ilbot left,
_ilbot joined
|
|||
moritz_ | TiMBuS: did you add it to the ecosystem? | 07:47 | |
TiMBuS | yep | ||
i think i broke it by naming it net::irc but not actually having a net/irc.pm? | |||
moritz_ | then talk to tadzik when he appears, he has been hacking on it lately | 07:48 | |
07:48
kaare_ left
|
|||
moritz_ | I don't think that matters for the modules.perl6.org listing | 07:48 | |
TiMBuS | oh | 07:49 | |
07:49
_ilbot left
07:50
_ilbot joined
|
|||
TiMBuS | hmm all i can think of is case sensitivity then | 07:50 | |
unless it needs to see a .pm file without going all the way down to ./lib/Net/IRC/ | 07:51 | ||
moritz_ | I also have an 'svg-plot' project which then has lib/SVG/Plot.pm | 07:53 | |
so I don't think that's the problem | |||
07:56
envi joined
|
|||
moritz_ | phenny: tell colomon bumping parrot revision: either in the parrot repo type 'git describe --tags', or if you have a compiled parrot, run 'parrot_config git_describe` to get the identifier string that you then copy into build/PARROT_REVISION | 07:57 | |
phenny | moritz_: I'll pass that on when colomon is around. | ||
08:03
tt left
08:05
jtbraun1 joined
08:07
jtbraun left
08:10
jtbraun joined
08:12
jtbraun1 left
08:14
szabgab_ left,
szabgab joined
08:23
envi left,
envi joined
08:26
envi_ joined
|
|||
moritz_ | I'm now doing timings before and after gen_gc2 | 08:27 | |
before: real 30m18.301s | |||
user 54m3.967s | |||
for a spectest run | |||
08:30
envi left
08:31
mtk left
08:34
JimmyZ joined
|
|||
sorear -> sleep | 08:36 | ||
tadzik | morning zebras | 08:37 | |
08:38
mtk joined
|
|||
tadzik | TiMBuS: what about this IRC module? | 08:42 | |
TiMBuS | tadzik, i added my module to the ecosystem a while ago but its not showing up on modules.perl6.org | 08:44 | |
github.com/TiMBuS/Net--IRC this one | |||
tadzik | lemmee see | 08:45 | |
08:52
Layla_91 joined
08:53
masak joined
|
|||
masak | morning, zebras. | 08:53 | |
tadzik | oh hello masak and Layla_91 | 08:54 | |
Layla_91 | hello zebras =) | ||
moritz_ | after gen_gc2: real 18m57.030s | 08:55 | |
user 35m54.595s | |||
good morning zebras | |||
jdhore | moritz_, dude, holy crap | 08:56 | |
tadzik | what timing is that, spectests? | ||
jdhore | yeah | ||
moritz_ | rakudo: my $before = 30 * 60 + 18; my $after = 18 * 60 + 57; say ($before - $after) / $before * 100 | 08:58 | |
p6eval | rakudo : OUTPUT«37.4587458745875» | ||
jdhore | 37% faster...That's pretty damn good | ||
tadzik | aye | 08:59 | |
moritz_ | bacek++ | 09:01 | |
jdhore | bacek++ | 09:02 | |
masak | now just repeat that trick a couple of times, and Rakudo will actually be fast ;) | 09:04 | |
dalek | kudo: 90ed2e2 | moritz++ | build/PARROT_REVISION: significantly speed up spectest run initial measurements show a 37% improvement. OK, I cheated. bacek++ did all the real work, I merely bumped PARROT_REVISION |
||
jdhore | It's kind of epic that just replacing the GC had a 37% performance improvement (generally). | 09:06 | |
[Coke] | IIRC, there are still tuning opportunities available for the new GC. | 09:08 | |
tadzik | 19 Net-IRC | 09:09 | |
Error for project Net-IRC : could not get github.com/TiMBuS/Net-IRC/ (project probably dead) | |||
TiMBuS: got your problem | |||
jdhore | Yeah, i thought i saw that somewhere | ||
moritz_ | Net-IRC vs. Net--IRC ? | 09:10 | |
tadzik | yeah | ||
buid-projects-list.pl seems to be confused | |||
do not fix the list, I'll peek into the script | |||
$project ->{url}= "github.com/$project->{auth}/$pro...;{name}/"; | 09:15 | ||
there we go | |||
TiMBuS | ack | 09:20 | |
will fix that | 09:21 | ||
moritz_ | tadzik++ | 09:22 | |
tadzik | TiMBuS: wait, I probably fixed that, testing | ||
TiMBuS | oh cool | 09:23 | |
made it so the project name doesnt need to match the repo name? | |||
tadzik | nah. Basically, the modules.perl6.org script was ignoring the repo url, but rather it was extracting the author from it, and building the url itself | 09:26 | |
which caused a problems if the repo url wasn't exactly matching the module name, like in your case | |||
TiMBuS | odd way to do it.. | ||
tadzik | also, there is a feature to support gitorious, but: | ||
my ($auth) = $url =~ m[git://github.com/([^/]+)/]; | |||
is it safe to assume gitorious support is dead and cold? :) | 09:27 | ||
masak | I think mberends has a module over at gitorious... | 09:28 | |
that doesn't mean the support for it isn't dead and cold, of course... | |||
tadzik | huh, there are more errors. Testing seems broken too | 09:29 | |
that explains why it's not on the list | |||
same reason it seems | 09:31 | ||
the script could use some perltidy btw :) | |||
hmm, does one escape '.' inside the character class? | 09:32 | ||
moritz_ | nope | ||
tadzik | thanks | 09:33 | |
masak | std: /<[...z]>/ | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Range missing start character on the left at /tmp/vabRA6i6Fh line 1:------> /<[..⏏.z]>/Check failedFAILED 00:01 120m» | 09:34 | |
09:36
quester_ joined
|
|||
quester_ | nick | 09:36 | |
09:39
dakkar joined
09:45
quester_ left
09:47
Mowah joined
|
|||
colomon | make test on the ABC module is a bit better than 25% faster with the new GenGC Rakudo! | 09:51 | |
phenny | colomon: 07:57Z <moritz_> tell colomon bumping parrot revision: either in the parrot repo type 'git describe --tags', or if you have a compiled parrot, run 'parrot_config git_describe` to get the identifier string that you then copy into build/PARROT_REVISION | ||
masak | rakudo: sub b($_) { my $l = 0; for .comb { when "]" { return False if --$l < 0 }; when "[" { ++$l } } }; my $s = "[[]]".comb.pick(*).join; say "$s {b($s) ?? "is" !! "isn't"} well-balanced" | 09:52 | |
p6eval | rakudo : OUTPUT«[][] is well-balanced» | ||
masak | \o/ | ||
dalek | kudo: 37eafa4 | colomon++ | build/README-parrot-revision: Add moritz_++'s advice on bumping PARROT_REVISION to the repo, so it |
09:53 | |
moritz_ | colomon++ | ||
masak: nice one... though relying on implicitly returning $l-- / ++$l make the thing less readable | 09:54 | ||
masak | hm, that wasn't my intent. | ||
just forgot to return True at the end :P | |||
moritz_ | I'd add an $l == 0 after the loop | 09:55 | |
masak | good idea. | ||
rakudo: sub b($_) { my $l = 0; for .comb { when "]" { return False if --$l < 0 }; when "[" { ++$l } }; return $l == 0 }; my $s = "[[]]".comb.pick(*).join; say "$s {b($s) ?? "is" !! "is not"} well-balanced" | |||
p6eval | rakudo : OUTPUT«][][ is not well-balanced» | ||
moritz_ | masak++ | 09:56 | |
is there a rosettacode problem for balanced strings? :-) | |||
masak | heh | ||
masak looks | |||
not with that name, anyway. | 09:57 | ||
masak makes one | |||
tadzik | masak: is your grampa project alive? | 09:59 | |
masak | no. I should remove it. | 10:00 | |
the idea is a good one, but I don't have the tuits. | |||
tadzik | neceserilly, right? | 10:04 | |
nope, thanks | |||
hrm, I can has a commit bit to modules.perl6.org? | 10:05 | ||
10:08
mberends joined
|
|||
moritz_ | tadzik you don't have one yet? | 10:08 | |
mberends | @zebras.o/ | ||
tadzik | mberends \o/ | ||
moritz_ | tadzik: according to github's organization listing, you should have write access | ||
\o/ mberends | 10:09 | ||
tadzik | moritz_: I doubt it, that's a fresh clone, but I'll check | ||
mberends: good to see you. Fullfil my curiosity, what's your talk for NLPW? | |||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 1b20094 | tadzik++ | web/build-project-list.pl: Project name is not necessarily repo name. Fix that, fixing Net-IRC and Testing issues |
10:10 | |
tadzik | moritz_: indeed, I have. Something must've gone wrong | ||
mberends | tadzik: it's called "In 6model" which is bilingual. the slides will be in English and the audio will be in Dutch. | ||
tadzik | cool | ||
moritz_ | \o/ Net::GitHub (perl 5) now has an Organizations API | 10:12 | |
which means I can teach hugme to add people to the 'perl6' team | |||
mberends | tadzik: it is likely that I'll be free on Friday 4th March, so I'll probably be able to meet @you. | ||
moritz_ | ... which gives commit access to roast, mu, *.perl6.org etc. | ||
tadzik | mberends: cute. Well, I'll be in AMS in the very evening, as all(@you) (: | 10:13 | |
10:17
pnu_ left
|
|||
Layla_91 | Me likes playin with perl6-Acme-Meow ^_^ | 10:20 | |
tadzik | that's my first Perl module ever :) | 10:21 | |
masak | rosettacode.org/wiki/Balanced_strings | 10:22 | |
10:23
Trashlord joined
|
|||
Layla_91 | tadzik: Meow =) | 10:23 | |
moritz_ | masak++ | ||
10:23
pnu joined
|
|||
masak | mberends, tadzik: looking forward to the hackathon/workshop! | 10:23 | |
tadzik | Layla_91: cute :] | 10:24 | |
tadzik hacks on Cardinal | 10:25 | ||
funny, the day has barely started and I fixed 3 things alredy :) | |||
coldhead | good job! that really takes the pressure off the rest of us | ||
masak | I love watching industrious people at work. | 10:26 | |
moritz_ | tadzik: hm, do you want cardinal commits to be reported to #cardinal? | ||
coldhead | winston churchill said "i love hard work. i could watch people do it all day" | ||
mberends | masak: me too! I have lots of plans... | ||
10:27
hugme left,
hugme joined,
ChanServ sets mode: +v hugme
|
|||
moritz_ | hugme: add masak to json | 10:27 | |
hugme hugs masak. Welcome to json! | |||
10:27
Layla_91 left
|
|||
moritz_ | masak: sorry for the noise, just needed to test something :-) | 10:27 | |
tadzik | moritz_: would be nice, yes | ||
phenny: "industrious"? | 10:28 | ||
phenny | tadzik: "industrious" (fil to en, translate.google.com) | ||
tadzik | pff | ||
masak | coldhead: I thought it was Oscar Wilde... ;) | ||
moritz_ | phenny: ask sorear could you please configure dalek to join #cardinal on magnet, and allow commits to be reported there? thanks! | ||
phenny | moritz_: I'll pass that on when sorear is around. | ||
masak | tadzik: means "hard-working". think of "industry". | ||
tadzik | coldhead: I thought these were the Mayan kings | ||
there is a theory that they died because they were doing so little they hearts have just stopped :P | 10:29 | ||
masak: yeah, the "industry" thing confused me :) | |||
moritz_ | tadzik: I thought they died because they were too cool to bother with something as mundane as breathing :-) | 10:30 | |
tadzik | int eresting; :) | ||
masak | tadzik: they have the same origin, it seems. in fact, "industry" seems to be derived from "industrious". | 10:31 | |
tadzik | interesting too | ||
masak | tadzik: ...which in turn comes from an Old Latin verb "struere", meaning "devising inwardly, secretly". | ||
doesn't have that meaning anymore, though. | 10:32 | ||
nowadays just means "diligent, hard-working". | |||
coldhead | i think wilde and churchill would have had different reasons for enjoying men hard at work | 10:34 | |
masak | hm, "instruct" also comes from "struere"... | 10:35 | |
moritz_ | the Nazis attributed some quotes to Churchill, hoping to paint him in a bad light | ||
so be careful about what he actually said | |||
masak | hm, and "construct" and "destroy"... this always happens, I seem to find the one Latin root that binds a whole group of words together... | 10:36 | |
10:39
JimmyZ left
10:42
hugme left,
hugme joined,
ChanServ sets mode: +v hugme
|
|||
moritz_ | hugme: add moritz to perl6 | 10:42 | |
hugme | moritz_: Error adding moritz to perl6: | ||
moritz_ | this was not very informative. | 10:43 | |
tadzik | (: | ||
10:45
hugme left,
hugme joined,
ChanServ sets mode: +v hugme
|
|||
moritz_ | hugme: add moritz to perl6 | 10:47 | |
hugme hugs moritz. Welcome to the perl6 github organization | |||
moritz_ | hugme: add moritz to perl6 | 10:49 | |
hugme hugs moritz. Welcome to the perl6 github organization | |||
moritz_ | \o/ it actually works! | ||
10:50
hugme left,
hugme joined,
ChanServ sets mode: +v hugme
|
|||
moritz_ | fyi, 'add GitHubNick to perl6' adds that person to the perl6 team | 10:51 | |
10:51
risou joined
|
|||
tadzik | moritz_++ | 10:51 | |
moritz_ | which grants commit bits to nearly all repos on github/perl6/ | 10:52 | |
including specs, roast, mu, modules.perl6.org, perl6.org, ecosystem, std, perl6-examples | |||
let's use that, because I'm too lazy for finer graded access control | 10:53 | ||
masak | it only makes sense. | ||
if we trust someone with one of those, we trust them with the others. | |||
bacek | ~~ | 10:54 | |
masak | bacek! \o/ | ||
bacek | masak, aloha :) | ||
masak | bacek: congratulations on the merge! | ||
bacek | masak, thanks. It was more successful on second attempt :) | ||
Who is the "best person" (apart from pmichaud) to ask for help with converting Bison based grammar to nqp/perl6? | 10:57 | ||
This www.lysator.liu.se/c/ANSI-C-grammar-y.html grammar :) | |||
masak | there are many people with grammar know-how on the channel. | ||
moritz_, sorear, diakopter, colomon... | 10:58 | ||
bacek | masak, good! | ||
moritz_ | bacek: the grammar should be straight forward to translate; it's the lexer that might mean a bit more work | 11:00 | |
bacek | moritz_, C lexer is trivial. | ||
grammar is more interesting. I don't want to implement bison-style handling of priorities. | 11:01 | ||
But I don't quite understand O<> notation in nqp grammar | |||
moritz_ | the operation precedence parser... I don't fully understand it either :( | 11:02 | |
arnsholt | It's actually reasonably simple | 11:03 | |
masak | I understand it. | ||
I've written one. that helps :P | |||
bacek | masak, yo! | ||
masak | :) | ||
arnsholt | Hehe. I've used it, which helps as well =) | ||
bacek | I'll probably ask you in few days time :) | ||
Tene | bacek: I'd need to do a little bit of reading first to get re-acquainted with the details, but I should be able to help you out with a bit of work. This is for the C subset to use for ops? | 11:04 | |
bacek | Tene, exactly. | ||
moritz_ | masak: then please do us the favor and write a proper introduction to them (once you've published your p5 review...:-) | ||
bacek | I'll hack some skeleton first in next few days. | ||
tadzik | Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I' | 11:05 | |
masak | bacek: check out the comment at the bottom of github.com/parrot/parrot/blob/mast...PTable.pir | ||
it has a lot of useful information. | |||
bacek | masak, yeah, some written introduction docs will be helpful | ||
tadzik | what is that requiring me to implement? | ||
masak | bacek: it's not exactly introductory, but I trust you to decipher it. | ||
tadzik: that's a Parrot error, but you probably know that. | 11:06 | ||
tadzik | oh, wrong channel again | ||
masak | tadzik: PP->I means "takes two PMCs, returns an Int" | ||
tadzik | hmm | ||
masak | that'd be cmp. | ||
bacek | masak, erm... What is difference between postfix and postcircumfix? | 11:07 | |
moritz_ | bacek: postcircumfix is something like the [bar] in foo[bar] | 11:08 | |
bacek | masak, and circumfix | ||
moritz_ | bacek: ie it comes after a term, and encloses something | ||
whereas <foo bar> is a circumfix (the < ... > enclose something, and it comes in term position) | |||
bacek | moritz_, got it! | ||
masak | thought <...> is a quoting environment, rather than a circumfix. | 11:09 | |
[...] is a better example. | |||
s/thought/though/ | |||
bacek | moritz_, <...> exists in circumfix in nqp | 11:11 | |
token circumfix:sym<ang> { <?[<]> <quote_EXPR: ':q', ':w'> } | |||
token circumfix:sym<« »> { <?[«]> <quote_EXPR: ':qq', ':w'> } | |||
moritz_, how magical is EXPR? | |||
or it's just { <prefix>? <term> <postfix>? } (or something like this) | 11:12 | ||
masak | EXPR, in my understanding, is what toggles the operator precedence parser. | 11:13 | |
arnsholt | bacek: EXPR is quite magical | 11:15 | |
moritz_ | bacek: it's basically [ <prefix>? <term> <postfix? ] [ <infix> <prefix>? <term> <postfix> ]*, and then rearranges according to precedence | ||
arnsholt | It takes something along the lines of what you said, and munges them as given by the precedence of the operators | ||
masak | precedence, and associativity. | 11:16 | |
arnsholt | Point, point | ||
bacek | ok. Understandable magic is less scary :) | ||
masak | that's what the table at the bottom of that source file summarizes, in fact. | ||
it lists all of the possible combinations of operators. | |||
arnsholt | Under the covers, it uses something similar to Knuth's shunting yard algorithm, if you're familiar with it | 11:17 | |
masak | bacek: there's a few slides exemplifying the shunting-yard workings in masak.org/carl/osd-2010-parse-perl/talk.pdf | 11:18 | |
arnsholt | en.wikipedia.org/wiki/Shunting-yard_algorithm is quite detailed as well | 11:19 | |
11:19
xabbu42 joined
|
|||
masak | the concept of shift/reduce also comes up a lot. | 11:20 | |
it's easy to understand, once you realize that "shift" means "push" and "reduce" means "build" :P | |||
bacek | :) | 11:22 | |
Thanks guys. I've got something for bed-time reading :) | |||
11:46
molaf joined
12:06
kjeldahl_ joined
12:09
Trashlord left
12:18
donri joined,
Su-Shee_ is now known as Su-Shee
12:29
jferrero joined
12:43
Rotwang joined
|
|||
tadzik | seen kthakore | 13:00 | |
aloha | kthakore was last seen in #perl6 22 days 19 hours ago joining the channel. | ||
13:16
Alias joined
13:25
icwiener joined
|
|||
masak | I think some people on this channel might appreciate www.hxa.name/articles/content/tract..._2010.html | 13:29 | |
(via @audreyt on Twitter) | |||
moritz_ closes a rakudobug from August 2008 | 13:32 | ||
masak | moritz_++ | ||
moritz_ | rakudo: ??? | 13:33 | |
p6eval | rakudo 37eafa: OUTPUT«Stub code executed in <anon> at line 22:/tmp/aWGRfUKuQH» | ||
moritz_ | rakudo: ???("foo") | ||
p6eval | rakudo 37eafa: OUTPUT«Stub code executed in <anon> at line 22:/tmp/8WqS8xHBw4» | ||
tadzik | (: | ||
moritz_ | rakudo: class A does Int { } | 13:35 | |
p6eval | rakudo 37eafa: OUTPUT«===SORRY!===Can only use does with a role, but Int is not one» | ||
moritz_ | I'd say this is correct | ||
13:35
woosley left
|
|||
moritz_ | in rt.perl.org/rt3/Ticket/Display.html?id=60176 chromatic says "Every Class implies the existence of a Role. Rakudo may not do that now, but | 13:36 | |
it should do that in the future *even if* Int remains a Class." | |||
is that specced somewhere? | |||
masak | "The limits of my programming-language mean the limits of my imagination." -- I like that. | ||
13:36
JodaZ joined
|
|||
moritz_ | rakudo: my $x is foo; | 13:36 | |
p6eval | rakudo 37eafa: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are::(Mu $child, Role $r):(Routine $r, Any :default($default)!):(Code $block, Any $arg?, Any :export($export)!):(Mu $child, Mu $parent):(Mu $type where ({ ... }), Any :rw($rw)!):(Mu | ||
..$type… | |||
moritz_ | rakudo: sub f($x is foobar) { } | 13:37 | |
p6eval | rakudo 37eafa: ( no output ) | ||
masak | moritz_: I don't thing 'class implies role' is spec'd, except perhaps the part where classes pun into roles if you use them as roles. | ||
dalek | ast: 612268c | moritz++ | S06-signature/errors.t: remove a broken test in errors.t |
13:40 | |
tadzik | ha, looks like today has become a bugfixing party | ||
13:43
risou left
|
|||
tadzik | rt.perl.org/rt3/Public/Bug/Display.html?id=68160 -- what is this bug actually aboutO? | 13:43 | |
moritz_ | rakudo: say '/'.IO ~~ :d | 13:45 | |
p6eval | rakudo 37eafa: OUTPUT«Bool::True» | ||
moritz_ | tadzik: it's about file tests, which have changed since it was filed | ||
anyway, it works as specced now | 13:46 | ||
so can be closed | |||
tadzik | yeah, that's what I was thinking | 13:47 | |
moritz_ | tadzik: will you close it, or should I? | ||
13:49
Trashlord joined
|
|||
tadzik | moritz_: I can close it | 13:50 | |
std: 1 ?? 2 : 3 | |||
p6eval | std 4608239: OUTPUT«===SORRY!===Please use !! rather than : at /tmp/dwwqJxoqoD line 1:------> 1 ?? 2 :⏏ 3Parse failedFAILED 00:01 119m» | 13:51 | |
tadzik | I have to reply to it, right? | ||
13:51
rgrau joined
|
|||
tadzik | Ticket 68160: Permission Denied | 13:53 | |
but the message was sent, crap | |||
moritz_: can you take a look at it? | |||
masak takes a look | 14:00 | ||
tadzik | rakudo: my($a) = 5; say 'alive' | ||
p6eval | rakudo 37eafa: OUTPUT«===SORRY!===Symbol '$a' not predeclared in <anonymous> (/tmp/7DKHZSSlxu:22)» | ||
tadzik | LTA error message, or not? rt.perl.org/rt3/Ticket/Display.html?id=68358 | ||
masak | no, it looks right to me. | ||
that's a subcall to the sub 'my' | |||
tadzik | hmm | 14:01 | |
masak | (but perhaps it should be special-cased with a better error?) | ||
tadzik | I'll run this spectest | ||
masak | #68160 closed. | 14:02 | |
jnthn | moritz_: "Every class implies that a role of the same name exists" has never been in the spec, so far as I know. | ||
tadzik | not to mention the test test is broken as hell | ||
17 + 5 is not 23, under any circumstances | |||
jnthn | moritz_: If it ever ends up being it's fair enough to have a ticket for it then, but for now the ticket is just noise. | ||
masak | +1 | ||
jnthn | I've heard little argument for the spec saying such a thing here on #perl6 though. In a sense, roles punning to a class is probably enough magic. :) | 14:03 | |
tadzik | changing it to 22 causes the spectest to ork | ||
jnthn | Wow, math fail! :) | ||
tadzik | fixing | 14:04 | |
14:04
donri left
|
|||
dalek | ast: f8adce3 | tadzik++ | S02-names/identifier.t: 17 + 5 is not 23 (: |
14:05 | |
tadzik | so now the spectest runs and the ticket can be closed | 14:06 | |
so it shouldn't be skipped, righdt? | |||
f&%#! lag | |||
masak | I'm sorry? | 14:08 | |
tadzik | in roast I mean. there should be no #?rakudo skip 'RT #68358'm right? | 14:09 | |
masak | I have no idea. | ||
tadzik | since it works, and the ticket will be closed. Me neither, that's why I'm asking :) | ||
jnthn | tadzik: If the test passes, then it shouldn't be skipped. :) | 14:12 | |
Unless it's obviously passing for bogus reasons, perhaps. | 14:13 | ||
tadzik | dunno | ||
looks ok to me | |||
dalek | ast: b0ff379 | tadzik++ | S02-names/identifier.t: unskip the test for RT #68358, it works now |
14:14 | |
tadzik | rt.perl.org/rt3/Ticket/Display.html?id=68358 -- closable | 14:17 | |
rt.perl.org/rt3/Ticket/Display.html?id=68728 -- isn't that resolved and closable? | 14:19 | ||
rt.perl.org/rt3/Ticket/Display.html?id=68744 -- and this? | 14:20 | ||
moritz_ | tadzik: I have a crying toddler my lap right now, but when I get the chance I'll backlog and kill all those tickets | 14:23 | |
tadzik | moritz_: no worries | ||
14:24
MayDaniel joined
|
|||
tadzik | rt.perl.org/rt3/Ticket/Display.html?id=69218 --closable too | 14:30 | |
masak closes | |||
tadzik++ | 14:31 | ||
tadzik | std: my $a = 0; loop while $a < 10 { say $a++ } | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Missing block at /tmp/fGeVJKPh4f line 1:------> my $a = 0; loop ⏏while $a < 10 { say $a++ }Parse failedFAILED 00:01 121m» | ||
tadzik | rakudo: my $a = 0; loop while $a < 10 { say $a++ } | 14:32 | |
p6eval | rakudo 37eafa: OUTPUT«===SORRY!===Missing block at line 22, near "while $a <"» | ||
tadzik | good enough to close rt.perl.org/rt3/Ticket/Display.html?id=69180 ? | ||
masak | std: my $a = 0; loop while $a < 10 { say $a++ } | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Missing block at /tmp/lLau31mE4l line 1:------> my $a = 0; loop ⏏while $a < 10 { say $a++ }Parse failedFAILED 00:01 121m» | ||
masak | looks like. | 14:33 | |
masak closes | |||
tadzik | I love this ticket-closing parties | 14:34 | |
masak | ;) | 14:35 | |
tadzik | shame it's the first one I'm on :) | 14:36 | |
masak | never too late to start... | ||
tadzik | btw, can "broken on OpenSolaris" tickets be closed due to "there's no OpenSolaris"? ;) | 14:37 | |
masak | I don't know the background of the "there's no OpenSolaris", but my guess is "no". | ||
tadzik | I think Oracle killed the project | 14:38 | |
14:38
lamstyle left
|
|||
moritz_ | but the OS still exists | 14:38 | |
as in, there are installations in the wild | |||
dalek | ast: 18d8c7f | moritz++ | S14-roles/basic.t: remove tets for non-spec "class does class" case |
14:39 | |
tadzik | hmm, probably yes | ||
moritz_ | we need a test for RT #68728 | 14:40 | |
tadzik | I can write it. That'd be just what's in the ticket? | 14:41 | |
mberends | I had a look at OpenSolaris just a week ago for BSD compatibility testing - it is very dead, not worth supporting unless someone asks for support in 2011. For BSD testing I opted for this one because its LiveDVD was the most up to date and functional one I could find. www.rofreesbie.org/ | 14:47 | |
14:47
xinming_ left
14:49
xinming joined
|
|||
dalek | ast: 5a414bc | tadzik++ | S02-names/identifier.t: Added a test for RT #72898 |
14:50 | |
tadzik | rt.perl.org/rt3/Ticket/Display.html?id=72898 closable now | 14:51 | |
14:58
stifynsemons joined
|
|||
tadzik | rakudo: 1 ?? 1 | 15:15 | |
p6eval | rakudo 37eafa: OUTPUT«===SORRY!===Confused at line 22, near "1 ?? 1"» | ||
dalek | kudo: 20dcba4 | tadzik++ | src/Perl6/Grammar.pm: Improve error messages for ?? git pull (adopted from STD) |
15:17 | |
tadzik | oopsie | ||
masak | oopsie? | ||
tadzik | read the commit message | 15:18 | |
masak | ?? git pull | ||
tadzik | yeah | ||
suprise middleclick it seems | |||
a silent --force, can I? | |||
masak | if you hurry, maybe. | ||
or just leave it be. | |||
jnthn | It's no problem really. | ||
masak | no, not really. | 15:19 | |
tadzik | oh, it's my stupid zsh | ||
changes !! to something | |||
jnthn | I mean, maybe some Perl 6 historial will come and hunt you down with an axe in 20 years time for making the version history look messy....but that's still quite unliely. :) | ||
tadzik | a lesson to put the commit message in the single quotes | 15:20 | |
jnthn | *historian | ||
masak | or write it in an $EDITOR | 15:21 | |
dalek | kudo: 57f6e33 | tadzik++ | src/Perl6/Grammar.pm: Improve error messages for ?? git push (adopted from STD) |
15:23 | |
tadzik | nvm the duplicate. These are not the commits you are looking for :) | ||
#68672 updated | |||
is someone fluent with all those --trace flags? | 15:24 | ||
or I will become :) | 15:25 | ||
masak | please become :) | 15:26 | |
jnthn | --trace flags in...? | 15:27 | |
tadzik | in docs/running.pod | 15:28 | |
jnthn | If in Rakudo I suspect they pass through directly to Parrot. | ||
tadzik | that's correct | ||
dalek | kudo: 655a8f4 | tadzik++ | docs/running.pod: Linked to parrot docs for info about trace flags. RT #68416 |
||
tadzik | rt.perl.org/rt3/Ticket/Display.html?id=68416 updated and closable | 15:29 | |
if we write a test for an open RT ticket, one day the test may suprisingly pass, which prove will report and we will know to close the ticket, right? | |||
moritz_ | tadzik: If the fudge message mentions the ticket, I'll notice on unfudging | 15:30 | |
tadzik | cool | 15:31 | |
moritz_ | tadzik: and I regularly run tools/autounfudge.pl to find those automatically | ||
tadzik | I wonder how many people I can get to make a bugfixing party on friday's LUG | ||
15:31
Mowah left
|
|||
tadzik | can someone take a look at rt.perl.org/rt3/Ticket/Display.html?id=69010 ? | 15:31 | |
masak | ok, I took a look. | 15:33 | |
jnthn | masak: Was it pretty? | 15:34 | |
Should I look too? | |||
masak | 'break' has changed its name to 'succeed', but I'm guessing the spec still says it's a compile-time error to have it outside of a topicalizer block. | ||
tadzik | a specbug then? | ||
15:34
am0c joined
|
|||
masak | no, I mean... | 15:35 | |
I guess the spec still says it's a compile-time error to have 'succeed' outside of a topicalizer block. | |||
moritz_ | std: 1 ?? 2 : 3 | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Please use !! rather than : at /tmp/0daMFr7sf9 line 1:------> 1 ?? 2 :⏏ 3Parse failedFAILED 00:01 119m» | ||
tadzik | std: my @a; @a[Inf] = 0; | 15:36 | |
p6eval | std 4608239: OUTPUT«ok 00:01 122m» | ||
tadzik | buehehe | ||
jnthn | pmichaud's question is a good one, though. | ||
tadzik | how about wklej.org/id/479269/ instead? #73184 related | ||
moritz_ | tadzik: mind if I change the <?before '::' to <?before ':' ':'? | ||
tadzik | moritz_: well, that's a different thing | 15:37 | |
moritz_ | erm, question mark after the second ':' to also catch ?? : | ||
tadzik | but yeah, it's better | ||
oh, perlfect | |||
moritz_ | wait | ||
I'll do it in a separate case | |||
to get a better error message | |||
tadzik | there is one in STD | ||
jnthn | tadzik: Does the spec say we need the Inf check? | ||
tadzik | jnthn: nah. But rakudo hangs for Inf | ||
jnthn | I'm not sure that's surprising... :) | 15:38 | |
tadzik | dunno what does the spec say | ||
jnthn | I'm a tad worried about putting such a check on a critical path, that's all | ||
Guess it's trying to balance user friendliness against performance. | |||
tadzik | moritz_: github.com/perl6/std/blob/master/STD.pm6#L3767 | 15:39 | |
hmm, fair enough. Should be a parse error maybe | |||
or just not | |||
anyway, the ticket seems resolved. There is no LTA error message anymore :) | 15:40 | ||
jnthn | tadzik: Well, the cases where such an error would be useful aren't the ones that are blindingly obvious. | ||
It's where you have @foo[$thing-you-think-should-never-be-Inf] | 15:41 | ||
moritz_ | rakudo: for ^8 { .=fmt("%03b"); .say } | ||
p6eval | rakudo 37eafa: OUTPUT«000Cannot modify readonly value in '&infix:<=>' at line 1 in <anon> at line 22:/tmp/iyVTQnsppR in main program body at line 1» | ||
tadzik | right | ||
rakudo: say 0xFFFFFFFFFFFFFFFF | |||
p6eval | rakudo 37eafa: OUTPUT«-1» | ||
tadzik | rt.perl.org/rt3/Ticket/Display.html?id=73268 looks ok now. Should there be a test for it? | 15:42 | |
moritz_ | yes | 15:43 | |
jnthn | yes, should be tested. | ||
moritz_ | rakudo: say (1...*)[^4] | 15:44 | |
p6eval | rakudo 37eafa: OUTPUT«1234» | ||
tadzik | I'm missing ack for filenames | 15:45 | |
moritz_ | ack -g | ||
15:45
masak left
|
|||
dalek | ast: bb4c91b | moritz++ | S0 (3 files): some unfudges found by autounfudge.pl |
15:46 | |
ast: e45259a | moritz++ | S02-names/identifier.t: update test plan |
|||
tadzik | oh, cool. moritz_++ | 15:47 | |
dalek | ast: d1d07a3 | tadzik++ | S03-operators/range-int.t: Add test for RT #73268 |
15:49 | |
moritz_ | tadzik: ...^ is a series, and shouldn'T got into a range test file | ||
tadzik | oops | 15:50 | |
15:50
masak joined
15:53
noganex joined
|
|||
dalek | ast: 042da08 | tadzik++ | S03- (2 files): Moved the test for #73268 to the right file, moritz++ tadzik-- |
15:54 | |
tadzik | fixed | ||
15:54
noganex_ left
|
|||
tadzik | so rt.perl.org/rt3/Ticket/Display.html?id=73268 can be closed now | 15:55 | |
moritz_ closes | 16:01 | ||
rakudo: say ([[1, 2], 3] >>+<< [4, [5, 6]]).perl | |||
p6eval | rakudo 37eafa: OUTPUT«Sorry, lists on both sides of non-dwimmy hyperop are not of same length: left: 2 elements right: 1 elementsAt .[0] in 'hyper' at line 188:CORE.setting in <anon> at line 213:CORE.setting in 'hyper' at line 1 in main program body at line 1» | 16:02 | |
16:02
noganex left
16:04
noganex joined
|
|||
moritz_ | another ticket down (RT #78368) | 16:04 | |
rakudo: sa ~(64,32,16 ...^ Rat) | |||
p6eval | rakudo 37eafa: OUTPUT«Could not find sub &sa in main program body at line 22:/tmp/mnJHvaF0XK» | ||
moritz_ | rakudo: say ~(64,32,16 ...^ Rat) | ||
p6eval | rakudo 37eafa: OUTPUT«64 32 16» | 16:05 | |
masak | eh? | ||
moritz_ | it doesn't re-coerce to int | ||
it calculates 8 as 1/2 * 16 | |||
which is a Rat | |||
(in RT #78324 it didn't terminate at all) | 16:06 | ||
moritz_ renames the ticket | 16:08 | ||
16:09
nymacro left
|
|||
moritz_ | rakudo: class Car { has @.wheels }; say Car.^attributes.perl | 16:10 | |
p6eval | rakudo 37eafa: OUTPUT«Method 'attributes' not found for invocant of class '' in 'Mu::attribs' at line 1290:CORE.setting in 'Mu::perl' at line 1299:CORE.setting in main program body at line 1» | ||
moritz_ | rakudo: class Car { has @.wheels }; say pir::typeof(Car.^attributes) | ||
p6eval | rakudo 37eafa: OUTPUT«Parcel» | 16:11 | |
moritz_ | I don't understand that at all | 16:12 | |
the attributes method in ClassHOW.pir ahs | |||
*has | |||
result_list = '&infix:<,>'(result_list :flat) | |||
.return (result_list) | |||
which should return a perfectly fine Perl 6 type | |||
16:13
risou joined
|
|||
moritz_ | rakudo: class Car { has @.wheels }; say Car.^attributes.PARROT | 16:13 | |
p6eval | rakudo 37eafa: OUTPUT«Parcel» | ||
moritz_ | rakudo: for 1, 2, 3 { sub foo {}; .say }; say "alive" | 16:14 | |
p6eval | rakudo 37eafa: OUTPUT«alive» | ||
moritz_ | (RT #78232) | ||
16:15
Patterner left
16:16
rdesfo joined
16:17
mtk left,
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
moritz_ | rakudo: undef | 16:17 | |
p6eval | rakudo 37eafa: OUTPUT«===SORRY!===Unsupported use of undef as a value; in Perl 6 please use something more specific: Mu (the "most undefined" type object), an undefined type object such as Int, Nil as an empty list, *.notdef as a matcher or method, Any:U as a type constraint or | ||
..fail() as a failur… | |||
moritz_ | rakudo: 1 1 | 16:18 | |
p6eval | rakudo 37eafa: OUTPUT«===SORRY!===Confused at line 22, near "1 1"» | ||
moritz_ | std: 1 1 | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Two terms in a row at /tmp/gDzKoIcO0H line 1:------> 1 ⏏1 expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED 00:01 119m» | ||
16:21
whiteknight joined
16:25
mtk joined
16:30
kanishka joined
16:31
MayDaniel left,
MayDaniel joined
|
|||
moritz_ | rakudo: my $x = :a<5>; say $x.map({.key => .value + 1}).perl | 16:32 | |
p6eval | rakudo 37eafa: OUTPUT«Method 'key' not found for invocant of class '' in main program body at line 22:/tmp/NPDiQ3k_bG» | ||
moritz_ | rakudo: my $x = :a<5>; say $x.map({; .key => .value + 1}).perl | 16:33 | |
p6eval | rakudo 37eafa: OUTPUT«("a" => 6)» | ||
16:36
pmurias joined
16:38
kaare_ joined
16:42
rhr left
16:49
zby_home left
|
|||
sorear | good * #perl6 | 16:53 | |
phenny | sorear: 10:28Z <moritz_> ask sorear could you please configure dalek to join #cardinal on magnet, and allow commits to be reported there? thanks! | ||
16:54
dalek left
16:56
dalek joined,
ChanServ sets mode: +v dalek
|
|||
pmurias | sorear: hi | 16:59 | |
sorear | hello pmurias | 17:01 | |
17:01
envi_ left
|
|||
moritz_ | rakudo: sub f($x = []) { $x.push: 2; say $x.perl }; f(); f() | 17:01 | |
p6eval | rakudo 655a8f: OUTPUT«[2][2]» | ||
sorear | perl6: sub f($x = []) { $x.push: 2; say $x.perl }; f(); f() | 17:02 | |
p6eval | pugs: OUTPUT«[2,][2,]» | ||
..rakudo 655a8f, niecza v2-99-g1e36fcc: OUTPUT«[2][2]» | |||
moritz_ | blog.objectmentor.com/articles/2008...lt-problem | 17:03 | |
masak | perl6++ | 17:05 | |
arnsholt | Sigh. That's just wrong | 17:14 | |
moritz_ | what? the python behavior? | 17:19 | |
17:19
rhr joined
|
|||
masak | I wonder what it means in terms of lexical scopes in functions in Python? | 17:25 | |
probably not much, but... seems the same "optimizations" that led to that kind of problem could lead to problems with recursion. | 17:26 | ||
dakkar | it's not really an optimization… 'def' is a statement (not a declaration), so the arglist is evaluated (once) when it is first encountered | 17:27 | |
it's the same "problem" with Moose defaults: you have to write «default => sub { [] }» | |||
masak | ah. | ||
dakkar | hm. now I have to check if I can do the same in python (with lambda) | ||
17:28
risou left
|
|||
dakkar | doesn't work, the lambda is (understandably) not evaluated | 17:30 | |
17:35
kjeldahl_ left
17:36
masonkramer joined,
masonkramer_ left
|
|||
dalek | kudo: ee5d50e | moritz++ | tools/autounfudge.pl: do not exclude stuff from autounfudge |
17:43 | |
kudo: 9ed54cf | moritz++ | src/Perl6/Grammar.pm: also catch ?? : at parse time |
|||
masak | moritz_++ | 17:44 | |
tadzik | I'd add a note and suggest the STD behaviour one day | 17:54 | |
18:01
rhr left
18:04
pure1111 joined,
pure1111 left
18:07
rgrau left
18:08
justatheory joined
|
|||
tadzik | does anyone have an older (2.10, 2.11) Parrot available? | 18:10 | |
moritz_ | github has | 18:11 | |
tadzik | yeah, I know that | ||
jdhore | <lazy> Question: Do old operators (say the ? : ternary op) still work in Perl 6 but are deprecated or do you have to use the new operators (In the ternary case, ?? !!)</lazy> | 18:12 | |
flussence | nope | ||
tadzik | std: 5 ? 2 : 3 | 18:13 | |
flussence | rakudo: say 1 ? 1 : 1 | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Unsupported use of ?: for the conditional operator; in Perl 6 please use ??!! at /tmp/RSTuF2ep0r line 1:------> 5 ?⏏ 2 : 3Parse failedFAILED 00:01 119m» | ||
rakudo 655a8f: OUTPUT«===SORRY!===Confused at line 22, near "say 1 ? 1 "» | |||
tadzik | oh look, LTA error message | ||
moritz_ | looks like an easy-ish fix | ||
jdhore | not too bad, at least it warns you. | ||
moritz_ | rakudo: while (<STDIN>) { } | 18:14 | |
p6eval | rakudo 655a8f: OUTPUT«===SORRY!===Unsupported use of <STDIN>; in Perl 6 please use $*IN.lines at line 22, near "<STDIN>) {"» | ||
moritz_ | rakudo: while (my $x = <STDIN>) { } | ||
p6eval | rakudo 655a8f: OUTPUT«===SORRY!===Unsupported use of <STDIN>; in Perl 6 please use $*IN.lines at line 22, near "<STDIN>) {"» | ||
moritz_ | std: while (my $x = <STDIN>) { } | ||
p6eval | std 4608239: OUTPUT«===SORRY!===This appears to be Perl 5 code at /tmp/MFqxVzEk7a line 1:------> while ⏏(my $x = <STDIN>) { }Parse failedFAILED 00:01 117m» | ||
flussence | ooh, nice | ||
rakudo: while (<>) { say $_; } | 18:15 | ||
p6eval | rakudo 655a8f: OUTPUT«===SORRY!===Unsupported use of <>; in Perl 6 please use lines() to read input, ('') to represent a null string or () to represent an empty list at line 22, near "<>) { say "» | ||
moritz_ | rakudo: while (<foo>) { say $_; } | ||
p6eval | rakudo 655a8f: | ||
..OUTPUT«(timeout)()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()Any()… | |||
flussence | std: while (<constant-value>) { say $_; } | 18:18 | |
p6eval | std 4608239: OUTPUT«ok 00:01 121m» | ||
flussence | I think that should probably warn to use "loop { }"... | ||
moritz_ | std: while (<foo>) { } | 18:19 | |
p6eval | std 4608239: OUTPUT«===SORRY!===This appears to be Perl 5 code at /tmp/L3uEARyqWZ line 1:------> while ⏏(<foo>) { }Parse failedFAILED 00:01 117m» | ||
moritz_ | flussence: constant-value is not a Perl 5 identifier | ||
flussence | yes, but it *is* an infinite loop which could be written better :) | 18:20 | |
tadzik | that's a room for Perl6::Critic imho | ||
moritz_ | aye | ||
or for the constant folder in the compiler | |||
sorear | Perl6::Critic only works if we have a good way to statically parse Perl 6 *ducks* | 18:21 | |
tadzik | are we planning to use tree-optimizer soon? | ||
18:21
Sarten-X left
|
|||
moritz_ | tadzik: I think there's still the problem of deployment | 18:21 | |
tadzik: if the parrot folks agree to ship a snapshot of tree-optimizer compiled to PIR, I'm all for it | 18:22 | ||
pmurias | sorear: why is using STD for Perl6::Critic bad? | 18:24 | |
moritz_ | sorear: there's works and there is "works" | ||
Perl::Critic also doesn'T really work, but it "works" well enough in practise | |||
sorear | pmurias: STD doesn't work if modules aren't found, etc | 18:25 | |
moritz_: do you know who made dalek join #cardinal? | |||
moritz_ | sorear: no idea. Could have been diakopter | 18:26 | |
sorear: does it report there now, if configured to? | |||
sorear | He denied it. | ||
Yes | |||
moritz_ | hm | ||
that's... curious | |||
which machine does it run on? | |||
feather or appflux? | |||
sorear | host04.appflux | 18:27 | |
diakopter | applux; /me goes to poke around on there... I thought I saw a separate instance of it started up under one of moritz' screens... | ||
moritz_ | I didn't attempt to touch dalek in 2011 | 18:28 | |
sbp | touchme: touch dalek | 18:29 | |
tadzik | * touchme touches dalek and denies it | ||
18:30
Sarten-X joined
|
|||
diakopter | oh; I was thinking of something else.. | 18:30 | |
masak | 'touchme' would be the name of the 6bot, no doubt. | 18:33 | |
18:36
ymasory_ left,
ymasory joined
18:37
__rnddim__ is now known as lue
|
|||
lue | hello citi-zebras o/ | 18:38 | |
diakopter | \ | ||
18:41
dakkar left
|
|||
masak | saluton, lue. | 18:50 | |
18:52
bacek left
18:53
lamstyle joined
|
|||
jnthn | .oO( salueton ) |
18:54 | |
lue | .oO(Mi malpensas en Esperanton) |
18:59 | |
masak | grammatical, but odd :P | 19:00 | |
"I unthink into Esperanto" | |||
19:00
MayDaniel left
|
|||
masak | folks, it finally happened. | 19:01 | |
I put a sub in a sub in a sub. | |||
tadzik | :) | ||
masak | guess it was only a matter of time. | ||
jnthn | I heard you like subs... | 19:02 | |
masak | yeah, but this is some sort of second degree of that... :P | 19:03 | |
I can report that it all looks very natural, and I don't regret it one bit. | 19:04 | ||
it's all part of a little refactor I'm doing. | |||
19:04
bacek joined
|
|||
masak | when you put subs in subs like this, you can throw away loads of parameters from your siggies :) | 19:05 | |
19:06
cognominal left
|
|||
jnthn | It's times like this that I'm glad Perl 6 makes subs lexical by default :) | 19:06 | |
masak | oh, that's a prerequisite. | 19:07 | |
at least for sanity. :) | |||
colomon | which (if I'm understanding you) is part of the reason I consider nested methods very odd. | 19:09 | |
masak | colomon: well, that conversation continued a bit, and I think TimToady found them similarly odd. | ||
at the very least, it wasn't entirely clear how to treat their lexpads from a GC perspective. | 19:10 | ||
colomon: no matter where a (named) method is declared, directly in the class scope or nested inside something else, it goes and registers itself with the class being defined. | 19:11 | ||
colomon: the only difference is what outer scope it ends up getting. | 19:12 | ||
19:14
moreno88 joined
|
|||
masak | oh, one more thing about the nested subs. | 19:14 | |
19:14
moreno88 left
|
|||
masak | the parameters that end up being removed are of a certain kind: they're "context", of which you might occasionally feel "I shouldn't have to pass along this" | 19:14 | |
with nested subs, you don't :) | |||
colomon | right | 19:15 | |
pmurias | sorear: do we need Perl::Critic to work on modules which can't be compiled? | 19:20 | |
sorear: i can imagine it to be helpfull in some cases but i don't think it's nessesary | 19:21 | ||
colomon | masak: In C++, I've sometimes spawned off a mini-class to handle those context variables in a tidy fashion. But next subs is much much nicer for the average case, I'd think. | 19:22 | |
masak | aye. | 19:23 | |
I still haven't found a use for nested classes in Perl 6. | |||
colomon | masak: The classic example is something like a node class nested in a tree class. (Come to think of it, I'm sure you know that.) In practice I've I think I've only wanted to do it once so far in p6, and then I changed my mind. | 19:25 | |
masak | I've seen that sometime, yes. | ||
what would be the advantage compared to keeping it outside of the class? | 19:26 | ||
colomon | Done properly, it's strictly an implementation detail, and no-one else outside has any reason to access it. | 19:28 | |
masak | sounds like a private class. | 19:31 | |
not sure that's doable in Perl 6. | |||
19:33
donri joined
|
|||
masak | rakudo: role R[::T] { multi method foo(T $t) { say "called with a {T}!" } }; class A does R[Str] does R[Int] {}; say "alive"; A.new.foo("OH HAI") | 19:37 | |
p6eval | rakudo 9ed54c: OUTPUT«aliveget_attr_str() not implemented in class 'Sub' in main program body at line 7467» | ||
masak submits rakudobug | |||
jnthn: thanks for the insider information required to concoct that one :P | 19:38 | ||
19:39
shi joined
|
|||
jnthn | masak: (private class) lexical class! | 19:40 | |
masak | ooh. yes. | ||
jnthn | That...wasn't the failure mode I expected. :) | ||
masak | rakudo: role R[::T] { multi method foo(T $t) { say "called with a {T}!" } }; class A does R[Str] { multi method foo(Int $t) { say "called with an Int!" } }; say "alive"; A.new.foo("OH HAI") | ||
p6eval | rakudo 9ed54c: OUTPUT«alivecalled with a Str()!» | ||
masak | rakudo: role R[::T] { multi method foo(T $t) { say "called with a {T}!" } }; class A does R[Str] { multi method foo(Int $t) { say "called with an Int!" } }; say "alive"; A.new.foo(42) | 19:41 | |
p6eval | rakudo 9ed54c: OUTPUT«aliveget_attr_str() not implemented in class 'Sub' in main program body at line 7467» | ||
masak | huh. | ||
flussence | That looks familiar... | ||
masak | rakudo: role R[::T] { multi method foo(T $t) { say "called with a {T}!" } }; class A does R[Str] does R[Int] {}; say "alive"; A.new.foo(42) | ||
p6eval | rakudo 9ed54c: OUTPUT«alivecalled with a Int()!» | ||
sorear | pmurias: it would be nice to do the green squiggly line thing while editing in 6ide | 19:42 | |
pmurias: I guess "need" | |||
is fairly strong | |||
masak | so... it only fails on the multi method that was defined first...? | ||
rakudo: class A { multi method foo(Int $t) { say "called with an Int!" }; multi method foo(Str $t) { say "called with a Str!" } }; say "alive"; A.new.foo(42) | 19:43 | ||
p6eval | rakudo 9ed54c: OUTPUT«alivecalled with an Int!» | ||
masak | rakudo: class A { multi method foo(Int $t) { say "called with an Int!" }; multi method foo(Str $t) { say "called with a Str!" } }; say "alive"; A.new.foo("OH HAI") | ||
p6eval | rakudo 9ed54c: OUTPUT«alivecalled with a Str!» | ||
masak | ...of course that works. | ||
pmurias | sorear: i don't think we require perl::critic to work in real time | 19:44 | |
sorear: and it's more important to handle all the modules that compile then take the ones that don't into account also | 19:45 | ||
sorear: but doing a partial syntax check for incomplete filles would be great for an ide | 19:46 | ||
masak | rakudo: class A { multi method foo(Int $t) { say "called with an Int!" }; multi method foo(Str $t) { say "called with a Str!" } }; A.new.foo(42); A.new.foo("OH HAI") | ||
p6eval | rakudo 9ed54c: OUTPUT«called with an Int!called with a Str!» | ||
pmurias | like eclipse detects how small errors (missing semicolon) can be fixed by it | ||
19:47
tomaw left
19:48
tomaw joined
19:52
perimosocordiae joined
|
|||
masak | a parser that recovers. | 19:52 | |
arnsholt | Yeah, that'd be nice | 19:53 | |
jnthn | masak: "Internal server error when calling a..." - what?! | 19:54 | |
arnsholt | Marpa looks interesting in that department | ||
dalek | ok: d77f68f | masak++ | src/classes-and-objects.pod: [classes-and-objects] indented code properly Commit courtesy of Håkan Kjellerstrand. |
||
masak | jnthn: did I write that? I must have been really distracted :P | 19:55 | |
jnthn | masak: Yes :P | ||
masak | now *that's* a masakbug! | ||
masak fixes | |||
19:55
kanishka left
|
|||
masak | no worries, it's not like it went out to a whole list of people or anything. | 19:55 | |
though the idea is thrilling -- how long will it be until our compilers are in the cloud? :) | 19:57 | ||
19:58
MayDaniel joined
|
|||
dalek | ok: 23c4e5d | masak++ | src/classes-and-objects.pod: [classes-and-objects] fixed code thinkos - should be Programmer.new (becuase we're using methods from Programmer) - s/turing problem/halting problem/ By the way, with that kind of task, the programmer is not getting paid enough. |
20:02 | |
masak | rakudo: sub foo(*%params) { push( %params<cookbook>, "Cooking for Geeks" ); }; foo(foo => 42, bar => 5) | 20:05 | |
p6eval | rakudo 9ed54c: OUTPUT«Method '!fill' not found for invocant of class '' in 'List::push' at line 2881:CORE.setting in 'foo' at line 22:/tmp/sYNxP1wsbd in main program body at line 22:/tmp/sYNxP1wsbd» | ||
jnthn | hm | 20:06 | |
masak | fellow perl6/book authors, I think we should be thinking of building some automated test solution for the code in our book. | ||
I found this when I wanted to check whether you can really push to a non-rw slurpy hash. | |||
(as we seem to be doing on page 57) | 20:07 | ||
pmurias | masak: how will it look? assertions that don't get displayed in the book? | 20:08 | |
20:08
kanishka joined
20:09
chiehwen joined
|
|||
masak | pmurias: not sure. I guess some form of annotation might be necessary. | 20:09 | |
there's already a mechanism for "don't display this in the rendered output". | 20:10 | ||
20:10
Mowah joined
|
|||
masak | jnthn: check out this commit. | 20:11 | |
dalek | ok: 61baf42 | masak++ | src/classes-and-objects.pod: [classes-and-objects] removed duplicate code |
||
masak | jnthn: I think you wrote that chapter, and I just exercised a bit of forgiveness/permission on it. | ||
jnthn | masak: +1 | 20:13 | |
arnsholt | masak: If you have a don't-display-this mechanism, perhaps hack the rendering code to get a complementary mode where it only renders the non-rendered stuff? | ||
jnthn | masak: Though I didn't write that bit anyway :) | 20:14 | |
stifynsemons | rakudo: my $x = "this is"; $x ~~ s/^(\w)//; say $x; say $/[0]; | 20:15 | |
p6eval | rakudo 9ed54c: OUTPUT«his isAny()» | ||
stifynsemons | why does that not capture the "t"? | ||
20:17
[Coke] left
|
|||
flussence | I was trying to do a similar thing myself, it seems like capture groups in s/// don't get set | 20:17 | |
stifynsemons | works for plain matches though | 20:18 | |
masak | arnsholt: sure, but extracting the code isn't even the hard part (I think). running the code in a context where it'll run is the hard part. | ||
20:28
[Coke] joined
|
|||
pmurias | the non rendered stuff can set the context | 20:28 | |
just extract the code into a test and run it | |||
20:29
jjore left
20:31
jjore joined
|
|||
masak | yes. something like that. | 20:31 | |
lue | blog post! rdstar.wordpress.com/2011/02/20/on...of-perl-6/ | 20:39 | |
dalek | ok: b2d2699 | masak++ | src/builtins.pod: [builtins] lower-cased a word Brings it into harmony with the rest of the entries in the table. |
||
ok: 8687494 | masak++ | src/builtins.pod: [builtins] added C<%>, modulo operator Commit courtesy of Håkan Kjellerstrand. |
|||
dukeleto | lue: cool logo :) | ||
20:41
REPLeffect left,
MayDaniel left
|
|||
masak | lue: happy anniversary! | 20:42 | |
arnsholt | masak: That is definitely true | 20:43 | |
lue | dukeleto, masak: merci. | ||
nom time! afk. | 20:44 | ||
20:45
molaf left
|
|||
masak | lue: to the extent I helped you see the TDD light, I'm happy and proud. | 20:45 | |
(to the extent I'm not, I'm still quite happy and proud, actually) | |||
donri | How does the grammar tell hashes from blocks? | 20:53 | |
jnthn | donri: I think that's done in semantic analysis rather than syntactic. | ||
20:54
REPLeffect joined
|
|||
jnthn | donri: github.com/rakudo/rakudo/blob/mast...s.pm#L2234 | 20:54 | |
20:55
ab5tract joined
|
|||
masak | donri: that's a very enlightened question, by the way. | 20:55 | |
I think S02 answers it in full. | |||
Tene | I'm a little bit irked by the overloading of {} for both hashes and blocks, but it's not going away | 20:58 | |
masak | donri: ah, S04:1569 has the whole scoop. | 20:59 | |
tadzik | am I the only one who frequently visits irclog.perlgeek.de just to get clickable links to specs, bugs etc? :) | 21:00 | |
masak | Tene: I came to the same conclusion in strangelyconsistent.org/blog/speaki...-in-perl-6 | ||
tadzik: I know moritz_ does it, too :) | |||
21:01
AphelionZ joined
21:02
AphelionZ is now known as Guest15810
21:05
kanishka left
21:06
Guest15810 left
|
|||
arnsholt | *sigh* C isn't a bad language, but it kinda feeels like swimming in mud | 21:06 | |
21:07
benabik left
21:11
Intensity joined
|
|||
dalek | rixel: ce8e3ed | diakopter++ | / (5 files): stub in beginning of grammar/rule/token declaration |
21:11 | |
21:12
gbacon joined
|
|||
colomon | tadzik: I do it too. | 21:13 | |
diakopter | me3 | ||
21:20
pmurias left
|
|||
donri | Why is @a[-1] bad and what does 'avoids indexing discontinuities' mean? | 21:22 | |
21:23
awwaiid_ left
|
|||
tadzik | there should be a weechat plugin for that | 21:23 | |
masak | donri: without indexing discontinuities, -1 comes before 0. | 21:27 | |
donri: it clearly doesn't in Perl 5 (in terms of indexes, that is). thus Perl 5 has indexing discontinuities. | 21:28 | ||
donri: in Perl 6, you can have an array @coords[-10..10] | |||
donri | What would that mean? | 21:29 | |
masak | @coords[-1] means exactly what it looks like, no magic. it is the tenth element in the array in this case. (out of 21) | ||
now that's not the primary reason for avoiding discontinuities, but it falls nicely out of it. | |||
sbp | how do you construct @coords to work with that kind of indexing? | ||
masak | my @coords[-10..10] | 21:30 | |
sbp | aha | ||
masak | (NYI in Rakudo) | ||
see S09 for details. it's one of the coolest synopses, if you ask me :) | |||
donri | I suppose you could also do @foo[-10] = 'bar' on any array? | ||
masak | yes. | 21:31 | |
I remember there being big, serious discussions about it on p6l. about 2007, perhaps. | 21:33 | ||
not only is there a discontinuity, there's also a bit of an assymmetry. | 21:34 | ||
from the left, the indexes started at 0. from the right, they started at -1. | |||
donri | hehe | ||
can't you do $a[@a] in p5 | 21:35 | ||
flussence | oh hai I made a thing. gist.github.com/836333 | ||
donri | or uh is that $#a or something, err | ||
masak | donri: $a[@a - 1] seems to work. | 21:36 | |
donri: but I wouldn't call it p5-ish. | |||
flussence: cool! | 21:37 | ||
flussence: I should make an Emacs macro that does that for me :) | |||
'night, #perl6 | |||
flussence | o/ | ||
21:37
masak left
|
|||
flussence | (hm, I think urxvt can make those clickable...) | 21:38 | |
21:41
shi left
21:44
molaf joined
21:46
MayDaniel joined,
Mowah left
21:49
cognominal joined
|
|||
donri | or make some bot link them when mentioned | 21:50 | |
jnthn | sleep & | 21:52 | |
21:56
kaare_ left
21:57
PacoLinux left
22:07
kjeldahl left
22:16
vmspb joined
22:20
gbacon left
|
|||
dalek | rixel: 90029b8 | diakopter++ | / (7 files): finish statement_mod_cond and statement_mod_loop |
22:21 | |
diakopter | perlesque: say('hi') if 1 | 22:23 | |
p6eval | perlesque: OUTPUT«hi» | ||
diakopter | perlesque: say('hi') until 0 | ||
p6eval | perlesque: | 22:24 | |
..OUTPUT«(timeout)hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihixE2x90 | |||
22:25
countley joined
|
|||
sorear | niecza spectest run: 6m31s, 77 files, 1218 tests, 1 file failed (for-scope.t) | 22:25 | |
moritz_++ | |||
dalek | rixel: d875e1a | diakopter++ | / (4 files): allow sub calls not to have parens......... that was *too* easy........... :/ |
22:30 | |
donri | rakudo: say map <one two>: *.uc | 22:34 | |
p6eval | rakudo 9ed54c: OUTPUT«===SORRY!===Confused at line 22, near "say map <o"» | ||
donri | indirect object notation NYI? | ||
Tene | Probably, yes. | 22:37 | |
diakopter | pugs: say map <one two>: {$_.uc} | 22:38 | |
p6eval | pugs: OUTPUT«ONETWO» | ||
diakopter | pugs: say map <one two>: {.uc} | ||
p6eval | pugs: OUTPUT«ONETWO» | ||
22:38
ab5tract left
|
|||
donri | pugs: say map <one two>: *.uc | 22:42 | |
p6eval | pugs: OUTPUT«*** Cannot cast from VList [VStr "INF"] to Pugs.AST.Types.VCode (VCode) at /tmp/nqaDnWs4sL line 1, column 5 - line 2, column 1» | ||
donri | no WhateverCode eh | ||
dalek | ast: fe270aa | sorear++ | S04-statements/for-scope.t: Fix typo in S04/for-scope.t |
||
sorear | niecza: say map <one two>: *.uc | 22:43 | |
p6eval | niecza v2-99-g1e36fcc: OUTPUT«===SORRY!===Invocant handling is NYI at /tmp/uiXPO3mPlN line 1 (EOF):------> say map <one two>: *.uc⏏<EOL>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/SAFE.setting line 377 (SAFE die @ 2) at | ||
../home/p6eval/niecza/src… | |||
donri | "Submethods are for declaring infrastructural methods that shouldn't be inherited by subclasses" haha great name then ;) | ||
22:46
_twitch left
|
|||
donri | ".=" is often referred to as in-place mutation, is it treated special? | 22:51 | |
sorear | no | 22:52 | |
$x .= foo is exactly the same as $x = $x.foo | |||
donri | I know, but that'll result in a new object though won't it? | ||
sorear | of course | ||
donri | Not really in-place at all? | 22:53 | |
colomon | Not really in-place at all. | 22:56 | |
22:56
plobsing left,
plobsing joined
|
|||
Tene | rakudo: my $a = "foo"; my $b := $a; $a .= uc; say $b; | 22:58 | |
p6eval | rakudo 9ed54c: OUTPUT«FOO» | ||
Tene | sorear: I thought there was some provision in the spec to permit optimization of in-place mutation? Am I misremembering, do you know? | ||
diakopter | .= won't necessarily result in a new object (if the method returns the same object); separately, "in-place mutation" can be an appropriate description if "in-place" is referring to a shallow notion of the local lexical scope, especially with simple/value objects | 22:59 | |
(sry in advance if/where I'm wrong) | 23:01 | ||
23:02
coldhead left,
coldhead joined
|
|||
donri | stuff like 'is rw' in a signature, does that affect some behind-curtain 'binding' thingy rather than the passed object? | 23:03 | |
23:04
bacek left
23:05
ab5tract joined
|
|||
donri | how does nextsame et al work with multi-inheritance? | 23:11 | |
diakopter | donri: an example? :) | 23:12 | |
(let's make it a test!) | |||
donri | rakudo: class A { method go { 'A' } }; class B { method go { 'B' } }; class C is A is B { }; say C.new.go | 23:14 | |
p6eval | rakudo 9ed54c: OUTPUT«A» | ||
donri | rakudo: class A { method go { 'A' } }; class B { method go { 'B' } }; class C is A is B { method go { nextsame } }; say C.new.go | ||
p6eval | rakudo 9ed54c: OUTPUT«A» | ||
23:14
cosimo joined
|
|||
donri | So order matters eh? | 23:14 | |
Can you call the 'same' method of a specific parent? | 23:15 | ||
23:17
leprevost joined,
leprevost left,
leprevost joined
23:18
leprevost left,
bacek joined,
leprevost joined,
leprevost left,
leprevost joined
|
|||
donri | rakudo: class A { method go { 'A' } }; class B { method go { 'B' } }; class C is A is B { self.B::go }; say C.new.go | 23:23 | |
p6eval | rakudo 9ed54c: OUTPUT«===SORRY!===Symbol 'self' not predeclared in <anonymous> (/tmp/rNjABsP7_G:22)» | 23:24 | |
donri | rakudo: class A { method go { 'A' } }; class B { method go { 'B' } }; class C is A is B { method go { self.B::go } }; say C.new.go | ||
p6eval | rakudo 9ed54c: OUTPUT«B» | ||
donri | \o/ | ||
23:28
MayDaniel left
|