Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-01

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 timotimo seems like i'll have to re-run rakudo-moar/2014.07
00:02 raiph joined #perl6
00:08 rurban joined #perl6
00:10 timotimo and possibly also nqp-moar/2014-07, that seems to be missing a bunch
00:10 timotimo weird.
00:14 kurahaupo_ joined #perl6
00:22 timotimo .tell japhb_ if you look at http://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_.
00:23 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
00:23 timotimo you should be using "handles" instead :)
00:23 btyler ah ha
00:23 timotimo m: class Foo { has Str $.text handles <lc uc tc> }; Foo.new(:text("Hi there, how are you")).lc.say
00:23 camelia rakudo-moar 89c8e4: OUTPUT«hi there, how are you␤»
00:24 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␤»
00:24 btyler lovely
00:24 btyler I made it here before feeling like there must be a nicer way: ' $object, $name { $object.json.^methods.grep({ $name })[0] }'
00:24 * timotimo blushes
00:24 btyler (the second clause of add_fallback)
00:25 chenryn joined #perl6
00:27 aoseki joined #perl6
00:27 iarna joined #perl6
00:29 kshannon joined #perl6
00:29 cibs joined #perl6
00:41 akaseki joined #perl6
00:45 iarna joined #perl6
00:45 thou joined #perl6
00:46 timotimo jnthn: http://t.h8.lv/p6bench/2014-08-01-moar_redone.html - less broken now
00:46 timotimo btyler: i'm glad to hear you're progressing :)
00:50 aoseki joined #perl6
00:50 colomon joined #perl6
00:51 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 #perl6
00:51 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?
00:52 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.
00:52 timotimo ah!
00:52 timotimo that seems like a good indication
00:52 timotimo btyler: not in bootstrap; look at Any.pm
00:55 dalek rakudo/nom: 3618990 | jnthn++ | src/Perl6/Optimizer.nqp:
00:55 dalek rakudo/nom: Make Junction optimization less costly.
00:55 dalek rakudo/nom:
00:55 dalek rakudo/nom: This refactor splits analysis and transform, decreasing the cost of
00:55 dalek rakudo/nom: the common case when we just analyze and realise we're not looking
00:55 dalek rakudo/nom: at a Junction.
00:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/361899024e
00:55 dalek rakudo/nom: 9d6c19c | jnthn++ | src/Perl6/Optimizer.nqp:
00:55 dalek rakudo/nom: Refactor visit_op in optimizer.
00:55 dalek rakudo/nom:
00:55 dalek rakudo/nom: This not only makes it a good bit cleaner, but also reduces the cost.
00:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d6c19c8fd
00:56 timotimo aye, the tree looks significantly different now
00:57 timotimo 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 akaseki joined #perl6
00:59 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
00:59 timotimo good night, jnthn!
00:59 aoseki joined #perl6
01:11 iarna joined #perl6
01:18 BenGoldberg joined #perl6
01:25 xenoterracide_ joined #perl6
01:32 BenGoldberg joined #perl6
01:36 dayangkun joined #perl6
01:37 slavik joined #perl6
01:40 silug joined #perl6
01:42 klapperl_ joined #perl6
01:46 colomon o/ from Newfoundland!
01:47 xenoterracide joined #perl6
01:48 FROGGS_ joined #perl6
01:51 dalek roast/S26-WHY: 2eb4bd7 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
01:51 dalek roast/S26-WHY: Use a variable to track POD contents
01:51 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/2eb4bd71a9
01:51 dalek roast/S26-WHY: a370b4f | (Rob Hoelz)++ | S26-TODO.md:
01:51 dalek roast/S26-WHY: More TODOs
01:51 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/a370b4f789
01:51 dalek roast/S26-WHY: 01725c6 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
01:51 dalek roast/S26-WHY: Check WHEREFOREs in leading test
01:51 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/01725c604a
01:51 dalek roast/S26-WHY: 503754b | (Rob Hoelz)++ | S26-documentation/why-trailing.t:
01:51 dalek roast/S26-WHY: Check $=pod for trailing comments
01:51 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/503754bbdf
01:56 cognominal joined #perl6
02:01 kst` joined #perl6
02:01 anocelot_ joined #perl6
02:01 slavik1 joined #perl6
02:01 FROGGS_ joined #perl6
02:03 sftp joined #perl6
02:08 anaeem1 joined #perl6
02:09 anaeem1 joined #perl6
02:14 noganex joined #perl6
02:19 nbrown joined #perl6
02:21 chenryn joined #perl6
02:28 anaeem1__ joined #perl6
02:33 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?
02:33 thou joined #perl6
02:33 japhb_ botsnack
02:33 yoleaux 00:22Z <timotimo> japhb_: if you look at http://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 #perl6
02:36 anaeem1 joined #perl6
02:36 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.
02:38 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:40 lustlife joined #perl6
02:40 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:40 yoleaux 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.
02:40 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 japhb timotimo: So sleep!  :-)
02:41 timotimo you "understand my concern"?
02:41 timotimo have you actually tried it?
02:41 timotimo hold on, let me get my timings
02:41 japhb Yes.  I don't test with the JVM backend anymore.  I don't have the time for it, NPI.
02:42 timotimo at almost exactly 1800 i started my benchmarks
02:42 japhb It's all death by startup time.
02:42 timotimo yes, it is
02:42 timotimo at 0100 it wasn't finished yet.
02:43 timotimo i ran nqp-moar, nqp-parrot, nqp-jvm, rakudo-moar, rakudo-parrot, rakudo-jim
02:43 timotimo jvm*
02:43 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.  :-(
02:43 timotimo well, actually, at about 0000 +/- 0030 i got to rakudo-jvm, which was followed by nqp-jvm, which was the last one
02:43 japhb "It's Rakudo, Jim.  But not as we know it ..."
02:44 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?
02:45 timotimo http://t.h8.lv/p6bench/2014-08-01-moar_redone.html
02:45 timotimo if you like line soup: http://t.h8.lv/p6bench/2014-08-01-three_backends.html
02:45 timotimo i think i should re-gen these graphs, too
02:46 timotimo F5 for a few more lines
02:47 timotimo jnthn said he'd put a few tricks we learnt on moarvm to good use on rakudo-jvm
02:47 timotimo when that happens, i would expect the rakudo-jvm line to approach the nqp-jvm line in a drastic way
02:47 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.
02:48 timotimo yes
02:49 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
02:49 timotimo i can run a perl5 benchmark, too
02:49 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 #perl6
02:50 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.  :-)
02:50 timotimo perl5 will be too good in all the benchmarks anyway :)
02:51 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
02:51 timotimo it doesn't get going during compilation, sadly
02:51 timotimo .o( though if we used the evalserver for that ... )
02:52 nbrown joined #perl6
02:52 japhb Too much risk of contamination between runs to use the same process space for more than one run.  :-(
02:52 timotimo for compilation?
02:53 japhb Oh, I thought you mean the startup compile time for each test.
02:53 timotimo no
02:53 timotimo not for benchmarks
02:53 timotimo oh, another thing
02:53 timotimo how hard would it be to "transpose" perl6-bench
02:53 japhb Which actually is probably getting better with jnthn++'s general closure and dynlex reduction work
02:53 timotimo as in: test different implementations of the same code with the same implementation
02:54 timotimo 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
02:54 timotimo that would certainly be useful
02:54 timotimo though i'd also imagine you'd have one graph for each implementation, showing all "versions" of the benchmark in one graph
02:55 timotimo 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.
03:00 timotimo number one rule really is: measure, measure, measure
03:00 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.
03:00 anaeem1_ joined #perl6
03:00 japhb timotimo: well yeah, sure.  But I'm talking general things that have unexpectedly large cost, like creating a closure inside an inner loop.
03:00 japhb Things that are only obvious in retrospect.
03:00 japhb .oO( ... in introspect? )
03:00 japhb Oh, and I think I can reasonably claim to be the last person that needs to be told to measure performance.  :-)
03:00 timotimo hahah :D
03:00 timotimo sorry, you're right of course
03:00 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
03:00 japhb Yeah, quite.  I'm salivating over the idea of having profile flame plots in r-m
03:01 tadzik joined #perl6
03:01 ventica joined #perl6
03:01 timotimo how woud that look? highlight lines with their time cost?
03:01 cognominal joined #perl6
03:01 timotimo http://t.h8.lv/p6bench/2014-08-01-three_backends.html - updated with perl5 - http://t.h8.lv/p6bench/2014-08-01-three_backends.html
03:02 japhb Gah, bus stop.  Will have to pick this up later.
03:02 avuserow joined #perl6
03:02 timotimo but ... you just sent me to bed! :P
03:03 japhb I'll .tell you
03:03 japhb afk
03:03 timotimo but i enjoy interacting with you :\
03:03 cooper_ joined #perl6
03:03 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 %)
03:05 timotimo 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
03:05 timotimo i wonder why jvm tanks so hard in the concat tests
03:06 timotimo yes, the int2str_concat performance puzzles me
03:06 timotimo maybe our numification is just ridiculously underperformant?
03:07 timotimo it would make a whole lot of sense if perl5 was crazy fast at that
03:08 btyler yeah
03:09 timotimo when we get the for optimization back into rakudo, we should see much better results for the "for" benchmarks, too
03:09 timotimo like, there was a 3x performance drop on moar; the same problem probably exists on all backends
03:10 timotimo 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:11 lustlife joined #perl6
03:11 iarna joined #perl6
03:13 btyler I wonder what ruby's performance was like compared to p5 when it was first starting to become popular
03:14 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 timotimo visit_2d_indices_loop for example
03:14 timotimo 106x slower than fastest ← non-native rakudo-jvm
03:14 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
03:14 timotimo 30x slower than fastest ← perl5 vs native rakudo-jvm
03:14 btyler yeah, I noticed that as well
03:15 timotimo (or 15x if you count that at the same x position)
03:16 timotimo it amazes me especially much how good we perform at rational numbers (i think these tests test fatrats)
03:19 timotimo anyway, ought to go to bed now :)
03:19 btyler night!
03:19 nbrown joined #perl6
03:20 timotimo .o( perl5.20 is exactly as fast at rc-mandelbrot as the recent rakudo-moar's )
03:34 telex joined #perl6
03:51 ilbot3 joined #perl6
03:51 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
03:54 cibs joined #perl6
03:55 BenGoldberg joined #perl6
03:55 [Sno] joined #perl6
03:56 ventica joined #perl6
03:59 akaseki joined #perl6
04:02 kaare__ joined #perl6
04:05 dayangkun joined #perl6
04:06 rurban joined #perl6
04:12 btyler lots more to do, but if anyone has a need for speedy JSON parsing (no encoding yet), I'd appreciate feedback: https://github.com/kanatohodets/p6-json-jansson
04:14 btyler 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:17 gtodd heh I think FROGGS_wanted some JSON workers :-)
04:22 thou joined #perl6
04:34 gtodd m:  my %x; %x{1}=[<a b c d e>]; say "alpha hash time" if "a" ~~ %x{1} ;
04:34 camelia rakudo-moar 89c8e4: ( no output )
04:36 TimToady this is not Perl 5, and there are no impicit 'any' semantics on smartmatching lists
04:36 TimToady m:  my %x; %x{1}=[<a b c d e>]; say "alpha hash time" if "a" ~~ %x{1}.any
04:36 camelia rakudo-moar 89c8e4: OUTPUT«alpha hash time␤»
04:36 TimToady *plicit
04:37 TimToady 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␤»
04:37 TimToady though that works
04:38 TimToady 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␤»
04:38 TimToady so does that
04:38 avuserow btyler: you should be able to depend on NativeCall since it's in the p6 ecosystem
04:39 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«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/XOOtufo24wâ�¤Undeclared routine:â�¤    x used at line 1â�¤â�¤Â»
04:39 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«alpha hash time␤»
04:39 avuserow btyler: that is, once you make your module installable by panda
04:39 TimToady or even that
04:39 TimToady gtodd: ^^
04:40 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:43 gfldex joined #perl6
04:47 Woodi joined #perl6
04:57 rindolf joined #perl6
04:59 chenryn joined #perl6
05:02 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:03 btyler *one of the methods of the native lib
05:08 thou joined #perl6
05:18 avuserow joined #perl6
05:21 kaare_ joined #perl6
05:27 kaare__ joined #perl6
05:35 bcode joined #perl6
05:41 dalek roast/S26-WHY: 623f1f5 | duff++ | S26-documentation/why-leading.t:
05:41 dalek roast/S26-WHY: Add leading tests for role, submethod, grammar, rule, token and regex
05:41 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/623f1f557a
05:57 avuserow joined #perl6
06:00 denis_boyun joined #perl6
06:06 aoseki joined #perl6
06:10 darutoko joined #perl6
06:14 akaseki joined #perl6
06:18 sergot o/
06:19 aoseki joined #perl6
06:25 akaseki joined #perl6
06:25 kivutar joined #perl6
06:29 kurahaupo_ joined #perl6
06:29 dayangkun joined #perl6
06:30 grondilu joined #perl6
06:30 * grondilu failed to compile rakudo on moarvm:  http://paste.siduction.org/20140801062936
06:30 grondilu Stage optimize   : Cannot find method 'orig'
06:34 aoseki joined #perl6
06:34 * grondilu cleans up his install and nqp directory and retries
06:42 virtualsue joined #perl6
06:56 [Sno] joined #perl6
07:02 kaleem joined #perl6
07:06 bjz joined #perl6
07:07 * grondilu failed again
07:08 fhelmberger joined #perl6
07:19 virtualsue_ joined #perl6
07:19 ventica joined #perl6
07:24 cognome joined #perl6
07:30 cognome_ joined #perl6
07:40 dmol joined #perl6
07:46 Woodi joined #perl6
07:47 masak morning, #perl6
07:50 ventica joined #perl6
07:52 * 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:53 moritz at $work, this is a regular pain point, and my searches for existing solutions only brought up very specialized solutions (like, for telephony)
08:01 ventica joined #perl6
08:08 xiaomiao moritz: that smells like ERP, and it's a quicksand trap I refuse to go near while sober
08:11 takesako joined #perl6
08:13 zakharyas joined #perl6
08:17 moritz xiaomiao: yes, but not quite ERP
08:18 dakkar joined #perl6
08:18 Ven joined #perl6
08:21 dayangkun_ joined #perl6
08:47 FROGGS[mobile] joined #perl6
08:50 nwc10 \o
08:55 masak p6: say DateTime.now ~~ Date.today
08:55 camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«True␤»
08:55 camelia ..niecza v24-109-g48a8de3: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤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…»
08:55 camelia ..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
08:55 masak \o/
08:56 masak pm: say DateTime.now ~~ Date.today
08:56 masak m: say DateTime.now ~~ Date.today
08:56 camelia rakudo-moar 89c8e4: OUTPUT«True␤»
08:56 masak p: say DateTime.now ~~ Date.today
08:56 camelia rakudo-parrot 89c8e4: OUTPUT«True␤»
08:56 masak r: say now ~~ Date.today
08:56 camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«False␤»
08:56 camelia ..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
08:56 masak I'm wondering if that shouldn't work too...
08:57 masak any votes for or against?
08:58 moritz +1 for it
09:04 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:05 PotatoGim joined #perl6
09:05 moritz I'm not really up to date (sic) wrt datetime and instant
09:05 moritz can those always be round-tripped?
09:06 moritz 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.
09:06 masak only that a given datetime unambiguously stands for a given instant.
09:07 masak (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 masak instead*
09:07 moritz but then only one of those smartmatchings makes sense, no?
09:07 moritz ah, no
09:07 moritz never mind
09:07 masak no, I think both do.
09:08 masak they both ask sensible questions.
09:08 moritz and instance can be represented as several DateTimes with different time zones
09:08 masak aye :)
09:08 moritz but you can still query the correspondence
09:08 * moritz feels he understood something
09:08 masak and there are "illegal" DateTimes which, (if you could create them) don't have a corresponding Instant.
09:09 masak 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 :-)
09:10 masak :D
09:10 masak Temporal, the way it eventually turned out, was a wonderfully successful case of "I'll leave this to someone else" :)
09:10 masak and we managed to do it without having any Discordian Hexagonal Klingon Swatch time left in the spec :P
09:12 masak I still think there's room for something like DateTime::Interval. but it can easily be mapped out in module-land first.
09:12 masak with minimal duck punching.
09:15 masak m: say $*TZ
09:15 camelia rakudo-moar 89c8e4: OUTPUT«0␤»
09:16 masak ...isn't camelia running in .nl ? shouldn't that be 7200, then?
09:16 masak it's 7200 locally.
09:18 SamuraiJack joined #perl6
09:23 pecastro joined #perl6
09:25 moritz camelia isn't running on feather anymore
09:25 masak is it running in a 0-offset timezone?
09:26 moritz it's running on the internet :-)
09:26 moritz moritz@host07:~$ date
09:26 moritz Fri Aug  1 09:26:17 UTC 2014
09:26 moritz it's timezone is configured to be UTC
09:26 masak oki
09:26 masak that explains it.
09:26 masak moritz++
09:30 spider-mario joined #perl6
09:33 colomon joined #perl6
09:36 dayangkun_ joined #perl6
09:38 virtualsue joined #perl6
09:40 bjz_ joined #perl6
09:41 anaeem1 joined #perl6
09:49 lizmat good *, #perl6!
09:50 lizmat hmmm... I can't get rakudo to build on Moar atm
09:51 lizmat Stage optimize   : Cannot find method 'orig'
09:51 lizmat at src/Perl6/Optimizer.nqp:353  (blib/Perl6/Optimizer.moarvm:add_memo:19)
09:51 lizmat from src/Perl6/Optimizer.nqp:348  (blib/Perl6/Optimizer.moarvm:add_worry:19)
09:52 lizmat looks like it is jnthn's last commit
09:52 jnthn wtf
09:52 jnthn Works here
09:52 lizmat want me to give you the full stacktrace ?
09:53 jnthn oh
09:53 jnthn Maybe I shoulda bumped NQP_REVISION...
09:55 jnthn oh, and MOAR_REVISION even more so given there's bug fixes.
09:55 dalek nqp: 4c90808 | jnthn++ | tools/build/MOAR_REVISION:
09:55 dalek nqp: Get various MoarVM improvements.
09:55 dalek nqp: review: https://github.com/perl6/nqp/commit/4c90808f07
09:56 dalek rakudo/nom: 4024362 | jnthn++ | tools/build/NQP_REVISION:
09:56 dalek rakudo/nom: Bump NQP_REVISION.
09:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4024362c60
09:56 FROGGS[mobile] jnthn: we really need to fix parrot :/
09:57 jnthn FROGGS[mobile]: I can't actually build nqp-p at the moment due to link errors. :/
09:57 lizmat rebuilding and spectesting...
09:57 lizmat will also do parrot and jvm this time
09:58 jnthn FROGGS[mobile]: Is it just the inexplicable fallout of the junctions related patch I did that's at issue?
09:59 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
09:59 camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«Array.new("a", "", "", "b", "", "c")␤»
09:59 camelia ..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
10:00 cognominal oops
10:00 cognominal r:  my @a = "a\n\n\nb\n   \nc".split: /[\h*\n]**{2..Inf}/; say @a.perl
10:00 camelia rakudo-{parrot,moar} 89c8e4: OUTPUT«Array.new("a", "b", "c")␤»
10:00 camelia ..rakudo-jvm 89c8e4: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤  in  (gen/jvm/main.nqp)␤␤»
10:00 cognominal that's better
10:08 masak moritz: speaking of time zones: http://www.commitstrip.com/en/page/20/
10:09 dalek roast: 2073365 | (Elizabeth Mattijsen)++ | S06-routine-modifiers/lvalue-subroutines.t:
10:09 dalek roast: Another fudge for (probably) #122448
10:09 dalek roast: review: https://github.com/perl6/roast/commit/20733650e7
10:09 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122448
10:18 lizmat on Moar: All tests successful.
10:18 lizmat Files=908, Tests=31977, 226 wallclock secs ( 9.09 usr  4.02 sys + 1420.95 cusr 173.06 csys = 1607.12 CPU)
10:19 * 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 #perl6
10:38 moritz masak: :-)
10:42 xragnar_ joined #perl6
10:45 anaeem1 joined #perl6
10:49 lizmat hmmm... quite severe breakage on parrot indeed
10:50 lizmat https://gist.github.com/lizmat/72dc142c2aac6b402b64 # failures on parrot
10:51 masak has anyone bisected it? is there a likely culprit commit?
10:51 jnthn Yes, we know which commit did it.
10:51 masak ah.
10:51 jnthn Well, provided that one is the only issue
10:52 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
10:52 masak *nod*
10:52 lizmat http://imgur.com/86npB1j   # wonder what Perl 6 will be  :-)
10:53 chenryn joined #perl6
10:54 masak Perl 6 does the same, but the 2012 version is 10 cm high, and the 2014 version is 50 cm high :)
10:55 anaeem1 joined #perl6
10:56 nwc10 the Perl 5 truck is old and ugly, and the snowplough is clearly hacked together and welded onto the front.
10:57 masak still, it gets things done.
10:57 nwc10 yes, sorry, forgot that that doesn't go without saying
10:57 masak it puts food on a lot of people's families every day.
10:58 nwc10 for some reason it's put too much food on the table here at work today
10:58 nwc10 (catering oversupply)
10:58 nwc10 must be Perl's fault.
10:58 masak well, you saw the utter efficiency of Perl in that gif :P
10:58 masak no wonder there's a lot of food.
11:02 rindolf joined #perl6
11:02 Woodi hallo today :)
11:02 anaeem1_ joined #perl6
11:03 masak cześć, Woodi
11:05 carlin joined #perl6
11:09 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:10 moritz Woodi: this is not about the actual accounting/bookkeeping
11:10 moritz Woodi: but about collecting your customer's user data, and using that to generate invoices
11:12 Woodi it's very interdisciplinary problem :) I like put users personal data into LDAP and have automatic balances from double accounting system :)
11:12 Woodi btw. I do not have such system :)
11:13 masak moritz: your desired system sounds interesting. unfortunately, I don't know about any prior art.
11:14 Woodi requirements, details, analysis, specifications, lot's of work :)
11:18 moritz I found http://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:21 SamuraiJack_ joined #perl6
11:23 Woodi I think mjd is proud of quality in moonpig project :)  but I also got impression it is crafted for theirs needs...
11:24 Woodi I
11:24 Woodi ... still hope mjd disagree with my impression :)
11:25 moritz wy wouldn't it be craftef for their needs?
11:28 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:33 Woodi 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:35 nwc10 I have just found that this exists and it it pleases me that it is so: http://www.swearemipsum.com/
11:37 fhelmberger joined #perl6
11:40 SamuraiJack__ joined #perl6
11:49 mr-foobar joined #perl6
11:51 kivutar joined #perl6
11:56 dalek nqp: 6923af7 | jnthn++ | src/vm/moar/QAST/QAST (2 files):
11:57 dalek nqp: Assorted small optimizations to QAST -> MAST.
11:57 dalek nqp: review: https://github.com/perl6/nqp/commit/6923af795c
11:57 dalek nqp: 4b6a4af | jnthn++ | src/how/NQPClassHOW.nqp:
11:57 dalek nqp: Cheapen late-bound method lookup.
11:57 dalek nqp: review: https://github.com/perl6/nqp/commit/4b6a4af919
11:59 dalek roast/S26-WHY: b6ebef3 | duff++ | S26-TODO.md:
11:59 dalek roast/S26-WHY: Update S26-TODO.md
11:59 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/b6ebef3e2c
12:01 dalek rakudo/nom: 5f7eaa6 | jnthn++ | src/Perl6/Optimizer.nqp:
12:01 dalek rakudo/nom: Optimize the optimizer somewhat.
12:01 dalek rakudo/nom:
12:01 dalek rakudo/nom: Shaves about a third off its execution time.
12:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5f7eaa6b9a
12:01 dalek rakudo/nom: 4d347fd | jnthn++ | src/Perl6/World.nqp:
12:01 dalek rakudo/nom: Cheapen dynamic compilation somewhat.
12:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4d347fd0de
12:04 nwc10 jnthn: I was *joking* about negative parse times in the near future. You weren't supposed to take me seriously :-)
12:16 kurahaupo_ joined #perl6
12:18 jnthn It's still a good bit too positive :P
12:19 kst`` joined #perl6
12:27 Ven joined #perl6
12:29 lizmat jnthn: is this a strange error message? postcircumfix:<{ }> binding not defined for type Hash
12:29 slavik joined #perl6
12:30 lizmat aha, most definitely
12:31 lizmat the error goes away with MVM_SPESH_DISABLE=1
12:31 lizmat golfing down
12:31 jnthn lizmat: Yeah, that's on my todo list for today; FROGGS ran into it also
12:32 lizmat in my case, it comes from a repeated call to $foo<a><b> := $bar
12:32 lizmat where <a> and <b> are varying
12:33 lizmat seems to happen on the 22nd iteration on a given $foo
12:38 * Ven is using Perl 6 to parsing some PDF, and it feels good.
12:38 kurahaupo_ joined #perl6
12:39 * Ven has no idea what the hell he's doing
12:40 lizmat .o( PDF parsing ? )
12:40 Ven doesn't look like dwarring++'s library uses `is export` anywhere
12:42 Ven well, it's not like there's docs, so I'm trying to read the tests ..
12:42 oetiker joined #perl6
12:44 Ven well, doesn't seem like it'll quite do what I want it to. Too bad.
12:45 slavik joined #perl6
12:48 Alula_ joined #perl6
12:49 Ven `say PDF::Grammar::Content.pdf(slurp($f))` => Any :(
12:52 molaf joined #perl6
12:54 dalek roast/S26-WHY: fd583ac | (Rob Hoelz)++ | S26-documentation/why-leading.t:
12:54 dalek roast/S26-WHY: Fix WHEREFORE test
12:54 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/fd583acd1c
12:54 dalek roast/S26-WHY: fad2530 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
12:54 dalek roast/S26-WHY: Add test names to failing WHEREFORE tests
12:54 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/fad2530662
12:54 rurban joined #perl6
13:04 Ven why did I even try to parse that pdf ... 3 vim commands and it's done
13:06 * lizmat wonders how much can be done in 3 vim commands
13:07 Ven I could've done it in 1, I just didn't know ":v"
13:07 chenryn joined #perl6
13:07 PerlJam lizmat++  (grant manager for the next attempt to betterify ACT)
13:08 lizmat PerlJam: thank you
13:08 lizmat let's hope this one will go better than the other grants I've been / am grant manager of
13:09 lizmat BTW: for which I'm actually quite hopeful  :-)
13:11 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:12 lizmat in a way, it's the 3rd reboot of Act
13:15 * Ven wonders what the topic is
13:16 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?
13:16 timotimo (of the optimizer)
13:17 Ven PerlJam: both
13:17 * grondilu eventually managed to compile rakudo
13:17 jnthn timotimo: No, it's a bit more subtle than that.
13:18 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.
13:18 PerlJam Ven: http://act.mongueurs.net/ has some links for more info about ACT, and the grant proposal is at http://news.perlfoundation.org/2014/07/grant-proposal-start-act---voy.html
13:18 timotimo oh!
13:18 timotimo yeah, that does sound nice to have :)
13:18 jnthn Together, on very hot paths called tens of thousands of times, it adds up.
13:18 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
13:19 timotimo gtodd: how recent is that book?
13:19 gtodd pretty old :-)
13:19 gtodd I see no mention of .any
13:19 gtodd :)
13:19 gtodd well not in that section
13:19 PerlJam that book is 10 years old.
13:19 gtodd hehhe
13:19 PerlJam A great many things have changed since it was published ;)
13:19 gtodd back when perl6 was more like perl5  is now
13:20 Ven still looks a lot like perl 6
13:21 chenryn joined #perl6
13:21 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
13:21 gtodd wheeee!!!
13:22 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
13:22 lizmat ok, want me to add this to the ticket ?
13:22 jnthn It fixes .any bug :P
13:22 jnthn lizmat: No, I'm working on the fix now
13:22 lizmat okidoki  :-)
13:23 gtodd it's still probably wrong-ish  but it works :)
13:24 gtodd p5 => TIMTOWDI ,  p6 => TIMTOWDWTDI
13:24 gtodd (extra WD for "well designed")
13:25 * 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 nwc10 Files=908, Tests=31977, 112 wallclock secs (15.05 usr  3.87 sys + 1852.80 cusr 186.22 csys = 2057.94 CPU)
13:25 nwc10 that's the spectest.
13:25 nwc10 That's fast
13:26 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 #perl6
13:27 Ven yes they will :)
13:27 lizmat Perl6: More of what Perl 5 made greate...  and less of what Perl 5 made grate
13:27 nwc10 jnthn: well, I might be getting confused, because that was an optimised build, rather than ASAN
13:27 jnthn ah, ok :)
13:27 lizmat s/greate/greate/
13:27 gtodd lizmat: hah
13:27 lizmat *sigh*
13:27 jnthn Still...112s :)
13:27 nwc10 but still, it *is* fast
13:27 jnthn Where do I get my 24 core box? :)
13:28 jnthn .oO( Would Windows know waht to do with a 24 core box? )
13:28 nwc10 windows probably would, but TAP::Harness doesn't
13:28 moritz jnthn: I have worked with a 24 core box on windows :-)
13:28 jnthn C:\consulting\rakudo>perl6-m -e "say (0 ^^ ^7).WHAT"
13:28 jnthn (Range)
13:28 jnthn m: say (0 ^^ ^7).WHAT
13:28 camelia rakudo-moar 4d347f: OUTPUT«Nil␤»
13:28 jnthn Yeah.
13:29 timotimo i'm looking forward to seeing what that code-gen bug was
13:29 jnthn It was a code-gen bug.
13:29 gtodd nwc10: the more special semi commercially sponsored versions of languages appear (Hack, Dart?)  the better ... it will make everyone will like perl more :-)
13:30 dalek nqp: b733404 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
13:30 dalek nqp: Fix multiple reg alloc bugs in xor.
13:30 dalek nqp:
13:30 dalek nqp: Managed to get lifetimes wrong AND double-release in some cases.
13:30 dalek nqp: review: https://github.com/perl6/nqp/commit/b73340485b
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!"
13:31 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
13:31 timotimo "terrible language design"?
13:31 timotimo a friend of mine says it's more pythonic than python
13:31 timotimo or "said"
13:31 timotimo or something
13:32 timotimo nwc10: NASA doesn't have any mony left over to buy soft toilet paper ...
13:32 jnthn lizmat: b733404 should deal with RT#122448
13:32 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122448
13:32 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
13:32 nwc10 I'm not sure that JS->Dart is going to win better than PHP $n+1 > Hack
13:32 nwc10 because there are several fast JS implementations, only one of which also does Dart
13:33 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
13:33 jnthn lizmat: OK. I seem to recall there was another regression but don't see it in my spectest run?
13:33 Ven nwc10: the largest user of PHP ?
13:33 jnthn lizmat: Also I didn't see RT#122448 causing a fail; was it fudged?
13:33 Ven they're like, what, 0.00001% usage of PHP ?
13:33 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122448
13:33 nwc10 timotimo: http://perl5.git.perl.org/perl.git/blobdiff/fd7895cf8ded27bc2c1cddf7c72c17d6bdc95df0..24f4b7da:/pod/perlfunc.pod
13:34 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
13:34 Ven They probably are, yes, considering google is running c++
13:35 timotimo nwc10: oh, interesting!
13:35 jnthn lizmat: OK. Turns out they still fail. So, unrelated to that RT after all
13:35 lizmat :-(
13:35 nwc10 timotimo: when Larry was explaining, creased up, because he immediately got the "kybble" pun.
13:36 nwc10 fingers
13:36 nwc10 Pm creased up
13:36 timotimo ah
13:36 lizmat jnthn: fwiw, that pb *also* went away with --optimize < 2
13:36 lizmat so maybe that *is* an optimizer issue
13:36 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
13:37 lizmat as the param to the sub, becomes Mu inside the FETCH
13:37 timotimo oh, that's for that thing
13:37 jnthn lizmat: Yes, maybe ;)
13:37 lizmat https://gist.github.com/lizmat/8d04b65573200ec70f08   # for a golf
13:38 akaseki joined #perl6
13:41 jnthn oh wtf
13:41 jnthn it inlines checklastval
13:41 jnthn As in, at Perl 6 level
13:42 jnthn That shouldn't even get inline_info set
13:43 PerlJam How do I reference an individual multi sub right now?
13:43 PerlJam The docs say I can use &foo:(Int) or so, but that doesn't seem to work.
13:43 moritz &proto.candidates[0]
13:43 PerlJam ah
13:43 PerlJam thanks
13:43 moritz I don't think there's syntactic sugar yet
13:43 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
13:44 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
13:44 jnthn And you give it the args and it gives you back the candidate(s) that would be satisfied by them.
13:44 timotimo candodats?
13:44 PerlJam timotimo:  ;-)
13:45 timotimo how do you spell that? doodads?
13:46 timotimo 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 timotimo not sure if it'd be worth it
13:47 jnthn PerlJam: It's called .cando and you pass it a Capture that's an example of the args.
13:49 iarna joined #perl6
13:49 jnthn lizmat: Got a fix here for that one too
13:49 nhayashi joined #perl6
13:50 lizmat cool!
13:50 jnthn The static inliner can actually do better thanks to the sink changes
13:51 jnthn However, doing better in this case exposed a missing bit of "can we" analysis :)
13:52 rurban joined #perl6
13:54 iarna joined #perl6
13:55 timotimo can we ever throw away the decontrv from an inlined function?
13:55 timotimo the simpler the qast tree, the nicer it is, but what do i know
13:56 jnthn Not trivially
13:56 jnthn Spesh may be in a better place to throw those away
13:56 dalek rakudo/nom: a8c752b | jnthn++ | src/Perl6/Actions.nqp:
13:56 dalek rakudo/nom: Things with nested blocks are not inlinable.
13:56 dalek rakudo/nom:
13:56 dalek rakudo/nom: There are ways to have nested blocks without a declaration being made;
13:56 dalek rakudo/nom: anonymous subs and thunks are just two examples. This fixes an lvalue
13:56 timotimo mhm
13:56 dalek rakudo/nom: subs regression.
13:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a8c752b291
13:57 jnthn And I think spesh *does* throw some of them away already.
13:57 timotimo probably does, yeah
13:57 timotimo that's way too late for our for+range optimization to kick in, though ;)
13:57 jnthn Oh, I think that's just an example of the classic phase-order problem
14:05 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:08 dalek rakudo/nom: 69eb2f8 | jnthn++ | src/Perl6/Optimizer.nqp:
14:08 dalek rakudo/nom: Re-order to restore for 1..1000 {} optimization.
14:08 dalek rakudo/nom:
14:08 dalek rakudo/nom: More inlining possibilities led to 1..1000 style things being turned
14:08 dalek rakudo/nom: into code no longer recognized as a loop over a range, so we lost the
14:08 dalek rakudo/nom: optimization. Move it to before any inlining attempts are made.
14:08 dalek rakudo/nom: timotimo++ for spotting this optimization regression.
14:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/69eb2f84a5
14:10 ChoHag Rakudo, nqp and moar insist on installing into the same directory.
14:10 moritz that is correct.
14:11 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 #perl6
14:11 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:11 chenryn joined #perl6
14:12 rurban joined #perl6
14:12 lizmat because I'm close to finishing the Foo.moarvm -> Foo.pm.moarvm transition
14:13 ChoHag It's frustrating because my ~/pkg directory is now a tiny bit more disorganised.
14:14 jnthn bbi30, err&
14:14 timotimo oh, you meant *that* with the phase-order-problem thing!
14:15 zakharyas joined #perl6
14:15 ChoHag To be fair, I'm not following anything remotely like a build doc, if one even exists.
14:16 ChoHag Just running random code with names like 'Configure.pl' and 'Makefile'.
14:18 ChoHag I see that whatever broke rakudo this morning got fixed.
14:18 treehug88 joined #perl6
14:19 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.
14:19 ChoHag Or not.
14:19 carlin the joys of running bleeding edge
14:19 timotimo ;(
14:20 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++
14:20 timotimo all you need to do is supply the absolute path to perl6 or nqp-*
14:20 ChoHag git reset --hard HEAD^, though my battery took quite a beating.
14:21 ChoHag Woo! Readline!
14:21 timotimo oh!
14:22 timotimo the commute/hacking period already happened
14:22 ChoHag The first of the day.
14:22 ChoHag The second is less useful as I'm hot and tired.
14:22 ChoHag ~20 minute walk almost exactly west, into the sun.
14:23 ChoHag Anyway it prompted me to finally build the rakudo components individually, so there's that.
14:24 ChoHag Does Panda have any support for keeping modules updated?
14:24 ChoHag Is there even any way to check? Or is it basically a glorified wget and I'm on my own?
14:24 timotimo when you ./rebootstrap, it'll delete and re-install existing modules, that will give you an update, too
14:24 timotimo i think you can panda update + panda status or list or something
14:27 tadzik if you reinstall an already installed module it will get updated :)
14:27 tadzik it would be an LHF to implement something like "update everything"
14:27 ChoHag Well rebootstrap seems to work fine.
14:28 tadzik yeah, that also updated panda itself :)
14:28 tadzik in such a wait that things don't blow up
14:28 tadzik usually
14:29 ChoHag With apparent success.
14:29 ChoHag Which means the debugger works again.
14:29 ChoHag And is probably still useless due to lacking thread support... :(
14:29 timotimo very good
14:30 timotimo yeah, that's not terribly easy. though with our gtk binding we could do something there
14:30 anaeem1 joined #perl6
14:32 pmurias joined #perl6
14:32 dalek roast/S26-WHY: 9db0738 | duff++ | S26-documentation/why-leading.t:
14:32 dalek roast/S26-WHY: Add leading tests for proto and multi subs
14:32 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/9db0738f9a
14:33 timotimo if someone has an idea how to write automated tests for the debugger, that would be fantastic ...
14:36 kaleem joined #perl6
14:37 molaf_ joined #perl6
14:48 * jnthn back
14:50 * Ven front
14:50 * masak activates the crushing device
14:50 timotimo clear!
14:52 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.
14:52 Ven masak: you're ready for consequences, then :P ?
14:53 jnthn Note that the debugger was written to accept multiple frontends
14:53 timotimo i was about to point that out
14:53 masak even better.
14:53 timotimo but testing the frontend would be interesting, too
14:53 jnthn You could probably write a frontend that subscribes to all the same hooks and just emits ok
14:54 jnthn 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 #perl6
15:05 tadzik The Warsaw Uprising started exactly 70 years ago today
15:05 tadzik the sirens and car honks went off in the entire city, it gave me goosebumps
15:05 nwc10 jnthn: nom HEAD expodes spectests
15:06 PerlJam tadzik: you're more than 70 years old?  ;)
15:06 tadzik no, I'm not :)
15:06 nwc10 nom^ happy
15:06 tadzik I mean they did today, just now
15:06 masak Warsaw++ # uprisingest city I know
15:09 jnthn nwc10: Yeah, somehow exception reporting got busted
15:09 BenGoldberg joined #perl6
15:12 [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:13 timotimo is mowyw written in perl6? %)
15:13 [Coke] nope. p5.
15:13 timotimo that's supposed to be the fast one!
15:15 [Coke] can perl6.org support something like a mojo app, or does it have to be static at this point?
15:15 [Coke] if I edit index.html, it takes 1m38s to run mowyw before I can see the edit.
15:16 [Coke] that makes updating the site a non starter.
15:17 timotimo holy yikes.
15:17 takesako joined #perl6
15:18 PerlJam [Coke]: Maybe encourage the author to use Devel::NYTProf or something  ;)
15:18 ventica joined #perl6
15:19 dalek rakudo/nom: b1ebf77 | jnthn++ | src/Perl6/Optimizer.nqp:
15:19 dalek rakudo/nom: Forgot to visit children after range opt.
15:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1ebf77994
15:20 kaleem joined #perl6
15:21 masak [Coke]: heh, my blog is faster than that.
15:22 hoelzro who's duff? duff++ for helping with S26 stuff
15:22 PerlJam hoelzro: that's me.
15:22 hoelzro PerlJam++
15:22 dalek rakudo/nom: 5e3434b | (Elizabeth Mattijsen)++ | tools/build/Makefile- (3 files):
15:22 dalek rakudo/nom: Make sure we precompile core modules with extension
15:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e3434b85a
15:22 dalek rakudo/nom: 9fd23d0 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo.pm:
15:22 dalek rakudo/nom: Temp fix supporting loading .pm6 files as source
15:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9fd23d025d
15:22 dalek rakudo/nom: 8bada16 | (Elizabeth Mattijsen)++ | src/core/CompUnit (2 files):
15:22 dalek rakudo/nom: Almost complete refactor CompUnit and CURL::File
15:22 dalek rakudo/nom:
15:22 dalek rakudo/nom: A CompUnit object now has always the source file as its "path", even if the
15:22 dalek rakudo/nom: source file cannot be found.
15:22 dalek rakudo/nom:
15:22 dalek rakudo/nom: CURL::File has been utterly simplified, as it turned to be impossible to
15:22 dalek rakudo/nom: smartmatch finding files.  So now it only looks for the existence of the
15:22 dalek rakudo/nom: file, and returns that.  Thanks to Scalar[0] indexing, this is compatible
15:22 dalek rakudo/nom: with the API.
15:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8bada1604b
15:23 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.
15:23 japhb timotimo: Did anyone explain flame charts yet?  (Sadly, this is my first chance back at this keyboard.)
15:24 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!
15:24 japhb If not, here are a couple uses: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html and http://www.html5rocks.com/en/tutorials/developertools/revolutions2013/#toc-flame-chart
15:24 pmurias found it
15:24 Ven pmurias: not in p6 iirc
15:24 lizmat japhb o/
15:24 japhb pmurias: Are you talking about perl6-bench?
15:24 masak tadzik: also, I feel like writing some more tests.
15:24 japhb lizmat: o/  :-)
15:24 Ven (I mean not in the perl6 org)
15:24 pmurias japhb: does it support nqp?
15:25 japhb pmurias: of course
15:26 japhb 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 iarna joined #perl6
15:26 pmurias japhb: and how to I specify which nqp backend to build?
15:27 pmurias ahh I see
15:28 pmurias 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.  :-)
15:28 pmurias in CHECKOUTS
15:30 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 * japhb stands with arms akimbo in mock sternness
15:31 japhb ... And where are those patches, jnthn, hmmm?  ;-)
15:31 japhb (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 #perl6
15:33 timotimo japhb: i ran parrot, jvm and moar yesterday
15:33 timotimo with both nqp and rakudo
15:33 japhb \o/
15:34 japhb 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:35 timotimo that's correct
15:35 timotimo and my rakudo-moar-jit and nqp-moar-jit variants don't quite work just yet, i think
15:35 timotimo (apart from not providing any benefits to the benchmarked code yet)
15:42 dmol joined #perl6
15:45 dalek roast: 0122f77 | (Elizabeth Mattijsen)++ | S06-routine-modifiers/lvalue-subroutines.t:
15:45 dalek roast: Unfudge now passing lvalue sub tests
15:45 dalek roast: review: https://github.com/perl6/roast/commit/0122f77bcc
15:47 anaeem1 joined #perl6
15:49 japhb It's amazing how much faster morning traffic moves on a Friday.
15:50 TimToady it's all the googleys doing they're 20% day in bed :)
15:51 TimToady *their
15:52 japhb I fully support that.
15:53 japhb .oO( For my 20% project, I'm researching the effects of significantly more rest per week on the other 80%.)
15:53 denis_boyun_ joined #perl6
15:54 masak +1
16:04 ventica joined #perl6
16:05 cooper_ joined #perl6
16:09 dalek rakudo/nom: 1130554 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION:
16:09 dalek rakudo/nom: Bump NQP to get short-circuit fix
16:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/11305543e5
16:10 dalek roast: 31c3fd1 | (Elizabeth Mattijsen)++ | S03-operators/short-circuit.t:
16:10 dalek roast: Unfudge now passing test
16:10 dalek roast: review: https://github.com/perl6/roast/commit/31c3fd1f92
16:13 Rotwang joined #perl6
16:18 cooper- joined #perl6
16:25 dalek rakudo/nom: d40cc63 | (Elizabeth Mattijsen)++ | src/core/CompUnitRepo/Local/File.pm:
16:25 dalek rakudo/nom: Make sure we spot a compiled file if source absent
16:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d40cc63f0a
16:26 dalek roast: c0e28b3 | (Elizabeth Mattijsen)++ | S10-packages/precompilation.t:
16:26 dalek roast: Remove removed named parameter :no-precomp
16:26 dalek roast: review: https://github.com/perl6/roast/commit/c0e28b3393
16:26 dalek roast: 26d1dda | (Elizabeth Mattijsen)++ | S22-package-format/local.t:
16:26 dalek roast: Bring CURL::F tests up-to-date
16:26 dalek roast: review: https://github.com/perl6/roast/commit/26d1ddacc9
16:39 cognome joined #perl6
16:45 cognominal joined #perl6
16:45 cognome joined #perl6
16:47 gfldex joined #perl6
16:52 takesako joined #perl6
17:05 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:06 * masak .oO( "Need more money. Stop. Send it by your earliest convenience. Stop." )
17:08 FROGGS joined #perl6
17:08 FROGGS o/
17:24 ventica FROGGS: o/
17:28 dalek rakudo/nom: 085ab95 | TimToady++ | tools/build/Makefile-Parrot.in:
17:28 dalek rakudo/nom: missing deps: Test.pir -> Test.pm.pir, etc.
17:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/085ab95eea
17:31 dalek rakudo-star-daily: 48ae70a | coke++ | log/ (14 files):
17:31 dalek rakudo-star-daily: today (automated commit)
17:31 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/48ae70a021
17:31 dalek perl6-roast-data: 8552de2 | coke++ | / (5 files):
17:31 dalek perl6-roast-data: today (automated commit)
17:31 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/8552de2e50
17:32 [Sno] joined #perl6
17:32 colomon joined #perl6
17:32 gtodd FROGGS: up above btyler talked about a JSON module they made ...
17:33 gtodd :-)
17:33 FROGGS will backlog in a bit :o)
17:33 btyler WIP still :) but maybe useful if you need to chew through a great deal of JSON rapidly and pull data out
17:33 btyler just a nativecall binding, nothing fancy
17:45 grondilu p6: say 1/2 R** 3
17:45 camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: OUTPUT«0.111111␤»
17:46 * grondilu thought that meant 3**(1/2) since the R metaoperator reduces precedence
17:46 grondilu p6: say 3**(1/2)
17:46 camelia rakudo-jvm 69eb2f, niecza v24-109-g48a8de3: OUTPUT«1.7320508075688772␤»
17:46 camelia ..rakudo-{parrot,moar} 69eb2f: OUTPUT«1.73205080756888␤»
17:51 PerlJam grondilu: precedence.
17:52 TimToady R does not reduce precedence, that I know of
17:52 PerlJam p6: say 1/(2 R** 3)
17:52 camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: OUTPUT«0.111111␤»
17:53 PerlJam grondilu: oh, R *reverses* the operands
17:53 grondilu p6: say: 1 + 1 R* 3
17:53 TimToady S03:4163
17:53 synopsebot Link: http://perlcabal.org/syn/S03.html#line_4163
17:53 camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: ( no output )
17:53 grondilu p6: say 1 + 1 R* 3
17:53 camelia rakudo-{parrot,jvm,moar} 69eb2f, niecza v24-109-g48a8de3: OUTPUT«4␤»
17:53 cognominal I have a problem bootstrapping panda with my last rakudo-moar build (based on most recent nom rakudo)  https://gist.github.com/cognominal/a123a23cdb46d4a2eae4
17:53 TimToady grondilu: only the list infixes reduce precedence
17:54 TimToady hypers and scalar metaops do not
17:54 cognominal does someone has the same problem?
17:54 grondilu I don't know where I got this idea then.  Nevermind.
17:55 TimToady overgeneralized from X and Z, I suppose
17:55 grondilu yeah probably
17:56 TimToady assignops also change precedence
17:57 TimToady m: my $_ = 40; $_ += 0 && 2; .say
17:57 camelia rakudo-moar 69eb2f: OUTPUT«Potential difficulties:â�¤    Redeclaration of symbol $_â�¤    at /tmp/Jv161Z6Sm_:1â�¤    ------> [32mmy $_ [33mâ��[31m= 40; $_ += 0 && 2; .say[0mâ�¤40â�¤Â»
17:58 TimToady $_ = 40; $_ += 0 || 2; .say
17:58 TimToady m: $_ = 40; $_ += 0 || 2; .say
17:58 camelia rakudo-moar 69eb2f: OUTPUT«42␤»
17:58 grondilu m: $_ = 40; $_ = 0 || 2; .say
17:58 camelia rakudo-moar 69eb2f: OUTPUT«2␤»
17:58 grondilu ok
18:01 masak so, assignops are listops?
18:05 TimToady not necessarily, see S03:4078
18:05 synopsebot Link: http://perlcabal.org/syn/S03.html#line_4078
18:06 masak TimToady: ah, yes. makes sense.
18:07 masak TimToady: how does Z= know it's [Z]= and not Z[=] ?
18:08 TimToady it kinda doesn't matter
18:10 [Coke] daily failures: n: 1385; j: 47; m: 2; p: 1715
18:11 TimToady but basically Z looks for the = first in infix_prefix_meta_operator:sym<Z>
18:12 TimToady assignment = is only looked for once we're happy we otherwise have an infix
18:12 TimToady it's not quite LTM, but just ordered alternatives at that point
18:13 TimToady infixish controls all the action
18:16 TimToady well, alternative in the sense that []? gives you '' or '=' at that point, after parsing the base infix
18:24 cognominal jnthn, my problem persists with fresh clones of panda and rakudo
18:25 cognominal The error is coming from the ModuleLoader
18:31 Rotwang joined #perl6
18:36 sqirrel joined #perl6
18:45 FROGGS cognominal: looks like there were changes how precompiled modules are looked up
18:45 FROGGS cognominal: I have the same problem with v5 :/
18:46 cognominal ok, so I am not hallucinating.
18:47 FROGGS cognominal: it looks like the files are called now .pm.moarvm for example: https://github.com/rakudo/rakudo/commit/5e3434b85a6544b323a7004450caa66723ca26e7
18:48 FROGGS which makes sense but is slightly surprising :o)
18:48 FROGGS so panda needs a tweak, should be fairly simple though
18:48 cognominal that makes sense
18:48 gtodd does perl6 have the concept of "baby perl" or does it require at least toddler level babbling
18:53 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:54 cognominal s/sigiless/signature-less/
18:55 cognominal more seriously, that means it goes out of its way ro support people who want to convert perl5 code.
18:58 takesako joined #perl6
19:04 Ulti gtodd my experience is like the type system the babyness is progressive
19:04 PerlJam .oO( progressive babyism? )
19:08 masak gtodd: yes, I feel that the concept of baby Perl 6 is there and is relevant.
19:09 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 cognominal s/who/that/
19:09 PerlJam haskell doesn't ask you to learn about monads right away ...
19:09 PerlJam just if you want to do "interesting" things :)
19:10 gtodd good because I am a baby :-)
19:10 eternaleye joined #perl6
19:11 gtodd e.g. I can't write Grammars :-\  .. but I'm going to try ...
19:11 gtodd Util: very good point
19:11 gtodd it's "strongly typed" but you have to ask nicely
19:14 gtodd cognominal: for a new non backwards compatible language it is pretty helpful ...
19:15 gtodd anyway it has best IRC channel on the interwebs so ... that is huge :-)
19:15 gtodd #perl6 ++
19:15 gtodd thanks for being nice :)
19:15 PerlJam hugme: hug gtodd
19:15 * hugme hugs gtodd
19:16 [Coke] .u ∿
19:16 yoleaux U+223F SINE WAVE [Sm] (∿)
19:16 [Coke] .u COSINE
19:16 yoleaux No characters found
19:16 [Coke] .u COS
19:16 yoleaux No characters found
19:16 [Coke] aww.
19:16 FROGGS jnthn: about that commit, I have no idea when to release registers... https://github.com/perl6/nqp/commit/b73340485b8ebdf4f62df872cdf8082bf3d05450
19:17 timotimo FROGGS: as soon as you can be sure that the resulting code is free to write over the register
19:17 timotimo with potentially bogus values
19:17 jnthn FROGGS: After you've produced all the code that's going to be using them.
19:20 aoseki joined #perl6
19:21 dwarring joined #perl6
19:29 ventica joined #perl6
19:30 Sqirrel joined #perl6
19:30 gtodd left #perl6
19:30 gtodd joined #perl6
19:30 gtodd tnx for the hugs o/
19:31 gtodd have good weekends all
19:31 gtodd left #perl6
19:32 FROGGS joined #perl6
19:37 [Coke] jnthn: did you open a ticket for the "can't build nqp-p" somewhere? I remember seeing it on channel...
19:38 dalek nqp: aa8a615 | jnthn++ | src/QAST/Block.nqp:
19:38 dalek nqp: Small optimizations to .symbol.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/aa8a6153f8
19:38 dalek nqp: c3f29b6 | jnthn++ | t/qast/01-qast.t:
19:38 dalek nqp: Bring test in line with behavior change.
19:38 dalek nqp: review: https://github.com/perl6/nqp/commit/c3f29b6e7e
19:38 jnthn [Coke]: No, didn't do so yet
19:39 jnthn [Coke]: I should probably try it on my laptop too, to rule out anything weird on this box...
19:41 [Coke] jnthn++
19:44 [Coke] 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:54 akaseki joined #perl6
19:54 [Coke] ... because I did it without protocol once, and that version got "stuck". arglebargle.
19:55 [Coke] moritz++ # adding git-protocol
19:55 gtodd joined #perl6
19:59 gtodd errm .. http://codegolf.stackexchange.com/a/35323/20338  couldn't  read learn anymore in time to improve this  ... suggestions welcome in the comments
19:59 gtodd cheers
20:02 rurban joined #perl6
20:10 rindolf joined #perl6
20:10 kurahaupo_ joined #perl6
20:14 [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:"?!
20:14 [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]: I'll pass your message to moritz.
20:14 [Coke] yoleaux: urdumb.
20:15 eternaleye joined #perl6
20:24 rurban joined #perl6
20:31 carlin hugme: hug yoleaux
20:31 * hugme hugs yoleaux
20:32 masak yoleaux: what kind of name is 'yoleaux'?! ;)
20:35 carlin .tell yoleaux what kind of name is yoleaux?
20:35 yoleaux carlin: Thanks for the message.
20:35 carlin oi, that's cheating
20:36 [Coke] yoleaux sounds like YOLO
20:36 lizmat TimToady++ for fixing my omission
20:37 * carlin pronounces it yoll-awks
20:37 flussence .oO( and it's yellow on my screen... )
20:39 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 gtodd left #perl6
20:53 pecastro joined #perl6
20:55 iarna joined #perl6
21:07 zakharyas joined #perl6
21:07 pippo joined #perl6
21:09 pippo left #perl6
21:10 pippo joined #perl6
21:10 pippo o/ #perl6.
21:10 masak \o
21:10 pippo I am trying to compile latest perl6-j. But have the following error:
21:10 pippo Error while reading from file: java.nio.charset.MalformedInputException: Input length = 1
21:11 pippo Anybody could help?
21:13 timotimo at what point does that happen?
21:16 masak maybe gist us a make dump?
21:17 * 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.j
21:18 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
21:18 masak lizmat: interesting idea.
21:18 lizmat simply by executing that routine
21:18 lizmat use case:
21:19 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' }
21:19 jnthn That one is meant to be syntactic, I think...
21:19 masak lizmat: but that... what jnthn said.
21:19 lizmat I know
21:19 lizmat but if it happens at compile time, that wouldn't make too much difference ?
21:20 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.
21:20 masak (which should not fail with an error)
21:20 timotimo pass an empty list or flatten in an empty list?
21:21 pippo timotimo: https://gist.github.com/anonymous/7d519d9c44939f8bc12b
21:21 masak timotimo: the latter, I guess.
21:22 lizmat r: multi a () { say "none" }; multi a ($a) { say $a }; a; a(); my @a; a(@a)
21:23 btyler joined #perl6
21:23 camelia rakudo-jvm 085ab9: OUTPUT«(timeout)»
21:23 camelia ..rakudo-{parrot,moar} 085ab9: OUTPUT«none␤none␤␤»
21:23 lizmat flattening into an empty list seems to not select the () candidate
21:23 jnthn |
21:23 masak r: multi a () { say "none" }; multi a ($a) { say $a }; my @a; a(|@a)
21:23 camelia rakudo-{parrot,jvm,moar} 085ab9: OUTPUT«none␤»
21:23 timotimo pippo: can you check if any of the files it would want to touch are way too small?
21:26 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?
21:26 timotimo maybe during the build something got corrupted?
21:27 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.
21:27 pippo timotimo: on my 32 bits machine though there is no problem. Strange.
21:28 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
21:28 timotimo kind of seems like it happens before any of our "own" code is hit?
21:29 jnthn Yes
21:29 jnthn It's at the point where it reads in the source file, iirc
21:29 dalek rakudo/nom: b8e660f | (Elizabeth Mattijsen)++ | src/core/ (2 files):
21:29 dalek rakudo/nom: Disallow @*INC entries to be list of CUR's
21:29 dalek rakudo/nom:
21:29 dalek rakudo/nom: As discussed with FROGGS a few weeks ago already.  BTW, this appears to have a
21:29 dalek rakudo/nom: great effect on startup time, judging from CPU usage in spectest.
21:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b8e660fe0a
21:29 jnthn So it's failing extremely early
21:29 lizmat Files=908, Tests=31827, 212 wallclock secs ( 8.95 usr  3.92 sys + 1314.99 cusr 171.08 csys = 1498.94 CPU)
21:29 lizmat first time < 1500 CPU seconds for me
21:29 jnthn lizmat++
21:30 timotimo \o/
21:30 jnthn Yes, we regressed a bit on startup time in the last months
21:30 jnthn Partly due to doing too much work in CORE.setting loading. I guess that's addressed in this patch.
21:30 jnthn I'm currently working on trying to address some of the lower level reasons.
21:31 pippo jnthn: almost 700k (693019)
21:31 jnthn (Basically, a lot of things grow O(setting size) rather than O(stuff used in setting)
21:31 jnthn pippo: OK, seems well formed
21:32 pippo perhaps my java installation is broken. I'll try re-installing...
21:33 timotimo unlikely if you made it this far?
21:33 jnthn Yeah...
21:33 jnthn I'm doubting it's busted Java install
21:33 jnthn I built JVM a day or two ago and it was OK
21:33 lizmat I've built JVM today without any pb
21:34 pippo I mean openJDK
21:35 pippo I mean openJDK installation is broken. Perhaps...
21:35 timotimo that's how i understood it
21:36 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 pippo btw: thank you all.
21:43 hoelzro "I've built JVM today without any pb"
21:43 lizmat anyway, my idea for the routine attribute came from reading http://irclog.perlgeek.de/perl6/2014-07-23#i_9068589
21:44 * hoelzro .oO( peanut butter? )
21:44 lizmat problem
21:44 masak pointy block.
21:44 dalek tablets: a35cb86 | (Herbert Breunung)++ | docs/appendix- (2 files):
21:44 dalek tablets: terms class and callframe
21:44 dalek tablets: review: https://github.com/perl6/tablets/commit/a35cb86eaa
21:44 lizmat S99:762
21:44 synopsebot Link: http://perlcabal.org/syn/S99.html#line_762
21:44 hoelzro I figured ;)
21:54 lizmat I think I found the source of some of the flapping tests:
21:54 lizmat multi sub infix:<eqv>(Any $a, Any $b) { $a.WHICH eq $b.WHICH }
21:54 jnthn Grr, yes
21:54 masak o.O
21:54 * jnthn should really put that on his "stuff to do this month" list...
21:55 jnthn (the .WHICH bug)
21:55 lizmat reason is flapping in t/spec/S32-list/combinations.t
21:55 rurban joined #perl6
21:55 lizmat which is basically only eqv tests
21:56 masak jnthn: after you fix it, we can all sing "ding dong, the wicked .WHICH bug is dead!"
21:56 jnthn :P
21:56 jnthn I'm not sure if that makes me want to fix it more or less :P
21:56 * masak .oO( fewer ) :P
21:56 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)?
21:57 jnthn hoelzro: .WHICH is...uh...a bit special at present.
21:57 jnthn hoelzro: On reference types, anyways
21:58 hoelzro I'm guessing (perhaps wrongfully) that it's implemented as hashCode on the JVM?
21:58 jnthn Yeah, and memory address on Moar :)
21:58 jnthn And objects move
22:00 hoelzro ah ha
22:00 hoelzro that makes sense
22:00 TimToady no it doesn't :P
22:01 dalek rakudo/nom: fb05219 | (Elizabeth Mattijsen)++ | src/core/List.pm:
22:01 dalek rakudo/nom: Don't do expensive setup for sort if not needed
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fb05219ee0
22:01 jnthn Well, objects moving makes sense. .WHICH being based on a changing memory address, less so :)
22:02 jnthn Objects moving is why Moar can throw all your short-lived crap out cheaply :)
22:02 pippo good night #perl6!
22:02 pippo left #perl6
22:04 eternaleye joined #perl6
22:04 telex joined #perl6
22:06 masak 'night, #perl6
22:07 hoelzro night masak
22:09 lizmat gnight masak
22:10 lizmat timotimo: re http://irclog.perlgeek.de/perl6/2014-07-23#i_9068759 , I'm al for banning of direct access to @*INC
22:10 lizmat *all
22:10 lizmat but what is your reason ?
22:12 eternaleye joined #perl6
22:13 timotimo because we have "use lib" :)
22:13 TimToady regexp.h:regnode program[1];/* Unwarranted chumminess with compiler. */
22:13 lizmat ah, so no optimization issues / reasno ?
22:14 lizmat *reason
22:14 jnthn I guess in some senses "use lib" is less flexible
22:14 timotimo not that i can think of
22:14 jnthn You don't get to meddle with ordering
22:15 jnthn And use lib depends on being able to fiddle with @*INC...
22:18 * 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
22:19 lizmat it is not lexical
22:19 lizmat whereas you can say:
22:20 lizmat m: { use Test }; ok 1  # fails because the export was lexical
22:20 camelia rakudo-moar 085ab9: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/4Pe4072ervâ�¤Undeclared routine:â�¤    ok used at line 1. Did you mean 'on'?â�¤â�¤Â»
22:20 lizmat you cannot do that with 'use lib':
22:21 TimToady well, that just seems like a bug
22:21 lizmat m: BEGIN say @*INC.elems; { use lib "." }; BEGIN say @*INC.elems
22:21 camelia rakudo-moar 085ab9: OUTPUT«2␤3␤»
22:22 nbrown joined #perl6
22:22 lizmat well, there are many tests depending on the current behaviour
22:23 TimToady well, those just seem like bugs :)
22:23 lizmat and probably darkpan6 code out there
22:23 lizmat so we need to fix this sooner rather than later
22:23 lizmat however, I have no idea to fix this
22:23 lizmat suggestions welcome  :-)
22:24 TimToady you derive a new language that has those policies, which can callsame into parent language's policies
22:25 TimToady but any policy that changes the current language ought be lexically scoped, if at all possible
22:25 TimToady including the policy that you'll allow accidental genericity via mutable search paths
22:26 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
22:26 TimToady you will note that I never mentioned @*INC when I wrote the initial bits of S11
22:27 lizmat indeed
22:27 lizmat and the reason I mentioned it, was to have a handle to work with
22:27 lizmat so I take it you're not attached to @*INC  :-)
22:27 TimToady nope
22:27 lizmat well, neither am I  :-)
22:28 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:30 TimToady I've always considered the library end of that to be more of a database query than a path search.
22:31 lizmat ok, clear, will sleep on that  :-)
22:31 lizmat gnight, #perl6!
22:31 TimToady o/
22:33 jnthn 'night, lizmat
22:52 jnthn m: say 4 * 13
22:52 camelia rakudo-moar fb0521: OUTPUT«52␤»
22:53 * jnthn fixes his off-by-factor-of-4 bug :)
22:57 dmol joined #perl6
23:05 Vlavv joined #perl6
23:05 jnthn Woo, first sub-45s CORE.setting build.
23:06 jnthn Another another 4MB off base memory.
23:07 akaseki joined #perl6
23:07 carlin ohh memory improvements are nice
23:07 carlin it would be great to be able to build rakudo with only 512MB of RAM
23:11 timotimo oof, that sounds like a lofty goal still
23:12 timotimo 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
23:12 timotimo since pretty much every program is going to neglect ~75% of CORE.setting's subs and methods ... :)
23:13 timotimo this specific thread of optimizations is most probably not going to help core setting compilation max memory usage much :(
23:13 aoseki joined #perl6
23:13 jnthn Well, it does
23:13 jnthn Because I greatly improved how static lexical handling is done.
23:13 timotimo oh!
23:13 timotimo well, *that* is good :)
23:13 jnthn Which meant I could toss a HUGE hash table and tens of thousands of MAST nodes.
23:14 timotimo ooooh
23:14 timotimo that sounds very, very nice
23:14 jnthn We're under 800MB max setting comp memory on my box now
23:14 jnthn 760MB or so was highest I saw it go
23:14 eternaleye joined #perl6
23:14 timotimo so we're still at 150% of what we'd like to be
23:15 jnthn Yeah. But there's more wins to be had yet.
23:15 timotimo i'm not saying no to that :))
23:16 jnthn Also, though I'm eye-balling the Windows task manager, you can build NQP in under 128MB these days.
23:18 jnthn Setting build in under 45s on this box has been one of my small "want to get there" goals for a while.
23:19 jnthn 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 jnthn And NQP in 30s wouldn't be bad too.
23:22 timotimo at some point we're just going to compile rakudo and nqp from source every time we start up
23:22 timotimo because it'll be worth the space-time trade-off :P
23:28 dalek nqp: 9268ba7 | jnthn++ | tools/build/MOAR_REVISION:
23:28 dalek nqp: Bump to latest MoarVM, with many improvements.
23:28 dalek nqp: review: https://github.com/perl6/nqp/commit/9268ba7c5c
23:28 dalek nqp: 183e611 | jnthn++ | src/vm/moar/QAST/QAST (2 files):
23:28 dalek nqp: Use new MoarVM static block lexicals support.
23:28 dalek nqp: review: https://github.com/perl6/nqp/commit/183e611a0f
23:29 dalek rakudo/nom: a1a2360 | jnthn++ | tools/build/NQP_REVISION:
23:29 dalek rakudo/nom: Get latest NQP and MoarVM improvements.
23:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a1a236067b
23:30 nbrown joined #perl6
23:42 flussence Stage parse      :  59.658
23:42 flussence yay, sub-minute here
23:48 flussence (I wonder how long P5 takes compared to R*...)
23:48 timotimo takes for what task?
23:49 flussence the configure/make/make install part :)
23:49 flussence (actually, throw make spectest in there)
23:51 xenoterracide joined #perl6
23:56 TimToady jvm parse just went from 87 seconds to 65
23:56 jnthn "jsut"? :)
23:57 TimToady moar from 34 to 31
23:58 jnthn TimToady: When was the previous JVM build?
23:58 jnthn Glad we're improving across the board, though :)
23:59 TimToady oh, like this morning
23:59 TimToady or maybe last night
23:59 jnthn ah, so today's improvements :)
23:59 jnthn Well, nice :)

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

Perl 6 | Reference Documentation | Rakudo