Camelia, the Perl 6 bug

IRC log for #perl6, 2011-02-20

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs