»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
moritz \o 02:29
[Coke] morning 02:31
moritz [Coke]: I had kinda hoped that updating star's NQP::Configure takes care of the nqp rename 02:32
but I guess I have to try again :-) 02:33
moritz eeks, Configure.pl in star seems to be mostly a copy of rakudo's Configure.pl 02:37
raiph r: say sprintf ( "%b", 1000 ) 02:42
camelia rakudo-jvm 882e33: OUTPUT«Nominal type check failed for parameter '$x'␤ in any directive:sym<b> at gen/jvm/stage2/NQPHLL.nqp:2139␤ in any !reduce at gen/jvm/stage2/QRegex.nqp:710␤ in any !cursor_pass at gen/jvm/stage2/QRegex.nqp:674␤ in any !protoregex at gen/jvm/stage2/…» 02:43
..rakudo-parrot 1d15c6: OUTPUT«Nominal type check failed for parameter '$x'; expected Any but got NQPMu instead␤ in method mine at gen/parrot/CORE.setting:3253␤ in any at gen/parrot/stage2/NQPHLL.nqp:2133␤ in any intify at gen/parrot/stage2/NQPHLL.nqp:2131␤ in any directi…»
raiph r: say sprintf ( "a", 1000 )
camelia rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«a 1000␤»
raiph r: say sprintf ( "%d", 1000 )
camelia rakudo-jvm 882e33: OUTPUT«Nominal type check failed for parameter '$x'␤ in any directive:sym<d> at gen/jvm/stage2/NQPHLL.nqp:2156␤ in any !reduce at gen/jvm/stage2/QRegex.nqp:710␤ in any !cursor_pass at gen/jvm/stage2/QRegex.nqp:674␤ in any !protoregex at gen/jvm/stage2/…»
..rakudo-parrot 1d15c6: OUTPUT«Nominal type check failed for parameter '$x'; expected Any but got NQPMu instead␤ in method mine at gen/parrot/CORE.setting:3253␤ in any at gen/parrot/stage2/NQPHLL.nqp:2133␤ in any intify at gen/parrot/stage2/NQPHLL.nqp:2131␤ in any directi…»
geekosaur space? 02:44
r: say sprintf("%d", 1000)
camelia rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«1000␤»
raiph r: say sprintf ( "%b", 1 )
camelia rakudo-parrot 1d15c6: OUTPUT«Nominal type check failed for parameter '$x'; expected Any but got NQPMu instead␤ in method mine at gen/parrot/CORE.setting:3253␤ in any at gen/parrot/stage2/NQPHLL.nqp:2133␤ in any intify at gen/parrot/stage2/NQPHLL.nqp:2131␤ in any directi…»
..rakudo-jvm 882e33: OUTPUT«Nominal type check failed for parameter '$x'␤ in any directive:sym<b> at gen/jvm/stage2/NQPHLL.nqp:2139␤ in any !reduce at gen/jvm/stage2/QRegex.nqp:710␤ in any !cursor_pass at gen/jvm/stage2/QRegex.nqp:674␤ in any !protoregex at gen/jvm/stage2/…»
moritz still LTA error message 02:45
geekosaur true
raiph oops. i thought i was doing that privately!
(and i missed geekosaur++'s explanation at first) 02:47
raiph r: say sprintf ( "a", 1000 ) # this shoulda clued me in 02:47
geekosaur I was a bit terse there though 02:48
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 1d15c6: OUTPUT«a 1000␤»
TimToady n: say sprintf ( "%b", 1 ) # curious 03:07
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Not enough arguments for this format string␤ at /home/p6eval/niecza/lib/CORE.setting line 1403 (sprintf @ 4) ␤ at /tmp/T5p9CEmzS7 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at…» 03:07
TimToady heh
pugs: say sprintf ( "%b", 1 ) # curious 03:08
camelia pugs: OUTPUT«*** Insufficient arguments to sprintf␤ at Prelude.pm line 668, column 13-53␤»
dalek ar: cc5c2b1 | moritz++ | / (11 files):
start to adapt build to multiple backends
03:20
lue r: say '"a\"b"'; say '"a\"b"' ~~ /\" [<!before <!after \>\"> \N]+ \"/ 03:54
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 03:55
..rakudo-parrot 1d15c6: OUTPUT«===SORRY!=== Error while compiling /tmp/ISlYpUEwjL␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/ISlYpUEwjL:1␤------> a\"b"' ~~ /\" [<!before <!after \>\"> \N⏏]+ \"/␤ …»
lue r: say '"a\"b"'; say '"a\"b"' ~~ /\" [<!before <!after \\>\"> \N]+ \"/
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
..rakudo-parrot 1d15c6: OUTPUT«"a\"b"␤「"a\"b"」␤␤»
lue p: say '"a\"b"'; say '"a\"b"' ~~ /\" ~ \" [<!before <!after \\>\"> \N]+/ 04:00
camelia rakudo-parrot 1d15c6: OUTPUT«"a\"b"␤「"a\"b"」␤␤»
TimToady blog.booking.com/hardening-perls-ha...ction.html 04:07
lue Bah. I can't figure out why that regex only works sometimes (and never in the *one situation* I need it to :/) 04:14
TimToady it won't work consistently because you're not consistently doing one-pass parsing 04:19
doing lookbehind for \ is just wrong if there's another \ before that 04:20
lue makes sense. Does that apply to stuff like [<!before \"> \N | \\\"]+ too?
lue thinks he should probably look at how Perl 6 has managed to deal with this :) 04:21
TimToady before is generally fine
as long as you don't get too fancy
p6 uses a . nibbler for things that aren't escapes, and a \ just escapes whatever is after it 04:22
so it automatically figures out whether there are an even or odd number of \ and does the right thing 04:23
in STD.pm6, token nibbler is at line 442 or so 04:24
TimToady p: say '"a\"b"'; say '"a\"b"' ~~ /\" ~ \" [<!before \"> [ \\ . | . ]* / 04:29
camelia rakudo-parrot 1d15c6: OUTPUT«===SORRY!=== Error while compiling /tmp/OIbeefHzb_␤Unable to parse expression in metachar:sym<[ ]>; couldn't find final ']' ␤at /tmp/OIbeefHzb_:1␤------> ~~ /\" ~ \" [<!before \"> [ \\ . | . ]* ⏏/␤ expect…»
TimToady p: say '"a\"b"'; say '"a\"b"' ~~ /\" ~ \" [<!before \"> [ \\ . | . ]]* /
camelia rakudo-parrot 1d15c6: OUTPUT«"a\"b"␤「"a\"b"」␤␤»
lue Times like this remind me that regexes are, in fact, a whole 'nother programming language :) 04:35
TimToady only in nibbler it's basically just [<!before <stopper>> [ <escape> || . ]]* 04:45
and different quoting languages can define <escape> however they like 04:46
it does variable interpolation and \t thingies too
ssutch does it produce antimatter? 04:47
TimToady very small amounts
not enough to do a PET scan on your computer, alas 04:48
ssutch :)
TimToady y'know, with PET scans and CAT scans, they really should have tried harder to make MRI come out to DOG scans 04:49
ssutch hah! 04:50
TimToady or maybe GERBIL scans
geekosaur sadly the original (NMR) is even harder to twist 04:52
lue TimToady: Dipolar Oscillation Graphicalization 04:54
TimToady lue++ 04:55
lue (maybe graphicalizationing is closer to imaging)
.oO(GERBIL == GERBIL Electromagnetic Resonance Body Imaging Lab)
04:56
lue
.oO(The system en_US.UTF-8 Compose file is *very* large)
05:21
diakopter I thought mri was a real dog already.... 05:54
FROGGS np: say ().perl 08:28
p: say ().perl
camelia rakudo-parrot 1d15c6: OUTPUT«()␤»
FROGGS p: say ().item.perl
camelia rakudo-parrot 1d15c6: OUTPUT«$()␤»
FROGGS p: class Cake { }; "a" ~~ /{ make Cake }/; say $/.ast; say $() # bug 08:37
camelia rakudo-parrot 1d15c6: OUTPUT«(Cake)␤␤»
FROGGS jnthn: you don't have libicu on windows by any chance? 08:40
FROGGS hmmm, we could ship the dlls..., and when nqp does a --gen-parrot or so, we just place it in include/bin (or we just put there by default) 08:42
masak mornin', #perl6 09:01
jnthn preflex: tell FROGGS no, it was too much of a pain. 09:03
preflex Consider it noted.
FROGGS jnthn: but don't you think it is worth the pain? 09:10
preflex FROGGS: you have 1 new message. '/msg preflex messages' to read it.
jnthn FROGGS: Well, I did my share of Parrot/ICU/Windows related pain already, so not to me. But I'm fine if somebody else wants to get it working. :) 09:15
FROGGS *g* 09:16
k
jnthn is happy that Moar has Unicode stuff built in, so everybody gets it automatically :) 09:17
FROGGS absolutely 09:18
just make it pass the spectest then :P
jnthn :P
dalek kudo/nom: d916dbe | (Tobias Leich)++ | src/core/Parcel.pm:
RT #117425, fixes .perl for empty itemized Parcel
09:23
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117425
FROGGS nr: say ().item.perl
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 09:24
..rakudo-parrot 1d15c6, niecza v24-98-g473bd20: OUTPUT«$()␤»
moritz that's wrong, isn't it? 09:25
FROGGS it is 09:25
moritz I seem to recall $() being a shorthand for $/.?ast or something
FROGGS the patch turns it int $( ) 09:26
$() is $/.ast // ~$/
p: class Cake { }; "a" ~~ /{ make Cake }/; say $/.ast; say $() # not correct either
camelia rakudo-parrot 1d15c6: OUTPUT«(Cake)␤␤»
FROGGS at least, I think 09:27
moritz why the bloody hell does a java process survive a kill -9 ?
rj: say 42 09:28
dalek ast: d78543c | (Tobias Leich)++ | S02-types/parcel.t:
tests for ().perl/().item.perl, RT #117425
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117425
camelia rakudo-jvm 882e33: OUTPUT«42␤»
moritz ... and is then listed as having VIRT 0 RES 0 09:30
FROGGS moritz: since you are on that server... can you upgrade moarvm+nqp-m? 09:35
nqp-m: say(nqp::backendconfig<version>)
camelia nqp-moarvm: OUTPUT«2013.10-112-ge3e33c2␤»
FROGGS r: sub foo ($bar :D) { 1; } 09:36
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!===␤Can not invoke this object␤»
..rakudo-parrot 1d15c6: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::Op'␤»
FROGGS hmmm, maybe $() behaves correctly... specs/S05-regex.pod:C<$()> is a shorthand for C<$($/.ast // ~$/)> 09:40
felt just weird
moritz r: 'foo' ~~ /.* {make 'bar' } /; say $()
camelia rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«bar␤»
moritz r: 'foo' ~~ /.* {make Int } /; say $() 09:41
camelia rakudo-parrot 1d15c6, rakudo-jvm 882e33: OUTPUT«foo␤»
moritz yes, looks correct
FROGGS k, thanks
jnthn p: class Cake { }; "a" ~~ /{ make Cake.new }/; say $/.ast; say $() 09:42
camelia rakudo-parrot 1d15c6: OUTPUT«Cake.new()␤Cake.new()␤»
FROGGS yes, it was just about the type object
jnthn *nod*
moritz FROGGS: re nqp-m on camelia, I can update it, but it would be so much easier if rakudo/moar-supported landed :-) 09:43
FROGGS moritz: true :o)
moritz then I can just use Configure.pl --backends=parrot,jvm,moar and not maintain a separate compilation dir
FROGGS but I guess we will live with the current situation for a few weeks 09:44
moritz nqp-m: say(nqp::backendconfig<version>) 09:52
camelia nqp-moarvm: OUTPUT«2013.10-120-gb08a229␤»
FROGGS \o/ 09:53
moritz++ # thank you :o)
FROGGS nqp: say(say ~~ Callable) 10:53
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1␤»
FROGGS nqp: say(int ~~ Callable)
camelia nqp-parrot: OUTPUT«No type check cache and no type_check method in meta-object␤current instr.: 'ACCEPTS' pc 9897 (gen/parrot/stage2/NQPCORE.setting.pir:4487) (gen/parrot/stage2/NQPCORE.setting:584)␤»
..nqp-moarvm, nqp-jvm: OUTPUT«0␤»
FROGGS how can I safely check if something is allable? 10:54
how can I safely check if something is callable?
masak r: sub foo {}; say &foo ~~ Callable
camelia rakudo-parrot d916db, rakudo-jvm 882e33: OUTPUT«True␤» 10:55
masak oh, you want to do it in NQP.
FROGGS: maybe check a place in the grammar/actions that does this?
FROGGS will do, thanks :o) 10:56
Woodi hi all :)
FROGGS hi Woodi
Woodi ad. TimToady++ link on booking.com: maybe keys/each randomization via alfabetical/numerical sorting would be enough to hide "natural" keys order ? and will be looong awaiting Perl feature too ;) 10:57
but then probably timing attack will be possible... 10:58
FROGGS a predictable sorting is a weird kind of randomization :o)
Woodi and ad. sleep depravation: maybe in the mood of making talks like "how to talk to managers" it is possible to invite some special forces officer and ask him how to sustain longer periods without/with only a nap ? :) assuming they know that, maybe military guys just fill the pain and not have any special technique to dil with that :) 11:01
becouse I always thinked that geek lifestyle is just a normal life with gadgets :) 11:03
FROGGS *g* 11:03
Woodi what ? :)
FROGGS about the lifestyle :o) 11:04
Woodi just borrow knowhow from secret services and make it everyday and everyone habits :) 11:06
maybe filter some useless things... 11:08
jnthn FROGGS: nqp::isinvokable 11:17
jnthn r: knowhow Everyday { } 11:18
camelia ( no output )
FROGGS ahh, I grepped for 'invoke' 11:28
jnthn Darn morphology 11:32
moritz just listed to www.drabblecast.org/2013/10/03/drab...hbors-dog/ in his lunch break, and really liked it 11:43
FROGGS Q: should these two do the same? sub foo ($bar :Int) { 1; } and sub foo ($bar : Int) { 1; } 12:57
FROGGS TimToady: ^^ ? 13:05
nr: sub foo ($bar : Int) { 1; }; foo("a") # wth is that anyway? 13:06
camelia rakudo-jvm 882e33: OUTPUT«java.lang.NullPointerException␤ in sub foo at /tmp/4Rgl1jE5E7:1␤ in block at /tmp/4Rgl1jE5E7:1␤ in any eval at gen/jvm/stage2/NQPHLL.nqp:1086␤ in any evalfiles at gen/jvm/stage2/NQPHLL.nqp:1292␤ in any command_eval at gen/jvm/stage2/NQPHLL.n…»
..rakudo-parrot d916db: OUTPUT«Lexical 'self' not found␤ in sub foo at /tmp/ymF2H3hAj2:1␤ in block at /tmp/ymF2H3hAj2:1␤ in any at /tmp/ymF2H3hAj2:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any evalfiles at…»
..niecza v24-98-g473bd20: OUTPUT«Potential difficulties:␤ $bar is declared but not used at /tmp/dpTEoY6xXn line 1:␤------> sub foo (⏏$bar : Int) { 1; }; foo("a") # wth is th␤␤Unhandled exception: No value for parameter '' in 'foo'␤ at /tmp/dpTEoY6xXn l…»
moritz FROGGS: it's a sub foo with parameter $bar marked as invocant, and an anonymous Int parameter 13:08
FROGGS ahh 13:09
so I should read it: foo ($bar: Int)
moritz (the invocant parameter also explains why r-p tries to access 'self')
FROGGS: correct
FROGGS so what do I do with this one? rt.perl.org/Ticket/Display.html?id=117417 13:10
moritz r: sub foo($bar :D) { }
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!===␤Can not invoke this object␤»
..rakudo-parrot d916db: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::Op'␤»
FROGGS my patches rakudo does not try to invoke the QAST::Op... but I dunno what it should do instead 13:11
moritz r: D
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/vIpRhDVLmH␤Undeclared name:␤ D used at line 1␤␤»
..rakudo-parrot d916db: OUTPUT«===SORRY!=== Error while compiling /tmp/xQVv0pspME␤Undeclared name:␤ D used at line 1␤␤»
moritz that's what it should do, IMHO
std: sub foo($bar :D) { }
camelia std 8adbc60: OUTPUT«Potential difficulties:␤ $bar is declared but not used at /tmp/jHC4BYHmyc line 1:␤------> sub foo(⏏$bar :D) { }␤ok 00:01 124m␤»
moritz std: sub foo($bar :D) { $bar }
camelia std 8adbc60: OUTPUT«ok 00:01 125m␤»
moritz wth does std parse it as?
subsignature?
FROGGS as type_constraint 13:12
err, no
moritz std: D
camelia std 8adbc60: OUTPUT«===SORRY!===␤Undeclared name:␤ 'D' used at line 1␤Check failed␤FAILED 00:01 120m␤»
moritz std: sub foo($bar :D) { D }
camelia std 8adbc60: OUTPUT«===SORRY!===␤Undeclared name:␤ 'D' used at line 1␤Potential difficulties:␤ $bar is declared but not used at /tmp/YGTohZBzae line 1:␤------> sub foo(⏏$bar :D) { D }␤Check failed␤FAILED 00:01 125m␤»
jnthn r: sub foo($bar : D) { } 13:14
camelia rakudo-parrot d916db: OUTPUT«===SORRY!=== Error while compiling /tmp/TPpTA0cff1␤Invalid typename 'D' in parameter declaration.␤at /tmp/TPpTA0cff1:1␤------> sub foo($bar : D⏏) { }␤»
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/RnaNhFkvvC␤Invalid typename 'D' in parameter declaration.␤at /tmp/RnaNhFkvvC:1␤------> sub foo($bar : D⏏) { }␤»
jnthn std: sub foo($bar : D) { }
camelia std 8adbc60: OUTPUT«===SORRY!===␤In parameter declaration, typename 'D' must be predeclared (or marked as declarative with :: prefix) at /tmp/lGVwGteIRM line 1:␤------> sub foo($bar : D⏏) { }␤Parse failed␤FAILED 00:01 123m␤»
jnthn std: sub foo($bar :wtf) { } 13:15
camelia std 8adbc60: OUTPUT«Potential difficulties:␤ $bar is declared but not used at /tmp/XeS3JW4dhG line 1:␤------> sub foo(⏏$bar :wtf) { }␤ok 00:01 124m␤»
jnthn hmm
FROGGS it is just a colonpair within the trait 13:16
I guess the grammar needs some tweaks :o) 13:18
jnthn I guess sub foo($x :rw) { } is just anothre way to write sub foo($x is rw) { } :) 13:24
FROGGS and I guessed :($x : Int) would mean :(Int $x) 13:25
jnthn No.
It means $x as invocant, and then an anon Int :)
s/Int/Int param/
FROGGS bah, you're just quoting moritz++ :o) 13:28
dalek ast: c8bf154 | (Elizabeth Mattijsen)++ | S02-types/parcel.t:
Fix spaco: $() is the same as $( ) is it not?
13:51
dalek kudo/nom: 158e905 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
Remove superfluous -if-
13:52
timotimo lizmat: froggs put that space there, because $() means $/.?ast and hopefully $( ) means ().item 13:53
FROGGS lizmat: an you please revert c8bf1544d6? 13:55
lizmat oh? 13:56
sure
why?
FROGGS lizmat: see what timotimo said
$() is something else than $( )
lizmat must backlog some more then 13:57
FROGGS lizmat: <timotimo> lizmat: froggs put that space there, because $() means $/.?ast and hopefully $( ) means ().item
lizmat thing is, that test just failed on parakudo
FROGGS lizmat: you'd need to pull nom then
jnthn isn't too hopeful :P
FROGGS p: say ().item.perl 13:58
camelia rakudo-parrot d916db: OUTPUT«$( )␤»
FROGGS see?
dalek ast: 1727635 | (Elizabeth Mattijsen)++ | S02-types/parcel.t:
Revert "Fix spaco: $() is the same as $( ) is it not?"

