»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by diakopter on 6 April 2013.
00:06 kivutar left 00:19 frdmn joined 00:39 BenGoldberg joined
dalek osystem: cb9d862 | (Brent Laabs)++ | META.list:
+File::Spec::Case (case-tolerant split from File::Spec)
01:05
01:05 frdmn left 01:06 FROGGS_ joined 01:10 FROGGS left 01:20 gdey left 01:24 Psyche^ joined 01:26 PacoAir left 01:27 Patterner left, Psyche^ is now known as Patterner 01:28 gdey joined 02:01 mikess left 02:03 mikess joined 02:43 orafu left 02:44 orafu joined 02:46 preflex_ joined 02:47 preflex left, preflex_ is now known as preflex
BenGoldberg labster: File::Spec::Case contains a race condition. 02:49
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
02:50 rindolf joined
BenGoldberg Even ignoring that one process might die()... 02:52
02:52 lard joined
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:52
02:53 shlomif joined 02:54 rindolf left, shlomif is now known as rindolf 02:59 BenGoldberg left
lard perl6: class foo { multi method bar(:$baz) { say ">",$baz,"<"}}; foo.new.bar(:baz<works>);foo...rp('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…
..rakudo b5bdbe: OUTPUT«>works<␤>(Any)<␤»
lard oh and same result without multi 03:13
sent bug report 03:33
colomon lard++ 03:34
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
labster just now realizes that Perl6 will never run on OSes that only support 8.3 filesystems anyway (CORE.setting) 04:20
04:32 rindolf left
sorear s/Perl6/rakudo/ 04:33
although practically speaking perl 6 will probably never be efficient enough to run on bare DOS 04:34
diakopter why does it need more efficiency there? 04:39
(or, s/on bare DOS/)
sorear very tight memory limits 04:40
diakopter /
sorear waves hands and vanishes 04:41
labster does jazz hands 04:59
05:03 arlinius left 05:05 rindolf joined 05:22 camelia joined 05:28 ChanServ sets mode: +o diakopter 05:29 diakopter sets mode: +v camelia, diakopter sets mode: -v camelia, diakopter sets mode: -o diakopter 05:31 rindolf left 05:32 rindolf joined
diakopter looks at my entries in the evalbot log and rotfl 05:37
out of 6502 entries in the log, I made 2587 05:42
er. 6981 entries in the log.
n: say (2587/6502*10000).Int 05:43
p6eval niecza v24-37-gf9c8fc2: OUTPUT«3978␤»
diakopter 39.78%
moritz \o 05:47
diakopter morning
05:47 Chillance_ left
sorear what's camelia? 05:48
diakopter oh good you're here 05:49
was going to ask your permission to swap p6eval's nick for that
sorear i would defer to moritz and/or TimToady
diakopter oki
moritz: :) 05:50
moritz diakopter: I don't care much either way
so, no objections here
diakopter anyone know what #rosettacode is? 05:51
sorear rosettacode.org 05:52
diakopter I mean, I know what the site is, but what's the channel for
moritz a channel discussing rosettacode?
sorear diakopter: the channel is about the site
diakopter ok; I was asking b/c p6eval is in there
05:53 camelia left 05:54 camelia joined
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
sorear diakopter: yes, they (mostly TimToady) use perl 6 in there and so they have a p6eval 05:58
You're just giving the bot a new account, not rewriting it or anything like that?
diakopter correct 06:01
06:09 SamuraiJack joined, p6eval left
diakopter /o\ fail 06:10
06:10 camelia left, camelia joined
diakopter r: 'yo' 06:10
oh heh.
diakopter tries again 06:11
camelia rakudo b5bdbe: ( no output )
diakopter wat.
sorear diakopter: It's just waiting for a chance to speak
that PRIVMSG holding the reply was queued up behind a bunch of JOINs 06:12
diakopter n: "I'm here too"
camelia niecza v24-37-gf9c8fc2: ( no output )
diakopter ah, good to know.
now to actually get it to identify
apparently I didn't realize that $bot->run() was blocking :S
well actually it might be identified; not sure 06:15
rn: .say 06:17
camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: OUTPUT«(Any)␤»
diakopter pugs: 'ahoy'.say
camelia pugs: OUTPUT«ahoy␤»
diakopter p6eval: yo
camelia: yo
06:18 ChanServ sets mode: +o diakopter
sorear diakopter: camelia isn't identified 06:18
you can tell this by /whois camelia /whois sorear
06:19 xinming left
sorear one has 'account : sorear', the other has nothing 06:19
diakopter ah ok; thx 06:20
06:20 xinming joined
moritz diakopter: please make sure to push changes to github 06:21
diakopter I'll muddle through it
ops to fix the topic in a sec
moritz ++diakopter
the topic looks fine to me :-)
diakopter /msg p6eval 06:22
eh I'll just override ->join that's close enough 06:24
er, chanjoin 06:25
superfluous messages to nickserv shouldn't be a problem. ;)
wait. connected is what I want 06:26
here goes nothing 06:31
06:31 camelia left, camelia joined
diakopter r: 1 06:32
n: ;
camelia rakudo b5bdbe: ( no output )
niecza v24-37-gf9c8fc2: ( no output )
diakopter *sigh* 06:33
sub connected { my $bot = shift; $bot->say(name=>'nickserv',channel=>'msg',body=>"identify $bot->{__nickpass}") if exists $bot->{__nickpass}; } 06:36
$bot->{__nickpass} = $conf{pass} if exists $conf{pass};
probably got param to say wrong
argh. 06:37
name -> who
06:37 camelia left, camelia joined 06:38 kingbeast left
diakopter r: ; 06:38
camelia rakudo b5bdbe: ( no output )
diakopter success.
\o/ 06:39
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! 06:39
06:40 ChanServ sets mode: -o diakopter
diakopter opos 06:40
.. now to +V it
06:40 ChanServ sets mode: +o diakopter, diakopter sets mode: +cmi
diakopter urp 06:41
wth did I do
oh. nothing.
ergh; apparently I don't have perms to /msg chanserv flags #perl6 camelia +V 06:43
moritz or sorear?
(would you do it plz)
06:44 diakopter sets mode: -o diakopter 06:46 ChanServ sets mode: +v camelia 06:47 ChanServ sets mode: +o diakopter
diakopter OOPS. fixing 06:47
06:47 diakopter sets mode: -cmi
diakopter argh. fail... sorry everyone 06:48
should be okay now
PM me if not..
r: 2345.2 2 2 06:49
camelia rakudo b5bdbe: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/VFBSEzoN9k:1␤------> 2345.2 ⏏2 2␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ statement modifier␤ statement …
diakopter camelia: hi
p6eval: help
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>
diakopter heh
06:49 diakopter sets mode: -o diakopter
diakopter test 06:49
labster rn: "\c61\c41" #hi camelia 06:50
camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: ( no output )
labster rn: say "\c61\c41" # still not a repl, of course 06:51
camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: OUTPUT«=)␤»
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.
FROGGS_ diakopter: must be an accident but camelia is not showing 'v5' in the help msg :P 07:03
07:04 FROGGS_ is now known as FROGGS
labster FROGGS: o/ 07:06
diakopter hunh. 07:07
FROGGS hi labster
.a hunh
diakopter v5: ;
07:07 domidumont joined
diakopter FROGGS: oh. you were kidding. 07:08
FROGGS *g*
a bit
diakopter there are plenty of rakudo checkouts there, what's one more...
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:10
07:11 kaare_ left
FROGGS diakopter: well, I can change something in the v5-repo, so that an additional rakudo won't be needed 07:13
07:14 jaldhar left
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
v5 is just a module
not pandaable yet though 07:15
07:15 dmol1 joined, jaldhar joined
FROGGS diakopter: I'll fix up v5 later, and give you a batch, okay? 07:15
diakopter: basically it would be cool if 'r:' would be executed in v5's repository root-dir 07:18
because only if you do 'use v5' it would do anything at all
diakopter ah.' 07:19
FROGGS labster++
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:22
moritz diakopter: done 07:26
.msg sorear I beat you to it :-)
yoleaux moritz: Sorry, this command is admin-only.
moritz .tell sorear I beat you to it :-)
yoleaux moritz: I'll pass your message to sorear.
07:29 jaldhar left 07:32 berekuk joined 07:34 jaldhar joined
diakopter moritz: I seem to need a git hand-holding 07:38
07:38 domidumont left
moritz diakopter: what do you need? 07:38
diakopter told what to type? 07:39
07:39 domidumont joined
moritz first, commit all your changes 07:39
then
git fetch
git format-patch origin/master 07:40
that generates a bunch of 000\d-\S+.patch files
copy them over to your local machine
diakopter O)O
moritz there do a git am -s 000*
and then push
07:41 domidumont left, domidumont joined
diakopter hrm, probably shouldn't push the password 07:43
moritz probably not :-) 07:44
diakopter ah well, someone else probably will later anyway 07:46
07:46 ChanServ sets mode: +o sorear, sorear sets mode: -o sorear 07:47 domidumont left, domidumont joined
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:51
07:52 dmol1 left
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:26Z <moritz> sorear: I beat you to it :-)
sorear we've hit many versions of that bug across 2(+?) compilers
timotimo hehe :) 07:55
at least this time the compilation pulls through
isn't that something.
labster which seems more idiomatic: ~self, self.Str, or $.Str ? 07:56
sorear ~self
dukeleto votes ~self too 07:57
timotimo $.Str isn't correct most of the time, no?
dalek albot: d31c208 | diakopter++ | evalbot.pl:
nqp-jvm target

