»ö« 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.
00:00 pmurias left
timotimo seems like i'll have to re-run rakudo-moar/2014.07 00:02
00:02 raiph joined 00:08 rurban joined
timotimo and possibly also nqp-moar/2014-07, that seems to be missing a bunch 00:10
weird.
00:13 kurahaupo_ left 00:14 rindolf left, kurahaupo_ joined 00:16 chenryn left 00:17 virtualsue left
timotimo .tell japhb_ if you look at t.h8.lv/p6bench/2014-08-01-moar.html ... what could be the reason two implementations are missing in all (?) graphs? 00:22
yoleaux timotimo: I'll pass your message to japhb_.
btyler is there a good pattern for delegating to a member object? right now I'm futzing with add_fallback, but it feels a bit like a dead end 00:23
timotimo yeah
you should be using "handles" instead :)
btyler ah ha
timotimo m: class Foo { has Str $.text handles <lc uc tc> }; Foo.new(:text("Hi there, how are you")).lc.say
camelia rakudo-moar 89c8e4: OUTPUT«hi there, how are you␤»
timotimo m: class Foo { has Str $.text handles <lc uc tc> }; Foo.new(:text("Hi there, how are you")).uc.say 00:24
camelia rakudo-moar 89c8e4: OUTPUT«HI THERE, HOW ARE YOU␤»
btyler lovely
I made it here before feeling like there must be a nicer way: ' $object, $name { $object.json.^methods.grep({ $name })[0] }'
timotimo blushes
btyler (the second clause of add_fallback)
00:25 chenryn joined 00:27 aoseki joined, iarna joined 00:29 kshannon joined, cibs joined 00:30 akaseki left, rurban left 00:38 iarna left 00:41 aoseki left 00:42 akaseki joined 00:45 iarna joined, thou joined
timotimo jnthn: t.h8.lv/p6bench/2014-08-01-moar_redone.html - less broken now 00:46
btyler: i'm glad to hear you're progressing :)
00:49 thou left 00:50 aoseki joined, colomon joined
timotimo jnthn: it seems like we regressed for loop performance 00:51
btyler yep. current thorn: what does it take to implement roles like Associative or Positional? provide a few methods with the right names, a-la python magic methods?
00:51 nbrown_ joined
btyler or is "implement" the wrong way to think about them (given that they're not interfaces) 00:51
timotimo thorn as in: can't figure it out or as in: the documentation doesn't say?
btyler can't find it in the docs, examples in rakudo source seem thin on the ground since it's apparently taken care of in bootstrap 00:52
jnthn timotimo: Ah, good to know. Remind me tomorrow, I'll bet the improved sink context stuff knocked the analysis off.
timotimo ah!
00:52 akaseki left
timotimo that seems like a good indication 00:52
btyler: not in bootstrap; look at Any.pm 00:53
dalek kudo/nom: 3618990 | jnthn++ | src/Perl6/Optimizer.nqp:
Make Junction optimization less costly.

This refactor splits analysis and transform, decreasing the cost of the common case when we just analyze and realise we're not looking at a Junction.
00:55
kudo/nom: 9d6c19c | jnthn++ | src/Perl6/Optimizer.nqp:
Refactor visit_op in optimizer.

This not only makes it a good bit cleaner, but also reduces the cost.
00:55 nbrown_ left 00:56 iarna left
timotimo aye, the tree looks significantly different now 00:56
it starts with a bind to an inline arg, binds the number that came before the ^ there, then comes a decontrv ... and the inside of the prefix:<^> operator i believe 00:57
00:57 akaseki joined
timotimo maybe it'd be enough to signalize not to inline the .. operator and its variants %) 00:59
jnthn Well, sleep time for me...'night
timotimo good night, jnthn!
00:59 aoseki left 01:00 aoseki joined 01:02 akaseki left 01:11 iarna joined 01:12 chenryn left 01:18 BenGoldberg joined 01:24 BenGoldberg left 01:25 slavik left, xenoterracide_ joined 01:28 PotatoGim left 01:33 BenGoldberg joined 01:35 silug left 01:36 dayangkun joined 01:37 slavik joined 01:40 silug joined 01:41 xenoterracide_ left 01:42 klapperl_ joined 01:45 klapperl left
colomon o/ from Newfoundland! 01:46
01:47 xenoterracide joined 01:48 FROGGS_ joined
dalek ast/S26-WHY: 2eb4bd7 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Use a variable to track POD contents
01:51
ast/S26-WHY: a370b4f | (Rob Hoelz)++ | S26-TODO.md:
More TODOs
ast/S26-WHY: 01725c6 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Check WHEREFOREs in leading test
ast/S26-WHY: 503754b | (Rob Hoelz)++ | S26-documentation/why-trailing.t:
Check $=pod for trailing comments
01:51 FROGGS left 01:54 ventica left 01:58 kst` joined, colomon left, anocelot_ joined 01:59 slavik1 joined, cognominal left, cognominal joined, slavik left, kst left, FROGGS_ left, FROGGS_ joined 02:01 anocelot left 02:02 aoseki left, xenoterracide left 02:03 sftp joined 02:08 anaeem1 joined 02:09 anaeem1 left, anaeem1 joined 02:11 autark left 02:14 anaeem1 left, noganex joined 02:18 noganex_ left, dwarring left 02:19 nbrown joined 02:21 chenryn joined 02:28 anaeem1__ joined 02:32 anaeem1__ left
japhb botsnack 02:33
yoleaux 31 Jul 2014 19:54Z <timotimo> japhb: i really ought to pay close attention to the flags for the test runner when i do jvm benchmarks ... i should let it do fewer tests in a row or something ... or could we perhaps have an option that allows us to scale two steps at a time?
japhb_ botsnack
02:33 thou joined
yoleaux 00:22Z <timotimo> japhb_: if you look at t.h8.lv/p6bench/2014-08-01-moar.html ... what could be the reason two implementations are missing in all (?) graphs? 02:33
japhb_ Oy, that's annoying
02:34 xenoterracide joined 02:36 anaeem1 joined
japhb .tell timotimo Reason for some implementations to be missing from most graphs: having run a limited test with some of the implementations and not the others. The default behavior is that running a new set of tests for a given compiler checkout will overwrite the timings for that compiler checkout, not combine with previously existing runs. This is because combining could too easily result in nonsense. 02:36
yoleaux japhb: I'll pass your message to timotimo.
japhb .tell timotimo So if your most recent run for each of the compared compiler builds did not specify the same tests, you're going to find that some/most of the plots will be missing some lines. You can see this if you do a simple text mode comparison; you'll see a lot of missing data. 02:38
yoleaux japhb: I'll pass your message to timotimo.
02:38 thou left 02:40 lustlife joined
timotimo hey japhb 02:40
yoleaux 02:36Z <japhb> timotimo: Reason for some implementations to be missing from most graphs: having run a limited test with some of the implementations and not the others. The default behavior is that running a new set of tests for a given compiler checkout will overwrite the timings for that compiler checkout, not combine with previously existing runs. This is because combining could too easily result in nonsense.
02:38Z <japhb> timotimo: So if your most recent run for each of the compared compiler builds did not specify the same tests, you're going to find that some/most of the plots will be missing some lines. You can see this if you do a simple text mode comparison; you'll see a lot of missing data.
timotimo i'm up way past my bedtime 02:41
japhb Ah, I understand your concern with the JVM testing time. Hmmm, I need to think about that.
02:41 anaeem1 left
japhb timotimo: So sleep! :-) 02:41
timotimo you "understand my concern"?
have you actually tried it?
hold on, let me get my timings
japhb Yes. I don't test with the JVM backend anymore. I don't have the time for it, NPI.
It's all death by startup time. 02:42
timotimo at almost exactly 1800 i started my benchmarks
yes, it is
at 0100 it wasn't finished yet.
i ran nqp-moar, nqp-parrot, nqp-jvm, rakudo-moar, rakudo-parrot, rakudo-jim 02:43
jvm*
japhb I've several times tuned bits of timeall to try to get valid data while forcing fewer actual test runs, so that JVM would be less painful. And then we collectively more than made up for it with new tests and the minimum-three-data-points rule. :-(
timotimo well, actually, at about 0000 +/- 0030 i got to rakudo-jvm, which was followed by nqp-jvm, which was the last one
japhb "It's Rakudo, Jim. But not as we know it ..."
timotimo japhb: have you seen how close we are to the nqp timings with rakudo?! 02:44
japhb Where's your most recent plot data?
timotimo t.h8.lv/p6bench/2014-08-01-moar_redone.html 02:45
if you like line soup: t.h8.lv/p6bench/2014-08-01-three_backends.html
i think i should re-gen these graphs, too
F5 for a few more lines 02:46
jnthn said he'd put a few tricks we learnt on moarvm to good use on rakudo-jvm 02:47
when that happens, i would expect the rakudo-jvm line to approach the nqp-jvm line in a drastic way
japhb Hmmm, In some tests Rakudo is quite close to NQP, and in a few others still quite a bit behind -- but not nearly as bad as last year.
timotimo yes 02:48
btyler I've noticed the recent bench runs have tended to not include perl 5. time saving measure, too many unimplemented benchmarks, or just not what's being measured atm? 02:49
timotimo oh
i can run a perl5 benchmark, too
02:49 nbrown left
btyler I guess "or just forgot" should have been part of the question :) 02:49
timotimo i have to build a perl5 first :)
02:50 nbrown joined, nbrown left
timotimo i hope chatting on irc via ssh won't disturb my cpu too much to get acceptable benchmark timings 02:50
japhb timotimo: just keep a perl5 build around. It's not like we need to follow blead. :-)
timotimo perl5 will be too good in all the benchmarks anyway :)
japhb Wow, as long as you avoid a couple big issues (concat, push), nqp-jvm is wicked fast when it gets going. I mean, DAMN. 02:51
timotimo yes
it doesn't get going during compilation, sadly
.o( though if we used the evalserver for that ... )
02:52 nbrown joined
japhb Too much risk of contamination between runs to use the same process space for more than one run. :-( 02:52
timotimo for compilation?
japhb Oh, I thought you mean the startup compile time for each test. 02:53
timotimo no
not for benchmarks
oh, another thing
how hard would it be to "transpose" perl6-bench
japhb Which actually is probably getting better with jnthn++'s general closure and dynlex reduction work
timotimo as in: test different implementations of the same code with the same implementation
back when i wrote the junction optimization code i wasn't aware of the performance ramifications of nested subs 02:54
japhb I think you're talking about a feature I was thinking of overlaying plots
timotimo that would certainly be useful
though i'd also imagine you'd have one graph for each implementation, showing all "versions" of the benchmark in one graph
btw, can we somehow put an installation for Data::Alias into the automatic build process of perl5 in perl6-bench? 02:55
japhb We really need to have a doc that has rules of thumb about what to do or avoid in performance-critical code. Because trawling through commit logs -- or even more verbose, #perl6 -- isn't tenable.
timotimo number one rule really is: measure, measure, measure 02:56
japhb timotimo: yeah, post-build module installation has been on my list for a while. Just haven't had tuits for it. I want to have it for all compilers that have a module ecosystem, so we can e.g. test performance of things from the panda ecosystem.
02:57 anaeem1_ joined
japhb timotimo: well yeah, sure. But I'm talking general things that have unexpectedly large cost, like creating a closure inside an inner loop. 02:57
Things that are only obvious in retrospect.
.oO( ... in introspect? )
02:58
02:58 raiph left
japhb Oh, and I think I can reasonably claim to be the last person that needs to be told to measure performance. :-) 02:59
timotimo hahah :D
sorry, you're right of course
02:59 lustlife left, cognominal left, cooper_ left, avuserow left
timotimo hopefully in the future we'll have some great tooling to get a good look at performance vitals of both user code and compiler internals 02:59
03:00 tadzik left
japhb Yeah, quite. I'm salivating over the idea of having profile flame plots in r-m 03:00
03:01 tadzik joined, ventica joined
timotimo how woud that look? highlight lines with their time cost? 03:01
03:01 anaeem1_ left, cognominal joined
timotimo t.h8.lv/p6bench/2014-08-01-three_backends.html - updated with perl5 - t.h8.lv/p6bench/2014-08-01-three_backends.html 03:01
japhb Gah, bus stop. Will have to pick this up later. 03:02
03:02 avuserow joined
timotimo but ... you just sent me to bed! :P 03:02
japhb I'll .tell you 03:03
afk
timotimo but i enjoy interacting with you :\
03:03 cooper_ joined
btyler holy cow, thanks timo 03:03
timotimo wow. what. in postwhile_nil_native, rakudo-moar is actually faster than nqp-moar? that's gotta be wrong %)
it could quite possibly be that nqp::list is more expensive than a WVal to grab the Nil that we have in the perl6 code 03:05
btyler this is really cool -- puts 'nqp-jvm is damn fast' into much better perspective
timotimo i wonder why jvm tanks so hard in the concat tests
yes, the int2str_concat performance puzzles me 03:06
maybe our numification is just ridiculously underperformant?
it would make a whole lot of sense if perl5 was crazy fast at that 03:07
03:07 Woodi left
btyler yeah 03:08
timotimo when we get the for optimization back into rakudo, we should see much better results for the "for" benchmarks, too 03:09
like, there was a 3x performance drop on moar; the same problem probably exists on all backends
it is to be expected that our performance post-regression-fix comes out a bit higher than it was in the 2014.07 release 03:10
03:11 lustlife joined, iarna left, nbrown left, iarna joined
btyler I wonder what ruby's performance was like compared to p5 when it was first starting to become popular 03:13
timotimo perhaps the most amazing thing about the performance graphs is how strong the difference is between the jvm rakudos on the normal and the native variants of benchmarks 03:14
visit_2d_indices_loop for example
106x slower than fastest ← non-native rakudo-jvm
btyler the general impression I have is "slow", but it'd be interesting to have a more concrete idea. rakudo being within 20x of perl5 for lots of workloads is probably starting to edge into the same mult as ruby originally had vs perl5
timotimo 30x slower than fastest ← perl5 vs native rakudo-jvm
btyler yeah, I noticed that as well
timotimo (or 15x if you count that at the same x position) 03:15
it amazes me especially much how good we perform at rational numbers (i think these tests test fatrats) 03:16
anyway, ought to go to bed now :) 03:19
btyler night!
03:19 nbrown joined
timotimo .o( perl5.20 is exactly as fast at rc-mandelbrot as the recent rakudo-moar's ) 03:20
03:23 ventica left 03:24 [Sno] left 03:28 takesako left 03:32 telex left 03:34 telex joined 03:35 nbrown left 03:43 takesako joined 03:46 BenGoldberg left 03:48 dayangkun left 03:51 ilbot3 joined 03:53 kurahaupo_ left, cibs left 03:54 iarna left, cibs joined 03:55 BenGoldberg joined, [Sno] joined 03:56 ventica joined 03:59 akaseki joined 04:02 kaare__ joined 04:03 xenoterracide left 04:05 dayangkun joined 04:06 rurban joined, kaare__ is now known as kaare_
btyler lots more to do, but if anyone has a need for speedy JSON parsing (no encoding yet), I'd appreciate feedback: github.com/kanatohodets/p6-json-jansson 04:12
also - is there any standard in p6 land for module installation scripts? it'd be nice to check for NativeCall and jansson on install 04:14
gtodd heh I think FROGGS_wanted some JSON workers :-) 04:17
04:22 thou joined 04:26 thou left 04:28 chenryn left
gtodd m: my %x; %x{1}=[<a b c d e>]; say "alpha hash time" if "a" ~~ %x{1} ; 04:34
camelia ( no output )
TimToady this is not Perl 5, and there are no impicit 'any' semantics on smartmatching lists 04:36
m: my %x; %x{1}=[<a b c d e>]; say "alpha hash time" if "a" ~~ %x{1}.any
camelia rakudo-moar 89c8e4: OUTPUT«alpha hash time␤»
TimToady *plicit
m: my %x; %x{1} = any <a b c d e>; say "alpha hash time" if "a" ~~ %x{1} 04:37
camelia rakudo-moar 89c8e4: OUTPUT«alpha hash time␤»
TimToady though that works
m: my %x; %x{1} = set <a b c d e>; say "alpha hash time" if "a" ∈ %x{1} 04:38
camelia rakudo-moar 89c8e4: OUTPUT«alpha hash time␤»
TimToady so does that
avuserow btyler: you should be able to depend on NativeCall since it's in the p6 ecosystem
TimToady m: my %x; %x{1} = set <a b c d e>; say "alpha hash time" if x{1}<a> 04:39
camelia rakudo-moar 89c8e4: OUTPUT«===SORRY!=== Error while compiling /tmp/XOOtufo24w␤Undeclared routine:␤ x used at line 1␤␤»
TimToady m: my %x; %x{1} = set <a b c d e>; say "alpha hash time" if %x{1}<a>
camelia rakudo-moar 89c8e4: OUTPUT«alpha hash time␤»
avuserow btyler: that is, once you make your module installable by panda
TimToady or even that
gtodd: ^^
avuserow btyler: not sure how one goes about detecting and gracefully requiring a native library, if that's even possible at present. I'd love to know for my own modules. 04:40
04:43 gfldex joined 04:47 Woodi joined 04:54 kaare_ left 04:57 rindolf joined 04:59 chenryn joined 05:00 avuserow left
btyler avuserow: I was thinking of just running a script with nativecall that tried to call one of the methods, then catching the error it generates if it can't find the lib 05:02
*one of the methods of the native lib 05:03
05:07 rurban left 05:08 thou joined 05:18 avuserow joined 05:21 kaare_ joined 05:27 kaare__ joined 05:28 [Sno] left, BenGoldberg left 05:30 kaare_ left 05:35 bcode joined 05:38 gfldex left 05:39 avuserow left
dalek ast/S26-WHY: 623f1f5 | duff++ | S26-documentation/why-leading.t:
Add leading tests for role, submethod, grammar, rule, token and regex
05:41
05:57 avuserow joined 06:00 denis_boyun joined 06:04 thou left 06:06 aoseki joined, akaseki left 06:10 darutoko joined 06:12 dayangkun left 06:14 akaseki joined 06:16 aoseki left
sergot o/ 06:18
06:19 aoseki joined 06:20 Rotwang left 06:22 akaseki left 06:24 aoseki left 06:25 akaseki joined, kivutar joined 06:29 kurahaupo_ joined, dayangkun joined 06:30 grondilu joined
grondilu failed to compile rakudo on moarvm: paste.siduction.org/20140801062936 06:30
Stage optimize : Cannot find method 'orig'
06:34 aoseki joined
grondilu cleans up his install and nqp directory and retries 06:34
06:37 akaseki left 06:42 virtualsue joined 06:56 [Sno] joined 07:02 kaleem joined 07:06 bjz joined
grondilu failed again 07:07
07:08 fhelmberger joined 07:15 ventica left, kaare__ is now known as kaare_ 07:19 virtualsue_ joined, ventica joined 07:20 virtualsue left, virtualsue_ is now known as virtualsue 07:23 cognome left 07:24 cognome joined 07:30 cognome_ joined 07:32 cognome left 07:38 ventica left 07:40 dmol joined 07:41 pecastro left 07:46 Woodi left, Woodi joined
masak morning, #perl6 07:47
07:50 ventica joined
moritz idly wonders if any company has a clean solution for aggregating accounting data, matching it with product definitions and generating invoices out of them 07:52
at $work, this is a regular pain point, and my searches for existing solutions only brought up very specialized solutions (like, for telephony) 07:53
07:58 ventica left 08:00 FROGGS_ left 08:01 ventica joined 08:07 takesako left
xiaomiao moritz: that smells like ERP, and it's a quicksand trap I refuse to go near while sober 08:08
08:11 takesako joined 08:13 zakharyas joined
moritz xiaomiao: yes, but not quite ERP 08:17
08:18 dakkar joined, Ven joined, Ven left 08:19 vendethiel left 08:21 dayangkun_ joined 08:24 ventica left 08:25 dayangkun left 08:31 virtualsue left 08:41 Akagi201 left 08:43 cooper_ left 08:44 cooper- left, zakharyas left 08:47 FROGGS[mobile] joined
nwc10 \o 08:50
masak p6: say DateTime.now ~~ Date.today 08:55
camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«True␤»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Date' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_uni…»
..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
masak \o/
pm: say DateTime.now ~~ Date.today 08:56
m: say DateTime.now ~~ Date.today
camelia rakudo-moar 89c8e4: OUTPUT«True␤»
masak p: say DateTime.now ~~ Date.today
camelia rakudo-parrot 89c8e4: OUTPUT«True␤»
masak r: say now ~~ Date.today
camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«False␤»
..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
masak I'm wondering if that shouldn't work too...
any votes for or against? 08:57
moritz +1 for it 08:58
masak the ones I see making sense (and not always returning False) are DateTime ~~ Date (fixed already, PerlJam++), Instant ~~ Date, Instant ~~ DateTime, and DateTime ~~ Instant. 09:04
09:05 PotatoGim joined
moritz I'm not really up to date (sic) wrt datetime and instant 09:05
can those always be round-tripped?
or does one of the require extra time zone information, for example? 09:06
masak I'm not sure roundtripping is required for smartmatching to make sense.
only that a given datetime unambiguously stands for a given instant.
(and I'm holding my breath instaad of saying "...and vice versa", because it's not 1-to-1, thanks to timezones and other stuff) 09:07
instead*
moritz but then only one of those smartmatchings makes sense, no?
ah, no
never mind
masak no, I think both do.
they both ask sensible questions. 09:08
moritz and instance can be represented as several DateTimes with different time zones
masak aye :)
moritz but you can still query the correspondence
moritz feels he understood something
masak and there are "illegal" DateTimes which, (if you could create them) don't have a corresponding Instant.
and there are "double" DateTimes which happily match two Instants. thanks, DST, you jerk. 09:09
moritz (and now you also know why I implemented only Date, and left DateTime to somebody else :-)
masak :D 09:10
Temporal, the way it eventually turned out, was a wonderfully successful case of "I'll leave this to someone else" :)
and we managed to do it without having any Discordian Hexagonal Klingon Swatch time left in the spec :P
I still think there's room for something like DateTime::Interval. but it can easily be mapped out in module-land first. 09:12
with minimal duck punching.
m: say $*TZ 09:15
camelia rakudo-moar 89c8e4: OUTPUT«0␤»
masak ...isn't camelia running in .nl ? shouldn't that be 7200, then? 09:16
it's 7200 locally.
09:18 SamuraiJack joined 09:23 pecastro joined, dayangkun_ left
moritz camelia isn't running on feather anymore 09:25
masak is it running in a 0-offset timezone?
moritz it's running on the internet :-) 09:26
moritz@host07:~$ date
Fri Aug 1 09:26:17 UTC 2014
it's timezone is configured to be UTC
masak oki
that explains it.
moritz++
09:30 spider-mario joined 09:33 colomon joined 09:36 dayangkun_ joined 09:38 virtualsue joined 09:40 bjz_ joined 09:41 bjz left, anaeem1 joined
lizmat good *, #perl6! 09:49
hmmm... I can't get rakudo to build on Moar atm 09:50
Stage optimize : Cannot find method 'orig' 09:51
at src/Perl6/Optimizer.nqp:353 (blib/Perl6/Optimizer.moarvm:add_memo:19)
from src/Perl6/Optimizer.nqp:348 (blib/Perl6/Optimizer.moarvm:add_worry:19)
looks like it is jnthn's last commit 09:52
jnthn wtf
Works here
lizmat want me to give you the full stacktrace ?
jnthn oh 09:53
Maybe I shoulda bumped NQP_REVISION...
oh, and MOAR_REVISION even more so given there's bug fixes. 09:55
dalek p: 4c90808 | jnthn++ | tools/build/MOAR_REVISION:
Get various MoarVM improvements.
kudo/nom: 4024362 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION.
09:56
FROGGS[mobile] jnthn: we really need to fix parrot :/
jnthn FROGGS[mobile]: I can't actually build nqp-p at the moment due to link errors. :/ 09:57
lizmat rebuilding and spectesting...
will also do parrot and jvm this time
09:58 fhelmberger left
jnthn FROGGS[mobile]: Is it just the inexplicable fallout of the junctions related patch I did that's at issue? 09:58
cognominal r: my @a = "a\n\n\nb\n \nc".split: /[\h*\n]{2..Inf}/; say @a.perl 09:59
FROGGS[mobile] jnthn: seems like, aye
camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«Array.new("a", "", "", "b", "", "c")␤»
..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
cognominal oops 10:00
r: my @a = "a\n\n\nb\n \nc".split: /[\h*\n]**{2..Inf}/; say @a.perl
camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«Array.new("a", "b", "c")␤»
..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
cognominal that's better
masak moritz: speaking of time zones: www.commitstrip.com/en/page/20/ 10:08
dalek ast: 2073365 | (Elizabeth Mattijsen)++ | S06-routine-modifiers/lvalue-subroutines.t:
Another fudge for (probably) #122448
10:09
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122448
lizmat on Moar: All tests successful. 10:18
Files=908, Tests=31977, 226 wallclock secs ( 9.09 usr 4.02 sys + 1420.95 cusr 173.06 csys = 1607.12 CPU)
jnthn can't remember the last lizmat measurement 10:19
lizmat well, it was about the same, but with fewer tests
10:28 akaseki joined, chenryn left 10:32 aoseki left
moritz masak: :-) 10:38
10:42 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 10:44 anaeem1 left 10:45 anaeem1 joined
lizmat hmmm... quite severe breakage on parrot indeed 10:49
10:49 anaeem1 left
lizmat gist.github.com/lizmat/72dc142c2aac6b402b64 # failures on parrot 10:50
masak has anyone bisected it? is there a likely culprit commit? 10:51
jnthn Yes, we know which commit did it.
masak ah.
jnthn Well, provided that one is the only issue
10:52 kurahaupo_ left
masak is it possible to revert it and see if everything rebuilds fine? 10:52
jnthn But (a) it makes no sense it should cause this kind of failure, and (b) latest nqp-p doesn't build on Windows, meaning it's a yak shave for me to go hunt it
masak *nod*
lizmat imgur.com/86npB1j # wonder what Perl 6 will be :-)
10:53 chenryn joined
masak Perl 6 does the same, but the 2012 version is 10 cm high, and the 2014 version is 50 cm high :) 10:54
10:55 anaeem1 joined
nwc10 the Perl 5 truck is old and ugly, and the snowplough is clearly hacked together and welded onto the front. 10:56
masak still, it gets things done. 10:57
nwc10 yes, sorry, forgot that that doesn't go without saying
masak it puts food on a lot of people's families every day.
nwc10 for some reason it's put too much food on the table here at work today 10:58
(catering oversupply)
must be Perl's fault.
masak well, you saw the utter efficiency of Perl in that gif :P
no wonder there's a lot of food.
11:00 anaeem1 left 11:01 carlin left, rindolf left 11:02 rindolf joined
Woodi hallo today :) 11:02
11:02 anaeem1_ joined
masak cześć, Woodi 11:03
11:05 carlin joined
Woodi moritz: I think double accounting is general cure and solid base for such cases. but it's a overkill, it's so solid that ppls don't like it :) 11:09
moritz Woodi: this is not about the actual accounting/bookkeeping 11:10
Woodi: but about collecting your customer's user data, and using that to generate invoices
Woodi it's very interdisciplinary problem :) I like put users personal data into LDAP and have automatic balances from double accounting system :) 11:12
btw. I do not have such system :)
masak moritz: your desired system sounds interesting. unfortunately, I don't know about any prior art. 11:13
Woodi requirements, details, analysis, specifications, lot's of work :) 11:14
moritz I found blog.plover.com/prog/Moonpig.html quite interesting, and it solves part of the problem (the billing), but with quite different constraints than ours 11:18
11:21 SamuraiJack_ joined 11:22 SamuraiJack left
Woodi I think mjd is proud of quality in moonpig project :) but I also got impression it is crafted for theirs needs... 11:23
I 11:24
... still hope mjd disagree with my impression :)
moritz wy wouldn't it be craftef for their needs? 11:25
Woodi it was internal project for some mail company and lot's of code there is for theirs ways of calculating receivables... it's possible project is written with general case in mind but probably I need some training to see this 11:28
and it have all web interface ! somehow I hate this... keyboard presses lag, all that infrastructure between... when you have, let's say 100 invoices to put into system (per day or week) you realy want curses-like app responsibility 11:33
nwc10 I have just found that this exists and it it pleases me that it is so: www.swearemipsum.com/ 11:35
11:37 fhelmberger joined 11:40 SamuraiJack__ joined 11:43 kivutar left 11:44 SamuraiJack_ left, chenryn left 11:49 mr-foobar joined 11:51 kivutar joined 11:54 dmol left
dalek p: 6923af7 | jnthn++ | src/vm/moar/QAST/QAST (2 files):
Assorted small optimizations to QAST -> MAST.
11:57
p: 4b6a4af | jnthn++ | src/how/NQPClassHOW.nqp:
Cheapen late-bound method lookup.
ast/S26-WHY: b6ebef3 | duff++ | S26-TODO.md:
Update S26-TODO.md
11:59
12:00 SamuraiJack__ left
dalek kudo/nom: 5f7eaa6 | jnthn++ | src/Perl6/Optimizer.nqp:
Optimize the optimizer somewhat.

Shaves about a third off its execution time.
12:01
kudo/nom: 4d347fd | jnthn++ | src/Perl6/World.nqp:
Cheapen dynamic compilation somewhat.
nwc10 jnthn: I was *joking* about negative parse times in the near future. You weren't supposed to take me seriously :-) 12:04
12:06 nhayashi left 12:16 slavik1 left, kurahaupo_ joined
jnthn It's still a good bit too positive :P 12:18
12:19 kst`` joined 12:21 kst` left, kaare_ left 12:27 Ven joined
lizmat jnthn: is this a strange error message? postcircumfix:<{ }> binding not defined for type Hash 12:29
12:29 slavik joined
lizmat aha, most definitely 12:30
the error goes away with MVM_SPESH_DISABLE=1 12:31
golfing down
jnthn lizmat: Yeah, that's on my todo list for today; FROGGS ran into it also
lizmat in my case, it comes from a repeated call to $foo<a><b> := $bar 12:32
where <a> and <b> are varying
seems to happen on the 22nd iteration on a given $foo 12:33
Ven is using Perl 6 to parsing some PDF, and it feels good. 12:38
12:38 kurahaupo_ left, kurahaupo_ joined
Ven has no idea what the hell he's doing 12:39
lizmat .o( PDF parsing ? ) 12:40
Ven doesn't look like dwarring++'s library uses `is export` anywhere
well, it's not like there's docs, so I'm trying to read the tests .. 12:42
12:42 oetiker joined 12:44 slavik left
Ven well, doesn't seem like it'll quite do what I want it to. Too bad. 12:44
12:45 slavik joined 12:48 Alula_ left, Alula_ joined
Ven `say PDF::Grammar::Content.pdf(slurp($f))` => Any :( 12:49
12:52 molaf joined
dalek ast/S26-WHY: fd583ac | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Fix WHEREFORE test
12:54
ast/S26-WHY: fad2530 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
Add test names to failing WHEREFORE tests
12:54 rurban joined 12:57 anaeem1_ left
Ven why did I even try to parse that pdf ... 3 vim commands and it's done 13:04
lizmat wonders how much can be done in 3 vim commands 13:06
Ven I could've done it in 1, I just didn't know ":v" 13:07
13:07 chenryn joined
PerlJam lizmat++ (grant manager for the next attempt to betterify ACT) 13:08
lizmat PerlJam: thank you
let's hope this one will go better than the other grants I've been / am grant manager of
BTW: for which I'm actually quite hopeful :-) 13:09
PerlJam I didn't get a good vibe from the grant application, but with ribasushi and SawyerX chiming in their support and you as grant manager, I feel better about it. 13:11
lizmat in a way, it's the 3rd reboot of Act 13:12
Ven wonders what the topic is 13:15
timotimo wowza, only turning dynamic vars into member vars shaves off a *third* of the execution time 13:16
PerlJam Ven: What ACT is or what the grant is?
timotimo (of the optimizer)
Ven PerlJam: both 13:17
grondilu eventually managed to compile rakudo
jnthn timotimo: No, it's a bit more subtle than that.
timotimo ah? 13:18
jnthn timotimo: It also got rid of a lot of non-flattenable scope entries and switched them over to be native ints.
PerlJam Ven: act.mongueurs.net/ has some links for more info about ACT, and the grant proposal is at news.perlfoundation.org/2014/07/gra...--voy.html
timotimo oh!
yeah, that does sound nice to have :)
jnthn Together, on very hot paths called tens of thousands of times, it adds up.
gtodd TimToady: thanks re: hashes lists and "any" ... I was following along the smart matching examples from the ORA book "Perl6 Essentails" and they weren't working
timotimo gtodd: how recent is that book? 13:19
gtodd pretty old :-)
I see no mention of .any
:)
well not in that section
PerlJam that book is 10 years old.
13:19 chenryn left
gtodd hehhe 13:19
PerlJam A great many things have changed since it was published ;)
gtodd back when perl6 was more like perl5 is now
Ven still looks a lot like perl 6 13:20
13:21 chenryn joined
jnthn lizmat: About the ^^ bug, so far looks like the optimizer may not be to blame, but rather a code-gen bug. Which'd explain why it's Moar-specific, when the optimizer's inlining stuff works equally on other backends. 13:21
gtodd adds .any everywhere and everything starts working
wheeee!!!
jnthn lizmat: xor code-gen has (at least) a register double-releaes bug... 13:22
timotimo yeah, .any is really the panacea for all bugs in perl6 programs
lizmat ok, want me to add this to the ticket ?
jnthn It fixes .any bug :P
lizmat: No, I'm working on the fix now
lizmat okidoki :-)
gtodd it's still probably wrong-ish but it works :) 13:23
p5 => TIMTOWDI , p6 => TIMTOWDWTDI 13:24
(extra WD for "well designed")
nwc10 wonders whether it even matters whether the "next" "PHP" is numbered 6 or 7. In that, if it's not actually compatible with PHP 5, will it matter, because Facebook are already working on making Hack fast. 13:25
Files=908, Tests=31977, 112 wallclock secs (15.05 usr 3.87 sys + 1852.80 cusr 186.22 csys = 2057.94 CPU)
that's the spectest.
That's fast
jnthn nwc10: Faster than your last run? :) 13:26
gtodd one day Perl6 will have 25 year old "idioms" that will still don't feel crufty/hackish
13:26 nhayashi joined
Ven yes they will :) 13:27
lizmat Perl6: More of what Perl 5 made greate... and less of what Perl 5 made grate
nwc10 jnthn: well, I might be getting confused, because that was an optimised build, rather than ASAN
jnthn ah, ok :)
lizmat s/greate/greate/
gtodd lizmat: hah
lizmat *sigh*
jnthn Still...112s :)
nwc10 but still, it *is* fast
jnthn Where do I get my 24 core box? :)
.oO( Would Windows know waht to do with a 24 core box? )
13:28
nwc10 windows probably would, but TAP::Harness doesn't
moritz jnthn: I have worked with a 24 core box on windows :-)
jnthn C:\consulting\rakudo>perl6-m -e "say (0 ^^ ^7).WHAT"
(Range)
m: say (0 ^^ ^7).WHAT
camelia rakudo-moar 4d347f: OUTPUT«Nil␤»
jnthn Yeah. 13:29
timotimo i'm looking forward to seeing what that code-gen bug was
jnthn It was a code-gen bug.
gtodd nwc10: the more special semi commercially sponsored versions of languages appear (Hack, Dart?) the better ... it will make everyone will like perl more :-)
dalek p: b733404 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Fix multiple reg alloc bugs in xor.

