Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-06-02

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

All times shown according to UTC.

Time Nick Message
00:04 i42 joined #moarvm
00:52 i42 joined #moarvm
01:36 fengc joined #moarvm
05:53 domidumont joined #moarvm
06:12 domidumont joined #moarvm
07:18 zakharyas joined #moarvm
08:04 domidumont joined #moarvm
08:42 jnthn moarning o/
08:42 nwc10 good *, jnthn
08:52 domidumont joined #moarvm
09:32 patrickz joined #moarvm
09:39 domidumont joined #moarvm
09:42 domidumont joined #moarvm
11:38 domidumont joined #moarvm
12:14 dalek MoarVM: 882c50d | jnthn++ | / (10 files):
12:14 dalek MoarVM: Implement payload throw/handler support.
12:14 dalek MoarVM:
12:14 dalek MoarVM: To more effciently provide for implementing `return` using control
12:14 dalek MoarVM: exceptions instead of the lexotic mechanism.
12:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/882c50d9c5
13:36 domidumont joined #moarvm
13:38 dalek MoarVM: 018a4ee | jnthn++ | src/core/exceptions.c:
13:38 dalek MoarVM: Implement callerlex throwing mode.
13:38 dalek MoarVM:
13:38 dalek MoarVM: Skips the current routine (and then any thunks) before looking for a
13:38 dalek MoarVM: lexical handler. Which is precisely what Perl 6 returns need.
13:38 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/018a4ee0fc
13:46 nwc10 jnthn: keep trying (you've still not tripped ASAN)
13:47 jnthn :)
13:47 jnthn Just pushed the Rakudo patch also
13:47 jnthn Didn't spectest it yet
13:47 jnthn Just got a bit ahead of myself and decided to benchmark. Things came out *worse* on the loop benchmark. Looked at the callgrind output and realized...I didn't add the new ops to the JIT yet :)
13:53 dalek MoarVM: be612b2 | jnthn++ | src/ (4 files):
13:53 dalek MoarVM: Elimiante needing a NULL check.
13:53 dalek MoarVM:
13:53 dalek MoarVM: Faster and will make things easier to JIT.
13:53 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/be612b2b06
13:56 dalek MoarVM: dbdc82f | jnthn++ | src/gc/roots.c:
13:56 dalek MoarVM: GC mark last_payload.
13:56 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/dbdc82f390
13:58 patrickz joined #moarvm
14:11 dalek MoarVM: d221b2e | jnthn++ | src/jit/ (2 files):
14:11 dalek MoarVM: JIT lastexpayload.
14:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d221b2e630
14:11 jnthn With that it's cheaper. :)
14:12 jnthn (Than with the lexotic return thing)
14:12 jnthn 10,989,973,606 -> 10,687,951,433 CPU instructions, or around 2.7% improvement.
14:14 jnthn m: say 10976016 - 10894440
14:14 camelia rakudo-moar 069b78: OUTPUT«81576␤»
14:15 jnthn 81.5 KB smaller CORE.setting due to smaller code
14:16 jnthn m: say 5820016 - 5810008
14:16 camelia rakudo-moar 069b78: OUTPUT«10008␤»
14:16 jnthn 10KB off the size of the compiler itself
14:16 jnthn NQP got a bit bigger 'cus of the added ops etc.
14:17 jnthn Oh, but only by 2KB
14:18 domidumont joined #moarvm
14:22 nine jnthn: will that mean that we can use explicit return again?
14:25 brrt joined #moarvm
14:27 timotimo not bad
14:32 jnthn nine: Why can't you now? :)
14:33 timotimo because it's awfully slow and doesn't belong on hot paths :P
14:34 timotimo a lot of work has gone into the core setting for getting rid of returns by using ternaries and such
14:34 jnthn Ah, yeah, on hot paths that could be an issue
14:34 jnthn I don't know without measuring, but this should work out a decent bit cheaper when I'm done
14:35 timotimo aye, i expect that, too
14:35 jnthn Think is that the non-explicit return case will also get faster too :P
14:35 jnthn *Thing
14:35 timotimo that's good news, too!
14:51 * jnthn turns return and return-rw into subs, and gets bizzare failure
14:55 timotimo hm, turn off the static optimizer for a bit?
14:58 jnthn We're not even making it that far
14:59 * jnthn makes sure a parallel "innocent" change he did in Moar isn't to blame :)
14:59 jnthn nope
15:01 timotimo oh, hm
15:03 jnthn Changing just return-rw is harmless
15:04 edehont joined #moarvm
15:06 jnthn And it gets stranger still. We don't end up inside the return point at all during compilation
15:08 jnthn but...we call it loads once I make it a sub?!
15:10 jnthn When it's a pointy we don't assign it until startup I guess, so code trying to use return at compile time would thus fail. Apparently we're relying on that :P
15:23 jnthn Damn, it is that. We somehow during canonicalizing colonpair names relied on val always failing to get the right outcome
15:25 japhb That's ... an odd dependency
15:28 jnthn Very
15:29 jnthn I mean, an infix:<<(<)>> would take a pass through val
15:29 jnthn Since the << >> imply that
15:30 japhb Oh.  Weird.
15:31 timotimo if that always goes through val, maybe we should consider using [' '] instead for those cases to speed things up a bit in general?
15:32 jnthn Quite possibly :)
15:32 jnthn Anyway, it seems that a failing val just returns the original string
15:39 jnthn Ugh, this'll take some untangling.
15:39 jnthn Good point for a break. :)
15:39 timotimo dance the untango
15:40 * jnthn reverts the "make return a sub" part and runs a spectest while he rests, to see what over fallout there may be
15:59 brrt joined #moarvm
16:07 patrickz joined #moarvm
16:57 zakharyas joined #moarvm
17:12 edehont joined #moarvm
17:40 TimToady joined #moarvm
20:53 sivoais joined #moarvm
20:53 sivoais joined #moarvm
23:00 avar joined #moarvm

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