Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-05-03

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

All times shown according to UTC.

Time Nick Message
00:19 jnap1 joined #moarvm
01:02 FROGGS_ joined #moarvm
01:21 colomon joined #moarvm
01:36 jnap joined #moarvm
01:59 donaldh_ joined #moarvm
02:25 donaldh joined #moarvm
02:51 jnap joined #moarvm
03:52 jnap joined #moarvm
04:53 jnap joined #moarvm
05:04 lue joined #moarvm
05:54 jnap joined #moarvm
06:54 jnap joined #moarvm
08:06 lue joined #moarvm
08:06 donaldh joined #moarvm
08:06 FROGGS_ joined #moarvm
08:06 dalek joined #moarvm
08:06 lizmat joined #moarvm
08:06 hoelzro joined #moarvm
08:06 cognominal__ joined #moarvm
08:06 ashleydev joined #moarvm
08:06 cxreg joined #moarvm
08:06 odc joined #moarvm
08:06 flussence joined #moarvm
08:06 _sri joined #moarvm
08:06 timotimo joined #moarvm
08:06 brother joined #moarvm
08:06 bcode joined #moarvm
08:06 tadzik joined #moarvm
08:06 Util joined #moarvm
08:06 camelia joined #moarvm
08:06 sergot joined #moarvm
08:06 japhb joined #moarvm
08:06 jnthn joined #moarvm
08:06 xiaomiao joined #moarvm
08:06 retupmoca joined #moarvm
08:06 ChanServ joined #moarvm
08:06 nwc10 joined #moarvm
08:06 masak joined #moarvm
08:06 lee_ joined #moarvm
08:06 JimmyZ joined #moarvm
08:06 dagurval_ joined #moarvm
08:06 avar joined #moarvm
08:06 ingy joined #moarvm
08:06 moritz joined #moarvm
08:06 BinGOs joined #moarvm
08:06 colomon joined #moarvm
08:06 daxim joined #moarvm
08:06 woolfy joined #moarvm
08:06 [Coke] joined #moarvm
08:06 synopsebot joined #moarvm
08:11 camelia joined #moarvm
08:11 ggoebel111113 joined #moarvm
08:11 harrow joined #moarvm
08:11 tokuhirom joined #moarvm
08:11 TimToady joined #moarvm
08:56 jnap joined #moarvm
09:31 nwc10 jnthn: botherit, in that I'd forgotten where the Moar-on-Pi error was
09:31 nwc10 it's an "index out of range" during NQP
09:31 nwc10 however, gcc is 4.6 (and valgrind is 3.7.0
09:32 nwc10 so I'm dist-upgrading to debian testing to get a vaguely current toolchain
09:57 jnap joined #moarvm
10:15 jnthn nwc10++ # portability stuffs
10:17 nwc10 jnthn: which filled /
10:17 nwc10 so https://xkcd.com/349/
10:17 nwc10 (have discovered apt-get autoclean)
10:18 nwc10 have second working SD card. Going to use this, etc
10:18 nwc10 but need to do some setup first
10:19 nwc10 for which it turns out that it's fairly useful to have a satellite receiver which is actually running linux
10:19 nwc10 even if (grumble) it can't do ext4
10:57 jnap joined #moarvm
11:01 jnthn Interesting thing that might tempt somebody: you can use the spesh graph building infrastructure for more than just that. One other application is to instrument the code for profiling.
11:01 jnthn That's probably how we should build profiling support into MoarVM.
11:22 FROGGS_ cool!!
11:22 FROGGS_ timotimo might like that idea :o)
11:22 * jnthn is doing the next round of spesh work and it's tricky
11:22 timotimo hmmm
11:58 jnap joined #moarvm
12:59 jnap joined #moarvm
13:17 timotimo jnthn: can i has a flag that i can set on the vm instance that causes moarvm to shut down and clean up when a gc is hit?
13:18 jnthn That sounds like a weird thing to want...
13:19 jnthn What're you trying to achieve?
13:19 FROGGS_ hehe
13:19 timotimo have a moarvm in-process and have a way to stop it
13:19 timotimo when it's infinilooping, for example
13:22 timotimo making it a separate process makes it simpler to kill, but then i have to think about ipc, instead of just exposing a few C functions to NativeCall
14:00 jnap joined #moarvm
14:10 dalek MoarVM/spesh_trace: 2938e6d | jnthn++ | src/ (2 files):
14:10 dalek MoarVM/spesh_trace: Add slots related to logging things we saw.
14:10 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/2938e6de52
14:10 dalek MoarVM/spesh_trace: 5170681 | jnthn++ | / (11 files):
14:10 dalek MoarVM/spesh_trace: Re-organize spesh to have log/specialize phases.
14:10 dalek MoarVM/spesh_trace:
14:10 dalek MoarVM/spesh_trace: When we first decide to specialize, we now only go so far as creating
14:10 dalek MoarVM/spesh_trace: argument guards. There is a place for logging instructions to be added
14:10 dalek MoarVM/spesh_trace: (though none are being yet). This information will then be available
14:10 dalek MoarVM/spesh_trace: when we reach specialize time, to guide specialization.
14:10 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/5170681567
14:13 timotimo ah, so it'll be a bit more like pypys tracing jit
14:13 timotimo where they run the code that's been considered hot once while looking really closely, logging everything, tracing through the whole interpreter
14:14 jnthn Well, sorta-ish-kinda :)
14:14 jnthn We don't trace through the interpreter or log everything. Just some interesting things we can't figure out otherwise.
14:15 jnthn But yeah, it should gets us various benefits :)
14:19 timotimo ah, ok
14:19 timotimo yay :)
14:25 donaldh joined #moarvm
14:49 dalek MoarVM/spesh_trace: 91b5df6 | jnthn++ | src/core/interp.c:
14:49 dalek MoarVM/spesh_trace: Implement sp_log op.
14:49 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/91b5df6d14
14:49 dalek MoarVM/spesh_trace: e720acd | jnthn++ | src/spesh/ (3 files):
14:49 dalek MoarVM/spesh_trace: Start inserting logging instructions.
14:49 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/e720acdb81
15:00 jnap joined #moarvm
15:14 * JimmyZ wonders what spesh trace is about
15:21 timotimo jnthn explained it a bit above
15:33 dalek MoarVM/spesh_trace: 009fb08 | jnthn++ | src/6model/reprs/MVMStaticFrame.c:
15:33 dalek MoarVM/spesh_trace: Correct log slot marking.
15:33 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/009fb0858d
15:33 dalek MoarVM/spesh_trace: 1d10c99 | jnthn++ | src/core/interp.c:
15:33 dalek MoarVM/spesh_trace: Fix scoped/lifetimed lexical lookup opts.
15:33 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/1d10c9999c
15:33 dalek MoarVM/spesh_trace: 031f7ed | jnthn++ | src/spesh/candidate.c:
15:33 dalek MoarVM/spesh_trace: Add missing write barrier after spesh.
15:33 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/031f7edd96
15:33 jnthn The goal is partly to allow spesh to benefit Rakudo more, but also this is part of preparing the way for inlining.
15:42 JimmyZ That's very nice
15:43 jnthn Yes. A bit tricky, though :P
16:01 jnap joined #moarvm
16:31 dalek MoarVM/spesh_trace: 2b08076 | jnthn++ | src/spesh/optimize.c:
16:31 dalek MoarVM/spesh_trace: getlexstatic_o optimization.
16:31 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/2b08076a75
16:31 dalek MoarVM/spesh_trace: f4ba822 | jnthn++ | src/spesh/c (2 files):
16:31 dalek MoarVM/spesh_trace: Be more careful with no-handler frames.
16:31 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/f4ba8222be
16:31 dalek MoarVM/spesh_trace: 5b9af98 | jnthn++ | src/spesh/codegen.c:
16:31 dalek MoarVM/spesh_trace: Better error on handler fixup failure.
16:31 dalek MoarVM/spesh_trace: review: https://github.com/MoarVM/MoarVM/commit/5b9af981b6
16:33 timotimo jnthn: i'm not sure i understand how that getlexstatic_o thing is supposed to work; would it turn redundant getlexes into a cheap operation like accessing a local?
16:33 timotimo but only if it's still the same object?
16:34 jnthn timotimo: When you do $a + $b, if we didn't override the +, it's the same one every time.
16:34 jnthn The other op that I added that we don't use yet is for type variables
16:35 jnthn Where if we specialized on the invocant type then ::?CLASS (used for attribute lookups) can be considered static
16:35 timotimo ooooh
16:35 timotimo that does sound good
16:36 jnthn Sadly, we get some Rakudo test fails with this and the NQP patches I just pash
16:36 timotimo does it do things yet?
16:36 jnthn But it seems it's a silly thing
16:36 timotimo ah, ok
16:36 jnthn It's somehow failing to re-compute frame handler addresses.
16:36 jnthn Despite the dump showing annotations in the right place.
16:37 jnthn bbl &
16:38 timotimo that's probably sanity tests then?
17:02 jnap joined #moarvm
18:03 jnap joined #moarvm
18:18 nwc10 how could I run the NQP tests using the stage 0 NQP?
18:19 nwc10 oh, do I even need to? -e0 fails the same way
18:30 timotimo oh, that sounds bad
18:31 zakharyas joined #moarvm
18:34 nwc10 it's very strange. -e0 fails within a couple of seconds
18:34 nwc10 the first command that the NQP build runs takes 90 seconds
18:40 nwc10 most curious. I have a long long value of 4294967296
18:40 nwc10 which I suspect should be 0
18:41 timotimo huh?
18:41 nwc10 "live debugging"
18:41 nwc10 it will hopefully all make more sense soon
19:04 jnap joined #moarvm
19:09 nwc10 OK, this is whacko that I didn't know about
19:09 nwc10 sizeof(int64_t) =  8            __alignof__(int64_t) =  8
19:10 nwc10 yet if I have an int64_t in a structure, the alignment is only 4
19:10 nwc10 this is x86
19:10 nwc10 it's a WTF moment
19:12 benabik joined #moarvm
19:15 timotimo the what now?
19:15 nwc10 alignment mismatch
19:16 nwc10 jnthn: what code where writes to index in a MAST::Local? C code or NQP code?
19:17 nwc10 I can't spot any assignment in C
19:17 FROGGS_ must be nqp
19:17 timotimo where does the alignment mismatch come from?
19:18 nwc10 that is the question I'm figuring out
19:18 nwc10 but I suspect that it's a bad assumption about C ABI alignment in strucutres
19:22 japhb jnthn: Is there an update to https://gist.github.com/jnthn/11126125 or is that the current way you'd write that?  I'm starting to think about turning pieces of that into helper routines, and want to make sure I'm working off current thinking ....
19:28 lizmat japhb: afaik, that is still current thinking
19:29 japhb lizmat: Have there been any changes in async I/O or the concurrency primitives since then?
19:30 japhb Hmmm, looks like you've been doing some Supply work
19:33 lizmat hehe, yes  :-)
19:33 ingy moarning
19:34 FROGGS_ hi ingy
19:34 lizmat ingy FROGGS_ /o
19:34 FROGGS_ o\
19:35 ingy hi all!
19:35 lizmat japhb: perhaps this discussion should be on #perl6 ?
19:36 japhb lizmat: Sure.  I'm beginning to have a problem with #perl6, so it's no longer default for me, but you're right, it's more on topic there.
19:40 timotimo too much text in #perl6?
19:44 FROGGS_ timotimo: yeah, it is very hard sometimes...
19:46 japhb timotimo: Yeah.  Just way too much to simultaneously be there and actually get hacking done.
19:46 japhb 12 hours of day job + 3 kids + #perl6 + hacking > capacity
19:46 timotimo i see
19:47 japhb I'd love to turn the SNR on #perl6 up a few notches (by reducing noise).  But it's civil as always, I don't want to break the community.
19:49 japhb BTW, I came to this conclusion when I just tried to keep up with #perl6 for a while -- and realized I hadn't done any good hacking done in *months*.
19:49 japhb Sigh, sorry for turning this into #perl6-meta for half an hour.  :-(
19:51 FROGGS_ *g*
20:02 zakharyas joined #moarvm
20:04 jnap joined #moarvm
20:37 woolfy joined #moarvm
21:01 * jnthn back
21:01 lizmat jnthn o/
21:01 jnthn japhb: It's the current way, but .then will likely get a 2-arg version for a keep and break closure.
21:02 lizmat hmmm... intriguing thought
21:02 jnthn japhb: My expectation is that most users will be using modules built out of IO::Socket::Async rather than using it directly.
21:02 jnthn japhb: So I'm not really inclined to see it sugared greatly.
21:03 jnthn lizmat: Not sure if 2-arg version is best way, but I think we want to somehow avoid the if $res.status == Kept { ... } boilerplate.
21:03 lizmat yup
21:05 jnap joined #moarvm
21:17 cognominal__ joined #moarvm
21:39 jnap joined #moarvm
22:10 jnthn nwc10: I suspect P6opaque.c is the place that may be making the bad ABI assumption, though I don't immediately see it...
22:11 zakharyas joined #moarvm
22:40 jnap joined #moarvm
23:40 jnap joined #moarvm

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