Signed-off-by: diakopter [email@hidden.address]
07:59
albot: 692b905 | (Perl 6 Evalbot)++ | / (2 files):
use camelia account instead

Signed-off-by: diakopter [email@hidden.address]
diakopter meh
07:59 jaldhar left
diakopter hunh. where'd that first commit come from 07:59
08:00 lizmat joined, berekuk left
diakopter argh. 08:00
timotimo hehe
labster even the evalbot is excited about the jvm, committing to it.
timotimo :D 08:02
diakopter moritz: where do I commit the build-script 08:03
or does that just live there
timotimo i wonder if rakudo would benefit from an optimizer in nqp? 08:05
08:09 berekuk joined
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?
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 ...
oh, i suppose i can just walk the block chain for a !CORE_MARKER to exist
and then just save that away
08:21 kaare_ joined, crab2313 joined 08:22 frdmn joined
moritz timotimo: rakudo would benefit from an nqp-level optimizer 08:22
for build times, and also because Actions, Grammar and World are written in NQP 08:23
and the meta model
08:23 berekuk left 08:26 domidumont left 08:27 arlinius joined
timotimo mhm 08:29
especially all those negative numbers having to be make-int + negate-int :P
moritz wwwhat?
timotimo is the prefix:<-> operator already inlined for nqp? 08:30
moritz a -1 in nqp produces a QAST::IVal.new(:value(-1)) 08:31
so no separate call to nqp::neg_i or so
timotimo ah, that's nice. 08:33
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?
moritz iirc jnthn++ improved the codegen a bit when he introduced PIRT 08:34
timotimo: probably
timotimo what is PIRT?
moritz the stage after QAST 08:35
$ ./perl6 --target=optimize -e 'say -1' > optimized 08:36
$ ./perl6 --target=ast -e 'say -1' > naive
$ diff -u naive optimized
08:37 ivan`` left
moritz shows that the call is constant-folded, but that we lose the polymorphism of the integer literal 08:37
08:37 tgt joined
moritz if somebody is looking for a fun little project in the optimizer, that would be a nice thing to fix 08:38
timotimo oh, i know it by the name "optimizer" ;) 08:39
hm, what's the use in getting that back?
08:40 berekuk joined
moritz if you write code like my int $x = 42; my int $y = -1 * $x 08:40
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)
the latter would be more efficient 08:41
timotimo oh, so it doesn't create a Want node?
moritz correct
it just creates a bare QAST::WVal node 08:42
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
does the Want contain a WVal for the Int still?
moritz yes 08:45
timotimo just looks by themself
oh. neat. so the WVal node can still be reused
can the same thing be done with strings? is there a Str vs str?
moritz it should trans form the QAST::WVal(Int) into a QAST::Want(QAst::WVal(Int), 'Ii', QAST::Ival(unboxed Int))
yes, Int, Str and Num
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:47
sorear nqp::unbox_{ins} mayb 08:48
moritz nqp::unbox_i($value)
timotimo: containers and boxing are mostly orthogonal
timotimo ah, i think i can implement this now :)
moritz ++timotimo
sorear if you have a (pseudocode) Scalar[Int[int]], p6decont gives you the Int, unbox_i gives you the int
timotimo ah, so the container thing is $i vs \i, the boxing is Int vs int, is that about accurate?
sorear rooooooughly 08:49
moritz the problem is that \i doesn't remove the container, it just preserve it
whereas unboxing always removes the box
timotimo ah, ok. 08:50
sorear Every value you can touch in perl 6 logically has a container
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
sorear in nqp, you get to choose between bare values and containers, and can use p6decont to switch between them
(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:51
moritz sorear: does a literal "logically" have a container? 08:52
sorear moritz: i would say so
moritz sorear: why?
sorear because you can do "foo".flip and the literal's container needs to be passed to the string method 08:53
timotimo ah, that's a good point 08:54
moritz a method call doesn't need a container
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
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"
sorear yes, there are two possible ontologies there 08:56
and since they are observationally equivalent I am going to avoid any possible useless debate and sleep& 08:57
GlitchMr std: sub double { my $val = shift; $val * 2 } 08:58
camelia std 86b102f: OUTPUT«ok 00:00 44m␤»
GlitchMr rn: sub double { my $val = shift; $val * 2 }
camelia niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:␤ &double is declared but not used at /tmp/f5ETy32uyi line 1:␤------> sub double ⏏{ my $val = shift; $val * 2 }␤␤»
..rakudo b5bdbe: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling proto of 'shift' will never work with no arguments (line 1)␤ Expected: :()␤»
timotimo good night sorear :)
GlitchMr rn: sub double { my $val = shift; $val * 2 }; say double 42
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…
..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 tgt left
timotimo oh, so shift is specced to use CALLER::@_ if it has no arguments? 08:59
moritz you mean in p5? 09:00
lizmat in p5, a bare shift operates on @ARGV in main::, no? 09:01
09:01 ivan`` joined
moritz lizmat: outside of any functions (which isn't quite the same as in main::) 09:01
*function
lizmat ack
wasn't sure what the conditional was 09:02
09:02 dmol1 joined
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
actually, i should start up my beefy desktop for this now.
"inspecting &infix:<ne> for junction optimization" "a parameter doesn't accept Any" sounds promising already :) 09:04
09:05 tgt joined
jnthn r: perl6: class foo { multi method bar(:$baz) { say ">",$baz,"<"}}; foo.new.bar(:baz<works>);foo...rp('rakudo runs method even though nothing matches sig')); 09:05
camelia rakudo b5bdbe: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/c5NcsfjbbJ:1␤------> perl6⏏: class foo { multi method bar(:$baz) { ␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ st…
jnthn perl6: class foo { multi method bar(:$baz) { say ">",$baz,"<"}}; foo.new.bar(:baz<works>);foo...rp('rakudo runs method even though nothing matches sig'));
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…
..rakudo b5bdbe: OUTPUT«>works<␤>(Any)<␤»
jnthn Rakduo is correct here. 09:06
See S12, interface consistency.
moritz jnthn: I've already rejected the ticket, with a link to S12/Interface Consistency/ :-)
jnthn Oh, that's why I can't find the RT ticket :)
moritz++ 09:07
My next question was going to be "where was it filed" ;)
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 :-)
jnthn Yes, I didn't see it in my email either, for some reason. 09:08
moritz now that you mention it: me neither 09:09
dalek ast: 81449cb | (Timo Paulssen)++ | S03-junctions/boolean-context.t:
tests for RT #117579.
09:15
timotimo spectests
moritz .u ಠ
yoleaux U+0CA0 KANNADA LETTER TTHA [Lo] (ಠ)
moritz .u ಠ 09:16
yoleaux U+0CA0 KANNADA LETTER TTHA [Lo] (ಠ)
GlitchMr > PRE ; 09:20
Segmentation fault
That was strange
No idea what causes it, but I could upload entire REPL session I had
gist.github.com/GlitchMr/5382064
Sorry for large session, but I don't know why it happens. 09:21
timotimo pull requested. 09:22
GlitchMr It couldn't reproduce it 09:23
Strange...
moritz timotimo: spectesting your pull request 09:26
timotimo thank you :)
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
and there are operators with native types to dispatch to 09:29
jnthn Need to be careful about optimizations with natives also.
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
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
masak good forenoon, #perl6 09:31
moritz good UGT morning, masak
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... :)
good omg-you-got-up-before-afternoon, masak
moritz *g*
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
jnthn diakopter: Two *variables* will 09:33
moritz hm, or maybe it is
jnthn diakopter: The rule is about literals.
diakopter oh.
jnthn moritz: It was a comment from reading backlog. :)
moritz jnthn: yes, I figured :-)
diakopter so.. just put your literal into a variable.... :P
diakopter ducks
timotimo jnthn: github.com/rakudo/rakudo/blob/nom/...er.pm#L341 - i think i'm looking at the right spot here?
jnthn timotimo: The bit I was talking about is at github.com/rakudo/rakudo/blob/nom/...er.pm#L537 09:34
moritz timotimo: that was the part I was talking about, yes 09:35
timotimo i'm not exactly sure how those interplay
09:35 SamuraiJack left
moritz probably not much 09:35
09:36 berekuk left
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
nqp::isbig_I
jnthn I thought for literals we were already emitting a QAST::Want when the thing isn't big.
timotimo maybe for literals, but not for compile-time-evaluated things
moritz jnthn: yes, but not for the result of constant folding stuff
jnthn Oh! 09:37
OK, I see :)
timotimo we're talking about things like -5 and friends
jnthn Ah, which we ain't folding today?
moritz we are
timotimo it's folding all right
but not into a Want
moritz but the result is just a QAST::WVal
jnthn OK.
moritz not a QAST::Want(WVal, 'Ii', IVal)
jnthn *nod*
timotimo do you think it's worth investing in, jnthn? 09:38
jnthn Well, need to be careful, - can apply to many things.
So need to check the type of the exact value
timotimo: Yes, almost certainly
09:38 berekuk joined
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 :)
timotimo unbox_i actually 09:39
jnthn timotimo: unbox_i, but yes.
timotimo: You could also check if it's a Num, fwiw.
Those can become a Want with an NVal too
timotimo sure, but i wanted to start small ;)
jnthn
.oO( a small task...involving nqp::isbig :P )
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>?
jnthn nqp::istype
Oh, you'll need to look up Int
jnthn probably won't be able to stay and hack *after* YAPC::EU. 09:41
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?
fwiw,. we still haven't decided to either drive or fly
moritz isn't sure he'll make it to YAPC::EU at all
my wife just got a new aortic valve, and I won't be able to travel before her complete recovery 09:43
though if I'll make it, my employer will pay for it :-)
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.
timotimo moritz: she's a cyborg! :D 09:44
jnthn moritz: Best wishes for the recovery.
lizmat best wishes, moritz!
moritz thanks jnthn, lizmat
timotimo best wishes from me, too :) 09:45
masak fourthed. 09:46
best wishes.
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)
thanks timotimo, masak
timotimo oooh, that's even cooler 09:47
(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
(afaict)
timotimo wow. I hope it'll turn out good! both for your wife and everyone in the future to need a similar procedure 09:49
moritz her blood pressure, which was notoriously low, is quite normal, which is a good sign 09:50
09:50 crab2313 left
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:58 berekuk left 09:59 FROGGS[mobile] joined
moritz masak: how's the t2 review coming along? :-) 10:01
timotimo: well, you could just compare before and after
timotimo i surely could.
but i'll have to wait until i come up with a working solution ;)
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
which makes sense, given that it occurs during compiling the setting :D
diakopter masak: watch 10:04
rn: "hi I'm Camelia!".say
camelia rakudo b5bdbe, niecza v24-37-gf9c8fc2: OUTPUT«hi I'm Camelia!␤»
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
(maybe only if two requests by different people have been sent in close proximity?)
10:05 cognominal left, cognominal joined
timotimo huh. it doesn't seem like prefix:<-> is even inlined normally?! 10:09
10:10 bakedb_ left, bakedb joined
timotimo oh, it won't be if i set --target=ast 10:11
dalek p/jvm-support: 4c7ee83 | jnthn++ | / (19 files):
Move stage0 into src/parrot/vm/.

The stage0 is inherently platform specific, since it's generated code.
10:13
p/jvm-support: 9f25f51 | jnthn++ | t (16 files):
Segregate Parrot-specific tests.
10:14 berekuk joined 10:19 domidumont joined
timotimo is SETTING the right place to look for Int? 10:20
nwc10 breaks on my machine: 10:24
Stage start : 0.000get_pmc_keyed() not implemented in class 'Sub'
diakopter nwc10: I think I saw that in a bug report a couple weeks ago
jnthn nwc10: What breaks, exactly? 10:25
nwc10: Rakudo with...?
10:26 berekuk left
nwc10 Rakudo with nqp at origin/master 10:26
jnthn ah
nwc10 nqp at d46b46539aa380b933e6a38c4813ec9d6a7b3f05
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
ah OK
I'll test at NQP_REVISION now
timotimo forgot to call .new on QAST::Want ... m( 10:28
10:29 berekuk joined 10:36 SamuraiJack joined
timotimo paste.ee/p/SfdoH - what could i have done wrong? this confuses me. 10:38
jnthn timotimo: Probably got something that's not a QAST node inside a QAST node. 10:39
Did you forget to put an integer inside a QAST::IVal for example?
timotimo oh, i forgot to create an IVal around the integer i created!
10:41 berekuk left 10:42 SamuraiJack left 10:44 SamuraiJack joined
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:48
moritz: does the spectest of my branch really take hours on your machine? poor you! ;) 10:50
jnthn Sounds like just a dumping issue
dalek p-jvm-prep: f073947 | jnthn++ | / (3 files):
Package NQP runtime into a JAR.

Preferable to having dozens of .class files to load.
timotimo i think i used the IVal constructor wrong 10:51
jnthn QAST::IVal.new( :value(5) )
10:51 SamuraiJack left
timotimo yes, i passed 5 as the first positional 10:51
10:51 SamuraiJack_ joined
timotimo it's compiling the fixed version now 10:51
great. it even bails out correctly if the int is too big 10:54
FROGGS[mobile] timotimo: what are you up to? 10:58
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
next thing i'll do is the same thing with Num, and then with Str.
FROGGS[mobile] and that is good? 11:03
timotimo it will hopefully cause more operations in tight loops and such to run with native values instead of boxed values 11:04
tadzik the release is to be in 4 days, do we have a volunteer? 11:05
FROGGS[mobile] timotimo: so ideally this would only run for loops? 11:06
timotimo no, it will always run. there's no big overhead 11:07
(at least that's what i guess!)
11:07 snuffles joined
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
jnthn tadzik: not yet, afaik 11:09
tadzik looks around
timotimo if nobody speaks up, i may try 11:10
FROGGS[mobile] there is somebody 11:11
was it gtodd?
the ir-clogs will tell
timotimo unfortunately my changes seem to lead to spectest failures 11:12
heh, what a silly mistake 11:17
11:24 rindolf left
FROGGS timotimo: do you run benchmarks? 11:25
timotimo spectests first ;)
i didn't come up with benchmarks for this yet
FROGGS would be cool if [Coke]++ 's toolchain would track performance over time too
11:25 tgt left
timotimo it would :) 11:26
FROGGS hmmm, but benchmarking the changing test files is not the best idea... 11:27
there was a p5/p6 benchmarking repo somewhere...
nwc10 jnthn: Rakudo head passes tests with its NQP_REVISION 11:28
(this network is low)
dalek kudo/nom: 452a072 | jnthn++ | / (3 files):
Updates to run on latest NQP.
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)
jnthn: since x() is looked up before runtime...
jnthn FROGGS: That won't (shouldn't) work.
FROGGS good
nwc10 OK, I'll test that now... :-) 11:30
jnthn You'll get a CHECK time error saying x aint' declared.
moritz but require $path <&x>; x() should work
FROGGS right, just wanted to know if it is by spec
jnthn realized that NQP JVM has been hobbling along without a multi-dispatch cache all this time...
FROGGS because you can do that in p5
dalek kudo/nom: 5122e2e | (Timo Paulssen)++ | src/Perl6/Optimizer.pm:
no longer compile-time-autothread operators that take Mu args.

