Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2016-06-08

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

All times shown according to UTC.

Time Nick Message
01:48 ilbot3 joined #moarvm
01:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
02:06 nebuchadnezzar joined #moarvm
05:39 domidumont joined #moarvm
05:44 domidumont joined #moarvm
06:08 domidumont joined #moarvm
06:12 rurban_ joined #moarvm
07:29 zakharyas joined #moarvm
07:51 Ven joined #moarvm
08:37 Ven joined #moarvm
09:07 Ven joined #moarvm
09:13 jnthn moarning o/
09:14 nwc10 good *, jnthn
09:15 konobi jnthn: saw something kinda cool that might be a useful tool for you...
09:15 konobi https://www.joyent.com/blog/550-regression-tests-in-4-minutes-with-joyent-manta
09:18 jnthn Ooh, good to know about. Thanks :-)
09:58 zakharyas joined #moarvm
10:26 dalek MoarVM: e21ef82 | jnthn++ | src/spesh/inline.c:
10:26 dalek MoarVM: Inlining fix for lexical-caller exception throw.
10:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e21ef82d7b
10:26 dalek MoarVM: 085c698 | jnthn++ | src/core/op (2 files):
10:26 dalek MoarVM: Make throwpayloadlex as :noinline.
10:26 dalek MoarVM:
10:26 dalek MoarVM: Since it needs its lexical chain to be in shape, like various other
10:26 dalek MoarVM: things that do lexical lookup. (We'll be able to be smarter in the
10:26 dalek MoarVM: future.)
10:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/085c69861c
10:54 jnthn Ouch, inlining and lexical handlers is...brainache
10:54 jnthn I might have to be smarter in the now to actually make this work at all :)
11:02 cognominal joined #moarvm
11:03 jnthn lunch &
11:58 jnthn Damn, didn't magically realize an answer during lunch...
11:59 nwc10 have lunch again?
12:00 konobi jnthn: also... terralang.org is worth having a look at. interesting way to interleave JIT/Native
12:03 jnthn As in, JITting the C call directly into the machine code produced from the calling language?
12:06 konobi mmm... not entirely sure... it's kinda unique
12:32 jnthn Turns out it's not quite as bad as I expected because of things we can't inline yet :)
12:32 jnthn So it seems there's an easy enough solution for now
12:38 dalek MoarVM: 1185cab | jnthn++ | src/ (4 files):
12:38 dalek MoarVM: Fix inlining causing wrong lexical handler lookup.
12:38 dalek MoarVM:
12:38 dalek MoarVM: When we inline, then the inlinee's handlers should not be assumed to
12:38 dalek MoarVM: be relevant during lexical handler resolution. Note that this only
12:38 dalek MoarVM: holds up because we can't inline things we've closure-captured yet;
12:38 dalek MoarVM: once that can happen we'll need something smarter than this.
12:38 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1185cabb98
12:40 jnthn Now I'm down to an error reporting regression, and one test showing a real issue that may well be in Rakudo
12:41 jnthn It looks oddly like the problem I ran into when trying to make return a sub in Rakudo
12:45 jnthn m: constant $x = "µ @"; sub circumfix:<<$x>>($) { 42 }
12:45 camelia rakudo-moar 3d50c9: ( no output )
12:52 nwc10 j: constant $x = "µ @"; sub circumfix:<<$x>>($) { 42 }
12:52 camelia rakudo-jvm 40a953: OUTPUT«cannot connect to eval server: Connection refused␤»
12:52 nwc10 OK. Was curious.
12:53 jnthn It somehow explodes with "colon pair too complex" now
12:59 cognominal joined #moarvm
13:05 * nwc10 fails to make any sort of Unicode pun here as he can't figure out any character smaller than a period, and that's not really small enough for a joke to work
13:09 jnthn Somehow we're getting a control exception escaping and being caught.
13:10 nwc10 valgrind time?
13:10 jnthn Doubt it.
13:10 jnthn I mean, I can try but I'd be surprised if it's that kind of bug, from the symptoms so far.
13:13 jnthn Hm, and it's a return control exception...huh
13:14 jnthn oh, lol
13:14 timotimo somehow a return handler failed to get installed? or inlined? or something?
13:15 jnthn No
13:15 jnthn There was a CONTROL block
13:15 jnthn Inside the thing doing a return
13:15 jnthn Inside a sub doing return, sorry
13:16 jnthn And since return is now a proper control exception, as per spec, it now gets that in the CONTROL block
13:16 jnthn However, it was assuming that any control exception was probably a warning
13:16 timotimo :D
13:16 nwc10 this sounds like bloggage fodder
13:16 nwc10 (Although the explanation here made sense with that last line, at least to me)
13:16 nwc10 itneresting stuff
13:18 jnthn It'll be harder to accidentally do this in Perl 6 'cus, unlike in NQP, you have to actually match on the exception
13:18 jnthn Anyways, that nicely fixes another failing test
13:20 timotimo ah, OK
13:22 jnthn Unfortunately, I suspect this won't on its own be enough to fix the "turning return into a sub breaks things" bug
13:25 jnthn Indeed.
13:49 dalek joined #moarvm
13:51 brrt joined #moarvm
14:00 zakharyas joined #moarvm
14:01 jnthn Think I've figured out that bug too though :)
14:01 timotimo waycool
14:01 jnthn Now spectesting with return as a sub
14:01 jnthn Then will break it out into multis and try that
14:02 jnthn Then will need to unbreak throwing the typed exception on return outside of routine
14:06 timotimo uh oh. i edited things via the vboxsf and the modes got changed on some of the files
14:06 timotimo ... wrong channel
14:20 nwc10 and then will cook curry?
14:20 nwc10 (do not delay curry if bug remains unsolved after sundown)
14:22 jnthn Not curry today :)
14:23 jnthn Probably not for a bit, in fact...though other spicy things soon :)
14:49 pyrimidine joined #moarvm
14:52 diakopter TimToady: just rename the language MONKEY
14:54 brrt joined #moarvm
14:54 diakopter [re: two days' ago HEY-HEY-WE'RE-THE-MONKEYS
14:55 diakopter ]
14:55 diakopter [also, nobody said anything here yesterday o_O]
14:55 arnsholt nwc10: It's worth noting that sundown in Scandinavia these days is around 11 at night, so I do hope he has dinner a bit before that =)
14:56 jnthn m: say 7717886906 / 14223339978
14:56 camelia rakudo-moar 2bd421: OUTPUT«0.5426212773␤»
14:56 * diakopter hopes that's a speedup calc
14:57 jnthn Yeah. `sub foo($a) { if $a { return 1 } }; for ^2000000 { foo(1) }` now runs in nearly half the CPU cycles it used to.
14:58 jnthn And still plenty of room for improvement yet.
14:58 diakopter such impredicativity might be proven by a smart someting or over
14:58 japhb Holy shazbot.  That's amazing, jnthn!
15:06 timotimo to be fair, return was slow AF before :)
15:06 timotimo so it's likely still comparatively slow
15:06 timotimo like, compared to without return
15:10 jnthn The non-return case is faster now also, fwiw :)
15:13 japhb Oh, excellent
15:13 jnthn 'cus it's just using an exception handler (static) rather than setting up a lexotic
15:18 timotimo yays!
15:20 jnthn At some point I'd also like to teach the exception throwing optimizations in spesh to turn this into a set and goto in cases where it's possible.
15:20 jnthn But we'll need to move that opt after inlining then, which will probably end up needing to be part of a larger shuffling around.
15:20 timotimo sounds sensible, yeah
15:22 dalek MoarVM: dc3b64a | jnthn++ | src/core/exceptions.c:
15:22 dalek MoarVM: A little cleanup and simplification.
15:22 dalek MoarVM:
15:22 dalek MoarVM: Also paves the way for being able to properly differentiate between a
15:22 dalek MoarVM: return outside of any routine vs. a return from outside of an already
15:22 dalek MoarVM: returned routine.
15:22 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/dc3b64a573
15:26 jnthn Time for a break :)
15:28 rurban_ joined #moarvm
15:45 japhb m: say 7717886906 / 2000000   # Cycles per iteration in jnthn's return microbenchmark
15:45 camelia rakudo-moar 2bd421: OUTPUT«3858.943453␤»
15:47 timotimo that's a lot still
15:48 timotimo i wonder how many cycles we burn just from compiling that piece of code without running it
16:50 Ven joined #moarvm
16:56 flaviusb joined #moarvm
17:14 [Coke] nwc10: any issues with the spaceybuild branch for you?
17:32 FROGGS joined #moarvm
17:34 zakharyas joined #moarvm
18:18 tomboy64 joined #moarvm
18:46 FROGGS joined #moarvm
19:07 FROGGS joined #moarvm
19:08 cognominal joined #moarvm
19:15 FROGGS joined #moarvm
19:21 Ven joined #moarvm
19:56 brrt joined #moarvm
20:59 zakharyas joined #moarvm
21:02 rurban_ joined #moarvm
21:17 cognominal joined #moarvm

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