Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-04-14

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:19 frdmn joined #perl6
00:39 BenGoldberg joined #perl6
01:05 dalek ecosystem: cb9d862 | (Brent Laabs)++ | META.list:
01:05 dalek ecosystem: +File::Spec::Case (case-tolerant split from File::Spec)
01:05 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/cb9d86211c
01:06 FROGGS_ joined #perl6
01:24 Psyche^ joined #perl6
01:28 gdey joined #perl6
02:03 mikess joined #perl6
02:44 orafu joined #perl6
02:46 preflex_ joined #perl6
02:49 BenGoldberg labster: File::Spec::Case contains a race condition.
02:50 BenGoldberg If two perl6 processes both run at the same time and in the same directory, they both might create a filespec.tmp file.
02:50 rindolf joined #perl6
02:52 BenGoldberg Even ignoring that one process might die()...
02:52 lard joined #perl6
02:52 BenGoldberg Also possible for one process to unlink the file created by the other process... which could result in one getting a wrong answer from the .tolerant method
02:53 shlomif joined #perl6
03:12 lard perl6: class foo { multi method bar(:$baz) { say ">",$baz,"<"}}; foo.new.bar(:baz<works>);foo.new.bar(:derp('rakudo runs method even though nothing matches sig'));
03:12 p6eval niecza v24-37-gf9c8fc2: OUTPUT«>works<␤Unhandled exception: Cannot call bar; none of these signatures match:␤    foo, Any :$baz␤  at /tmp/W2hmEFv_In line 1 (mainline @ 9) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4300…
03:12 p6eval ..rakudo b5bdbe: OUTPUT«>works<␤>(Any)<␤»
03:13 lard oh and same result without multi
03:33 lard sent bug report
03:34 colomon lard++
04:02 labster .tell BenGoldberg I am aware that File::Spec::Case sucks, but compared to the Perl 5 version which is always wrong on my computer, it's still an improvement.  One of the main reasons I wanted to yank it out of File::Spec is because it's little-used and broken.
04:02 yoleaux labster: I'll pass your message to BenGoldberg.
04:19 kaare_ joined #perl6
04:20 * labster just now realizes that Perl6 will never run on OSes that only support 8.3 filesystems anyway (CORE.setting)
04:33 sorear s/Perl6/rakudo/
04:34 sorear although practically speaking perl 6 will probably never be efficient enough to run on bare DOS
04:39 diakopter why does it need more efficiency there?
04:39 diakopter (or, s/on bare DOS/)
04:40 sorear very tight memory limits
04:40 diakopter /
04:41 * sorear waves hands and vanishes
04:59 * labster does jazz hands
05:05 rindolf joined #perl6
05:22 camelia joined #perl6
05:32 rindolf joined #perl6
05:37 * diakopter looks at my entries in the evalbot log and rotfl
05:42 diakopter out of 6502 entries in the log, I made 2587
05:42 diakopter er. 6981 entries in the log.
05:43 diakopter n: say (2587/6502*10000).Int
05:43 p6eval niecza v24-37-gf9c8fc2: OUTPUT«3978␤»
05:43 diakopter 39.78%
05:47 moritz \o
05:47 diakopter morning
05:48 sorear what's camelia?
05:49 diakopter oh good you're here
05:49 diakopter was going to ask your permission to swap p6eval's nick for that
05:49 sorear i would defer to moritz and/or TimToady
05:49 diakopter oki
05:49 diakopter moritz: :)
05:50 moritz diakopter: I don't care much either way
05:50 moritz so, no objections here
05:51 diakopter anyone know what #rosettacode is?
05:52 sorear rosettacode.org
05:52 diakopter I mean, I know what the site is, but what's the channel for
05:52 moritz a channel discussing rosettacode?
05:52 sorear diakopter: the channel is about the site
05:52 diakopter ok; I was asking b/c p6eval is in there
05:54 camelia joined #perl6
05:55 diakopter oops, maybe I shouldn't have given it a password
05:55 moritz I'm pretty sure it's possible to add the password to the code somehow
05:58 sorear diakopter: yes, they (mostly TimToady) use perl 6 in there and so they have a p6eval
05:58 sorear You're just giving the bot a new account, not rewriting it or anything like that?
06:01 diakopter correct
06:09 SamuraiJack joined #perl6
06:10 diakopter /o\ fail
06:10 camelia joined #perl6
06:10 diakopter r: 'yo'
06:10 diakopter oh heh.
06:11 * diakopter tries again
06:11 camelia rakudo b5bdbe:  ( no output )
06:11 diakopter wat.
06:11 sorear diakopter: It's just waiting for a chance to speak
06:12 sorear that PRIVMSG holding the reply was queued up behind a bunch of JOINs
06:12 diakopter n: "I'm here too"
06:12 camelia niecza v24-37-gf9c8fc2:  ( no output )
06:12 diakopter ah, good to know.
06:12 diakopter now to actually get it to identify
06:12 diakopter apparently I didn't realize that $bot->run() was blocking  :S
06:15 diakopter well actually it might be identified; not sure
06:17 diakopter rn: .say
06:17 camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: OUTPUT«(Any)␤»
06:17 diakopter pugs: 'ahoy'.say
06:17 camelia pugs: OUTPUT«ahoy␤»
06:17 diakopter p6eval: yo
06:17 diakopter camelia: yo
06:18 sorear diakopter: camelia isn't identified
06:18 sorear you can tell this by /whois camelia   /whois sorear
06:19 sorear one has 'account : sorear', the other has nothing
06:20 diakopter ah ok; thx
06:20 xinming joined #perl6
06:21 moritz diakopter: please make sure to push changes to github
06:21 diakopter I'll muddle through it
06:21 diakopter ops to fix the topic in a sec
06:21 moritz ++diakopter
06:21 moritz the topic looks fine to me :-)
06:22 diakopter /msg p6eval
06:24 diakopter eh I'll just override ->join that's close enough
06:25 diakopter er, chanjoin
06:25 diakopter superfluous messages to nickserv shouldn't be a problem. ;)
06:26 diakopter wait.  connected is what I want
06:31 diakopter here goes nothing
06:31 camelia joined #perl6
06:32 diakopter r: 1
06:32 diakopter n: ;
06:32 camelia rakudo b5bdbe:  ( no output )
06:32 camelia niecza v24-37-gf9c8fc2:  ( no output )
06:33 diakopter *sigh*
06:36 diakopter sub connected { my $bot = shift; $bot->say(name=>'nickserv',channel=>'msg',body=>"identify $bot->{__nickpass}") if exists $bot->{__nickpass}; }
06:36 diakopter $bot->{__nickpass} = $conf{pass} if exists $conf{pass};
06:36 diakopter probably got param to say wrong
06:37 diakopter argh.
06:37 diakopter name -> who
06:37 camelia joined #perl6
06:38 diakopter r: ;
06:38 camelia rakudo b5bdbe:  ( no output )
06:38 diakopter success.
06:39 diakopter \o/
06:39 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
06:40 diakopter opos
06:40 diakopter .. now to +V it
06:41 diakopter urp
06:41 diakopter wth did I do
06:41 diakopter oh. nothing.
06:43 diakopter ergh; apparently I don't have perms to /msg chanserv flags #perl6 camelia +V
06:43 diakopter moritz or sorear?
06:43 diakopter (would you do it plz)
06:47 diakopter OOPS. fixing
06:48 diakopter argh.  fail... sorry everyone
06:48 diakopter should be okay now
06:48 diakopter PM me if not..
06:49 diakopter r: 2345.2 2 2
06:49 camelia rakudo b5bdbe: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/VFBSEzoN9k:1�------> [32m2345.2 [33m�[31m2 2[0m�    expecting any of:�        postfix�        infix stopper�        infix or meta-infix�        statement end�        statement modifier�        statement …
06:49 diakopter camelia: hi
06:49 diakopter p6eval: help
06:49 camelia diakopter: Usage: <(nqp-jvm|star|pugs|nqp|std|niecza|rakudo|b|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
06:49 diakopter heh
06:49 diakopter test
06:50 labster rn: "\c61\c41" #hi camelia
06:50 camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2:  ( no output )
06:51 labster rn: say "\c61\c41" # still not a repl, of course
06:51 camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: OUTPUT«=)␤»
06:53 diakopter .ask sorear would you please /msg chanserv flags #perl6 camelia +V  unless moritz_ beat you to it
06:53 yoleaux diakopter: I'll pass your message to sorear.
07:03 FROGGS_ diakopter: must be an accident but camelia is not showing 'v5' in the help msg :P
07:06 labster FROGGS: o/
07:07 diakopter hunh.
07:07 FROGGS hi labster
07:07 FROGGS .a hunh
07:07 diakopter v5: ;
07:07 domidumont joined #perl6
07:08 diakopter FROGGS: oh. you were kidding.
07:08 FROGGS *g*
07:08 FROGGS a bit
07:08 diakopter there are plenty of rakudo checkouts there, what's one more...
07:10 labster I cut about 250 lines from File::Spec in the past 3 days -- only 75 of which came from moving case-tolerant to another module -- the rest was refactoring.
07:13 FROGGS diakopter: well, I can change something in the v5-repo, so that an additional rakudo won't be needed
07:14 diakopter o_O
07:14 FROGGS v5 just needs to be checked out, made, and the commands from 'v5' must be in its redo directory
07:14 FROGGS v5 is just a module
07:15 FROGGS not pandaable yet though
07:15 dmol1 joined #perl6
07:15 jaldhar joined #perl6
07:15 FROGGS diakopter: I'll fix up v5 later, and give you a batch, okay?
07:18 FROGGS diakopter: basically it would be cool if 'r:' would be executed in v5's repository root-dir
07:18 FROGGS because only if you do 'use v5' it would do anything at all
07:19 diakopter ah.'
07:19 FROGGS labster++
07:22 labster I'm starting to think that if IO.pm will depend on File::Spec, it's going to have to be a core module.  Unless it's possible to "use File::Spec;" in CORE.setting?
07:26 moritz diakopter: done
07:26 moritz .msg sorear I beat you to it :-)
07:26 yoleaux moritz: Sorry, this command is admin-only.
07:26 moritz .tell sorear I beat you to it :-)
07:26 yoleaux moritz: I'll pass your message to sorear.
07:32 berekuk joined #perl6
07:34 jaldhar joined #perl6
07:38 diakopter moritz: I seem to need a git hand-holding
07:38 moritz diakopter: what do you need?
07:39 diakopter told what to type?
07:39 domidumont joined #perl6
07:39 moritz first, commit all your changes
07:39 moritz then
07:39 moritz git fetch
07:40 moritz git format-patch origin/master
07:40 moritz that generates a bunch of 000\d-\S+.patch files
07:40 moritz copy them over to your local machine
07:40 diakopter O)O
07:40 moritz there do a   git am -s 000*
07:40 moritz and then push
07:41 domidumont joined #perl6
07:43 diakopter hrm, probably shouldn't push the password
07:44 moritz probably not :-)
07:46 diakopter ah well, someone else probably will later anyway
07:47 domidumont joined #perl6
07:51 timotimo in the optimizer, would i have to find_lexical("Signature") to access the $!params of a Signature? i would assume if Signature was redeclared lexically, i'd still get the Signature from core there, right? but just writing Signature instead doesn't seem to work.
07:53 sorear if you do find_lexical("Signature"), make sure you start the search from the correct place so you get CORE::Signature and not COMPILING::Signature
07:53 yoleaux 06:53Z <diakopter> sorear: would you please /msg chanserv flags #perl6 camelia +V  unless moritz_ beat you to it
07:53 yoleaux 07:26Z <moritz> sorear: I beat you to it :-)
07:53 sorear we've hit many versions of that bug across 2(+?) compilers
07:55 timotimo hehe :)
07:55 timotimo at least this time the compilation pulls through
07:55 timotimo isn't that something.
07:56 labster which seems more idiomatic:  ~self, self.Str, or $.Str ?
07:56 sorear ~self
07:57 * dukeleto votes ~self too
07:57 timotimo $.Str isn't correct most of the time, no?
07:59 dalek evalbot: d31c208 | diakopter++ | evalbot.pl:
07:59 dalek evalbot: nqp-jvm target
07:59 dalek evalbot:
07:59 dalek evalbot: Signed-off-by: diakopter <diakopter@gmail.com>
07:59 dalek evalbot: review: https://github.com/perl6/evalbot/commit/d31c208ac5
07:59 dalek evalbot: 692b905 | (Perl 6 Evalbot)++ | / (2 files):
07:59 dalek evalbot: use camelia account instead
07:59 dalek evalbot:
07:59 dalek evalbot: Signed-off-by: diakopter <diakopter@gmail.com>
07:59 dalek evalbot: review: https://github.com/perl6/evalbot/commit/692b9059cf
07:59 diakopter meh
07:59 diakopter hunh. where'd that first commit come from
08:00 lizmat joined #perl6
08:00 diakopter argh.
08:00 timotimo hehe
08:00 labster even the evalbot is excited about the jvm, committing to it.
08:02 timotimo :D
08:03 diakopter moritz: where do I commit the build-script
08:03 diakopter or does that just live there
08:05 timotimo i wonder if rakudo would benefit from an optimizer in nqp?
08:09 berekuk joined #perl6
08:10 moritz diakopter: there's a subdir for build scripts in the p6eval repo
08:10 cognominal timotimo: or the plan is maybe to eventually compile rakudo in rakudo?
08:11 cognominal s/in/with/
08:11 timotimo i'm not sure how to start my search at the CORE block; the previous code to see if some lexical comes from the core is just to look if there's a !CORE_MARKER in it ...
08:11 timotimo oh, i suppose i can just walk the block chain for a !CORE_MARKER to exist
08:11 timotimo and then just save that away
08:21 kaare_ joined #perl6
08:21 crab2313 joined #perl6
08:22 frdmn joined #perl6
08:22 moritz timotimo: rakudo would benefit from an nqp-level optimizer
08:23 moritz for build times, and also because Actions, Grammar and World are written in NQP
08:23 moritz and the meta model
08:27 arlinius joined #perl6
08:29 timotimo mhm
08:29 timotimo especially all those negative numbers having to be make-int + negate-int :P
08:29 moritz wwwhat?
08:30 timotimo is the prefix:<-> operator already inlined for nqp?
08:31 moritz a -1 in nqp produces a QAST::IVal.new(:value(-1))
08:31 moritz so no separate call to nqp::neg_i or so
08:33 timotimo ah, that's nice.
08:33 timotimo i seem to recall in rakudo it used to be non-inlined, but that must be because you can override - in rakudo but not in nqp?
08:34 moritz iirc jnthn++ improved the codegen a bit when he introduced PIRT
08:34 moritz timotimo: probably
08:34 timotimo what is PIRT?
08:35 moritz the stage after QAST
08:36 moritz $ ./perl6 --target=optimize -e 'say -1' > optimized
08:36 moritz $ ./perl6 --target=ast -e 'say -1' > naive
08:36 moritz $ diff -u naive optimized
08:37 tgt joined #perl6
08:37 moritz shows that the call is constant-folded, but that we lose the polymorphism of the integer literal
08:38 moritz if somebody is looking for a fun little project in the optimizer, that would be a nice thing to fix
08:39 timotimo oh, i know it by the name "optimizer" ;)
08:39 timotimo hm, what's the use in getting that back?
08:40 berekuk joined #perl6
08:40 moritz if you write code like   my int $x = 42; my int $y = -1 * $x
08:40 moritz then since the -1 is currently not an int, but rather an Int, it'll used the infix:<*>(Int, Int) candidate instead of infix:<*>(int, int)
08:41 moritz the latter would be more efficient
08:41 timotimo oh, so it doesn't create a Want node?
08:41 moritz correct
08:42 moritz it just creates a bare QAST::WVal node
08:43 timotimo so if the optimizer creates a WVal with an Int in it, it could then optionally/optimally create an int from that Int, and turn that WVal into a Want
08:43 timotimo does the Want contain a WVal for the Int still?
08:45 * timotimo just looks by themself
08:45 moritz yes
08:45 timotimo oh. neat. so the WVal node can still be reused
08:45 timotimo can the same thing be done with strings? is there a Str vs str?
08:45 moritz it should trans form the QAST::WVal(Int) into a QAST::Want(QAst::WVal(Int), 'Ii', QAST::Ival(unboxed Int))
08:45 moritz yes, Int, Str and Num
08:47 timotimo unboxing ints works how? i thought p6decont would do that, but it seems that op isn't available in Optimizer.pm, so maybe only in the Setting?
08:48 sorear nqp::unbox_{ins} mayb
08:48 moritz nqp::unbox_i($value)
08:48 moritz timotimo: containers and boxing are mostly orthogonal
08:48 timotimo ah, i think i can implement this now :)
08:48 moritz ++timotimo
08:48 sorear if you have a (pseudocode) Scalar[Int[int]],  p6decont gives you the Int, unbox_i gives you the int
08:48 timotimo ah, so the container thing is $i vs \i, the boxing is Int vs int, is that about accurate?
08:49 sorear rooooooughly
08:49 moritz the problem is that \i doesn't remove the container, it just preserve it
08:49 moritz whereas unboxing always removes the box
08:50 timotimo ah, ok.
08:50 sorear Every value you can touch in perl 6 logically has a container
08:50 timotimo i'll have to fix my junction fail first, which is kind of a back-and-forth with not really knowing how nqp does things and taking 3 minutes to compile and getting distracted
08:50 sorear in nqp, you get to choose between bare values and containers, and can use p6decont to switch between them
08:51 sorear (this is complicated by an optimization: when perl 6 sees a bare value, it imagines a read-only container.  this lets us avoid allocating well over half of the containers that are logically needed)
08:52 moritz sorear: does a literal "logically" have a container?
08:52 sorear moritz: i would say so
08:52 moritz sorear: why?
08:53 sorear because you can do "foo".flip and the literal's container needs to be passed to the string method
08:54 timotimo ah, that's a good point
08:54 moritz a method call doesn't need a container
08:55 moritz at least not in my world view
08:55 sorear your world view made no sense until I learned to understand it as an internalized optimization of mine
08:55 moritz one could say that "everything has a container, but they can often be optimized away" is roughly equivalent to "not everything has a container, but certain operations vivify them"
08:56 sorear yes, there are two possible ontologies there
08:57 sorear and since they are observationally equivalent I am going to avoid any possible useless debate and sleep&
08:58 GlitchMr std: sub double { my $val = shift; $val * 2 }
08:58 camelia std 86b102f: OUTPUT«ok 00:00 44m␤»
08:58 GlitchMr rn: sub double { my $val = shift; $val * 2 }
08:58 camelia niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:�  &double is declared but not used at /tmp/f5ETy32uyi line 1:�------> [32msub double [33m�[31m{ my $val = shift; $val * 2 }[0m��»
08:58 camelia ..rakudo b5bdbe: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling proto of 'shift' will never work with no arguments (line 1)␤    Expected: :()␤»
08:58 timotimo good night sorear :)
08:58 GlitchMr rn: sub double { my $val = shift; $val * 2 }; say double 42
08:58 camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: No value for parameter '@array' in 'shift'␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (shift @ 1) ␤  at /tmp/X8fBhvM8G5 line 1 (double @ 4) ␤  at /tmp/X8fBhvM8G5 line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting li…
08:58 camelia ..rakudo b5bdbe: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling proto of 'shift' will never work with no arguments (line 1)␤    Expected: :()␤Calling 'double' will never work with argument types (int) (lines 1, 1)␤    Expected: :()␤»
08:59 timotimo oh, so shift is specced to use CALLER::@_ if it has no arguments?
09:00 moritz you mean in p5?
09:01 lizmat in p5, a bare shift operates on @ARGV in main::, no?
09:01 ivan`` joined #perl6
09:01 moritz lizmat: outside of any functions (which isn't quite the same as in main::)
09:01 moritz *function
09:01 lizmat ack
09:02 lizmat wasn't sure what the conditional was
09:02 dmol1 joined #perl6
09:03 timotimo i *think* my optimization code is now ready to be pushed, but i'll add some spectests and run a full spectest run in the mean time.
09:03 timotimo actually, i should start up my beefy desktop for this now.
09:04 timotimo "inspecting &infix:<ne> for junction optimization" "a parameter doesn't accept Any" sounds promising already :)
09:05 tgt joined #perl6
09:05 jnthn r: perl6: class foo { multi method bar(:$baz) { say ">",$baz,"<"}}; foo.new.bar(:baz<works>);foo.new.bar(:derp('rakudo runs method even though nothing matches sig'));
09:05 camelia rakudo b5bdbe: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/c5NcsfjbbJ:1�------> [32mperl6[33m�[31m: class foo { multi method bar(:$baz) { [0m�    expecting any of:�        argument list�        postfix�        infix stopper�        infix or meta-infix�        st…
09:05 jnthn perl6: class foo { multi method bar(:$baz) { say ">",$baz,"<"}}; foo.new.bar(:baz<works>);foo.new.bar(:derp('rakudo runs method even though nothing matches sig'));
09:05 camelia niecza v24-37-gf9c8fc2: OUTPUT«>works<␤Unhandled exception: Cannot call bar; none of these signatures match:␤    foo, Any :$baz␤  at /tmp/b1IH8bi9y2 line 1 (mainline @ 9) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4300…
09:05 camelia ..rakudo b5bdbe: OUTPUT«>works<␤>(Any)<␤»
09:06 jnthn Rakduo is correct here.
09:06 jnthn See S12, interface consistency.
09:06 moritz jnthn: I've already rejected the ticket, with a link to S12/Interface Consistency/ :-)
09:06 jnthn Oh, that's why I can't find the RT ticket :)
09:07 jnthn moritz++
09:07 jnthn My next question was going to be "where was it filed" ;)
09:07 moritz jnthn: if you read the mail, you have the ticket number, which you can just paste into the rt search box -> instant search victory :-)
09:08 jnthn Yes, I didn't see it in my email either, for some reason.
09:09 moritz now that you mention it: me neither
09:15 dalek roast: 81449cb | (Timo Paulssen)++ | S03-junctions/boolean-context.t:
09:15 dalek roast: tests for RT #117579.
09:15 dalek roast: review: https://github.com/perl6/roast/commit/81449cb43e
09:15 * timotimo spectests
09:15 moritz .u ಠ
09:15 yoleaux U+0CA0 KANNADA LETTER TTHA [Lo] (ಠ)
09:16 moritz .u ಠ
09:16 yoleaux U+0CA0 KANNADA LETTER TTHA [Lo] (ಠ)
09:20 GlitchMr > PRE ;
09:20 GlitchMr Segmentation fault
09:20 GlitchMr That was strange
09:20 GlitchMr No idea what causes it, but I could upload entire REPL session I had
09:20 GlitchMr https://gist.github.com/GlitchMr/5382064
09:21 GlitchMr Sorry for large session, but I don't know why it happens.
09:22 timotimo pull requested.
09:23 GlitchMr It couldn't reproduce it
09:23 GlitchMr Strange...
09:26 moritz timotimo: spectesting your pull request
09:26 timotimo thank you :)
09:28 timotimo moritz: how much do you think will the optimization to turn WVal into Want in the optimizer give in performance? surely it could give a bit of a boost in long arithmetic expressions?
09:28 moritz timotimo: it'll only help where native types are used in tight loops
09:29 moritz and there are operators with native types to dispatch to
09:29 jnthn Need to be careful about optimizations with natives also.
09:30 jnthn Two things that fit into an int being multiplied together or added, for example, can easily give something in big int range that must be an Int.
09:30 jnthn So with literals we have to be careful. We used to have bugs where 123456 * 123456 or so would come out negative 'cus it used int * int
09:31 masak good forenoon, #perl6
09:31 moritz good UGT morning, masak
09:31 jnthn The current state is that there should be at least one non-literal thing that is known to be an int, iirc. I'm pretty sure there's a comment somewhere in Optimizer.pm that explains it... :)
09:31 jnthn good omg-you-got-up-before-afternoon, masak
09:31 moritz *g*
09:32 diakopter jnthn: are you saying that two variables declared as ints don't do int32/64 arithmetic?
09:32 moritz jnthn: I don't think that problem is immediately relevant to the thing timotimo and I are trying to do
09:32 woolfy joined #perl6
09:33 jnthn diakopter: Two *variables* will
09:33 moritz hm, or maybe it is
09:33 jnthn diakopter: The rule is about literals.
09:33 diakopter oh.
09:33 jnthn moritz: It was a comment from reading backlog. :)
09:33 moritz jnthn: yes, I figured :-)
09:33 diakopter so.. just put your literal into a variable.... :P
09:33 * diakopter ducks
09:33 timotimo jnthn: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Optimizer.pm#L341 - i think i'm looking at the right spot here?
09:34 jnthn timotimo: The bit I was talking about is at https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Optimizer.pm#L537
09:35 moritz timotimo: that was the part I was talking about, yes
09:35 timotimo i'm not exactly sure how those interplay
09:35 moritz probably not much
09:36 timotimo right. but i will still have to check that the Int would actually fit into an int, yes? is there something in nqp already that does that?
09:36 moritz nqp::isbig iirc
09:36 moritz nqp::isbig_I
09:36 jnthn I thought for literals we were already emitting a QAST::Want when the thing isn't big.
09:36 timotimo maybe for literals, but not for compile-time-evaluated things
09:36 moritz jnthn: yes, but not for the result of constant folding stuff
09:37 jnthn Oh!
09:37 jnthn OK, I see :)
09:37 timotimo we're talking about things like -5 and friends
09:37 jnthn Ah, which we ain't folding today?
09:37 moritz we are
09:37 timotimo it's folding all right
09:37 timotimo but not into a Want
09:37 moritz but the result is just a QAST::WVal
09:37 jnthn OK.
09:37 moritz not a QAST::Want(WVal, 'Ii', IVal)
09:37 jnthn *nod*
09:38 timotimo do you think it's worth investing in, jnthn?
09:38 jnthn Well, need to be careful, - can apply to many things.
09:38 jnthn So need to check the type of the exact value
09:38 jnthn timotimo: Yes, almost certainly
09:38 berekuk joined #perl6
09:38 timotimo yes, i was going to see if the return value is an Int and if it's not nqp::isbig_I, i'll create an int from it using nqp::unbox_I
09:38 jnthn timotimo: Just like all things optimizer, tread carefully; it's easy to get wronger as well as faster :)
09:39 timotimo unbox_i actually
09:39 jnthn timotimo: unbox_i, but yes.
09:39 jnthn timotimo: You could also check if it's a Num, fwiw.
09:39 jnthn Those can become a Want with an NVal too
09:39 timotimo sure, but i wanted to start small ;)
09:39 jnthn .oO( a small task...involving nqp::isbig :P )
09:40 jnthn Have any of the folks here going to YAPC::EU made travel plans, ooc?
09:40 timotimo nqp::isa($return_val, Int), will that work? or will i have to use $!SETTING.symbol("Int")<value>?
09:40 jnthn nqp::istype
09:40 jnthn Oh, you'll need to look up Int
09:41 * jnthn probably won't be able to stay and hack *after* YAPC::EU.
09:42 jnthn Before, however, is do-able. I'll certainly be at the Perl 6 hackathon, especially as it has my name of it :)
09:42 lizmat how much before?
09:42 lizmat fwiw,. we still haven't decided to either drive or fly
09:42 * moritz isn't sure he'll make it to YAPC::EU at all
09:43 moritz my wife just got a new aortic valve, and I won't be able to travel before her complete recovery
09:43 moritz though if I'll make it, my employer will pay for it :-)
09:43 jnthn lizmat: Well, the hackathon is the Sunday before YAPC::EU. If there's a reason to, I can be about on the Saturday also, for example.
09:44 timotimo moritz: she's a cyborg! :D
09:44 jnthn moritz: Best wishes for the recovery.
09:44 lizmat best wishes, moritz!
09:44 moritz thanks jnthn, lizmat
09:45 timotimo best wishes from me, too :)
09:46 masak fourthed.
09:46 masak best wishes.
09:46 moritz timotimo: she is, but not because of the valve (that's "tissue engineered" from a human aortic valve, which means that the cells were removed to reduce the risk of rejection)
09:46 moritz thanks timotimo, masak
09:47 timotimo oooh, that's even cooler
09:48 timotimo (but not cool in the way that it had to be done ... er)
09:48 moritz yes, it's the best option that exists today, and still experimental, and thus only done in one hospital in .de
09:48 moritz (afaict)
09:49 timotimo wow. I hope it'll turn out good! both for your wife and everyone in the future to need a similar procedure
09:50 moritz her blood pressure, which was notoriously low, is quite normal, which is a good sign
09:57 masak \o/
09:57 timotimo hm. i think the speed benefit of the Int -> Want optimization would be visible by comparing code that uses negative numbers and code that uses positive numbers, does that sound accurate?
09:59 FROGGS[mobile] joined #perl6
10:01 moritz masak: how's the t2 review coming along? :-)
10:01 moritz timotimo: well, you could just compare before and after
10:01 timotimo i surely could.
10:01 timotimo but i'll have to wait until i come up with a working solution ;)
10:02 timotimo at the moment it seems my code is being called in a position where the block chain doesn't reach the SETTING or something.
10:02 timotimo which makes sense, given that it occurs during compiling the setting :D
10:04 diakopter masak: watch
10:04 diakopter rn: "hi I'm Camelia!".say
10:04 camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: OUTPUT«hi I'm Camelia!␤»
10:05 timotimo if you're currently working on the evalbot, could you perhaps teach it to mention the nickname of the person who asked for the eval?
10:05 timotimo (maybe only if two requests by different people have been sent in close proximity?)
10:05 cognominal joined #perl6
10:09 timotimo huh. it doesn't seem like prefix:<-> is even inlined normally?!
10:10 bakedb joined #perl6
10:11 timotimo oh, it won't be if i set --target=ast
10:13 dalek nqp/jvm-support: 4c7ee83 | jnthn++ | / (19 files):
10:13 dalek nqp/jvm-support: Move stage0 into src/parrot/vm/.
10:13 dalek nqp/jvm-support:
10:13 dalek nqp/jvm-support: The stage0 is inherently platform specific, since it's generated code.
10:13 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/4c7ee83e49
10:13 dalek nqp/jvm-support: 9f25f51 | jnthn++ | t (16 files):
10:13 dalek nqp/jvm-support: Segregate Parrot-specific tests.
10:13 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/9f25f514ff
10:14 berekuk joined #perl6
10:19 domidumont joined #perl6
10:20 timotimo is SETTING the right place to look for Int?
10:24 nwc10 breaks on my machine:
10:24 nwc10 Stage start      :   0.000get_pmc_keyed() not implemented in class 'Sub'
10:24 diakopter nwc10: I think I saw that in a bug report a couple weeks ago
10:24 jnthn nwc10: What breaks, exactly?
10:25 jnthn nwc10: Rakudo with...?
10:26 nwc10 Rakudo with nqp at origin/master
10:26 jnthn ah
10:26 nwc10 nqp at d46b46539aa380b933e6a38c4813ec9d6a7b3f05
10:27 jnthn Will look in a bit, but not a big deal since NQP_REVISION points to a working thing.
10:27 nwc10 rakudo at b5bdbe459f2f3a2570979340faf6fa71d18e711a
10:27 nwc10 ah OK
10:27 nwc10 I'll test at NQP_REVISION now
10:28 timotimo forgot to call .new on QAST::Want ... m(
10:29 berekuk joined #perl6
10:36 SamuraiJack joined #perl6
10:38 timotimo http://paste.ee/p/SfdoH - what could i have done wrong? this confuses me.
10:39 jnthn timotimo: Probably got something that's not a QAST node inside a QAST node.
10:39 jnthn Did you forget to put an integer inside a QAST::IVal for example?
10:39 timotimo oh, i forgot to create an IVal around the integer i created!
10:44 SamuraiJack joined #perl6
10:48 timotimo great. now it works! do i give IVal a :named or something so that the right number shows up in the qast dump? right now it says "IVal(0)  -  -5"
10:50 timotimo moritz: does the spectest of my branch really take hours on your machine? poor you! ;)
10:50 jnthn Sounds like just a dumping issue
10:50 dalek nqp-jvm-prep: f073947 | jnthn++ | / (3 files):
10:50 dalek nqp-jvm-prep: Package NQP runtime into a JAR.
10:50 dalek nqp-jvm-prep:
10:50 dalek nqp-jvm-prep: Preferable to having dozens of .class files to load.
10:50 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/f073947dbf
10:51 timotimo i think i used the IVal constructor wrong
10:51 jnthn QAST::IVal.new( :value(5) )
10:51 timotimo yes, i passed 5 as the first positional
10:51 SamuraiJack_ joined #perl6
10:51 timotimo it's compiling the fixed version now
10:54 timotimo great. it even bails out correctly if the int is too big
10:58 FROGGS[mobile] timotimo: what are you up to?
10:59 timotimo FROGGS[mobile]: when an inlined thing (like -5) returns an Int, the optimizer will now create a Want for it with an unboxed int in it as well as the WVal Int
10:59 timotimo next thing i'll do is the same thing with Num, and then with Str.
11:03 FROGGS[mobile] and that is good?
11:04 timotimo it will hopefully cause more operations in tight loops and such to run with native values instead of boxed values
11:05 tadzik the release is to be in 4 days, do we have a volunteer?
11:06 FROGGS[mobile] timotimo: so ideally this would only run for loops?
11:07 timotimo no, it will always run. there's no big overhead
11:07 timotimo (at least that's what i guess!)
11:07 snuffles joined #perl6
11:08 timotimo it's just a little thing, i don't see where it makes a big difference in performance yet, but moritz suggested it and it seemed simple enough to do
11:08 FROGGS[mobile] cool
11:09 jnthn tadzik: not yet, afaik
11:09 * tadzik looks around
11:10 timotimo if nobody speaks up, i may try
11:11 FROGGS[mobile] there is somebody
11:11 FROGGS[mobile] was it gtodd?
11:11 FROGGS[mobile] the ir-clogs will tell
11:12 timotimo unfortunately my changes seem to lead to spectest failures
11:17 timotimo heh, what a silly mistake
11:25 FROGGS timotimo: do you run benchmarks?
11:25 timotimo spectests first ;)
11:25 timotimo i didn't come up with benchmarks for this yet
11:25 FROGGS would be cool if [Coke]++ 's toolchain would track performance over time too
11:26 timotimo it would :)
11:27 FROGGS hmmm, but benchmarking the changing test files is not the best idea...
11:27 FROGGS there was a p5/p6 benchmarking repo somewhere...
11:28 nwc10 jnthn: Rakudo head passes tests with its NQP_REVISION
11:28 nwc10 (this network is low)
11:28 dalek rakudo/nom: 452a072 | jnthn++ | / (3 files):
11:28 dalek rakudo/nom: Updates to run on latest NQP.
11:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/452a072a3d
11:29 jnthn ...what timing :)
11:29 FROGGS jnthn: do you know if this is intended to work?    require "plan-script-that-declares-sub-x.pl"; x(42)
11:29 FROGGS jnthn: since x() is looked up before runtime...
11:29 jnthn FROGGS: That won't (shouldn't) work.
11:29 FROGGS good
11:30 nwc10 OK, I'll test that now... :-)
11:30 jnthn You'll get a CHECK time error saying x aint' declared.
11:30 moritz but  require $path <&x>; x()  should work
11:30 FROGGS right, just wanted to know if it is by spec
11:30 * jnthn realized that NQP JVM has been hobbling along without a multi-dispatch cache all this time...
11:30 FROGGS because you can do that in p5
11:30 dalek rakudo/nom: 5122e2e | (Timo Paulssen)++ | src/Perl6/Optimizer.pm:
11:30 dalek rakudo/nom: no longer compile-time-autothread operators that take Mu args.
11:30 dalek rakudo/nom:
11:30 dalek rakudo/nom: This caused problems with the ne and !== operators, which handle
11:30 dalek rakudo/nom: junctions manually, but also with any user-defined operator that
11:30 dalek rakudo/nom: takes a Mu argument.
11:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5122e2ead9
11:31 moritz timotimo: sorry, I thought I had pushed earlier
11:31 timotimo no problem :)
11:31 nwc10 jnthn: will adding that make some things faster, or many things faster?
11:32 moritz multi dispatches, I think :-)
11:33 timotimo http://paste.ee/p/RnYLj  # ...the hell?
11:34 moritz timotimo: the BUILD call looks all wrong to me
11:34 jnthn nwc10: It'll make multi-dispatches faster
11:34 moritz timotimo: BUILD is only called with named args, normally
11:34 jnthn nwc10: But since QAST compilation is LOADS of multi-dispatches (one per QAST node) it'll speed those up.
11:34 moritz (by bless, that is)
11:34 timotimo moritz: how come it only fails when my optimization is turned on and otherwise never noticed?!
11:35 timotimo oh, there's a custom BUILD there, too
11:35 timotimo it takes positional args
11:35 moritz huh.
11:36 moritz timotimo: what code triggers it?
11:36 timotimo oh, i forgot to paste it
11:36 timotimo the code is just my %h = a => 1, b => -2, c => 5; or something similar
11:37 timotimo is it because i fail to move the SpecialArg thing outwards into the Want?
11:37 timotimo (i don't even know what that is)
11:37 moritz what about just  my $ = (a => $b)  ?
11:37 moritz does that also fail?
11:38 arnsholt jnthn: Right. So NQP/JVM without cache was faster than Parrot with cache? That's promising =)
11:38 timotimo moritz: no, that works (when i set my $b = -5 for example)
11:38 moritz timotimo: seems that SpecialArg is related to named arguments
11:38 moritz timotimo: you have to do something like
11:39 moritz if $original_op.named { $new_op.named($original_op.named) }  or something along the lines
11:39 arnsholt Unrelated, I sort of wish mrhdias would drop by here for help
11:39 timotimo ah, that's what that is for!
11:39 arnsholt Some of his bug reports aren't really bug reports
11:39 moritz because we represent named arguments not by pairs, but by a .named or .name or so property in the QAST nodes that represent the arguments
11:40 * moritz afk
11:40 timotimo do i need to remove the $wval.named if i create a Want from it?
11:45 drbean joined #perl6
11:50 dalek nqp-jvm-prep: 1dbb570 | jnthn++ | src/org/perl6/nqp/ (6 files):
11:50 dalek nqp-jvm-prep: Implement multi-dispatch cache.
11:50 dalek nqp-jvm-prep:
11:50 dalek nqp-jvm-prep: While selftest is dominated by startup time, this does shave around 8%
11:50 dalek nqp-jvm-prep: off the time to run it.
11:50 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/1dbb570886
11:50 dalek nqp-jvm-prep: 7a47938 | jnthn++ | .gitignore:
11:50 dalek nqp-jvm-prep: Update .gitignore.
11:50 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/7a479384b7
11:51 nwc10 jnthn: Rakudo works on my machine again
11:51 jnthn \o/
11:51 nwc10 I see the that the gooalposts just moved again
11:52 jnthn arnsholt: Yeah, but startup time is pretty high.
11:54 arnsholt Yeah, that's always gonna be a problem on the JVM, I guess
11:56 arnsholt jnthn: Did you see Zavolaj #25, BTW?
11:56 arnsholt (Which isn't really a bug)
11:57 jnthn arnsholt: Yeah. Without looking further, I don't know exactly where the bottleneck lies
11:58 arnsholt I suspect it's just expecting an iteration over all the pixels in an image, using Perl 6, to be fast
11:59 timotimo :(
12:00 jnthn arnsholt: Which, with Rakudo at present, it won't be
12:00 arnsholt Exactly
12:00 arnsholt I'm gonna suggest that he uses perl6 --profile to see where the bottleneck is
12:01 timotimo i wonder if he would get better performance with native ints?
12:01 timotimo if the process takes 14 minutes, every bit of improvement in the tight loop would be a nice improvement i bet!
12:02 arnsholt Yeah, that's not a bad idea actually
12:03 * timotimo doesn't have the necessary tuit right now
12:03 PacoAir joined #perl6
12:10 timotimo i'm getting "get_boxed_ref could not unbox for the given representation" and i don't really know what's going wrong
12:12 woosley joined #perl6
12:14 jnthn Sounds like some kind of Int mess-up
12:14 jnthn Or potentially a NativeCall thing since I think it also uses that
12:14 timotimo might not be int; i added NVal and SVal, too
12:15 jnthn Yeah, but only the bigint ops use get_boxed_ref to unpack the libtommath big integer out of the P6opaque Int.
12:15 timotimo oh, ok
12:15 jnthn You may have got an Int where an Int ain't meant to be or something
12:15 FROGGS jnthn: there is still seomthing missing when doing require PATH: GLOBALish:: tells me there is a key 'InnerModule', but I cant access GLOBALish::InnerModule:: and not ::('InnerModule')
12:15 timotimo this happens in the minmax.rakudo test
12:16 jnthn FROGGS: It should be GLOBAL::InnerModule
12:16 timotimo indeed, it's int that is at fault.
12:16 timotimo strange!
12:17 jnthn Maybe int/Int confusion?
12:18 FROGGS jnthn: okay, that tells me these is an EXPORT in it... but I can't access a sub declared in that module... I'll paste something in a bit
12:19 jnthn FROGGS: Did you make the sub "our"?
12:19 jnthn FROGGS: Or "is export" it?
12:19 timotimo oh. should i put an optimization level limit on the WVal -> Want thing?
12:19 crab2313 joined #perl6
12:21 tgt joined #perl6
12:22 FROGGS jnthn: is exportr
12:22 FROGGS -r
12:22 timotimo jnthn: say 1 min 2; will cause this problem to crop up; i'm out of ideas now. want to see the current code?
12:23 jnthn FROGGS: Then it will be in EXPORT DEFAULT
12:23 jnthn (Inside of your module)
12:24 timotimo https://github.com/timo/rakudo/compare/wval_to_want
12:25 timotimo i'll be afk for ~30 minutes
12:25 dalek nqp/jvm-support: 811d92c | jnthn++ | / (3 files):
12:25 dalek nqp/jvm-support: We'll need a Makefile per backend.
12:25 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/811d92cac8
12:25 dalek nqp/jvm-support: 7c34883 | jnthn++ | / (2 files):
12:25 dalek nqp/jvm-support: Stub ConfigureJVM.pl and Makefile-JVM.in.
12:25 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/7c34883bdb
12:26 colomon moritz: ping?
12:32 jnthn timotimo: I wonder if isbig_I doesn't decontainerize...to check, try !nqp::isbig_I(nqp::decont($ret_value))
12:34 arnsholt bigint_I doesn't decontainerize. It calls get_bigint directly on its operand
12:35 jnthn ah, then that may be it.
12:35 gtodd what sorts of machine are most people using while developing rakudo  / parrot / perl6  ... typical wintel (mabye running linux) and/or mac laptops   or do folks make heavy use of cloud instances virtualized hosts of all sorts ?
12:36 arnsholt I used a MBP for a while, but now I'm mostly using a Dell laptop running linux
12:37 arnsholt I do the occasional bit of work on my work desktop machine as well
12:37 gtodd ok ... I run it on a slightly beefier than typical (4 core 32g ram) workstation ... and rakudo/parrot seem to have predictable or consistent areas of slowness but are certainly usable
12:38 jaldhar joined #perl6
12:38 gtodd heheh like p6doc is 1000% slower than perldoc :-)
12:39 PacoAir joined #perl6
12:40 FROGGS jnthn: say GLOBAL::InnerModule::EXPORT::DEFAULT:: gives me ("\&foo" => sub foo() { ... }, "\&bar" => sub bar() { ... }).hash
12:40 FROGGS jnthn: but say GLOBAL::InnerModule::EXPORT::DEFAULT::bar gives me: Could not find symbol 'bar'
12:42 BenGoldberg joined #perl6
12:44 FROGGS is it possible that the symbols arn't imported because it tries to import from the modulename which is a path in this case?
12:46 FROGGS will look now what Perl6::ModuleLoader::merge_globals does
12:48 timotimo jnthn, arnsholt: thanks. compiling and spectesting one more time
12:48 jnthn FROGGS: Does GLOBAL::InnerModule::EXPORT::DEFAULT::<&bar> work?
12:54 FROGGS jnthn: that works...
12:54 FROGGS not very intuitive though
12:56 jnthn FROGGS: Well, it shows the problem is not the global merge though, as the symbol is there
12:56 jaldhar joined #perl6
12:56 timotimo hooray! all spectests succeed now! :)
12:56 timotimo i'll fix up the branch and pullrequest it :)
13:04 FROGGS soo, atm ::('InnerModule') gives me the InnerModule, while ::('InnerModule')::('&bar') doesn't give me &bar...
13:06 FROGGS I dont really understand how   require Fancy::Utilities; Fancy::Utilities::lolgreet('me')   is working though
13:07 FROGGS I'd expect to see some declaration of that modulename while it gets parsed... but there is nothing like that
13:12 nwc10 jnthn: make nqptest fails on my machine
13:12 nwc10 a lot of Method 'compunit_mainline' not found for invocant of class 'HLL::Backend::JVM'
13:13 nwc10 test and selftest pass
13:15 timotimo pull request'd
13:15 nwc10 apparently we have to go the beach, so afk
13:16 rindolf joined #perl6
13:16 rindolf Hi all.
13:16 timotimo hey rindolf
13:17 rindolf What copyright notice should I put at the top of every source file to indicate that it is licensed under Artistic 2.0.
13:17 rindolf timotimo: hi, what's up?
13:18 FROGGS rindolf: you might want to google for proper patterns
13:18 rindolf FROGGS: couldn't find those off hand.
13:19 rindolf FROGGS: and there's also DuckDuckGo.
13:19 rindolf The Rakudo and Parrot source codes do not appear to contain them - quite sloppy.
13:19 timotimo rindolf: nothing much, I'm screwing around with the optimizer again after i made a pretty grave mistake last time
13:20 rindolf timotimo: ah, OK, nice.
13:21 timotimo can't tell if there'll be any noticable performance improvement this time around
13:22 timotimo https://github.com/rakudo/rakudo/pull/125 - ready to spectest&merge
13:23 roll joined #perl6
13:30 rindolf Found something here: http://search.cpan.org/~ajkald/Config-TOML-0.01/lib/Config/TOML.pm
13:39 timotimo moritz or jnthn, can you intuit what kind of code would get faster by the WVal -> Want transformation?
13:40 timotimo writing an arithmetic expression seems to speed up with my changes applied, which is nice (1.35 to 1.12 seconds)
13:42 timotimo uh
13:42 timotimo r: my Num $num = 1.0;
13:42 camelia rakudo 5122e2: OUTPUT«Type check failed in assignment to '$num'; expected 'Num' but got 'Rat'␤  in block  at /tmp/T65qBjjDE5:1␤␤»
13:42 jnthn 1.0 is a Rat in Perl 6
13:42 jnthn 1e0
13:43 timotimo oke
13:43 timotimo wow. this code runs *faster* with Num than with num.
13:43 timotimo like 50% longer run time
13:44 timotimo i did not expect that
13:46 dalek nqp-jvm-prep: d26aaf7 | jnthn++ | / (3 files):
13:46 dalek nqp-jvm-prep: Use class path as default module search path.
13:46 dalek nqp-jvm-prep:
13:46 dalek nqp-jvm-prep: Will (hopefully) be useful during bootstrapping.
13:46 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/d26aaf7387
13:46 dalek nqp-jvm-prep: 9127bcd | jnthn++ | src/org/perl6/nqp/runtime/LibraryLoader.java:
13:46 dalek nqp-jvm-prep: ModuleLoader special handling.
13:46 dalek nqp-jvm-prep:
13:46 dalek nqp-jvm-prep: Added as part of the work towards getting NQP JVM to build itself in
13:46 dalek nqp-jvm-prep: order to support bootstrapping.
13:46 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/9127bcd47f
13:56 timotimo hm, maybe it needs to vivify a box every time the value gets changed or something? i have no idea.
14:01 gtodd why does:  say (1/4).perl give me 0.25
14:02 gtodd shouldn't it give me [1, 4]
14:02 gtodd hmm maybe there should be a perl6-questions channel  :-)
14:04 timotimo why should it give [1, 4]?
14:04 colomon gtodd: 0.25 is the perl expression for the rational 1/4
14:04 rindolf joined #perl6
14:04 colomon it's exact
14:05 * timotimo takes his bike out into the sun :)
14:05 colomon rn: say (1/2, 1/3, 1/4, 1/5, 1/6).perl
14:05 camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«(0.5, <1/3>, 0.25, 0.2, <1/6>)␤»
14:06 colomon rn: say (1/2, 1/3, 1/4, 1/5, 1/6)>>.nude
14:06 camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«1 2 1 3 1 4 1 5 1 6␤»
14:06 colomon rn: say (1/2, 1/3, 1/4, 1/5, 1/6)>>.nude.perl
14:06 camelia rakudo 5122e2: OUTPUT«((1, 2), (1, 3), (1, 4), (1, 5), (1, 6))␤»
14:06 camelia ..niecza v24-37-gf9c8fc2: OUTPUT«[[1, 2], [1, 3], [1, 4], [1, 5], [1, 6]].list␤»
14:07 * gtodd should not be distracting developers :-)  but I am gradually answering some FAQs that are being recorded!
14:08 gtodd colomon: OK I forgot about .nude ... or repressed it because of its connotations
14:11 jnthn When did you last see a clothed Rat?
14:11 gtodd hah ... argh just found this where http://perl6advent.wordpress.com/2009/12/14/day-14-going-to-the-rats/ it says"
14:11 gtodd say (3/7).nude.perl
14:11 gtodd [3, 7]
14:13 gtodd I guess I don't need [1,4] I can find numbers I want using other methods like .denominator etc.
14:13 gtodd cool
14:16 gtodd and well ">>" is neat too
14:16 lampman joined #perl6
14:16 gtodd ... there seems to be so many ways where future perls are going to be able to figure out how to give really good error messages
14:18 gtodd in a -w strict or debugger or console  and point more exactly to where the error is
14:24 masak I have a feeling people in here might enjoy http://dev.stephendiehl.com/hask/
14:33 roll left #perl6
14:42 dmol1 joined #perl6
14:55 Celelibi joined #perl6
15:01 dalek nqp/jvm-support: 2d0a551 | jnthn++ | / (83 files):
15:01 dalek nqp/jvm-support: Add JVM runtime support; get Makefile to build it.
15:01 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/2d0a551cad
15:01 dalek nqp/jvm-support: 604ef1d | jnthn++ | tools/build/ (2 files):
15:01 dalek nqp/jvm-support: Add a conditional compilation mechanism.
15:01 dalek nqp/jvm-support:
15:01 dalek nqp/jvm-support: gen-cat.pl now takes an argument for the current backend, and handles
15:01 dalek nqp/jvm-support: directives in the files it is processing related to VM-specific code.
15:01 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/604ef1df33
15:01 dalek nqp/jvm-support: 41237e1 | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
15:01 dalek nqp/jvm-support: Add an nqp::scgetdesc op.
15:01 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/41237e1074
15:01 dalek nqp-jvm-prep: 365b131 | jnthn++ | / (2 files):
15:02 dalek nqp-jvm-prep: Fix deserialize_code to work on NQP JVM.
15:06 masak jnthn: wow.
15:06 masak 2d0a55: "Showing 83 changed files with 11,979 additions and 2 deletions."
15:07 masak what was that about "you know you're correctly factored when commits are almost exclusively additions and no deletions"? :P
15:07 jnthn :D
15:09 cognominal joined #perl6
15:12 dalek nqp/jvm-support: 13c5f8d | jnthn++ | src/vm/jvm/stage0/ (10 files):
15:12 dalek nqp/jvm-support: Add current nqp-jvm-prep selfhost as stage0.
15:12 dalek nqp/jvm-support:
15:12 dalek nqp/jvm-support: May have to update it if issues crop up, but hopefully not too many
15:12 dalek nqp/jvm-support: shall.
15:12 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/13c5f8dac5
15:12 dalek nqp/jvm-support: c9065ee | jnthn++ | src/how/NQPClassHOW.nqp:
15:12 dalek nqp/jvm-support: Mark out Parrot-specific bits in MOP.
15:12 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/c9065ee68a
15:12 dalek nqp/jvm-support: aadcfd0 | jnthn++ | src/vm/jvm/ModuleLoader.nqp:
15:12 dalek nqp/jvm-support: Add JVM module loader.
15:12 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/aadcfd04f8
15:12 dalek nqp/jvm-support: d68776e | jnthn++ | / (2 files):
15:12 dalek nqp/jvm-support: Rules for first bits of the stage1 build.
15:13 colomon \o/
15:21 cognominal joined #perl6
15:42 lizmat QA Hackathon wrapping up, mostly afk until Tuesday
15:43 woolfy left #perl6
15:48 domidumont joined #perl6
15:49 dalek roast: c464098 | (Tobias Leich)++ | S11-modules/require.t:
15:49 dalek roast: test for "require PATH"
15:49 dalek roast: review: https://github.com/perl6/roast/commit/c4640986b8
15:55 FROGGS jnthn: we have symlink() and link() now, should I add these as methods to IO ?
15:55 FROGGS (writing the tests currently)
15:58 FROGGS I'll add these methods unless someone screams "STOPIT!"
16:15 nwc10 jnthn: nqp-jvm-prep very unappy currently, is this expeted?
16:15 nwc10 nqp --target=pir --output=QASTJASTCompiler.pir lib/QAST/JASTCompiler.nqp
16:15 nwc10 Error while compiling block : Error while compiling block  (source text: "{\n    # Responsible for handling issues around code references, building the\n    # switch statemen..."): Error while compiling block deserialization_code (source text: "{\n        # Serialize it.\n        my $sh := nqp::list_s();\n        my $serialized := nqp::seriali..."): Error while compiling op callmethod (source text: "\n            QAST::Op.new(\n                :op('bin
16:15 jnthn nwc10: yes
16:15 nwc10 OK
16:15 jnthn nwc10: At the moment the only chance it has of building is against an NQP built from the jvm-support branch
16:15 nwc10 OK.
16:15 gtodd masak:  interesting ... http://dev.stephendiehl.com/hask/  assuming that once perl6 is released similar documents start popping up, what should be done? :-)
16:17 gtodd masak:   ... an timtowtdi-fold path to satori
16:37 crab2313 joined #perl6
16:37 masak gtodd: well, a Quickcheck in Perl 6 would be fairly cool.
16:37 masak if Erlang can do it, so can we.
16:38 masak gtodd: also, I don't wish monads on Perl 6, but I'm currently investigating things like dependency DAGs and lenses, which have nice uses.
16:48 dalek roast: acf18c7 | (Tobias Leich)++ | S11-modules/require.t:
16:48 dalek roast: add links to synopsis
16:48 dalek roast: review: https://github.com/perl6/roast/commit/acf18c74b8
16:52 FROGGS std: require "foo/bar.pm" <&bar>
16:52 camelia std 86b102f: OUTPUT«[31m===[0mSORRY![31m===[0m�Bogus term at /tmp/S7yIVEg159 line 1 (EOF):�------> [32mrequire "foo/bar.pm" <&bar>[33m�[31m<EOL>[0m�Undeclared routine:�        'bar' used at line 1�Parse failed�FAILED 00:00 45m�»
16:52 FROGGS ESTDBUG
17:02 FROGGS[mobile] joined #perl6
17:02 Chillance joined #perl6
17:05 adu_ joined #perl6
17:24 BenGoldberg jnthn, Don't forget to change the README for nqp :)
17:24 yoleaux 13 Apr 2013 23:02 EST <labster> BenGoldberg: I am aware that File::Spec::Case sucks, but compared to the Perl 5 version which is always wrong on my computer, it's still an improvement.  One of the main reasons I wanted to yank it out of File::Spec is because it's little-used and broken.
17:32 tgt joined #perl6
17:35 dalek nqp-jvm-prep: 529ee92 | jnthn++ | src/org/perl6/nqp/sixmodel/SerializationWriter.java:
17:35 dalek nqp-jvm-prep: Fix growToHold() bug in serializer.
17:35 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/529ee929e3
17:35 dalek nqp-jvm-prep: b7c3945 | jnthn++ | nqp-src/ModuleLoader.pm:
17:35 dalek nqp-jvm-prep: Make module loader respect --module-path.
17:35 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/b7c39458d3
17:37 jnthn That serializer one took some finding :/
17:37 dalek nqp/jvm-support: 11c79ea | jnthn++ | src/core/NQP (2 files):
17:37 dalek nqp/jvm-support: Mark out Parrot/JVM specific bits of CORE.
17:37 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/11c79eab56
17:37 dalek nqp/jvm-support: fdaa9ea | jnthn++ | src/vm/jvm/ModuleLoader.nqp:
17:37 dalek nqp/jvm-support: Make module loader respect --module-path.
17:37 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/fdaa9ead9d
17:37 dalek nqp/jvm-support: 939c511 | jnthn++ | src/vm/jvm/stage0/ModuleLoader.class:
17:37 dalek nqp/jvm-support: Updated stage0 module loader.
17:37 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/939c511507
17:37 dalek nqp/jvm-support: 073363c | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationWriter.java:
17:37 dalek nqp/jvm-support: Fix growToHold() bug in serializer.
17:37 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/073363c25c
17:38 SamuraiJack_ joined #perl6
17:39 colomon \o/
17:40 dukeleto colomon: welcome
17:42 xenoterracide joined #perl6
17:48 eternaleye joined #perl6
17:54 dukeleto moritz: https://github.com/parrot/parrot/commit/22531690d832a91c46037813acaf1ce30507a991
17:55 dukeleto moritz: not sure how to fix that bug yet, but we have a failing test and a branch :)
17:58 dalek nqp-jvm-prep: 9ceb63a | jnthn++ | lib/QAST/JASTCompiler.nqp:
17:58 dalek nqp-jvm-prep: Make $x<does><not><exist> not explode.
17:58 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/9ceb63a79f
17:58 grondilu joined #perl6
17:59 grondilu GlitchMr: so you like minecraft as well?  Do you know about #minetest, the FOSS clone?  Would you consider translating it in perl6?
18:00 flussence .oO( do want )
18:05 berekuk joined #perl6
18:11 timotimo whaaaaat, minetest in perl6? 1 frame per day? x_X
18:12 * FROGGS .oO( if it is a good frame? )
18:13 flussence well if nothing else, it'd give people plenty of profiling data to chew on...
18:13 sqirrel joined #perl6
18:15 moritz dukeleto++
18:18 colomon moritz: do you remember working on your TestML fork?
18:32 gtodd moritz: do you think Svg::Plot should work "out of the box" or has too much changed in perl6.
18:37 LlamaRider joined #perl6
18:39 gtodd ?? oh Text::CSV::Simple is no more ... maybe changing that is all that's needed
18:53 pmurias joined #perl6
19:04 colomon gtodd: you working on fixing things?
19:06 cognominal joined #perl6
19:12 colomon gtodd: errr, actually my tests show SVG::Plot already works, no fixes needed
19:13 dalek nqp-jvm-prep: 4c3618d | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java:
19:13 dalek nqp-jvm-prep: Ensure SC is cleared when cloning P6opaque.
19:13 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/4c3618ddce
19:13 dalek nqp-jvm-prep: 31ea5f0 | jnthn++ | nqp-src/NQP.pm:
19:13 dalek nqp-jvm-prep: Add missing stringification.
19:13 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/31ea5f029e
19:14 colomon gtodd: current version of SVG::Plot does not use Test::CSV::Simple
19:15 colomon gtodd: I just had no problem installing it using pandabrew.
19:25 pmurias what sort of project will the parrot foundation accept for gsoc now that parrot is not actively developed?
19:25 yoleaux 7 Apr 2013 05:44Z <FROGGS_> pmurias: 'use v5' itself is not a problem, but after doing it, the Perl6::Grammar.statement rule is still the active one, _that_ is a problem because it means a slang cant have its own statement rule
19:26 FROGGS pmurias: well, I'd say none if there is no mentor
19:26 FROGGS but maybe there is?
19:27 pmurias FROGGS: did you solve that issue?
19:27 pmurias FROGGS: the one yoleaux reported?
19:28 FROGGS nope
19:28 FROGGS but it is currently not a show-stopper
19:32 pmurias isn't the statement rules supposed to change after 'use v5' has ended?
19:33 renormalist joined #perl6
19:34 pmurias FROGGS: ah, I understand the bug now
19:35 pmurias IMHO, the whole reblessing of cursors seems really hackish in the first place as it assumes the grammars inherit from each other
19:35 FROGGS ... which is not true for 'use COBOL'
19:36 pmurias which shouldn't be true for Perl 5 either
19:36 arnsholt pmurias: Perl 6 projects, both compiler hacking and module work should be reasonable I think
19:37 pmurias even compiling Perl 6 to JavaScript? ;)
19:37 arnsholt I can probably be convinced to mentor a NativeCall related project
19:37 arnsholt If you don't ask, you won't find out =)
19:38 FROGGS arnsholt: ahh, you're talking about gsoc
19:39 FROGGS sad there is no perl, just parrot
19:41 arnsholt Oh, hang on. I read parrot but my registered perl
19:41 arnsholt In that case I'm not sure
19:43 * lue could've sworn that TPF would be there
19:48 DreamingInCode joined #perl6
19:50 FROGGS well, still four orgs missing in the table
19:54 dalek nqp-jvm-prep: 9b6b90e | jnthn++ | lib/QAST/JASTCompiler.nqp:
19:54 dalek nqp-jvm-prep: Thou shalt not mutate the node you're compiling.
19:54 dalek nqp-jvm-prep: review: https://github.com/jnthn/nqp-jvm-prep/commit/9b6b90e20b
19:57 ingy is the ubuntu-precise rakudo worth using?
19:57 gtodd colomon: I working on trying to use things :) ...
19:58 masak ingy: how recent is it?
19:59 ingy This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0
19:59 ingy is there a debian ppm for p6?
20:00 dalek nqp/jvm-support: f4d6baa | jnthn++ | src/QRegex/Cursor.nqp:
20:00 dalek nqp/jvm-support: Conditional comp bits in Cursor.
20:00 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/f4d6baad54
20:00 dalek nqp/jvm-support: 1a01251 | jnthn++ | src/NQP/World.nqp:
20:00 dalek nqp/jvm-support: Stringification fixes in NQP World.
20:00 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/1a012519eb
20:00 dalek nqp/jvm-support: 23253fc | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java:
20:00 dalek nqp/jvm-support: Sync nqp-jvm-prep P6opaque fix.
20:00 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/23253fcaf7
20:00 jnthn ingy: That's...really old.
20:00 jnthn ingy: A lot has improved/changed etc. since then.
20:00 gtodd colomon: the spec test example for SVG::Plot still uses Test::CSV::Simple  so I wanted to make that example work without it
20:01 ingy is there a debian ppm for p6? :)
20:02 gtodd colomon: trying different apps and modules that might allow p6doc web app to be 6-ified
20:02 ingy nm, I'll just grab a star
20:03 dalek nqp/jvm-support: bd15ebf | jnthn++ | src/vm/jvm/stage0/ (10 files):
20:03 dalek nqp/jvm-support: Update JVM stage0 from latest nqp-jvm-prep.
20:03 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/bd15ebf269
20:03 dalek nqp/jvm-support: 95903d5 | jnthn++ | tools/build/Makefile-JVM.in:
20:03 dalek nqp/jvm-support: Build stage 1 setting, QASTNodes, QRegex.
20:03 dalek nqp/jvm-support: review: https://github.com/perl6/nqp/commit/95903d52b2
20:03 gtodd colomon: my ulterior motive is simply to learn more about perl6  :)
20:05 * lue kinda hopes jnthn will blog when NQP conversion is complete.
20:07 masak I'm pretty sure ++jnthn won't neglect to blog about that milestone ;)
20:08 jnthn Yeah, I'll blog when I'm through with this bit :)
20:09 timotimo is that still today?
20:09 * moritz spectests timotimo++'s latest pull request
20:10 moritz gtodd: re SVG::Plot, I have no idea if too much list-y stuff has changed or not
20:10 moritz last time I tried, it mostly worked
20:11 masak jnthn: just in case someone hasn't told you in the last half hour: you rock. :)
20:11 jnthn :P
20:11 moritz though it's a bit tricky to get the input arrays-of-arrays right
20:12 jnthn No, I won't get through this stuff today. Getting the self-hosted NQP on JVM to spit out another self-hosted NQP on JVM is proving a little work :)
20:14 gtodd r: 1/3.Num
20:14 lue .oO(Luckily Java does a good job of keeping you up throughout the night, or this'd take twice as long)
20:14 camelia rakudo 5122e2:  ( no output )
20:15 timotimo okay, then i can go to bed :)
20:15 tadzik jnthn: you and your work are awesome. Keep it up!
20:15 gtodd r: 1/3.Num.say
20:15 camelia rakudo 5122e2: OUTPUT«3␤»
20:15 FROGGS r: (1/3).Num.say
20:16 camelia rakudo 5122e2: OUTPUT«0.333333333333333␤»
20:18 gtodd so .... perlito ....
20:25 timotimo what about it?
20:26 gtodd moritz: just fiddling with the example https://github.com/moritz/svg-plot/blob/master/examples/parse-spectest-progress.pl to change out the CSV::Simple
20:27 timotimo if anyone finds out, i'd love to know why code using Num is faster than code using num.
20:27 gtodd timotimo: in the channel there's m: are: n:  for evaling ... but I guess perlito is too much of a subset ?
20:28 geekosaur is num repeatedly unboxing and reboxing or something?
20:28 jnthn timotimo: The typical answer is because if you pass a num somewhere that needs an object and is untyped, then it has to box it to a Num. Do this a lot and you'll be reboxing it all the time.
20:28 geekosaur or more accurately the reverse
20:28 geekosaur box->op->unbox->box->op->unbox...
20:28 timotimo oh, well that's an answer.
20:29 timotimo could that be helped by adding more multi candidates for basic arithmetic for unboxed nums and friends?
20:30 geekosaur likely. profiling would tell you where they're most needed
20:30 timotimo it really didn't :)
20:31 cognominal jnthn++
20:31 timotimo okay, bedtimey times :)
20:32 gtodd timotimo: I sometimes try examples I see pasted in here but they rarely work in perlito
20:36 colomon r: say 1..10
20:36 camelia rakudo 5122e2: OUTPUT«1..10␤»
20:39 colomon jnthn: any feel for how hard it would be to make \N ** {0..$text-width} work in Rakudo?
20:40 masak colomon: might want to workaround that with an assertion for now.
20:40 masak hm, but you probably already know that ;)
20:41 jnthn colomon: Needs regex engine hacking.
20:41 colomon masak: I've never seen a workaround that actually worked for that.
20:41 colomon masak: so feel free to suggest.
20:42 DreamingInCode joined #perl6
20:42 colomon masak: (Or possibly the problem I had was the workarounds wouldn't work in Niecza?)
20:43 DreamingInCode joined #perl6
20:43 DreamingInCode joined #perl6
20:44 masak rn: for "aa", "aaaa" { if /^ (a*) <?{ $0.chars ~~ 0..3 }> $/ { say "$_ matches" } else { say "$_ does not match" } }
20:44 camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«aa matches␤aaaa does not match␤»
20:44 masak colomon: voila.
20:44 cognominal arf, java on mac seems to be 1.6.0_43
20:45 colomon rn: my $text-width = 6; say "This is a test" ~~ / (\N ** {0..$text-width}) ( \s | $ ) /;
20:45 camelia niecza v24-37-gf9c8fc2: OUTPUT«「This 」␤ 0 => 「This」␤ 1 => 「 」␤␤»
20:45 camelia ..rakudo 5122e2: OUTPUT«[31m===[0mSORRY![31m===[0m�Quantifier quantifies nothing�at /tmp/Zyu_KLsFTj:1�------> [32mh = 6; say "This is a test" ~~ / (\N ** [33m�[31m{0..$text-width}) ( \s | $ ) /;[0m�    expecting any of:�        postfix�        infix stopper�        infix or meta-i…
20:47 colomon rn: my $text-width = 6; say "This is a test" ~~ / (\N* <?{ $0.chars ~~  0..$text-width}> ) ( \s | $ ) /;
20:47 camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method chars in type Any␤  at /tmp/tzBLLoagn_ line 1 (ANON @ 8) ␤  at /tmp/tzBLLoagn_ line 1 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2982 (Regex.ACCEPTS @ 10) ␤  at /tmp/tzBLLoagn_ line 1 (mainline …
20:47 camelia ..rakudo 5122e2: OUTPUT«No such method 'chars' for invocant of type 'Any'␤  in block  at /tmp/QhoSX_hJlo:1␤␤»
20:47 cognominal apparently I must go to oracle.com to get a newer java
20:47 colomon rn: my $text-width = 6; say "This is a test" ~~ / ((\N*) <?{ $0.chars ~~  0..$text-width}> ) ( \s | $ ) /;
20:47 camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«「This 」␤ 0 => ï½¢This」␤  0 => ï½¢This」␤ 1 => ï½¢ 」␤␤»
20:47 pr0` joined #perl6
20:47 colomon ah, maybe that will work.  hmmm.
20:48 masak ( \s | $ ) maybe better written >>
20:49 colomon masak++
20:49 colomon wait, what's that last bit?
20:50 colomon > >
20:50 colomon ?
20:50 masak >> is a right-side word boundary.
20:51 * colomon is trying to get Text-Tabs-Wrap working again
20:54 flussence I have half a mind to redo Text::Wrap from scratch...
21:08 colomon masak++'s workaround there has most of the tests running again.
21:08 * masak bows
21:09 masak I'm glad I blurted it out. :)
21:12 colomon flussence: hold on a sec and I'll send you a pull request.
21:13 flussence alrighty
21:13 pecastro_ joined #perl6
21:14 colomon flussence: done, I think.  been a while since I actually generated a pull request.  :)
21:16 flussence looks good to me
21:16 colomon flussence: I fear I don't understand Text::Wrap well enough to understand what's not working in the test failures.
21:16 flussence to be honest, I don't completely understand it either :)
21:18 flussence I think most of this algorithm was written around the limitations of terminals having weird text-wrapping rules, I tried to actually document what it was doing at one point but that never went anywhere
21:22 bruges joined #perl6
21:25 * japhb is still backlogged, but before the UTC+n crowd head to bed ...
21:25 japhb moritz, let me add my best wishes for your wife's rapid and excellent recovery
21:26 japhb FROGGS, the p5/p6 benchmarking repo you're thinking of is probably mine.
21:26 japhb I will be bringing it up to date in preparation for my related YAPC::NA talk, but at the moment it's idling on the back burner.
21:27 japhb timotimo, in https://github.com/rakudo/rakudo/commit/5122e2ead9 , lines 266-269, the else block looks redundant, since the very next thing after the else is the same thing that's inside the else.  :-)
21:28 masak japhb++
21:29 japhb jnthn, in https://github.com/jnthn/nqp-jvm-prep/commit/d26aaf7387 , why after the change do you still have the setting of $explicit at line 11 inside an 'if !nqp::isnull($explicit)' ?  I'm not sure that makes sense.
21:29 DreamingInCode left #perl6
21:29 jnthn japhb: It didn't; thinko; fixed in a later commit
21:30 japhb jnthn, ah gotcha
21:30 japhb also, in https://github.com/perl6/nqp/commit/c9065ee68a, line 176 on the new side (171 on the old), looks like an existing line with a typo: vtablee
21:31 jnthn japhb: yeah, that typo has been in there for ages...
21:31 japhb :-)
21:32 * japhb continues backlogging where he left off at 15:55 (log time).  :-)
21:37 dalek perl6-roast-data: d158c81 | coke++ | / (4 files):
21:37 dalek perl6-roast-data: today (automated commit)
21:37 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/d158c817f5
21:37 dalek perl6-roast-data: 501f0d3 | coke++ | / (4 files):
21:37 dalek perl6-roast-data: today (automated commit)
21:37 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/501f0d340c
21:44 kurahaupo joined #perl6
21:45 dalek roast: 3117f5b | coke++ | S11-modules/require.t:
21:45 dalek roast: pugs fudge
21:45 dalek roast: review: https://github.com/perl6/roast/commit/3117f5bb51
21:50 FROGGS japhb: ya, noticed that
22:01 masak 'night, #perl6
22:01 FROGGS gnight masak
22:02 FROGGS r: require 'Test' # jnthn, this should not work per spec: "When you pass a string, require always assumes the string contains a filename."
22:02 camelia rakudo 5122e2:  ( no output )
22:05 Guest92075 joined #perl6
22:15 [Coke] jnthn++
22:18 [Coke] r: require 'Crap'
22:18 camelia rakudo 5122e2: OUTPUT«Could not find Crap in any of: /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib, /home/p6eval/.perl6/2013…
22:21 tadzik . o O ( Crap.pm: die "Obviously you mean Carp... or did you?" )
22:23 cognominal has  C< :/$a  for :a($<a>) > been ever discussed ?
22:24 cognominal that would be a nice addition, I could use in Actions classes
22:26 FROGGS :a(    <-- is that some sort of smiley? ms piggy perhaps?
22:26 cognominal oops
22:26 cognominal I meant
22:27 cognominal has  C< :/$a > for C< :a($<a>) > been ever discussed ?
22:27 FROGGS what should that do?
22:27 cognominal r: say :a(1).perl
22:27 camelia rakudo 5122e2: OUTPUT«"a" => 1␤»
22:28 dmol1 joined #perl6
22:29 FROGGS the 'for' is not a statement_mod in this case?
22:29 cognominal I meant C< :/$a > as a short for C< :a($<a>) > which is itself a short for :a($/<a>)
22:29 wooden joined #perl6
22:29 wooden joined #perl6
22:30 cognominal Nope the code is inside the C<  > "formatting" instructions. Consider only my last statement.
22:32 FROGGS I'd prefer :$<a> over :/$a
22:33 FROGGS :/$a is not that intuitive somehow
22:34 cognominal r: :$<a>
22:34 camelia rakudo 5122e2: OUTPUT«[31m===[0mSORRY![31m===[0m�Bogus statement�at /tmp/e9SwWCzc9e:1�------> [32m:$[33m�[31m<a>[0m�    expecting any of:�        colon pair�»
22:36 cognominal FROGGS: I agree  :$<a> is more consistent
22:36 Guest92075 left #perl6
22:38 tgt joined #perl6
22:47 FROGGS cognominal: btw, I'd like it to have
22:47 cognominal ??
22:48 cognominal FROGGS: did you meant  you'd like the feature, with your better syntax?
22:49 FROGGS yes
22:49 FROGGS because it feels like it has to be there
22:50 jnthn enough bug hunt for tonight...
22:50 jnthn 'night o/
22:50 cognominal jnthn++
22:51 system joined #perl6
22:51 FROGGS gnight jnthn
22:57 araujo joined #perl6
23:08 diakopter rn: say 3
23:08 camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«3␤»
23:18 cognominal good night
23:28 berekuk joined #perl6

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

Perl 6 | Reference Documentation | Rakudo