Managed to get lifetimes wrong AND double-release in some cases.
13:30
timotimo because perl6 is not comercially sponsored, people won't say "facebook/google/microsoft/the NSA/... is evil! i'm not using this language!"
Ven people don't say that, actually. Just look at go. Terrible language design, thousands of users because "GOOGLE" :) 13:31
nwc10 nor NASA, these days
timotimo "terrible language design"?
a friend of mine says it's more pythonic than python
or "said"
or something
nwc10: NASA doesn't have any mony left over to buy soft toilet paper ... 13:32
jnthn lizmat: b733404 should deal with RT#122448
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122448
Ven timotimo: I could repeat all my points here if you want, but basically: language that'd have been considered poor even in the 70s
nwc10 I'm not sure that JS->Dart is going to win better than PHP $n+1 > Hack
because there are several fast JS implementations, only one of which also does Dart
lizmat jnthn: will try in a bit 13:33
nwc10 but the largest user of PHP seems to be planning a move from PHP to Hack, and providing a VM, and publishing the PHP spec
jnthn lizmat: OK. I seem to recall there was another regression but don't see it in my spectest run?
Ven nwc10: the largest user of PHP ?
jnthn lizmat: Also I didn't see RT#122448 causing a fail; was it fudged?
Ven they're like, what, 0.00001% usage of PHP ?
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122448
nwc10 timotimo: perl5.git.perl.org/perl.git/blobdif...rlfunc.pod
lizmat jnthn: S06-routine-modifiers/lvalue-subroutines.t , tests 10 and 11, just fudged 13:34
nwc10 Ven: OK, 80% of stats are made up. But I suspect by page views, they are largest
Ven They probably are, yes, considering google is running c++
timotimo nwc10: oh, interesting! 13:35
jnthn lizmat: OK. Turns out they still fail. So, unrelated to that RT after all
lizmat :-(
nwc10 timotimo: when Larry was explaining, creased up, because he immediately got the "kybble" pun.
fingers 13:36
Pm creased up
timotimo ah
lizmat jnthn: fwiw, that pb *also* went away with --optimize < 2
so maybe that *is* an optimizer issue
timotimo lizmat: could very well be that it just had something to do with what registers were used by what other stuff at that time
lizmat as the param to the sub, becomes Mu inside the FETCH 13:37
timotimo oh, that's for that thing
jnthn lizmat: Yes, maybe ;)
lizmat gist.github.com/lizmat/8d04b65573200ec70f08 # for a golf
13:38 akaseki left, akaseki joined 13:40 fhelmberger left
jnthn oh wtf 13:41
it inlines checklastval
As in, at Perl 6 level
That shouldn't even get inline_info set 13:42
PerlJam How do I reference an individual multi sub right now? 13:43
The docs say I can use &foo:(Int) or so, but that doesn't seem to work.
moritz &proto.candidates[0]
PerlJam ah
thanks
moritz I don't think there's syntactic sugar yet
timotimo jnthn: you asked me to remind you that we should do something about for + the .. operators having the operator itself inlined, thus preventing the for->loop optimization
PerlJam is .candidates in order of declaration? 13:44
jnthn Either just by assigning it to something so you can reference it, or ...what moritz said but that may be fagile given the index reliance... or there's a method on Routine, iirc. Something like cando
And you give it the args and it gives you back the candidate(s) that would be satisfied by them.
timotimo candodats?
PerlJam timotimo: ;-) 13:45
timotimo how do you spell that? doodads?
jnthn: if we actually made the optimizer smart enough to recognize the Range.new stuff after the inline, that'd give us the same optimization for other custom operators and subs that return ranges ... 13:46
not sure if it'd be worth it
jnthn PerlJam: It's called .cando and you pass it a Capture that's an example of the args. 13:47
13:48 nhayashi left 13:49 kurahaupo_ left, iarna joined
jnthn lizmat: Got a fix here for that one too 13:49
13:49 nhayashi joined 13:50 rurban left
lizmat cool! 13:50
jnthn The static inliner can actually do better thanks to the sink changes
However, doing better in this case exposed a missing bit of "can we" analysis :) 13:51
13:52 rurban joined 13:53 iarna left 13:54 iarna joined
timotimo can we ever throw away the decontrv from an inlined function? 13:55
the simpler the qast tree, the nicer it is, but what do i know
jnthn Not trivially 13:56
Spesh may be in a better place to throw those away
dalek kudo/nom: a8c752b | jnthn++ | src/Perl6/Actions.nqp:
Things with nested blocks are not inlinable.

