Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-07-13

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

All times shown according to UTC.

Time Nick Message
00:29 jnap joined #moarvm
00:58 btyler joined #moarvm
01:34 FROGGS_ joined #moarvm
03:16 btyler joined #moarvm
09:22 timotimo is push_o among the bailers because it needs to go indirectly through the repr and the jit just doesn't have a template for repr ops yet?
09:43 vendethiel- joined #moarvm
11:43 jnthn I think there's a MVM_repr_push_o it could call or something like that
12:22 timotimo ah, yes, there is
12:22 timotimo probably the same for atpos and atkey
12:24 jnthn aye
12:27 timotimo only very few bails for those all in all, but it's probably still interesting
12:31 timotimo any reason beside "we didn't need it yet" that there is no repr_pop_o?
12:33 jnthn "we didn't need it yet" :)
12:33 * timotimo adds them
12:33 timotimo them == all the _* variants
12:35 itz_ joined #moarvm
12:37 FROGGS joined #moarvm
12:41 carlin joined #moarvm
12:42 dalek MoarVM/moar-jit: 4eb29f4 | (Timo Paulssen)++ | src/ (3 files):
12:42 dalek MoarVM/moar-jit: create repr_pop_* and expose them to the jit
12:42 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/4eb29f4312
12:51 timotimo 100% of atpos_o ops have now continued to immediately bail on an ifnonnull
12:53 FROGGS timotimo: you're helping out brrt?
12:53 timotimo i just got a little bit intrigued
12:54 FROGGS :o)
12:54 jnthn I'm sure brrt doesn't mind the help :)
12:54 FROGGS timotimo++
12:54 * jnthn is tempted to hack on it a bit too at times :)
12:55 timotimo well, he better implement ifnonnull now. it's gone up to the 2nd place of bails in the setting compilation
12:55 timotimo only 91 bails behind getattr_s
12:55 jnthn Is there not an MVM_repr_ wrapper for that one too? :)
12:55 timotimo seems like i'd have to make one.
12:56 jnthn k
12:56 jnthn Well, 'tis do-able
12:56 timotimo timo-able :)
12:56 timotimo will be afk for a bit now, though
12:58 FROGGS jnthn: that NQPArray thingeny in all about comfort these days, right?
12:59 FROGGS jnthn: I just wonder how to solve my $*W.find_symbol problem...
12:59 jnthn Well, it means we can do method calls...
13:00 jnthn Yeah, I'm not sure. I mean, nqp::hllize(nqp::list(...), 'nqp') or so may do it
13:00 jnthn oh, or...
13:01 jnthn Just write a sub nqplist(*@foo) is export { @foo } somewhere in NQP code, and use it... :)
13:01 FROGGS ahh...
13:01 FROGGS :o)
13:01 FROGGS jnthn++
13:12 colomon_ joined #moarvm
13:12 ggoebel111118 joined #moarvm
14:19 zakharyas joined #moarvm
15:00 timotimo okay, i'm back to building the getattr_s method
15:01 timotimo i don't really see an example of how to pass a constant string to a c function from the jit
15:05 timotimo technically i should be able to just take the address of the string literal and push it in as a pointer
15:07 timotimo i don't really know the proper way to pass a literal int as an address value; is it just a regular number for the assembly code emitted?
15:13 jnthn "as an address value"?
15:13 timotimo erm
15:13 timotimo well, the function expects to be passed an MVMString *
15:14 timotimo i have an index into the compunit's literal table
15:14 timotimo since that should be immovable (yes?), i should be able to just dereference that MVMString
15:14 timotimo but the jit doesn't seem to have a passing type "literally this pointer" yet
15:14 timotimo it does have "this int64 literal", though. i wonder if i can just use that and be done with it
15:15 diakopter what about on 128-bit addressing platforms
15:15 timotimo psst!
15:15 timotimo oh hey it's you!
15:15 timotimo hi there :)
15:15 diakopter prehi
15:16 timotimo how are you doing?
15:17 diakopter ++
15:17 diakopter you?
15:18 timotimo i'm doing okay
15:18 timotimo "++" sounds very good, i'm glad to hear that :)
15:18 diakopter eh, until it rolls over
15:19 timotimo as you can see, i'm not well trained in these little details ... 128bit addresses, numerical overflows, ...
15:19 diakopter :p
15:19 timotimo have you had time to catch up with moarvm changes since we last talked?
15:19 diakopter I've been watching the commit messages
15:20 diakopter so, fwiw. :)
15:21 diakopter actually I've been reading most of the diffs too
15:22 timotimo i hope you'ven't just come here to complain about my poor code quality ;)
15:23 diakopter I didn't think I'd done that
15:23 timotimo well, thankfully jnthn is always quick to point out what i'm doing wrong
15:24 timotimo and i hope i'm learning from the experience
15:25 [Coke] diakopter: hi
15:25 diakopter oyoy
15:31 carlin joined #moarvm
15:33 timotimo diakopter: is the jit going a way you approve of?
15:34 timotimo i only remember talk about "being able to in-line repr functions" back at the RaNIW, which we are now able to do thanks to spesh + jit
15:34 diakopter heh, I dunno.. I'd think so
15:34 timotimo glad to hear it :)
18:01 lizmat diakopter++ for giving a sign of life
18:04 FROGGS diakopter: hi :o)
18:36 zakharyas joined #moarvm
18:50 timotimo will be very excited to see when jnthn releases the new string stuff
18:57 FROGGS timotimo: must be at any minute now :P
19:03 timotimo yup, i'm holding my breath! if he doesn't release it now, i'll pass out! what a cunning plan!
19:04 jnthn :P
19:08 * timotimo passes out
19:08 timotimo d sfgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg
20:10 jnthn timotimo: Patch probably coming in the next 30 mins or so
20:11 cognominal joined #moarvm
20:12 timotimo oooh, cool!
20:14 timotimo so now i'm wondering ... will it do away with ropes or keep them? will it implement a proper hashing approach for ascii strings?
20:15 jnthn I've not taken on the hashing *yet*
20:15 timotimo i'm glad that it sounds like you're going to :)
20:15 timotimo i used to have that one approach that ended up failing and being a terrible mess
21:12 dalek MoarVM/strref: 9384917 | jnthn++ | src/io/procops.c:
21:12 dalek MoarVM/strref: Just use empty string constant, not make an empty.
21:12 dalek MoarVM/strref: review: https://github.com/MoarVM/MoarVM/commit/93849174c8
21:12 dalek MoarVM/strref: 6eaf6aa | jnthn++ | / (29 files):
21:12 dalek MoarVM/strref: Significantly overhaul the strings code.
21:12 dalek MoarVM/strref:
21:12 dalek MoarVM/strref: Introduce a grapheme iterator, along with a codepoint iterator (that
21:12 dalek MoarVM/strref: is just an alias to the same thing). Go with a flat approach to the
21:12 dalek MoarVM/strref: strands, which greatly simplifies traversal of a string and should do
21:12 dalek MoarVM/strref: a little better CPU-cache wise. Actually use strands in concatenation,
21:12 dalek MoarVM/strref: substring, joining, and repeat operations.
21:12 dalek MoarVM/strref:
21:12 dalek MoarVM/strref: This patch does enough to get NQP and Rakudo building and passing the
21:12 dalek MoarVM/strref: sanity tests with the new approach; spectest looks good too. Still a
21:13 timotimo wow, that's a huge diff
21:15 jnthn Yeah...it's one of those "break everything then put it back together" refactors
21:16 timotimo break everything together :)
21:16 timotimo i'm glad it passes all the stuff
21:16 timotimo want me to benchmark it tomorrow or something?
21:18 jnthn Yes, plesae. :)
21:20 timotimo and then we'll get getattr_s and ifnonnull tomorrow when brrt is back :D
21:22 jnthn Yes, I'm hopeful the next week will be an interesting one in jit-land.
21:22 timotimo oh, are we close to a release again? :)
21:22 jnthn On Thu
21:23 jnthn So moar-jit wont' make it into this one
21:23 jnthn I just meant we're only so many things off it making a difference to benchmarks.
21:24 timotimo aye
21:24 timotimo ow my ears
21:25 timotimo (parents watching the football game)
21:27 jnthn Yes, for the correct team too \o/
21:28 timotimo got cool ideas for spesh before the release? except for the tough topic of common subexpression elimination or loop hoisting or stuff like that?
21:28 timotimo we could do some constant folding in spesh land
21:28 jnthn Well, "week before release" is probably the time to be fixing stuff rather than doing new opts :)
21:29 timotimo d;aaw
21:30 vendethiel joined #moarvm
21:31 timotimo you're right of course, though
21:34 vendethiel joined #moarvm
21:54 jnthn I got a graph out
21:59 timotimo you got a ... what?
21:59 jnthn The shape of the concat benchmarks on Moar is now a lot better
21:59 timotimo oh yeah! :D
21:59 jnthn I'm currently seeing if I can get bench to do a 2014.06 on the graph too
22:01 timotimo you'll just have to put rakudo-moar/2-14.06 into the commandline for "compar"
22:05 jnthn Well, need to time before I can compare :)
22:08 timotimo ah, of course
22:11 jnthn Bad news is parse-json didn't run, so I've a bug to hunt yet.
22:13 timotimo ah, but it's good we found it that way :)
22:42 jnthn http://jnthn.net/perl6/bench/2014-07-13.html
22:42 jnthn Overall, it's been a good month for Rakudo performance.
22:43 jnthn I need to look into trim_string, though.
22:43 jnthn It's the only one where we've gotten worse.
22:43 jnthn Well, and the json-parse bug I already know about.
22:44 timotimo what the ...
22:44 timotimo how did we get all this performance?
22:44 jnthn Well, think about what's landed
22:44 jnthn OSR
22:44 jnthn The string thing I've just been doing
22:44 jnthn The for range optimization.
22:44 timotimo ah, for range, i thought that was already in last month
22:44 jnthn Improved inlining. :)
22:45 jnthn It was apart from it didn't work on the benchmarks
22:45 timotimo and OSR, too. but i realize now that that's still fairly recent
22:45 jnthn 'cus of the extra parens.
22:46 timotimo that was an amusing bug
22:47 jnthn Provided 2014.08 brings us JIT, that should be another boost.
22:48 timotimo oh yeah
22:48 jnthn Still plenty to do.
22:48 timotimo a jit that doesn't bail on almost every non-trivial piece of code :)
22:48 jnthn But the progress over a year is quite good.
22:48 timotimo jit won't be improving the memory usage, though :(
22:48 jnthn Especially given the graphs are log graphs...
22:48 jnthn No, true.
22:49 timotimo well, piecewise loading of the setting would be a *huge* help, whenever that ends up happening
22:49 timotimo i'd almost claim that'd solve all our troubles
22:49 timotimo it'd be at least a 10x improvement
22:49 timotimo for simple one-liners
22:49 timotimo nothing near a cpython or perl5 process, but still a great win
23:01 [Coke] m: { my $a = 3; sub blah() { $a++}}; blah;blah;blah.say
23:01 camelia rakudo-moar b25b86: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Vm5ui2Jp7h␤Undeclared routine:␤    blah used at line 1␤␤»
23:02 [Coke] how can I get visibility to that sub outside that block?
23:02 [Coke] (S02-names-vars/variables-and-packages.t)
23:02 vendethiel our sub ?
23:02 vendethiel m: { my $a = 3; our sub blah() { $a++}}; blah;blah;blah.say
23:02 camelia rakudo-moar b25b86: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/87MVVARBnM␤Undeclared routine:␤    blah used at line 1␤␤»
23:02 vendethiel eh.
23:02 jnthn our, and then &OUR::blah() on the outside.
23:03 jnthn The lexical scoping rules on sub calls are very, well, lexical... But the typo catching is worth it :)
23:08 * vendethiel thinks it indeed is :o)
23:30 dalek moarvm.org: eee7f57 | Carlin++ | roadmap.html:
23:30 dalek moarvm.org: fix typo in roadmap --> s/Repalcement/Replacement
23:30 dalek moarvm.org: review: https://github.com/MoarVM/moarvm.org/commit/eee7f57cac
23:30 dalek moarvm.org: 69ba63c | jonathan++ | roadmap.html:
23:30 dalek moarvm.org: Merge pull request #5 from carbin/patch-1
23:30 dalek moarvm.org:
23:30 dalek moarvm.org: fix typo in roadmap --> s/Repalcement/Replacement
23:30 dalek moarvm.org: review: https://github.com/MoarVM/moarvm.org/commit/69ba63c321
23:34 raiph joined #moarvm
23:58 jnthn 'night

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