See irclog.perlgeek.de/perl6/2013-11-07#i_7826186
FROGGS thank you :o)
lizmat yw, sorry for the noise 13:59
FROGGS np
dalek kudo-star-daily: f256a8e | coke++ | log/version.log:
today (automated commit)
14:09
kudo-star-daily: e3d5959 | coke++ | log/version.log:
today (automated commit)
kudo-star-daily: 7e15317 | coke++ | log/version.log:
today (automated commit)
kudo-star-daily: 7d19c1d | coke++ | log/ (2 files):
today (automated commit)
kudo-star-daily: 55e665a | coke++ | bin/star.sh:
track changes to rakudo build process.
[Coke] moritz: github.com/rakudo/star/commit/cc5c...b23faef396 also upgrade a bunch of modules. intentional? 14:10
er, those might be down or sidegrades, I dunno.
moritz [Coke]: not intentional, but also not harmful
[Coke]: thanks for asking
[Coke] We should get a useful run of rakudo-star-daily today. yay. 14:11
moritz++
FROGGS cool! 14:15
[Coke] so, my issue was a combination of the github urls (they triggered a request for auth, which means they never got cloned properly via cron, so anything that touched them later died) and bad error handling in my script. 14:18
looks like it's made it as far as building rakudo-latest, I'll check in on it later today and try to remember to do a push. 14:19
dalek rl6-roast-data: e9f361d | coke++ | / (3 files):
today (automated commit)
rl6-roast-data: e847b2e | coke++ | / (5 files):
today (automated commit)
[Coke] ~~ 14:20
FROGGS p: my $foo = '*'; say "q*" ~~ / q <$foo> / # lol 14:25
camelia rakudo-parrot d916db: OUTPUT«Failed allocation of 1160118272 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/gc_gms.c, line 1974␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use…» 14:26
moritz so FROGGS, maybe should should notify the Parrot team :-)
FROGGS *g*
^----- again such a quantifier O.o
moritz my hypothesis is that it somehow quantifies the null string
and then produces many cursors 14:27
FROGGS p: "" ~~ / * / # this works though
camelia rakudo-parrot d916db: OUTPUT«===SORRY!=== Error while compiling /tmp/RH5GGLL2U2␤Quantifier quantifies nothing␤at /tmp/RH5GGLL2U2:1␤------> "" ~~ / *⏏ / # this works though␤ expecting any of:␤ postfix␤ infix stopper…»
moritz but then, why would it try to allocate so much memory at once?
p: say 'a' ~~ / ''* /
camelia rakudo-parrot d916db: OUTPUT«Failed allocation of 850624512 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/gc_gms.c, line 1974␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use …»
FROGGS j: say 'a' ~~ / ''* / 14:28
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
FROGGS j: say 1
:/
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
moritz any idea how I can make rakudo-jvm more robust? 14:29
camelia + rj, that is
FROGGS no, my exp with rj is very limited
masak moritz: I don't have any idea, but... is it known why rj is currently *not* robust? 14:50
if it's not known, my idea would simply be "find out why"... :) 14:51
lizmat having installed javac this weekend at the APW, I found that I could not run the spectest
on jakudo
jnthn Well, what the two have in common is the eval server.
lizmat after ~10 tests, it just starts eating all memory
jnthn Any test ran without that was fine, and that's how the spectets are run. 14:52
moritz masak: one problem is that the resource limits (CPU, memory) don't apply to the evalserver, because it runs in a separate process
and yes, the evalserver seems to accumulate memory
lizmat also: just a simple (^20000).join(",").split(",") makes it take up to 500% CPU at one point
so I would assume there is some mem fragmentation / gc issue
lizmat as I could only envision it taking 200% CPU (one for the main thread, one for the "normal" gc) 14:53
jnthn Well, we don't know how many GC threads it's actually running :)
moritz also it could be JITting in a thread 14:54
no idea if it does
jnthn also that.
It may well do. It's a fairly obvious thing to do.
moritz if even *I* got the idea :-)
lizmat well, it is so bad, that I wouldn't be able to do the release in ~ 2 weeks 14:55
as I won't be able to spectest it before release
so at least we need some way to make the spectest run 14:56
if that is slower and serial, that's ok with me :-)
jnthn lizmat: Well, roast does it without the evalserver 14:57
lizmat: But I would like to find out why/when/how it regressed
As it used to be quite reliable
diakopter lizmat: well, which jvm is it 14:58
moritz fwiw I have those problems with OpenJDK
and camelia has these problems with Oracle's JDK, iirc
jnthn I reproduced it with Oracle's one also
lizmat $ javac -version 14:59
javac 1.7.0_45
timotimo i'm wondering if there has been any progress on JVM class allocation counting for rakudo 15:25
dalek ecs: 0b52065 | (Carl Mäsak)++ | S17-concurrency.pod:
[S17] unspec $*TICK