There are ways to have nested blocks without a declaration being made; anonymous subs and thunks are just two examples. This fixes an lvalue subs regression.
timotimo mhm
jnthn And I think spesh *does* throw some of them away already. 13:57
13:57 rurban left
timotimo probably does, yeah 13:57
that's way too late for our for+range optimization to kick in, though ;)
jnthn Oh, I think that's just an example of the classic phase-order problem
timotimo yeah, but at the point when spesh runs, we don't have the qast any more - or at least shouldn't ... would probably waste a lot of memory we can only very rarely benefit from 14:05
dalek kudo/nom: 69eb2f8 | jnthn++ | src/Perl6/Optimizer.nqp:
Re-order to restore for 1..1000 {} optimization.

More inlining possibilities led to 1..1000 style things being turned into code no longer recognized as a loop over a range, so we lost the optimization. Move it to before any inlining attempts are made.
  timotimo++ for spotting this optimization regression.
14:08
14:09 chenryn left
ChoHag Rakudo, nqp and moar insist on installing into the same directory. 14:10
moritz that is correct.
ChoHag It is marginally frustrating. 14:11
moritz you are welcome to make the build system more flexible, but that will also be "marginally" frustrating
14:11 thou joined
ChoHag Mostly because I already picked what ended up being the wrnog directory name. 14:11
lizmat ChoHag: is your frustration because of compiled versions ?
14:12 chenryn joined, rurban joined
lizmat because I'm close to finishing the Foo.moarvm -> Foo.pm.moarvm transition 14:12
ChoHag It's frustrating because my ~/pkg directory is now a tiny bit more disorganised. 14:13
jnthn bbi30, err& 14:14
timotimo oh, you meant *that* with the phase-order-problem thing!
14:15 zakharyas joined
ChoHag To be fair, I'm not following anything remotely like a build doc, if one even exists. 14:15
Just running random code with names like 'Configure.pl' and 'Makefile'. 14:16
I see that whatever broke rakudo this morning got fixed. 14:18
14:18 treehug88 joined
lizmat ChoHag: indeed, it needed an NQP / MOAR version bump 14:19
ChoHag That was helpfully discovered just as I was packing my laptop up - now without a working executable - ready to commute and enjoy the only period of hacking available.
Or not.
carlin the joys of running bleeding edge
timotimo ;(
using perl6-bench with its extract + build thing is helpful for this kind of deal, because you have different rakudo versions in different folders 14:20
ChoHag git++
timotimo all you need to do is supply the absolute path to perl6 or nqp-*
ChoHag git reset --hard HEAD^, though my battery took quite a beating.
Woo! Readline! 14:21
timotimo oh!
the commute/hacking period already happened 14:22
ChoHag The first of the day.
The second is less useful as I'm hot and tired.
~20 minute walk almost exactly west, into the sun.
Anyway it prompted me to finally build the rakudo components individually, so there's that. 14:23
Does Panda have any support for keeping modules updated? 14:24
Is there even any way to check? Or is it basically a glorified wget and I'm on my own?
timotimo when you ./rebootstrap, it'll delete and re-install existing modules, that will give you an update, too
i think you can panda update + panda status or list or something
tadzik if you reinstall an already installed module it will get updated :) 14:27
it would be an LHF to implement something like "update everything"
ChoHag Well rebootstrap seems to work fine.
tadzik yeah, that also updated panda itself :) 14:28
in such a wait that things don't blow up
usually
ChoHag With apparent success. 14:29
Which means the debugger works again.
And is probably still useless due to lacking thread support... :(
timotimo very good
yeah, that's not terribly easy. though with our gtk binding we could do something there 14:30
14:30 anaeem1 joined 14:32 pmurias joined
dalek ast/S26-WHY: 9db0738 | duff++ | S26-documentation/why-leading.t:
Add leading tests for proto and multi subs
14:32
timotimo if someone has an idea how to write automated tests for the debugger, that would be fantastic ... 14:33
14:35 kaleem left 14:36 kaleem joined 14:37 molaf_ joined, iarna left 14:39 colomon left, molaf left
jnthn back 14:48
Ven front 14:50
masak activates the crushing device
timotimo clear!
TimToady so asplodation 14:52
masak timotimo: idea for writing automated tests for the debugger: make it a "brain in a vat", basically a stateful thing that *thinks* it's hooked up to a CLI and a runtime -- but those two are injected, and can be replaced by whatever for testing purposes.
Ven masak: you're ready for consequences, then :P ?
jnthn Note that the debugger was written to accept multiple frontends 14:53
timotimo i was about to point that out
masak even better.
timotimo but testing the frontend would be interesting, too
jnthn You could probably write a frontend that subscribes to all the same hooks and just emits ok
Well, most of the bugs we saw so far would have been demonstrated by tests that make sure they get the expected hooks called, I think. 14:54
timotimo hmm, probably
14:58 BenGoldberg joined 15:02 kst`` is now known as kst 15:04 kaleem left, takesako left
tadzik The Warsaw Uprising started exactly 70 years ago today 15:05
the sirens and car honks went off in the entire city, it gave me goosebumps
nwc10 jnthn: nom HEAD expodes spectests
PerlJam tadzik: you're more than 70 years old? ;) 15:06
tadzik no, I'm not :)
nwc10 nom^ happy
tadzik I mean they did today, just now
masak Warsaw++ # uprisingest city I know
15:08 BenGoldberg left
jnthn nwc10: Yeah, somehow exception reporting got busted 15:09
15:09 BenGoldberg joined 15:10 denis_boyun left
[Coke] when developing perl6.org, is there a faster way to get from editing source to viewing the edit? it takes minutes to run mowyw here. 15:12
timotimo is mowyw written in perl6? %) 15:13
[Coke] nope. p5.
timotimo that's supposed to be the fast one!
[Coke] can perl6.org support something like a mojo app, or does it have to be static at this point? 15:15
if I edit index.html, it takes 1m38s to run mowyw before I can see the edit.
that makes updating the site a non starter. 15:16
timotimo holy yikes. 15:17
15:17 takesako joined
PerlJam [Coke]: Maybe encourage the author to use Devel::NYTProf or something ;) 15:18
15:18 ventica joined
dalek kudo/nom: b1ebf77 | jnthn++ | src/Perl6/Optimizer.nqp:
Forgot to visit children after range opt.
15:19
15:20 kaleem joined
masak [Coke]: heh, my blog is faster than that. 15:21
hoelzro who's duff? duff++ for helping with S26 stuff 15:22
PerlJam hoelzro: that's me.
hoelzro PerlJam++
dalek kudo/nom: 5e3434b | (Elizabeth Mattijsen)++ | tools/build/Makefile- (3 files):
Make sure we precompile core modules with extension
kudo/nom: 9fd23d0 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo.pm:
Temp fix supporting loading .pm6 files as source
kudo/nom: 8bada16 | (Elizabeth Mattijsen)++ | src/core/CompUnit (2 files):
Almost complete refactor CompUnit and CURL::File