This caused problems with the ne and !== operators, which handle junctions manually, but also with any user-defined operator that takes a Mu argument.
moritz timotimo: sorry, I thought I had pushed earlier 11:31
timotimo no problem :)
nwc10 jnthn: will adding that make some things faster, or many things faster?
moritz multi dispatches, I think :-) 11:32
timotimo paste.ee/p/RnYLj # ...the hell? 11:33
moritz timotimo: the BUILD call looks all wrong to me 11:34
jnthn nwc10: It'll make multi-dispatches faster
moritz timotimo: BUILD is only called with named args, normally
jnthn nwc10: But since QAST compilation is LOADS of multi-dispatches (one per QAST node) it'll speed those up.
moritz (by bless, that is)
timotimo moritz: how come it only fails when my optimization is turned on and otherwise never noticed?!
oh, there's a custom BUILD there, too 11:35
it takes positional args
moritz huh.
timotimo: what code triggers it? 11:36
timotimo oh, i forgot to paste it
the code is just my %h = a => 1, b => -2, c => 5; or something similar
is it because i fail to move the SpecialArg thing outwards into the Want? 11:37
(i don't even know what that is)
moritz what about just my $ = (a => $b) ?
does that also fail?
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)
moritz timotimo: seems that SpecialArg is related to named arguments
timotimo: you have to do something like
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
timotimo ah, that's what that is for!
arnsholt Some of his bug reports aren't really bug reports
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
moritz afk 11:40
timotimo do i need to remove the $wval.named if i create a Want from it?
11:43 drbean left 11:45 drbean joined
dalek p-jvm-prep: 1dbb570 | jnthn++ | src/org/perl6/nqp/ (6 files):
Implement multi-dispatch cache.