It's problematic in that it assumes a single global scheduler. It also seems to punish the many for a feature only benefiting the few.
There are preferable ways to handle this, perhaps something like Supply.interval(:at(now.ceiling), :every(1))
15:26
lizmat masak: wrt to punishing, that's an implementation detail 15:28
$*TICK *could* just come into operation whenever the first .tap on it is done
jnthn I agree we coulda found a way to not make it punishing. 15:29
lizmat p: "abcdef".split("", :limit(3) ).elems.say # shouldn't this say "3" ? 15:30
camelia rakudo-parrot 158e90: OUTPUT«6␤»
jnthn But mostly I think Supply.blah is a better API for it.
timotimo p: "abcdef".split("", :limit(3)).perl.say
camelia rakudo-parrot 158e90: OUTPUT«("a", "b", "c", "d", "e", "f").list␤»
jnthn lizmat: I don't remember :limit, but it's in the spec... :)
timotimo i think it should say 4 actually
split 3 times, gives 4 pieces? 15:31
lizmat oddly enough, I could not find what limit means
TimToady not that Instant.ceiling is actually defined...
timotimo well, let's make something up and write it in the spec! :)
lizmat in any case, :limit seems ignored on .split 15:32
TimToady p: "abcdef".split('', 3).say 15:33
camelia rakudo-parrot 158e90: OUTPUT«a b cdef␤»
TimToady that because it's a positional argument
lizmat argh
indeed
PerlJam masak: $*TICK would have been fine if it was indexed to the clock of the long now (longnow.org/clock)
:-)
TimToady :snapto(year) 15:34
DateTime.tap(:every(month) 15:36
lizmat p: "abcdef".split("",0).say 15:37
camelia rakudo-parrot 158e90: OUTPUT«␤»
lizmat p: "abcdef".split("",1).say
camelia rakudo-parrot 158e90: OUTPUT«abcdef␤»
TimToady a fancy way to say x 0 or x 1 :)
lizmat ok, so a limit of 0 returning "" is correct ? 15:38
TimToady thinks it's meaningless
lizmat p: "abcdef".split("",1).WHAT.say
camelia rakudo-parrot 158e90: OUTPUT«(List)␤»
lizmat p: "abcdef".split("",0).WHAT.say
camelia rakudo-parrot 158e90: OUTPUT«(List)␤»
TimToady so returning "" is as good as anything
lizmat actually, it's an ampty list return it seems 15:39
timotimo that makes a bit more sense than ""
retupmoca 222222222222222222222222222 15:42
diakopter r: $222222222222222222222222222
camelia ( no output ) 15:43
..rakudo-parrot 158e90: OUTPUT«Cannot use negative index -9223372036854775808 on Nil␤current instr.: 'throw' pc 403519 (src/gen/p-CORE.setting.pir:169516) (gen/parrot/CORE.setting:10565)␤called from Sub 'sink' pc 439572 (src/gen/p-CORE.setting.pir:182740) (gen/parrot/CORE.setting:…»
diakopter r-j: say $222222222222222222222222222
camelia rakudo-jvm 882e33: OUTPUT«(Any)␤»
diakopter r-j: say $22222222222222222222222222222222222222222222222222222222222 15:43
camelia rakudo-jvm 882e33: OUTPUT«(Any)␤»
diakopter heh, ok
TimToady I guess that makes Perl a "sign language" on JVM 15:47
jnthn decomanatee & 16:00
lizmat
.oO( that would need a *big* aquarium, just to be decorative )
16:02
pmichaud good morning, #perl6 16:16
timotimo so, i was wondering. could string constants get a fast path for string-equals operations?
and would that likely make any difference at all?
lizmat pmichaud o/
timotimo hm. string constants are just interned on a per-compunit (i think?) basis, so in order to make it any faster in "real life" it would probably have to do a leader-selection for all string constants when ... i guess deserializing? 16:24
pmichaud p: "abcdef".split("",1).perl.say
camelia rakudo-parrot 158e90: OUTPUT«("abcdef",).list␤»
timotimo does the optimisation make sense? i was thinking it could help with named parameters, method/class/symbol names or something 16:26
hm, but then it would probably need to make hash access faster, rather than string comparison, and that wouldn't help much, would it?
PerlJam pmichaud: o/ 16:28
timotimo oh, and pmichaud o/ 16:35
now i'm wondering if perhaps rakudo/nqp is somehow bad at boxing/unboxing in a way that i could fix 16:36
but i'm having a hard time coming up with a test for that
i mean, even if i write code to box/unbox an int a thousand times, how would i know if that's taking too long, or is okay? except if it's really pathologically slow 16:39
pmichaud timotimo: the real question to ask at this point is "is boxing/unboxing a significant portion of running a program?" 16:41
if 10% of a program is spent boxing/unboxing ints, then yes.
TimToady what are we doing N times that should be done 1 time, and what are we doing N*M times that we should only be doing N times? 16:42
timotimo right.
pmichaud if 1% of a program is spent boxing/unboxing ints, then even if you make it twice as fast you'll have only saved 0.5%
timotimo i was thinking maybe there's some parameter to boxing/unboxing ints/strings/nums/... that can already be known at compile time, like the hints for bindattr/getattr if the class and attribute are compile-time constant, then there could be a saving
but you're right of course.
if it only makes up about 1% of the whole run time, i better wait until it makes up 50% of run time :) 16:43
PerlJam timotimo: And you could start a new perl tradition of profiling on boxing day
TimToady feels like we never figured out how to figure out why r-p is so slow
pmichaud TimToady: oh, I agree.
timotimo TimToady: that's my feeling as well, but there's probably people who have a much better idea than me. kcachegrind is pretty opaque to me :(
TimToady of course, I don't doubt that it's an intersection of many factors, but finding out where those factors multiply rather than add would be useful 16:44
pmichaud well, we know that the calling conventions were really slow at one time. 16:45
TimToady my gut feeling is that there are just too many interfaces that are at a misplaced level of abstraction
pmichaud it was easy to come up with PIR programs that demonstrated that Parrot was fundamentally slower than Perl 5
lizmat p: "foo-bar".split(/<ws>/).join(",").say # what *should* this say ?
camelia rakudo-parrot 158e90: OUTPUT«,foo,-,bar,␤» 16:46
TimToady "an OO assembly language" is kind of symptomatic
pmichaud lizmat: that strikes me as being correct-ish... perhaps the leading and trailing ""'s aren't correct though. I'd have to re-read the spec.
timotimo <ws> also matches zero-width word boundaries? 16:47
pmichaud <ws> matches \s* except between pairs of word characters
pairs of adjacent word characters 16:48
timotimo in that case, i tend to agree that it could be considered right
TimToady I think getting nulls fore and aft with split is generally just an indication you should be using comb instead :)
maybe not in this case, but I think the nulls are correct
lizmat oddly enough, there is a spectest that says the comma's at beginning and end shouldn't be there 16:49
pmichaud lizmat: yes, I know there was some back-and-forth about null matches with split, and I don't know where the pendulum currently is at 16:49
lizmat t/spec/S32-str/split.t, line 139, #63066
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=63066
TimToady p: "foo-bar".split(/<!ww>/).join(",").say
camelia rakudo-parrot 158e90: OUTPUT«,foo,-,bar,␤»
pmichaud S32 says "Null trailing fields are no longer trimmed by default." 16:50
TimToady lizmat: the pendulum is still way on the side of "make it less dwimmy than P5 does"
lizmat so the test is incorrect 16:51
TimToady because history shows that with split, every DWIM has an equal and opposite WAT
TimToady probably means we need a .trim analog(ue) for lists 16:54
timotimo would it work like .grep(so *)? 16:55
timotimo oh, no, only at the beginning and end, not in the middle 16:55
lizmat "foo-bar".split(/<ws>/, :trim ) ? 16:56
pmichaud that's more of a... right
TimToady lessee, if huffman turns .flip into .reverse, then .trim should turn into something .xxxxxxx
pmichaud I agree with TimToady that :trim is better specified as ".comb" :-P 16:56
TimToady so we've got seven characters to bikeshed with :)
TimToady lizmat: I would not put a :trim option on split 16:56
(but then, I probably wouldn't put a :chop option on quotes either...) 16:57
first, :trim is ambiguous
maybe it means .trim every element
lizmat well, I think I removed that already, didn't I?
TimToady dunno, branefuzz 16:58
timotimo okay, this is more of a C question: if i put a check for the repr in use into the repr_box_int op and give a direct call to the p6int.c's functions, would the compiler likely inline that? it doesn't seem likely to me, especially since there's some kind of registry involved and the ops don't directly know the reprs afaict
pmichaud so, the list analog to .trim we're looking for would remove elements from the ends of a list that match something?
.grep <-> .comb 16:59
dalek ecs: 6d0e761 | (Elizabeth Mattijsen)++ | S02-bits.pod:
Remore :chop from quoted strings

Discussed this with jnthn++ at APW 2013: basically, this should be a job of the optimizer when it sees a .chop.
timotimo is thinking about something like squish/splat :P
pmichaud .reverse <-> .flip
pmichaud .splice <-> .substr 17:01
.elems <-> .chars/.graphs/...
timotimo heads out 17:02
pmichaud .middle 17:03
i.e., the part between the head and the tail :-)
TimToady of course, p5 split just removes the tail 17:04
pmichaud also .body 17:05
TimToady maybe it's just not worth putting in the core language
pmichaud agreed that it should be speculative at this point
TimToady let the user write a pop-while if they really need it 17:06
TimToady or the equivalent left-to-right FP solution that is beautiful and runs much slower :) 17:06
lizmat p: my @a; @a[5]=1; say @a.elems; @a[5]:delete; say @a.elems 17:07
camelia rakudo-parrot 158e90: OUTPUT«6␤0␤»
pmichaud maybe the list form should be .trim and the string form should be .clip (parallel to .flip) :-)
lizmat :delete auto-removes elems from the end
TimToady lizmat: doesn't remove '' 17:08
pmichaud well, it's removing non-existent elems
not ""
lizmat true, but I just wanted to mention it, just in case it changes anybody's train of thought
pmichaud p: "foo-bar".split(/<ws>/).join(',').perl.say
camelia rakudo-parrot 158e90: OUTPUT«",foo,-,bar,"␤» 17:09
pmichaud ummmmmm 17:09
oh.
p: "foo-bar".split(/<ws>/).perl.say
camelia rakudo-parrot 158e90: OUTPUT«("", "foo", "-", "bar", "").list␤»
TimToady wastes a lot of time thinking about a left-to-right solution that works lazily
pmichaud .truncate has one too many characters to match the .flip/.reverse pattern 17:10
.snip might be too close to .splice :)
TimToady .truncat </ducks>
dalek ast: 2f98819 | (Elizabeth Mattijsen)++ | S32-str/split.t:
Fix broken tests related to RT #63066
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=63066
pmichaud I like .truncat :-)
reminds me too much of a Cat, though. 17:11
TimToady If I had it to do all over again, I'd spell "truncate" without the "e".
lizmat
.oO( then what about .cho ? )
pmichaud .shear .shave .snip .crop .pare .clip 17:12
(thesaurus.com)
.thin
.strip and I'm done with this for now :) 17:13
oh, .shuck :-P
TimToady .dock 17:14
pmichaud .peel has a certain appeal
"take off the outsides"
TimToady .detail :)
pmichaud also .pare 17:15
TimToady .behead
so why isn't it .dehead?
pmichaud apparently "be-" as in "off" 17:16
17:10 <TimToady> .truncat </ducks>
oops
pmichaud painintheenglish.com/case/819 17:16
"Why 'behead' and not 'dehead' or 'unhead'?"
TimToady it doesn't not bespeak well of English 17:18
pmichaud and .behead seems to have a totally different sense than .behind :-) 17:19
TimToady "foo-bar".split(/<ws>/).bethwack
lizmat wow, p6 bug report by Zefram ! 17:20
pmichaud well, sorta.
FROGGS hi @all :o)
pmichaud on the bug report I'm thinking I'll just fix the comment and close the report. 17:21
jnthn evening, #perl6 17:24
lizmat jnthn o/ 17:27
FROGGS hi jnthn
dalek kudo/nom: 84d2cb8 | (Elizabeth Mattijsen)++ | src/core/Str.pm:
De-gather/take Str.split