A CompUnit object now has always the source file as its "path", even if the source file cannot be found.
CURL::File has been utterly simplified, as it turned to be impossible to smartmatch finding files. So now it only looks for the existence of the file, and returns that. Thanks to Scalar[0] indexing, this is compatible with the API.
lizmat please note that these changes require a re-running of the Configure.pl 15:23
masak tadzik: I want to adapt Bailador to work with sergot++'s ned HTTP:: classes. any complaints? I'll PR ya.
japhb timotimo: Did anyone explain flame charts yet? (Sadly, this is my first chance back at this keyboard.)
pmurias What's the repo for the p6 benchmarks? 15:24
hoelzro now I'm really glad I switched to that $=pod[$pod_index++] idea!
japhb If not, here are a couple uses: www.brendangregg.com/FlameGraphs/cp...raphs.html and www.html5rocks.com/en/tutorials/dev...lame-chart
pmurias found it
Ven pmurias: not in p6 iirc
lizmat japhb o/
japhb pmurias: Are you talking about perl6-bench?
masak tadzik: also, I feel like writing some more tests.
japhb lizmat: o/ :-)
Ven (I mean not in the perl6 org)
pmurias japhb: does it support nqp?
japhb pmurias: of course 15:25
Some tests don't apply to NQP, of course, because they test things like general 'for' loops, but yeah, most tests include an NQP version -- and the tools will automatically work around any missing ones by default. 15:26
15:26 ventica left, iarna joined
pmurias japhb: and how to I specify which nqp backend to build? 15:26
ahh I see 15:27
japhb: the README is outdated as it should be nqp-parrot instead of nqp? 15:28
japhb Yes, that's probably true. Feel free to submit a PR. :-)
pmurias in CHECKOUTS
15:29 Ven left
japhb TBH it's fairly likely there's rot in variants other than *-moar and *-jvm, as those have been tested most recently by multiple people. I think jnthn tested *-parrot last month, but he was already working around some minor Windows incompatibilities. 15:30
15:30 kaleem left
japhb stands with arms akimbo in mock sternness 15:30
... And where are those patches, jnthn, hmmm? ;-) 15:31
(Of course, I'd rather have the ones that actually make the compiler faster, but you know, one has to give him a hard time about *something*.)
15:32 kaleem joined 15:33 dayangkun_ left
timotimo japhb: i ran parrot, jvm and moar yesterday 15:33
with both nqp and rakudo
japhb \o/
Oh duh, yes, you sent me a link to the three backends. OK, at least all of the "standard" NQP/Rakudo variants work fine then, plus Perl 5. I doubt anyone's tested niecza or nqp-js or such recently, though. 15:34
timotimo that's correct 15:35
and my rakudo-moar-jit and nqp-moar-jit variants don't quite work just yet, i think
(apart from not providing any benefits to the benchmarked code yet)
15:42 dmol joined 15:43 kaleem left
dalek ast: 0122f77 | (Elizabeth Mattijsen)++ | S06-routine-modifiers/lvalue-subroutines.t:
Unfudge now passing lvalue sub tests
15:45
15:47 anaeem1 left, anaeem1 joined 15:48 [Sno] left
japhb It's amazing how much faster morning traffic moves on a Friday. 15:49
TimToady it's all the googleys doing they're 20% day in bed :) 15:50
*their 15:51
15:52 anaeem1 left
japhb I fully support that. 15:52
.oO( For my 20% project, I'm researching the effects of significantly more rest per week on the other 80%.)
15:53
15:53 denis_boyun_ joined
masak +1 15:54
16:04 ventica joined 16:05 treehug88 left, cooper_ joined
dalek kudo/nom: 1130554 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
Bump NQP to get short-circuit fix
16:09
ast: 31c3fd1 | (Elizabeth Mattijsen)++ | S03-operators/short-circuit.t:
Unfudge now passing test
16:10
16:13 Rotwang joined 16:18 cooper- joined 16:19 chenryn left 16:21 zakharyas left
dalek kudo/nom: d40cc63 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/File.pm:
Make sure we spot a compiled file if source absent
16:25
ast: c0e28b3 | (Elizabeth Mattijsen)++ | S10-packages/precompilation.t:
Remove removed named parameter :no-precomp
16:26
ast: 26d1dda | (Elizabeth Mattijsen)++ | S22-package-format/local.t:
Bring CURL::F tests up-to-date
16:37 takesako left 16:38 cognome_ left, cognominal left 16:39 cognome joined, virtualsue left 16:41 pecastro left 16:43 cognome left 16:45 cognominal joined, cognome joined 16:47 gfldex joined 16:52 takesako joined
TimToady hmm, compiling nom/master/master for all three backends, got: make: *** No rule to make target `lib/Test.pm.pir', needed by `p-all'. Stop. 17:05
masak .oO( "Need more money. Stop. Send it by your earliest convenience. Stop." ) 17:06
17:08 FROGGS joined, dakkar left
FROGGS o/ 17:08
ventica FROGGS: o/ 17:24
dalek kudo/nom: 085ab95 | TimToady++ | tools/build/Makefile-Parrot.in:
missing deps: Test.pir -> Test.pm.pir, etc.
17:28
kudo-star-daily: 48ae70a | coke++ | log/ (14 files):
today (automated commit)
17:31
rl6-roast-data: 8552de2 | coke++ | / (5 files):
today (automated commit)
17:32 [Sno] joined, colomon joined
gtodd FROGGS: up above btyler talked about a JSON module they made ... 17:32
:-) 17:33
FROGGS will backlog in a bit :o)
btyler WIP still :) but maybe useful if you need to chew through a great deal of JSON rapidly and pull data out
just a nativecall binding, nothing fancy
grondilu p6: say 1/2 R** 3 17:45
camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: OUTPUT«0.111111␤»
grondilu thought that meant 3**(1/2) since the R metaoperator reduces precedence 17:46
p6: say 3**(1/2)
camelia rakudo-jvm 69eb2f, niecza v24-109-g48a8de3: OUTPUT«1.7320508075688772␤»
..rakudo-{parrot,moar} 69eb2f: OUTPUT«1.73205080756888␤»
PerlJam grondilu: precedence. 17:51
TimToady R does not reduce precedence, that I know of 17:52
PerlJam p6: say 1/(2 R** 3)
camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: OUTPUT«0.111111␤»
PerlJam grondilu: oh, R *reverses* the operands 17:53
grondilu p6: say: 1 + 1 R* 3
TimToady S03:4163
synopsebot Link: perlcabal.org/syn/S03.html#line_4163
camelia ( no output )
grondilu p6: say 1 + 1 R* 3
camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: OUTPUT«4␤»
cognominal I have a problem bootstrapping panda with my last rakudo-moar build (based on most recent nom rakudo) gist.github.com/cognominal/a123a23cdb46d4a2eae4
TimToady grondilu: only the list infixes reduce precedence
hypers and scalar metaops do not 17:54
cognominal does someone has the same problem?
grondilu I don't know where I got this idea then. Nevermind.
TimToady overgeneralized from X and Z, I suppose 17:55
grondilu yeah probably
TimToady assignops also change precedence 17:56
m: my $_ = 40; $_ += 0 && 2; .say 17:57
camelia rakudo-moar 69eb2f: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/Jv161Z6Sm_:1␤ ------> my $_ ⏏= 40; $_ += 0 && 2; .say␤40␤»
TimToady $_ = 40; $_ += 0 || 2; .say 17:58
m: $_ = 40; $_ += 0 || 2; .say
camelia rakudo-moar 69eb2f: OUTPUT«42␤»
grondilu m: $_ = 40; $_ = 0 || 2; .say
camelia rakudo-moar 69eb2f: OUTPUT«2␤»
grondilu ok
masak so, assignops are listops? 18:01
TimToady not necessarily, see S03:4078 18:05
synopsebot Link: perlcabal.org/syn/S03.html#line_4078
masak TimToady: ah, yes. makes sense. 18:06
TimToady: how does Z= know it's [Z]= and not Z[=] ? 18:07
TimToady it kinda doesn't matter 18:08
[Coke] daily failures: n: 1385; j: 47; m: 2; p: 1715 18:10
TimToady but basically Z looks for the = first in infix_prefix_meta_operator:sym<Z> 18:11
assignment = is only looked for once we're happy we otherwise have an infix 18:12
it's not quite LTM, but just ordered alternatives at that point
infixish controls all the action 18:13
well, alternative in the sense that []? gives you '' or '=' at that point, after parsing the base infix 18:16
cognominal jnthn, my problem persists with fresh clones of panda and rakudo 18:24
18:24 denis_boyun_ left
cognominal The error is coming from the ModuleLoader 18:25
18:31 Rotwang left, Rotwang joined 18:36 sqirrel joined 18:43 sqirrel left, takesako left
FROGGS cognominal: looks like there were changes how precompiled modules are looked up 18:45
cognominal: I have the same problem with v5 :/
cognominal ok, so I am not hallucinating. 18:46
FROGGS cognominal: it looks like the files are called now .pm.moarvm for example: github.com/rakudo/rakudo/commit/5e...6723ca26e7 18:47
which makes sense but is slightly surprising :o) 18:48
so panda needs a tweak, should be fairly simple though
cognominal that makes sense
gtodd does perl6 have the concept of "baby perl" or does it require at least toddler level babbling
cognominal gtodd, It also supports the concept of senile Perl; meaning old timers can still use sigiless routines shitfing @_ :) May also please people having done to much PostScript of FORTH too. 18:53
s/sigiless/signature-less/ 18:54
more seriously, that means it goes out of its way ro support people who want to convert perl5 code. 18:55
18:58 takesako joined
Ulti gtodd my experience is like the type system the babyness is progressive 19:04
PerlJam
.oO( progressive babyism? )
masak gtodd: yes, I feel that the concept of baby Perl 6 is there and is relevant. 19:08
cognominal I understand baby perl as the fact you can get away by knowing a small subset so you can learn as you go. This is still true of Perl 6. A typical counter example of an otherwise good language is haskell who asks you to learn esoteric concept like monad. 19:09
s/who/that/
PerlJam haskell doesn't ask you to learn about monads right away ...
just if you want to do "interesting" things :)
gtodd good because I am a baby :-) 19:10
19:10 eternaleye joined
gtodd e.g. I can't write Grammars :-\ .. but I'm going to try ... 19:11
Util: very good point
it's "strongly typed" but you have to ask nicely
19:13 darutoko left
gtodd cognominal: for a new non backwards compatible language it is pretty helpful ... 19:14
19:14 ventica left
gtodd anyway it has best IRC channel on the interwebs so ... that is huge :-) 19:15
#perl6 ++
thanks for being nice :)
PerlJam hugme: hug gtodd
hugme hugs gtodd
[Coke] .u ∿ 19:16
yoleaux U+223F SINE WAVE [Sm] (∿)
[Coke] .u COSINE
yoleaux No characters found
[Coke] .u COS
yoleaux No characters found
[Coke] aww.
FROGGS jnthn: about that commit, I have no idea when to release registers... github.com/perl6/nqp/commit/b73340...2bf3d05450
timotimo FROGGS: as soon as you can be sure that the resulting code is free to write over the register 19:17
with potentially bogus values
jnthn FROGGS: After you've produced all the code that's going to be using them.
19:20 aoseki joined 19:21 dwarring joined 19:23 akaseki left 19:26 FROGGS left 19:29 ventica joined 19:30 Sqirrel joined, gtodd left, gtodd joined
gtodd tnx for the hugs o/ 19:30
have good weekends all 19:31
19:31 gtodd left 19:32 FROGGS joined 19:34 rurban left
[Coke] jnthn: did you open a ticket for the "can't build nqp-p" somewhere? I remember seeing it on channel... 19:37
dalek p: aa8a615 | jnthn++ | src/QAST/Block.nqp:
Small optimizations to .symbol.
19:38
p: c3f29b6 | jnthn++ | t/qast/01-qast.t:
Bring test in line with behavior change.
jnthn [Coke]: No, didn't do so yet
[Coke]: I should probably try it on my laptop too, to rule out anything weird on this box... 19:39
[Coke] jnthn++ 19:41
Configure.pl's --help points at --git-protocol, but specifying ssh or git doesn't seem to change the "unable to access" error message. 19:44
19:46 iarna left 19:54 akaseki joined
[Coke] ... because I did it without protocol once, and that version got "stuck". arglebargle. 19:54
19:55 aoseki left
[Coke] moritz++ # adding git-protocol 19:55
19:55 gtodd joined
gtodd errm .. codegolf.stackexchange.com/a/35323/20338 couldn't read learn anymore in time to improve this ... suggestions welcome in the comments 19:59
cheers
20:02 rurban joined 20:05 eternaleye left 20:10 rindolf left, rindolf joined, kurahaupo_ joined 20:12 rurban left
[Coke] .tell moritz: fyi, --git-protocol doesn't look like it's passed down to nqp, so nqp tries the default https:// 20:14
yoleaux [Coke]: What kind of a name is "moritz:"?!
[Coke] .tell moritz fyi, --git-protocol doesn't look like it's passed down to nqp, so nqp tries the default https://
yoleaux [Coke]: I'll pass your message to moritz.
[Coke] yoleaux: urdumb.
20:15 eternaleye joined 20:24 rurban joined
carlin hugme: hug yoleaux 20:31
hugme hugs yoleaux
masak yoleaux: what kind of name is 'yoleaux'?! ;) 20:32
carlin .tell yoleaux what kind of name is yoleaux? 20:35
yoleaux carlin: Thanks for the message.
carlin oi, that's cheating
[Coke] yoleaux sounds like YOLO 20:36
lizmat TimToady++ for fixing my omission
carlin pronounces it yoll-awks 20:37
flussence
.oO( and it's yellow on my screen... )
gtodd especially the bit about .comb ulp ... sorry TimToady ;-) ... (oh and the whole thing fails if there's an empty line in the script ...) someone enter their own s 20:39
20:39 gtodd left 20:53 pecastro joined 20:55 iarna joined 21:07 zakharyas joined, pippo joined 21:09 akaseki left, pippo left 21:10 pippo joined
pippo o/ #perl6. 21:10
masak \o
pippo I am trying to compile latest perl6-j. But have the following error:
Error while reading from file: java.nio.charset.MalformedInputException: Input length = 1
Anybody could help? 21:11
timotimo at what point does that happen? 21:13
21:16 pmurias left
masak maybe gist us a make dump? 21:16
21:17 zakharyas left
lizmat wonders whether it would make sanse to have a "is COMPILE_TIME_ERROR" attribute for Routine 21:17
pippo timotimo: java -Xss1m -Xms500m -Xmx1000m -Xbootclasspath/a:.:/temp/gnomeforge/rakudo/install/languages/nqp/runtime/asm-4.1.jar:/temp/gnomeforge/rakudo/install/languages/nqp/runtime/asm-tree-4.1.jar:/temp/gnomeforge/rakudo/install/languages/nqp/runtime/jline-1.0.jar:/temp/gnomeforge/rakudo/install/languages/nqp/runtime/jna.jar:/temp/gnomeforge/rakudo/install/languages/nqp/runtime/nqp-runtime.jar:/temp/gnomeforge/rakudo/install/languages/nqp/lib/nqp.ja
timotimo pippo: that command got cut off 21:18
lizmat any MMD candidate marked that way, would cause the optimizer to throw a compile time error when it finds that that candidate is about to be selected
masak lizmat: interesting idea.
lizmat simply by executing that routine
use case:
timotimo and when it's hit at run time, it also throws that error, but it would be too late :( 21:19
lizmat multi sub say () { exception('Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument' }
jnthn That one is meant to be syntactic, I think...
masak lizmat: but that... what jnthn said.
lizmat I know
but if it happens at compile time, that wouldn't make too much difference ?
jnthn I worry a bit 'cus there's just a handful of cases when things are compile-time resolved. 21:20
masak the point is what happens if you pass in an empty list.
(which should not fail with an error)
timotimo pass an empty list or flatten in an empty list?
pippo timotimo: gist.github.com/anonymous/7d519d9c44939f8bc12b 21:21
masak timotimo: the latter, I guess.
lizmat r: multi a () { say "none" }; multi a ($a) { say $a }; a; a(); my @a; a(@a) 21:22
21:23 btyler joined
camelia rakudo-jvm 085ab9: OUTPUT«(timeout)» 21:23
..rakudo-{parrot,moar} 085ab9: OUTPUT«none␤none␤␤»
lizmat flattening into an empty list seems to not select the () candidate
jnthn |
masak r: multi a () { say "none" }; multi a ($a) { say $a }; my @a; a(|@a)
camelia rakudo-{parrot,jvm,moar} 085ab9: OUTPUT«none␤»
timotimo pippo: can you check if any of the files it would want to touch are way too small?
pippo timotimo: do not know which files it wants to touch. Those listed after java -Xss1m -Xms500m -Xmx1000m -Xbootclasspath ?? 21:26
timotimo dunno. use "find" to find the smallest files?
maybe during the build something got corrupted?
pippo timotimo: I have completely wiped out my git clone. And restarded from scratch. Same error. 21:27
timotimo i'm going to try it myself now.
pippo timotimo: on my 32 bits machine though there is no problem. Strange.
jnthn How big is gen/jvm/CORE.setting ? 21:28
timotimo it's weird that the commandline has --ll-exception, but doesn't give a stack trace at all
kind of seems like it happens before any of our "own" code is hit?
jnthn Yes 21:29
It's at the point where it reads in the source file, iirc
dalek kudo/nom: b8e660f | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Disallow @*INC entries to be list of CUR's

As discussed with FROGGS a few weeks ago already. BTW, this appears to have a great effect on startup time, judging from CPU usage in spectest.
jnthn So it's failing extremely early
lizmat Files=908, Tests=31827, 212 wallclock secs ( 8.95 usr 3.92 sys + 1314.99 cusr 171.08 csys = 1498.94 CPU)
first time < 1500 CPU seconds for me
jnthn lizmat++
timotimo \o/ 21:30
jnthn Yes, we regressed a bit on startup time in the last months
Partly due to doing too much work in CORE.setting loading. I guess that's addressed in this patch.
I'm currently working on trying to address some of the lower level reasons.
21:31 dmol left
pippo jnthn: almost 700k (693019) 21:31
jnthn (Basically, a lot of things grow O(setting size) rather than O(stuff used in setting)
pippo: OK, seems well formed
pippo perhaps my java installation is broken. I'll try re-installing... 21:32
timotimo unlikely if you made it this far? 21:33
jnthn Yeah...
I'm doubting it's busted Java install
I built JVM a day or two ago and it was OK
lizmat I've built JVM today without any pb
pippo I mean openJDK 21:34
I mean openJDK installation is broken. Perhaps... 21:35
timotimo that's how i understood it
pippo Oh. Sorry. Then I do not know. Anyway I do not want to make all of you loose too much time on this. I have moar running and it is OK for me. 21:36
btw: thank you all.
21:39 rurban left 21:40 ventica left
hoelzro "I've built JVM today without any pb" 21:43
lizmat anyway, my idea for the routine attribute came from reading irclog.perlgeek.de/perl6/2014-07-23#i_9068589 21:44
hoelzro .oO( peanut butter? )
lizmat problem
masak pointy block.
dalek blets: a35cb86 | (Herbert Breunung)++ | docs/appendix- (2 files):
terms class and callframe
lizmat S99:762
synopsebot Link: perlcabal.org/syn/S99.html#line_762
hoelzro I figured ;)
lizmat I think I found the source of some of the flapping tests: 21:54
multi sub infix:<eqv>(Any $a, Any $b) { $a.WHICH eq $b.WHICH }
jnthn Grr, yes
masak o.O
jnthn should really put that on his "stuff to do this month" list...
(the .WHICH bug) 21:55
lizmat reason is flapping in t/spec/S32-list/combinations.t
21:55 rurban joined
lizmat which is basically only eqv tests 21:55
masak jnthn: after you fix it, we can all sing "ding dong, the wicked .WHICH bug is dead!" 21:56
jnthn :P
I'm not sure if that makes me want to fix it more or less :P
masak .oO( fewer ) :P
hoelzro this is probably horribly naive, but what's wrong with that code (other than the fact that it should probably be using == instead of eq)?
jnthn hoelzro: .WHICH is...uh...a bit special at present. 21:57
hoelzro: On reference types, anyways
hoelzro I'm guessing (perhaps wrongfully) that it's implemented as hashCode on the JVM? 21:58
jnthn Yeah, and memory address on Moar :)
And objects move
hoelzro ah ha 22:00
that makes sense
TimToady no it doesn't :P
dalek kudo/nom: fb05219 | (Elizabeth Mattijsen)++ | src/core/List.pm:
Don't do expensive setup for sort if not needed
22:01
jnthn Well, objects moving makes sense. .WHICH being based on a changing memory address, less so :)
Objects moving is why Moar can throw all your short-lived crap out cheaply :) 22:02
22:02 telex left
pippo good night #perl6! 22:02
22:02 pippo left 22:03 eternaleye left, lustlife left 22:04 eternaleye joined, telex joined
masak 'night, #perl6 22:06
hoelzro night masak 22:07
22:07 gfldex left 22:08 eternaleye left
lizmat gnight masak 22:09
timotimo: re irclog.perlgeek.de/perl6/2014-07-23#i_9068759 , I'm al for banning of direct access to @*INC 22:10
*all
but what is your reason ?
22:12 eternaleye joined
timotimo because we have "use lib" :) 22:13
TimToady regexp.h:regnode program[1];/* Unwarranted chumminess with compiler. */
lizmat ah, so no optimization issues / reasno ?
*reason 22:14
jnthn I guess in some senses "use lib" is less flexible
timotimo not that i can think of
jnthn You don't get to meddle with ordering
And use lib depends on being able to fiddle with @*INC... 22:15
22:18 kivutar left
TimToady doesn't think mutable semantics in prerequisites should be forced on anyone who wants immutble semantics... 22:19
lizmat well, there is one *big* problem with use lib at the moment
it is not lexical
whereas you can say:
m: { use Test }; ok 1 # fails because the export was lexical 22:20
camelia rakudo-moar 085ab9: OUTPUT«===SORRY!=== Error while compiling /tmp/4Pe4072erv␤Undeclared routine:␤ ok used at line 1. Did you mean 'on'?␤␤»
lizmat you cannot do that with 'use lib':
TimToady well, that just seems like a bug 22:21
lizmat m: BEGIN say @*INC.elems; { use lib "." }; BEGIN say @*INC.elems
camelia rakudo-moar 085ab9: OUTPUT«2␤3␤»
22:22 nbrown joined
lizmat well, there are many tests depending on the current behaviour 22:22
TimToady well, those just seem like bugs :) 22:23
lizmat and probably darkpan6 code out there
so we need to fix this sooner rather than later
however, I have no idea to fix this
suggestions welcome :-)
TimToady you derive a new language that has those policies, which can callsame into parent language's policies 22:24
but any policy that changes the current language ought be lexically scoped, if at all possible 22:25
including the policy that you'll allow accidental genericity via mutable search paths
lizmat TimToady: are you particularly attached to @*INC ? if we would lose it in favour of just having 'use lib', would that make sense ? 22:26
TimToady but that should not be the default
you will note that I never mentioned @*INC when I wrote the initial bits of S11
lizmat indeed 22:27
and the reason I mentioned it, was to have a handle to work with
so I take it you're not attached to @*INC :-)
TimToady nope
lizmat well, neither am I :-)
TimToady I mostly wrote that there has to be an API where official library modules are considered immutable, and local development modules can be considered mutable 22:28
22:29 spider-mario left
TimToady I've always considered the library end of that to be more of a database query than a path search. 22:30
lizmat ok, clear, will sleep on that :-) 22:31
gnight, #perl6!
TimToady o/
jnthn 'night, lizmat 22:33
22:51 nbrown left
jnthn m: say 4 * 13 22:52
camelia rakudo-moar fb0521: OUTPUT«52␤»
jnthn fixes his off-by-factor-of-4 bug :) 22:53
22:57 dmol joined 23:00 rindolf left 23:05 Vlavv joined, eternaleye left
jnthn Woo, first sub-45s CORE.setting build. 23:05
23:06 grondilu left
jnthn Another another 4MB off base memory. 23:06
23:07 akaseki joined
carlin ohh memory improvements are nice 23:07
it would be great to be able to build rakudo with only 512MB of RAM
timotimo oof, that sounds like a lofty goal still 23:11
what jnthn is doing right now (as far as i understand it) is reducing the memory it takes to run a rakudo that doesn't touch many classes/functions 23:12
carlin yeah, but as long as it's going down and not up
timotimo since pretty much every program is going to neglect ~75% of CORE.setting's subs and methods ... :)
this specific thread of optimizations is most probably not going to help core setting compilation max memory usage much :( 23:13
23:13 aoseki joined
jnthn Well, it does 23:13
Because I greatly improved how static lexical handling is done.
timotimo oh!
well, *that* is good :)
jnthn Which meant I could toss a HUGE hash table and tens of thousands of MAST nodes.
timotimo ooooh 23:14
that sounds very, very nice
jnthn We're under 800MB max setting comp memory on my box now
760MB or so was highest I saw it go
23:14 eternaleye joined
timotimo so we're still at 150% of what we'd like to be 23:14
23:15 akaseki left
jnthn Yeah. But there's more wins to be had yet. 23:15
timotimo i'm not saying no to that :))
jnthn Also, though I'm eye-balling the Windows task manager, you can build NQP in under 128MB these days. 23:16
Setting build in under 45s on this box has been one of my small "want to get there" goals for a while. 23:18
A full Rakudo build is now 68.79s. So I guess my next goal is to be able to do a full Rakudo build in under a minute. :) 23:19
And NQP in 30s wouldn't be bad too.
timotimo at some point we're just going to compile rakudo and nqp from source every time we start up 23:22
because it'll be worth the space-time trade-off :P
dalek p: 9268ba7 | jnthn++ | tools/build/MOAR_REVISION:
Bump to latest MoarVM, with many improvements.
23:28
p: 183e611 | jnthn++ | src/vm/moar/QAST/QAST (2 files):
Use new MoarVM static block lexicals support.
kudo/nom: a1a2360 | jnthn++ | tools/build/NQP_REVISION:
Get latest NQP and MoarVM improvements.
23:29
23:30 nbrown joined 23:41 iarna left
flussence Stage parse : 59.658 23:42
yay, sub-minute here
(I wonder how long P5 takes compared to R*...) 23:48
timotimo takes for what task?
flussence the configure/make/make install part :) 23:49
(actually, throw make spectest in there)
23:51 xenoterracide joined
TimToady jvm parse just went from 87 seconds to 65 23:56
jnthn "jsut"? :)
TimToady moar from 34 to 31 23:57
23:58 xenoterracide left
jnthn TimToady: When was the previous JVM build? 23:58
Glad we're improving across the board, though :)
TimToady oh, like this morning 23:59
or maybe last night
jnthn ah, so today's improvements :)
Well, nice :)