While selftest is dominated by startup time, this does shave around 8% off the time to run it.
11:50
p-jvm-prep: 7a47938 | jnthn++ | .gitignore:
Update .gitignore.
nwc10 jnthn: Rakudo works on my machine again 11:51
jnthn \o/
nwc10 I see the that the gooalposts just moved again
jnthn arnsholt: Yeah, but startup time is pretty high. 11:52
arnsholt Yeah, that's always gonna be a problem on the JVM, I guess 11:54
jnthn: Did you see Zavolaj #25, BTW? 11:56
(Which isn't really a bug)
jnthn arnsholt: Yeah. Without looking further, I don't know exactly where the bottleneck lies 11:57
arnsholt I suspect it's just expecting an iteration over all the pixels in an image, using Perl 6, to be fast 11:58
timotimo :( 11:59
jnthn arnsholt: Which, with Rakudo at present, it won't be 12:00
arnsholt Exactly
I'm gonna suggest that he uses perl6 --profile to see where the bottleneck is
timotimo i wonder if he would get better performance with native ints? 12:01
if the process takes 14 minutes, every bit of improvement in the tight loop would be a nice improvement i bet!
arnsholt Yeah, that's not a bad idea actually 12:02
timotimo doesn't have the necessary tuit right now 12:03
12:03 PacoAir joined 12:07 dmol1 left
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:10
12:12 woosley joined
jnthn Sounds like some kind of Int mess-up 12:14
Or potentially a NativeCall thing since I think it also uses that
timotimo might not be int; i added NVal and SVal, too
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
jnthn You may have got an Int where an Int ain't meant to be or something
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')
timotimo this happens in the minmax.rakudo test
jnthn FROGGS: It should be GLOBAL::InnerModule 12:16
timotimo indeed, it's int that is at fault.
strange!
jnthn Maybe int/Int confusion? 12:17
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:18
jnthn FROGGS: Did you make the sub "our"? 12:19
FROGGS: Or "is export" it?
timotimo oh. should i put an optimization level limit on the WVal -> Want thing?
12:19 crab2313 joined 12:21 tgt joined
FROGGS jnthn: is exportr 12:22
-r
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 tgt left
jnthn FROGGS: Then it will be in EXPORT DEFAULT 12:23
(Inside of your module)
timotimo github.com/timo/rakudo/compare/wval_to_want 12:24
i'll be afk for ~30 minutes 12:25
dalek p/jvm-support: 811d92c | jnthn++ | / (3 files):
We'll need a Makefile per backend.
p/jvm-support: 7c34883 | jnthn++ | / (2 files):
Stub ConfigureJVM.pl and Makefile-JVM.in.
colomon moritz: ping? 12:26
jnthn timotimo: I wonder if isbig_I doesn't decontainerize...to check, try !nqp::isbig_I(nqp::decont($ret_value)) 12:32
arnsholt bigint_I doesn't decontainerize. It calls get_bigint directly on its operand 12:34
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 PacoAir left
arnsholt I used a MBP for a while, but now I'm mostly using a Dell laptop running linux 12:36
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
gtodd heheh like p6doc is 1000% slower than perldoc :-) 12:38
12:39 PacoAir joined
FROGGS jnthn: say GLOBAL::InnerModule::EXPORT::DEFAULT:: gives me ("\&foo" => sub foo() { ... }, "\&bar" => sub bar() { ... }).hash 12:40
jnthn: but say GLOBAL::InnerModule::EXPORT::DEFAULT::bar gives me: Could not find symbol 'bar'
12:42 cognominal left, BenGoldberg joined
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:44
will look now what Perl6::ModuleLoader::merge_globals does 12:46
timotimo jnthn, arnsholt: thanks. compiling and spectesting one more time 12:48
jnthn FROGGS: Does GLOBAL::InnerModule::EXPORT::DEFAULT::<&bar> work?
12:53 jaldhar left
FROGGS jnthn: that works... 12:54
not very intuitive though
jnthn FROGGS: Well, it shows the problem is not the global merge though, as the symbol is there 12:56
12:56 jaldhar joined
timotimo hooray! all spectests succeed now! :) 12:56
i'll fix up the branch and pullrequest it :)
FROGGS soo, atm ::('InnerModule') gives me the InnerModule, while ::('InnerModule')::('&bar') doesn't give me &bar... 13:04
I dont really understand how require Fancy::Utilities; Fancy::Utilities::lolgreet('me') is working though 13:06
I'd expect to see some declaration of that modulename while it gets parsed... but there is nothing like that 13:07
nwc10 jnthn: make nqptest fails on my machine 13:12
a lot of Method 'compunit_mainline' not found for invocant of class 'HLL::Backend::JVM'
test and selftest pass 13:13
timotimo pull request'd 13:15
nwc10 apparently we have to go the beach, so afk
13:16 rindolf joined
rindolf Hi all. 13:16
timotimo hey rindolf
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
timotimo: hi, what's up?
13:17 domidumont left
FROGGS rindolf: you might want to google for proper patterns 13:18
rindolf FROGGS: couldn't find those off hand.
FROGGS: and there's also DuckDuckGo. 13:19
The Rakudo and Parrot source codes do not appear to contain them - quite sloppy.
timotimo rindolf: nothing much, I'm screwing around with the optimizer again after i made a pretty grave mistake last time
rindolf timotimo: ah, OK, nice. 13:20
timotimo can't tell if there'll be any noticable performance improvement this time around 13:21
github.com/rakudo/rakudo/pull/125 - ready to spectest&merge 13:22
13:23 baest left, roll joined
rindolf Found something here: search.cpan.org/~ajkald/Config-TOML...ig/TOML.pm 13:30
timotimo moritz or jnthn, can you intuit what kind of code would get faster by the WVal -> Want transformation? 13:39
13:40 wooden left
timotimo writing an arithmetic expression seems to speed up with my changes applied, which is nice (1.35 to 1.12 seconds) 13:40
uh 13:42
r: my Num $num = 1.0;
camelia rakudo 5122e2: OUTPUT«Type check failed in assignment to '$num'; expected 'Num' but got 'Rat'␤ in block at /tmp/T65qBjjDE5:1␤␤»
jnthn 1.0 is a Rat in Perl 6
1e0 13:43
timotimo oke
wow. this code runs *faster* with Num than with num.
like 50% longer run time
i did not expect that 13:44
dalek p-jvm-prep: d26aaf7 | jnthn++ | / (3 files):
Use class path as default module search path.