So at least (^20000).join(",").split(",") doesn't die horribly on jakudo
17:29
diakopter
.oO( 999999 bottles of unnecessary cps transforms on the wall, 999999 bottles of ... )
17:30
pmichaud .take one down ... 17:31
FROGGS hehe 17:32
diakopter
.oO( if only we could automate the removal of these bottles.. )
17:33
diakopter who's zefram 17:34
lizmat wonders how gather/take will survive Promises/Channels/Supplies 17:35
zefram is a dedicated p5p'er, one of the few that know p5 core intimately
*who
diakopter masak: one of the less! 17:36
TimToady lizmat: gather/take might be implemented with a channel underneath in some cases 17:38
TimToady they have nothing to do with supplies however, which are lossy 17:39
TimToady channel : TCP :: supply : UDP 17:39
timotimo oh, is that so! 17:40
lizmat on Perl events, you can recognize him by his hat: www.fysh.org/~zefram/
diakopter so supplies can be optimized away without worry?
lizmat just like your fastest backup is to /dev/null ?
timotimo diakopter: yeah, the optimizer can just remove them completely in most cases! great news! :) 17:42
lizmat refrains from pushing an empty repo 17:43
lizmat diakopter: zefram's picture from a Perl workshop: farm7.static.flickr.com/6117/634418...cd1d_z.jpg 17:48
timotimo Ticket RT #72842: Status changed from 'open' to 'resolved' \o/ 17:49
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=72842
lizmat timotimo++ 17:50
diakopter r-j: class class is class { } 17:51
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/rgBa67TKyA␤'class' cannot inherit from itself.␤at /tmp/rgBa67TKyA:1␤------> ␤»
diakopter r-j: class class does class { }
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/5BprDcGTi_␤Unable to parse class definition␤at /tmp/5BprDcGTi_:1␤------> class class does ⏏class { }␤ expecting any of:␤ statement list␤ prefix or te…»
tadzik r: class does does class 17:52
camelia rakudo-parrot 158e90: OUTPUT«===SORRY!=== Error while compiling /tmp/FL_RRfGCl2␤Unable to parse class definition␤at /tmp/FL_RRfGCl2:1␤------> class does does ⏏class␤ expecting any of:␤ statement list␤ prefix or term…»
..rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/1RVd3ofCv2␤Unable to parse class definition␤at /tmp/1RVd3ofCv2:1␤------> class does does ⏏class␤ expecting any of:␤ statement list␤ prefix or term␤…»
lizmat r: do be do be do
timotimo yeesh :)
camelia rakudo-jvm 882e33: OUTPUT«===SORRY!=== Error while compiling /tmp/oAy03c8B4Q␤Undeclared routines:␤ be used at line 1␤ do used at line 1␤␤»
..rakudo-parrot 158e90: OUTPUT«===SORRY!=== Error while compiling /tmp/ZQS_cBqaBf␤Undeclared routines:␤ be used at line 1␤ do used at line 1␤␤»
lizmat dinner& 17:54
diakopter r-j: class X is X { }
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
diakopter -_-
r-p: class X is X { } 17:55
camelia rakudo-parrot 158e90: OUTPUT«(timeout)»
timotimo is a rebuild in progress or something? 17:56
diakopter r: 1 17:57
camelia rakudo-jvm 882e33: OUTPUT«(timeout)»
( no output )
diakopter r: 0 17:58
camelia rakudo-jvm 882e33: OUTPUT«(timeout)» 17:58
( no output )
timotimo nqp: nqp::say(nqp::eqat("ohai", "hai", 1)); 18:00
camelia nqp-parrot: OUTPUT«Error while compiling op eqat (source text: "nqp::eqat(\"ohai\", \"hai\", 1)"): No registered operation handler for 'eqat'␤current instr.: '' pc 58571 (gen/parrot/stage2/QAST.pir:21439) (gen/parrot/stage2/QAST.nqp:3584)␤»
..nqp-moarvm: OUTPUT«Error while compiling op eqat (source text: "nqp::eqat(\"ohai\", \"hai\", 1)"): No registered operation handler for 'eqat'␤frame_name_1109␤»
..nqp-jvm: OUTPUT«Method 'type' not found for invocant of class 'NQPMu'␤ in coerce (gen/jvm/stage2/QAST.nqp:4097)␤ in as_jast (gen/jvm/stage2/QAST.nqp:2981)␤ in (gen/jvm/stage2/QAST.nqp:3678)␤ in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3666)␤ in as_jast (gen/jvm…»
timotimo i kind of thought i had put that into master
ah. well, it still applies cleanly, so i'll just go ahead and merge it. it contains a stage0 rebuild, though 18:01
is that bad? i could leave out the commits that use eqat in the nqp source and wait for some other stage0 update 18:02
TimToady p: role class does class { }
camelia rakudo-parrot 158e90: OUTPUT«===SORRY!=== Error while compiling /tmp/WJsUPTRURS␤Unable to parse role definition␤at /tmp/WJsUPTRURS:1␤------> role class does ⏏class { }␤ expecting any of:␤ statement list␤ prefix or t…»
TimToady p: role role does role { } 18:03
camelia rakudo-parrot 158e90: OUTPUT«===SORRY!=== Error while compiling /tmp/LGR__QeOf9␤Unable to parse role definition␤at /tmp/LGR__QeOf9:1␤------> role role does ⏏role { }␤ expecting any of:␤ statement list␤ prefix or ter…»
TimToady n: role role does role { }
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Unable to parse role definition at /tmp/aqvg8RTNyx line 1:␤------> role role ⏏does role { }␤␤Parse failed␤␤»
TimToady n: role Foo does Associative {} 18:04
camelia ( no output )
timotimo say, now that my CLA has no doubt reached the higher up places of the perl foundation, could i get a rakudo commit bit? :3
diakopter moritz: how do I relanuch the evalserver 18:06
dalek p: c726cd5 | (Timo Paulssen)++ | src/vm/ (4 files):
add nqp::eqat to jvm and parrot.
18:09
p: edab32a | (Timo Paulssen)++ | src/vm/parrot/ops/nqp.ops:
special case same-encoding strings, length-1 needles.
nqp: 705d53a | (Timo Paulssen)++ | src/vm/parrot/ops/nqp.ops:
timotimo sorry, dalek :( 18:09
diakopter I thought Needles was a character on BTTF 18:10
timotimo i asked the freenode staffers if we could get a gentler flood limit for dalek, but they don't do that kind of thing 18:13
segomos cant just rate limit his output? 18:17
timotimo well, yeah. somebody would have to code it, though :) 18:18
or configure it? i have no idea.
arnsholt My suspicion is that dalek gets rate limits from several networks, but doesn't keep them straight (single global var, perhaps?)
timotimo it seems more like it has one per channel, rather than one per network
arnsholt #parrot is on a different network, if that's what you were thinking of 18:19
diakopter arnsholt: dalek is a separate process per network 18:21
arnsholt Oh. In that case, ignore what I said =) 18:22
diakopter segomos: it was rate limited at one point.. but apparently not very absolutely..
timotimo huh. 18:28
timotimo "Unable to read configuration from NQP on the JVM" ... huh? what did i do? :/ 18:34
Rotwang hi 18:40
Rotwang r: say ~1 18:41
camelia rakudo-parrot 84d2cb: OUTPUT«1␤»
..rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
Rotwang r: say ~1.WHAT
camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-parrot 84d2cb: OUTPUT«use of uninitialized value of type Int in string context in sub warn at gen/parrot/CORE.setting:674␤␤␤»
Rotwang why is that ~1.WHAT doesn't work? 18:42
arnsholt r: (~1).WHAT # Precedence perhaps?
camelia ( no output )
..rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
arnsholt r: say (~1).WHAT # Derp.
camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-parrot 84d2cb: OUTPUT«(Str)␤»
arnsholt There we go
Rotwang: The .WHAT binds tighter than ~, so it stringified a type object, which is supposed to warn 18:43
Rotwang arnsholt: I see, it makes sense, thanks 18:44
moritz diakopter: you kill java with fire, and send a SIGHUP to the run-rakudo-jvm-evalserver 18:47
dalek ast: ff66768 | (Tobias Leich)++ | S12-methods/parallel-dispatch.t:
test for RT #77436
19:05
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77436
masak wow. zefram++'s bug reports are awesome. 19:12
like the Baroque Cycle of RT tickets.
jnthn OK, I may have found the JVM thingy 19:28
jnthn oh, maybe not... 19:30
lue hello world o/ 19:33
FROGGS hi lue
lue trying to use a qx// in an Action method gets me this: "Error executing process: Cannot allocate memory" I'm not sure what to think. 19:34
FROGGS lue: what backend? 19:35
lue FROGGS: parrot 19:36
FROGGS hmmmm, is it possible that it will get called very often?
lue FROGGS: nope. It's the action method for an "include" statement, and the processed file has one of those statements. 19:37
FROGGS: also, there'— 19:38
FROGGS nqp-p: qx/echo 1/
camelia nqp-parrot: OUTPUT«Confused at line 2, near "qx/echo 1/"␤current instr.: 'panic' pc 16305 (gen/parrot/stage2/NQPHLL.pir:6018) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
lue OK... switching around the qx// set variable and the function set variable so that the qx// appears before the function works. 19:39
The function uses qx// too, btw.
jnthn oh, I have I think...
FROGGS lue: I can't follow but nice to know :o)
uhh, ++jnthn 19:40
lue FROGGS: "my $a = getfilename;␤my $b = qx/echo $STUFF/" --> memory allocation failure, "my $b = qx/echo $STUFF/;␤my $a = getfilename;" --> success . It's weird to say the least. 19:41
arnsholt Sounds like something's sensitive to memory layout 19:42
arnsholt Or something similar 19:42
FROGGS lue: what is your rakudo version?
FROGGS would be interesting to know if my nqp::spawn is in there or not 19:42
lue $ perl6 -v 19:43
This is perl6 version 2013.10-128-g1d15c6e built on parrot 5.9.0 revision RELEASE_5_9_0
lue FROGGS: ^^^ 19:43
FROGGS ahh yes 19:44
okay, my spawn is in there... :/
can't tell if that is to blame though
dalek p: 8f761f1 | (Tobias Leich)++ | docs/ops.markdown:
fix typo
19:57
p: a3cfc0f | (Tobias Leich)++ | docs/ops.markdown:
strip weird "f" at BOF
19:58
timotimo how do i find out what's wrong with my Configure.pl? 20:06
moritz timotimo: why do you think there's something wrong with Configure.pl? 20:08
timotimo ===SORRY!===
Unable to read configuration from NQP on the JVM
benabik timotimo: Can you run nqp-j ?
timotimo but when i run the full path it mentions for nqp-j --show-config, it works
moritz timotimo: how do you invoke Configure.pl? 20:09
sahadev rakudo-parrot: my @list = (9, 3, 5, 2, 11, 1, 4); @list ==> grep {$_ > 3} ==> my @list2; say @list2.perl
camelia rakudo-parrot 84d2cb: OUTPUT«Array.new(9, 5, 11, 4)␤»
sahadev rakudo-parrot: my @list = (9, 3, 5, 2, 11, 1, 4); @list ==> sort ==> my @list2; say @list2.perl
camelia rakudo-parrot 84d2cb: OUTPUT«===SORRY!=== Error while compiling /tmp/i2uZbOKvLW␤Preceding context expects a term, but found infix ==> instead␤at /tmp/i2uZbOKvLW:1␤------> , 3, 5, 2, 11, 1, 4); @list ==> sort ==>⏏ my @list2; say @list2.perl[0…»
arnsholt timotimo: Complete and utter shot in the dark: Are there spaces in the path?
timotimo moritz: just "perl Configure.pl"
arnsholt: nope, i'm not crazy :)
nqp::version=2013.10-166-g54f6198 20:10
arnsholt Do you have a config.default?
dalek ast: 8b95783 | (Elizabeth Mattijsen)++ | S32-str/split.t:
Remove ~6 year old cruft
sahadev what is expected to follow "sort" when using it in a feed operator chain?
moritz p: my @list = (9, 3, 5, 2, 11, 1, 4); @list ==> sort() ==> say() 20:11
jnthn What to sort by?
camelia rakudo-parrot 84d2cb: OUTPUT«1 2 3 4 5 9 11␤»
jnthn well, or nothing
moritz sahadev: just writing parens seems to help
sahadev rakudo-parrot: my @list = (9, 3, 5, 2, 11, 1, 4); say @list.sort.perl 20:12
camelia rakudo-parrot 84d2cb: OUTPUT«(1, 2, 3, 4, 5, 9, 11)␤»
moritz timotimo: can you please nopaste the complete output, plus the output from nqp --show-config
sahadev jnthn: @list.sort does not expect any "sort-by" expression
dalek kudo/nom: 4ce2bfa | jnthn++ | src/vm/jvm/core/Threading.pm:
Avoid triggering JVM interop load at startup.

Was accidentally introduced when adding support for $*THREAD. This hopefully makes things less bad with the eval server.
timotimo moritz: sure 20:13
sahadev moritz: why are parens required?
moritz sahadev: ==> sort isn't a method call, but rather a subroutine call
sahadev: no idea
lizmat jnthn: am going to try that right away
timotimo gist.github.com/timo/ca805d742673454777c7
sahadev moritz: so, .sort is a method call, but ==> sort isn't? 20:15
moritz sahadev: correct
r: say sort 4, 1, 5 # not a method call either
camelia rakudo-parrot 84d2cb: OUTPUT«1 4 5␤»
..rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
sahadev @list ==> grep { ... } ==> @list2 doesn't have any problem; no parens required here. 20:16
moritz timotimo: my current hypothesis is that it's related to nqp-j being too old
timotimo too old? i just built it :o
moritz (but the error message sucks)
timotimo huh, what.
moritz nqp::version=2013.10-166-g54f6198
$ cat tools/build/NQP_REVISION 20:17
2013.10-178-gf42871d
so, 12 revisions too old
timotimo yeah, you're right, but why?
dalek p: ad26698 | (Tobias Leich)++ | docs/ops.markdown:
document sprintf* ops
moritz timotimo: dunno. How did you build it?
lizmat jnthn: seems like a winner to me so far
timotimo make all install
timotimo i'll rebuild. 20:18
moritz don't just rebuild
git checkout master; git pull
then make install
timotimo i was on master :/
well, now i'm rebuilding 20:19
FROGGS one has to reconfigure so the nqp-* binary gets a new revision 20:21
timotimo oh
didn't know that!
FROGGS same for moar and perl6-* 20:22
moritz didn't know that either
lizmat jnthn: alas, seeing some "no subtests run" again :-(
FROGGS haha
timotimo thanks
FROGGS moritz: really? can't believe that
benabik Yeah, the version not updating on build kinda sucks because configure also does a clean, so it's a full rebuild just to get it to notice you're building a new version. 20:23
lizmat jnthn: and it also seems to slow down again
FROGGS benabik: true
lizmat jnthn: trying spectest again without parallel testing 20:26
jnthn lizmat: I'm into S32-io at present 20:27
lizmat: With 6 at a time
dalek kudo/nom: 069dc3a | moritz++ | docs/ROADMAP:
[ROADMAP] note that Buf depends on native int "is rw"
kudo/nom: 1607bc4 | moritz++ | / (2 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 0faa636 | moritz++ | src/core/Mu.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 9c888d2 | moritz++ | src/ (3 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 9b80284 | moritz++ | / (2 files):
try to fix error reporting when NQP is too old
moritz waaah, 3 useless merges
jnthn ohmergerd 20:29
timotimo :D
dalek kudo/nom: b02857c | moritz++ | .gitignore:
update .gitignore to new generated files
20:30
kudo/nom: 5bd51cb | moritz++ | .gitignore:
another .gitignore update
20:32
jnthn lizmat: My run has completed. 20:37
FROGGS j: say 1 20:38
camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
lizmat mine is running without TEST_JOBS, so will take a little while stoll
*still
CPU usage seems normal
jnthn FROGGS: Maybe that gets better with my fix to help evalserver too 20:39
FROGGS jnthn: that is my expectation, since it got worse just lately
jnthn FROGGS: Yeach, my change that busted it was last week 20:40
lizmat CPU usage not dropping below 200% anymore :-( 20:45
peaks of up to 500%
lizmat and that for serially doing all the tests :-( 20:45
timotimo well, that just means the GC is very good at parallelising 20:47
nqp-j is too old - but i just re-ran configure in my nqp/ checkout o_O 20:49
jnthn lizmat: I wonder if what you're actually seeing is it shell out
lizmat jnthn: failing again :-(
jnthn fuck
lizmat t/spec/S06-traits/is-copy.t .................................. No subtests run
jnthn wonders why not here...
jnthn Odd. It gets all the way thorugh. 20:50
For me.
lizmat it's gotten much better
FROGGS timotimo: but `git describe` tells about a new(er) version?
lizmat but the fix is only a gradual one, so it seems
timotimo 2013.10-203-g62e2415 - same version as the parrot one
jnthn And only 2 test files with notable failures, both related to deprecation...
lizmat indeed, that's because Backtrace is different / broken on jakudo ?
jnthn No such method 'package' for invocant of type 'Scalar' 20:51
Darn, still need to fix that error reporting...
lizmat killing it gives (again): 20:52
$ Java HotSpot(TM) 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
Exception in thread "Thread-0"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-0"
jnthn Oh, so it is running out of memory...
lizmat still 21 threads collecting garbage I guess
at ~400% CPU 20:53
and still running 20:54
lizmat hears from the grapevine there were 2 Perl 6 presentations at the Cluj.pm meeting this evening 20:56
jnthn Wow!
masak \o/ 20:57
masak .oO( those mongers seem really "clujed in" about Perl 6 ) 20:58
jnthn )) 20:59
Looks like it was on threading/async stuff :)
lizmat start stuff you mean? :-)
and still running (another half an hour of CPU burnt ;-) 21:00
killed -9 it 21:01
lue
.oO(All I want is to call the Grammar from a particular statement in the Actions, and I'm being hit with can't assign to readonly variable or value.)
21:03
.oO(sigh... I can be such a moron sometimes. I'm guessing Grammar.parse(slurp($fn)) was the problem, yeah?)
21:04
jnthn lizmat: oddness 21:06
lizmat re: Cluj.pm twitter.com/search?q=%23clujpm&src=hash
woolfy Info about the cluj.pm meeting: cluj.pm/events/2013/10/clujpm-commu...again.html 21:07
jnthn woolfy++ 21:09
woolfy No no no... Mihai Pop++ Giving two talks about Perl 6 at cluj.pm meeting. Wow.
masak does this Mihai Pop person have an IRC presence? 21:10
jnthn Indeed
And on the shiny new async stuff
jnthn I wonder if he got the latest naming it. If so, his pres was probably more up to date than my Salzburg one :P 21:11
timotimo sounds shiny! :)
jnthn s/it/in/
woolfy masak: dunno 21:13
masak: he was one of the two send-a-newbie guys. He's very nice and very bright. I am sure it's not difficult to find him... 21:14
masak ooh
lue Foo::Actions.rule($/) { ... Foo::Grammar.parse() ... } breaks for me on that parse line with "Cannot assign to a readonly variable or a value", and I can't even begin to guess why. 21:17
jnthn lue: It tries to update the $/ which is a parameter, maybe? 21:18
colomon lue: you're calling your grammar from inside its actions?
lue that's the only RO variable I have, so that's likely it :) 21:19
colomon: "include" statement, XCompose files
I *could* set up a ast tree that holds info about the include that the receiving grammar user can then process with a new grammar call, but as long as I'm in the action method... 21:20
woolfy Mihai Pop on Twitter: twitter.com/MihaiPop10
masak follows 21:24
dalek p: 1f83be8 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Don't report bad method on Scalar, but on value.
21:32
lizmat p: "abcdef".split('',:all).elems.say # 6 or 11 ? 21:47
camelia rakudo-parrot 5bd51c: OUTPUT«6␤»
lizmat currently, :all when splitting on empty string, is ignored 21:48
this is basically because the logic doesn't do any matching whatsoever
lizmat should this combination warn, die, or add dummy Match objects ? 21:49
diakopter p: "abcdef".split(1,:all).elems.say 21:52
camelia rakudo-parrot 5bd51c: OUTPUT«1␤»
diakopter p: "abcdef".split("abcdef",:all).say 21:54
camelia rakudo-parrot 5bd51c: OUTPUT« abcdef ␤»
lizmat p: "abcdef".split("abcdef").say 21:55
camelia rakudo-parrot 5bd51c: OUTPUT« ␤»
lizmat p: "abcdef".split("abcdef").elems.say
camelia rakudo-parrot 5bd51c: OUTPUT«2␤»
FROGGS how do I specify an infix that only can take two args? 22:03
because infix:<...> currently gets three when invoked as: .say for 1, 2, 3 ... 10, 20, 30 ... 100 22:04
maybe I can steal from infix +
colomon FROGGS: infix:<new-op> ($a, $b) { …. } 22:05
timotimo it's when you give it list associativity?
FROGGS colomon: I mean how to do that in the grammar? so the QAST is produced correctly 22:06
colomon oh!
exactly two?
FROGGS yes
lizmat vaguely recalls some table somewhere
FROGGS lizmat: I see the table
rakudo/src/Perl6/Grammar.nqp:3049: Perl6::Grammar.O(':prec<t=>, :assoc<left>, :dba<additive>', '%additive');
colomon steal from infix:<+> would definitely be a good start :) 22:07
FROGGS maybe :assoc is in charge for that?
timotimo yes, i think so
FROGGS k
let's try :o)
colomon look for :assoc<list>
timotimo if you have :assoc<list> you get any amount of arguments
colomon right
FROGGS ... has that, yes
FROGGS changes it
colomon for infix:<…> you're changing it? 22:08
FROGGS yes
colomon is not sure of the wisdom of that. 22:09
FROGGS we'll see 22:10
colomon emphasis on "not sure" rather than "knows it's a bad idea" 22:11
FROGGS *g*
diakopter p: "".split("", :all).perl.say 22:12
camelia rakudo-parrot 5bd51c: OUTPUT«Nil␤»
colomon FROGGS: did you check to see how std has it?
diakopter p: "".split("doobiedoobiedo", :all).perl.say
camelia rakudo-parrot 5bd51c: OUTPUT«("",).list␤»
FROGGS the other option would be to do it like niecza, and have an implementation of ... that can handle lists
colomon: it hast list assic 22:13
assoc
FROGGS cool, assoc<left> would actually fix it... 22:13
FROGGS but seems like a bad idea anyway... so, plan b 22:14
colomon if the grammar has it as list assoc, TimToady++ probably had a reason. 22:15
diakopter p: "".split("doobiedoobiedo", :all).elems.say 22:16
camelia rakudo-parrot 5bd51c: OUTPUT«1␤»
lizmat diakopter: what is the pb with that last one? 22:17
dalek ast: 390c3b7 | (Elizabeth Mattijsen)++ | S32-str/split.t:
Some more thorough split testing
22:20
lizmat more to come tomorrrow, now sleep&
FROGGS gnight lizmat
timotimo so, about that commit bit again ...? :)
lizmat timotimo: pmichaud gave me mine, if I remember correctly 22:21
really sleep&
timotimo i'd like to merge at least one pull request from mouq once i get the bit 22:25
FROGGS maybe preflex pmichaud ? (even when that sounds weird) 22:27
dalek ecs: 663d7e7 | raiph++ | S99-glossary.pod:
Fix sort order and add 'fossil' entry
22:29
timotimo preflex: tell pmichaud i'd love to claim my rakudo commitbit. the CLA should have arrived in the right place for that, wherever that is
preflex Consider it noted.
timotimo will do, thanks 22:30
dalek kudo-star-daily: 9ab5562 | coke++ | log/ (5 files):
today (automated commit)
22:31
timotimo make: /perl6: Command not found ;_; 22:33
that should probably be ./perl6-p?
[Coke] pretty sure that's coming from a "make modules-test" in the generated rakudo-star build. 22:34
timotimo ah, that may very well be
jnthn sleep & 23:04
lue now sees $* vars as "the pan-grammar-rule variable type", but is sure that's not it :) 23:14
Mouq Isn't #120484 another #61602 plus some seemingly tangential things about error reporting in the repl? 23:15
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120484
Mouq synopsebot: slacker. #61602 23:15
synopsebot Mouq: Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=61602
xenoterracide is it possible to create an anonymous class? 23:17
FROGGS Mouq: I think it is about the segfault only 23:17
p: my $thing = class { has $.foo }; say $thing.new 23:18
camelia rakudo-parrot 5bd51c: OUTPUT«<anon>.new(foo => Any)␤»
FROGGS xenoterracide: ^^
lue r: my Int $x = NaN
camelia rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-parrot 5bd51c: OUTPUT«Type check failed in assignment to '$x'; expected 'Int' but got 'Num'␤ in block at /tmp/TY6t8AIxbL:1␤ in any at /tmp/TY6t8AIxbL:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in any eval at gen/parrot/stage2/NQPHLL.nqp:1133␤ in any eva…»
lue Mouq: #120484 is more REPL stupidity than #61602. It merely led to the new bug :) 23:19
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120484
xenoterracide p: my $thing = class { has $.foo }.new; say $thing; 23:20
camelia rakudo-parrot 5bd51c: OUTPUT«===SORRY!=== Error while compiling /tmp/555kBO5ebu␤Two terms in a row␤at /tmp/555kBO5ebu:1␤------> my $thing = class { has $.foo }⏏.new; say $thing;␤ expecting any of:␤ scoped declarator␤ …»
timotimo yeah, you probably need to add parens around it
FROGGS p: my $thing = (class { has $.foo }).new; say $thing;
timotimo close them before the .new
camelia rakudo-parrot 5bd51c: OUTPUT«<anon>.new(foo => Any)␤»
FROGGS exactly
xenoterracide oh cool 23:21
FROGGS p: my $thing = (anon class { has $.foo }).new; say $thing;
camelia rakudo-parrot 5bd51c: OUTPUT«<anon>.new(foo => Any)␤»
FROGGS p: my $thing = (anon class Peter { has $.foo }).new; say $thing;
camelia rakudo-parrot 5bd51c: OUTPUT«Peter.new(foo => Any)␤»
FROGGS hehe 23:22
Mouq p: my $thing = (anon class Peter { has $.foo }).new; say $thing; Peter.new # checking
camelia rakudo-parrot 5bd51c: OUTPUT«===SORRY!=== Error while compiling /tmp/E_IDM8Iyg8␤Undeclared name:␤ Peter used at line 1␤␤»
Mouq cool
timotimo was about to do it, too :)
lue np: say [1,2,3] <=> [4,5,6,7]; say +([1,2,3] <=> [4,5,6,7]) 23:32
nr: say [1,2,3] <=> [4,5,6,7]; say +([1,2,3] <=> [4,5,6,7]) 23:33
camelia rakudo-parrot 5bd51c, niecza v24-98-g473bd20: OUTPUT«Increase␤-1␤»
..rakudo-jvm 882e33: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
lue ... I'm sure there's a perfectly good explanation for {Decrease => 1, Same => 0, Increase => -1}
timotimo p: say +Increase; say +Decrease; 23:34
camelia rakudo-parrot 5bd51c: OUTPUT«-1␤1␤»
FROGGS lue: if you sort, and it increases, you put the rhs one to the left (-1)
lue ? 23:35
FROGGS or the lhs?
I'm tired
Mouq So, #120484 doesn't appear to happen in nqp-p (though I think someone should verify this), though HLL::Complier.nqp has a CONTROL block in the try in method command_eval
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120484
FROGGS p: say 5 cmp 7
camelia rakudo-parrot 5bd51c: OUTPUT«Increase␤»
FROGGS lhs 23:36
Mouq And, I *think* CONTROL catches ^D?
lue I'm afraid I still don't see the value of inverting the range like that :( 23:37
.oO(Increase = positive. Increase = -1 ‽)
FROGGS n: say +Increase; say +Decrease; 23:38
camelia niecza v24-98-g473bd20: OUTPUT«-1␤1␤»
Mouq …though I can't seem to get that to work
timotimo gtg :)
FROGGS from P5's perldoc: Binary "cmp" returns -1, 0, or 1 depending on whether the left argument is stringwise less than, equal to, or greater than the right argument. 23:39
so, -1 means lhs is less than rhs
less then == -1 here
huf sgn(a-b)
Mouq Oh, wait, does CONTROL catch things like return, next, etc? 23:41
lue FROGGS: that runs completely opposite my meanings of the words "Increase" and "Decrease" though. 23:42
FROGGS lue: yeah
lue FROGGS: Also, the words match the "from the LHS, do we (Decrease^Same^Increase) to the RHS?", but the numbers go "from the RHS, the change is in the direction of (1^0^-1) to the LHS"
Mouq p: try { next; CONTROL { say "oh" } }
camelia rakudo-parrot 5bd51c: OUTPUT«oh␤»
lue Which I steadfastly refuse to believe is appropriate. 23:43
FROGGS Mouq: this can't happen in nqp-*, because nqp ignores type constraints
Mouq Oh, I see, it only appears to happen then. Hrm 23:44
my Str $a = 4; does it too
lue files STDbug 23:46
lue here we go: github.com/perl6/std/issues/6 23:54