Will (hopefully) be useful during bootstrapping.
13:46
p-jvm-prep: 9127bcd | jnthn++ | src/org/perl6/nqp/runtime/LibraryLoader.java:
ModuleLoader special handling.

Added as part of the work towards getting NQP JVM to build itself in order to support bootstrapping.
13:48 rindolf left, SamuraiJack_ left
timotimo hm, maybe it needs to vivify a box every time the value gets changed or something? i have no idea. 13:56
gtodd why does: say (1/4).perl give me 0.25 14:01
shouldn't it give me [1, 4] 14:02
hmm maybe there should be a perl6-questions channel :-)
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
colomon it's exact 14:04
rn: say (1/2, 1/3, 1/4, 1/5, 1/6).perl 14:05
timotimo takes his bike out into the sun :)
camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«(0.5, <1/3>, 0.25, 0.2, <1/6>)␤»
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␤»
colomon rn: say (1/2, 1/3, 1/4, 1/5, 1/6)>>.nude.perl
camelia rakudo 5122e2: OUTPUT«((1, 2), (1, 3), (1, 4), (1, 5), (1, 6))␤»
..niecza v24-37-gf9c8fc2: OUTPUT«[[1, 2], [1, 3], [1, 4], [1, 5], [1, 6]].list␤»
gtodd should not be distracting developers :-) but I am gradually answering some FAQs that are being recorded! 14:07
colomon: OK I forgot about .nude ... or repressed it because of its connotations 14:08
jnthn When did you last see a clothed Rat? 14:11
gtodd hah ... argh just found this where perl6advent.wordpress.com/2009/12/1...-the-rats/ it says"
say (3/7).nude.perl
[3, 7]
I guess I don't need [1,4] I can find numbers I want using other methods like .denominator etc. 14:13
cool
and well ">>" is neat too 14:16
14:16 lampman joined
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:16
14:17 woosley left
gtodd in a -w strict or debugger or console and point more exactly to where the error is 14:18
14:24 lampman left
masak I have a feeling people in here might enjoy dev.stephendiehl.com/hask/ 14:24
14:33 roll left 14:42 dmol1 joined 14:55 Celelibi joined
dalek p/jvm-support: 2d0a551 | jnthn++ | / (83 files):
Add JVM runtime support; get Makefile to build it.
15:01
p/jvm-support: 604ef1d | jnthn++ | tools/build/ (2 files):
Add a conditional compilation mechanism.

gen-cat.pl now takes an argument for the current backend, and handles directives in the files it is processing related to VM-specific code.
p/jvm-support: 41237e1 | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
Add an nqp::scgetdesc op.
nqp-jvm-prep: 365b131 | jnthn++ | / (2 files):
nqp-jvm-prep: Fix deserialize_code to work on NQP JVM. 15:02
15:04 frdmn left
masak jnthn: wow. 15:06
2d0a55: "Showing 83 changed files with 11,979 additions and 2 deletions."
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
dalek p/jvm-support: 13c5f8d | jnthn++ | src/vm/jvm/stage0/ (10 files):
Add current nqp-jvm-prep selfhost as stage0.

May have to update it if issues crop up, but hopefully not too many shall.
15:12
p/jvm-support: c9065ee | jnthn++ | src/how/NQPClassHOW.nqp:
Mark out Parrot-specific bits in MOP.
p/jvm-support: aadcfd0 | jnthn++ | src/vm/jvm/ModuleLoader.nqp:
Add JVM module loader.
nqp/jvm-support: d68776e | jnthn++ | / (2 files):
nqp/jvm-support: Rules for first bits of the stage1 build.
colomon \o/ 15:13
15:20 cognominal left 15:21 cognominal joined
lizmat QA Hackathon wrapping up, mostly afk until Tuesday 15:42
15:42 lizmat left 15:43 woolfy left 15:48 domidumont joined
dalek ast: c464098 | (Tobias Leich)++ | S11-modules/require.t:
test for "require PATH"
15:49
15:52 lard left
FROGGS jnthn: we have symlink() and link() now, should I add these as methods to IO ? 15:55
(writing the tests currently)
I'll add these methods unless someone screams "STOPIT!" 15:58
nwc10 jnthn: nqp-jvm-prep very unappy currently, is this expeted? 16:15
nqp --target=pir --output=QASTJASTCompiler.pir lib/QAST/JASTCompiler.nqp
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('bind
jnthn nwc10: yes
nwc10 OK
jnthn nwc10: At the moment the only chance it has of building is against an NQP built from the jvm-support branch
nwc10 OK.
gtodd masak: interesting ... dev.stephendiehl.com/hask/ assuming that once perl6 is released similar documents start popping up, what should be done? :-)
masak: ... an timtowtdi-fold path to satori 16:17
16:18 arlinius left 16:36 crab2313 left 16:37 crab2313 joined
masak gtodd: well, a Quickcheck in Perl 6 would be fairly cool. 16:37
if Erlang can do it, so can we.
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:38
dalek ast: acf18c7 | (Tobias Leich)++ | S11-modules/require.t:
add links to synopsis
16:48
FROGGS std: require "foo/bar.pm" <&bar> 16:52
camelia std 86b102f: OUTPUT«===SORRY!===␤Bogus term at /tmp/S7yIVEg159 line 1 (EOF):␤------> require "foo/bar.pm" <&bar>⏏<EOL>␤Undeclared routine:␤ 'bar' used at line 1␤Parse failed␤FAILED 00:00 45m␤»
FROGGS ESTDBUG
17:02 FROGGS[mobile] left, FROGGS[mobile] joined, Chillance joined 17:05 adu_ joined
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
dalek p-jvm-prep: 529ee92 | jnthn++ | src/org/perl6/nqp/sixmodel/SerializationWriter.java:
Fix growToHold() bug in serializer.
17:35
p-jvm-prep: b7c3945 | jnthn++ | nqp-src/ModuleLoader.pm:
Make module loader respect --module-path.
jnthn That serializer one took some finding :/ 17:37
dalek p/jvm-support: 11c79ea | jnthn++ | src/core/NQP (2 files):
Mark out Parrot/JVM specific bits of CORE.
p/jvm-support: fdaa9ea | jnthn++ | src/vm/jvm/ModuleLoader.nqp:
Make module loader respect --module-path.
p/jvm-support: 939c511 | jnthn++ | src/vm/jvm/stage0/ModuleLoader.class:
Updated stage0 module loader.
p/jvm-support: 073363c | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationWriter.java:
Fix growToHold() bug in serializer.
17:38 SamuraiJack_ joined
colomon \o/ 17:39
dukeleto colomon: welcome 17:40
17:42 xenoterracide joined 17:44 dmol1 left 17:47 eternaleye left 17:48 eternaleye joined
dukeleto moritz: github.com/parrot/parrot/commit/22...e30507a991 17:54
moritz: not sure how to fix that bug yet, but we have a failing test and a branch :) 17:55
dalek p-jvm-prep: 9ceb63a | jnthn++ | lib/QAST/JASTCompiler.nqp:
Make $x<does><not><exist> not explode.
17:58
17:58 grondilu joined
grondilu GlitchMr: so you like minecraft as well? Do you know about #minetest, the FOSS clone? Would you consider translating it in perl6? 17:59
flussence
.oO( do want )
18:00
18:05 berekuk joined
timotimo whaaaaat, minetest in perl6? 1 frame per day? x_X 18:11
FROGGS .oO( if it is a good frame? ) 18:12
flussence well if nothing else, it'd give people plenty of profiling data to chew on... 18:13
18:13 sqirrel joined
moritz dukeleto++ 18:15
colomon moritz: do you remember working on your TestML fork? 18:18
18:31 crab2313 left
gtodd moritz: do you think Svg::Plot should work "out of the box" or has too much changed in perl6. 18:32
18:37 LlamaRider joined
gtodd ?? oh Text::CSV::Simple is no more ... maybe changing that is all that's needed 18:39
18:45 SamuraiJack_ left 18:53 pmurias joined 19:01 FROGGS[mobile] left
colomon gtodd: you working on fixing things? 19:04
19:05 cognominal left 19:06 cognominal joined
colomon gtodd: errr, actually my tests show SVG::Plot already works, no fixes needed 19:12
19:12 domidumont left
dalek p-jvm-prep: 4c3618d | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java:
Ensure SC is cleared when cloning P6opaque.
19:13
p-jvm-prep: 31ea5f0 | jnthn++ | nqp-src/NQP.pm:
Add missing stringification.
colomon gtodd: current version of SVG::Plot does not use Test::CSV::Simple 19:14
gtodd: I just had no problem installing it using pandabrew. 19:15
19:16 grondilu left 19:25 sqirrel left
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
FROGGS pmurias: well, I'd say none if there is no mentor 19:26
but maybe there is?
pmurias FROGGS: did you solve that issue? 19:27
19:27 betterwo1ld left
pmurias FROGGS: the one yoleaux reported? 19:27
FROGGS nope 19:28
but it is currently not a show-stopper
19:29 renormalist left
pmurias isn't the statement rules supposed to change after 'use v5' has ended? 19:32
19:33 renormalist joined
pmurias FROGGS: ah, I understand the bug now 19:34
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'
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
pmurias even compiling Perl 6 to JavaScript? ;) 19:37
arnsholt I can probably be convinced to mentor a NativeCall related project
If you don't ask, you won't find out =)
FROGGS arnsholt: ahh, you're talking about gsoc 19:38
sad there is no perl, just parrot 19:39
arnsholt Oh, hang on. I read parrot but my registered perl 19:41
In that case I'm not sure
lue could've sworn that TPF would be there 19:43
19:48 DreamingInCode joined
FROGGS well, still four orgs missing in the table 19:50
dalek p-jvm-prep: 9b6b90e | jnthn++ | lib/QAST/JASTCompiler.nqp:
Thou shalt not mutate the node you're compiling.
19:54
19:57 PacoAir left
ingy is the ubuntu-precise rakudo worth using? 19:57
gtodd colomon: I working on trying to use things :) ...
masak ingy: how recent is it? 19:58
ingy This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0 19:59
is there a debian ppm for p6?
dalek p/jvm-support: f4d6baa | jnthn++ | src/QRegex/Cursor.nqp:
Conditional comp bits in Cursor.
20:00
p/jvm-support: 1a01251 | jnthn++ | src/NQP/World.nqp:
Stringification fixes in NQP World.
p/jvm-support: 23253fc | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6OpaqueBaseInstance.java:
Sync nqp-jvm-prep P6opaque fix.
jnthn ingy: That's...really old.
ingy: A lot has improved/changed etc. since then.
gtodd colomon: the spec test example for SVG::Plot still uses Test::CSV::Simple so I wanted to make that example work without it
ingy is there a debian ppm for p6? :) 20:01
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
dalek p/jvm-support: bd15ebf | jnthn++ | src/vm/jvm/stage0/ (10 files):
Update JVM stage0 from latest nqp-jvm-prep.
20:03
p/jvm-support: 95903d5 | jnthn++ | tools/build/Makefile-JVM.in:
Build stage 1 setting, QASTNodes, QRegex.
gtodd colomon: my ulterior motive is simply to learn more about perl6 :)
lue kinda hopes jnthn will blog when NQP conversion is complete. 20:05
masak I'm pretty sure ++jnthn won't neglect to blog about that milestone ;) 20:07
jnthn Yeah, I'll blog when I'm through with this bit :) 20:08
timotimo is that still today? 20:09
moritz spectests timotimo++'s latest pull request
gtodd: re SVG::Plot, I have no idea if too much list-y stuff has changed or not 20:10
last time I tried, it mostly worked
masak jnthn: just in case someone hasn't told you in the last half hour: you rock. :) 20:11
jnthn :P
moritz though it's a bit tricky to get the input arrays-of-arrays right
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:12
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)
camelia rakudo 5122e2: ( no output )
timotimo okay, then i can go to bed :) 20:15
tadzik jnthn: you and your work are awesome. Keep it up!
gtodd r: 1/3.Num.say
camelia rakudo 5122e2: OUTPUT«3␤»
20:15 rindolf left
FROGGS r: (1/3).Num.say 20:15
camelia rakudo 5122e2: OUTPUT«0.333333333333333␤» 20:16
gtodd so .... perlito .... 20:18
timotimo what about it? 20:25
gtodd moritz: just fiddling with the example github.com/moritz/svg-plot/blob/ma...rogress.pl to change out the CSV::Simple 20:26
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 ?
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.
geekosaur or more accurately the reverse
box->op->unbox->box->op->unbox...
20:28 DreamingInCode left
timotimo oh, well that's an answer. 20:28
could that be helped by adding more multi candidates for basic arithmetic for unboxed nums and friends? 20:29
geekosaur likely. profiling would tell you where they're most needed 20:30
timotimo it really didn't :)
cognominal jnthn++ 20:31
timotimo okay, bedtimey times :)
gtodd timotimo: I sometimes try examples I see pasted in here but they rarely work in perlito 20:32
colomon r: say 1..10 20:36
camelia rakudo 5122e2: OUTPUT«1..10␤»
colomon jnthn: any feel for how hard it would be to make \N ** {0..$text-width} work in Rakudo? 20:39
masak colomon: might want to workaround that with an assertion for now. 20:40
hm, but you probably already know that ;)
jnthn colomon: Needs regex engine hacking. 20:41
colomon masak: I've never seen a workaround that actually worked for that.
masak: so feel free to suggest.
20:42 DreamingInCode joined, DreamingInCode left
colomon masak: (Or possibly the problem I had was the workarounds wouldn't work in Niecza?) 20:42
20:43 DreamingInCode joined, DreamingInCode left, DreamingInCode joined
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␤»
masak colomon: voila.
cognominal arf, java on mac seems to be 1.6.0_43
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 => 「 」␤␤»
..rakudo 5122e2: OUTPUT«===SORRY!===␤Quantifier quantifies nothing␤at /tmp/Zyu_KLsFTj:1␤------> h = 6; say "This is a test" ~~ / (\N ** ⏏{0..$text-width}) ( \s | $ ) /;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-i…
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 …
..rakudo 5122e2: OUTPUT«No such method 'chars' for invocant of type 'Any'␤ in block at /tmp/QhoSX_hJlo:1␤␤»
cognominal apparently I must go to oracle.com to get a newer java
colomon rn: my $text-width = 6; say "This is a test" ~~ / ((\N*) <?{ $0.chars ~~ 0..$text-width}> ) ( \s | $ ) /;
camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«「This 」␤ 0 => 「This」␤ 0 => 「This」␤ 1 => 「 」␤␤»
20:47 pr0` joined
colomon ah, maybe that will work. hmmm. 20:47
masak ( \s | $ ) maybe better written >> 20:48
colomon masak++ 20:49
wait, what's that last bit?
> > 20:50
?
masak >> is a right-side word boundary.
colomon is trying to get Text-Tabs-Wrap working again 20:51
flussence I have half a mind to redo Text::Wrap from scratch... 20:54
21:00 kaare_ left
colomon masak++'s workaround there has most of the tests running again. 21:08
masak bows
I'm glad I blurted it out. :) 21:09
colomon flussence: hold on a sec and I'll send you a pull request. 21:12
flussence alrighty 21:13
21:13 pecastro_ joined, pecastro left
colomon flussence: done, I think. been a while since I actually generated a pull request. :) 21:14
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.
flussence to be honest, I don't completely understand it either :)
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:18
21:20 bruges_ left 21:22 bruges joined
japhb is still backlogged, but before the UTC+n crowd head to bed ... 21:25
moritz, let me add my best wishes for your wife's rapid and excellent recovery
FROGGS, the p5/p6 benchmarking repo you're thinking of is probably mine. 21:26
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.
timotimo, in 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:27
masak japhb++ 21:28
japhb jnthn, in 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
21:29 DreamingInCode left
jnthn japhb: It didn't; thinko; fixed in a later commit 21:29
japhb jnthn, ah gotcha 21:30
also, in 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
jnthn japhb: yeah, that typo has been in there for ages... 21:31
japhb :-)
japhb continues backlogging where he left off at 15:55 (log time). :-) 21:32
dalek rl6-roast-data: d158c81 | coke++ | / (4 files):
today (automated commit)
21:37
rl6-roast-data: 501f0d3 | coke++ | / (4 files):
today (automated commit)
21:44 kurahaupo joined
dalek ast: 3117f5b | coke++ | S11-modules/require.t:
pugs fudge
21:45
FROGGS japhb: ya, noticed that 21:50
masak 'night, #perl6 22:01
FROGGS gnight masak
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 22:11 tgt left 22:14 bbkr left
[Coke] jnthn++ 22:15
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…
tadzik . o O ( Crap.pm: die "Obviously you mean Carp... or did you?" ) 22:21
cognominal has C< :/$a for :a($<a>) > been ever discussed ? 22:23
that would be a nice addition, I could use in Actions classes 22:24
FROGGS :a( <-- is that some sort of smiley? ms piggy perhaps? 22:26
cognominal oops
I meant
has C< :/$a > for C< :a($<a>) > been ever discussed ? 22:27
FROGGS what should that do?
cognominal r: say :a(1).perl
camelia rakudo 5122e2: OUTPUT«"a" => 1␤»
22:28 dmol1 joined
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, wooden left, wooden joined
cognominal Nope the code is inside the C< > "formatting" instructions. Consider only my last statement. 22:30
FROGGS I'd prefer :$<a> over :/$a 22:32
:/$a is not that intuitive somehow 22:33
cognominal r: :$<a> 22:34
camelia rakudo 5122e2: OUTPUT«===SORRY!===␤Bogus statement␤at /tmp/e9SwWCzc9e:1␤------> :$⏏<a>␤ expecting any of:␤ colon pair␤»
cognominal FROGGS: I agree :$<a> is more consistent 22:36
22:36 Guest92075 left 22:38 tgt joined, pmurias left 22:42 LlamaRider left
FROGGS cognominal: btw, I'd like it to have 22:47
cognominal ??
22:48 araujo left, dmol1 left
cognominal FROGGS: did you meant you'd like the feature, with your better syntax? 22:48
FROGGS yes 22:49
because it feels like it has to be there
jnthn enough bug hunt for tonight... 22:50
'night o/
22:50 pr0` left
cognominal jnthn++ 22:50
22:51 system joined
FROGGS gnight jnthn 22:51
22:51 system is now known as Guest62409 22:57 araujo joined 22:58 tgt left 23:07 berekuk left
diakopter rn: say 3 23:08
camelia rakudo 5122e2, niecza v24-37-gf9c8fc2: OUTPUT«3␤»
cognominal good night 23:18
23:21 adu_ left 23:28 berekuk joined 23:42 berekuk left