Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-12-04

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

All times shown according to UTC.

Time Nick Message
01:26 llfourn joined #moarvm
03:23 BinGOs joined #moarvm
04:11 dalek MoarVM: 3155720 | (Jimmy Zhuo)++ | / (9 files):
04:11 dalek MoarVM: expose the backlog arg for listen
04:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3155720148
04:11 dalek MoarVM: 551c87c | (Jimmy Zhuo)++ | / (9 files):
04:11 dalek MoarVM: Merge branch 'backlog'
04:11 dalek MoarVM:
04:11 dalek MoarVM: Conflicts:
04:11 dalek MoarVM: lib/MAST/Ops.nqp
04:11 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/551c87c4aa
04:28 dalek MoarVM: c3eea17 | (Jimmy Zhuo)++ | src/core/interp.c:
04:28 dalek MoarVM: fixed cur_op
04:28 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c3eea17d64
04:33 diakopter JimmyZ: what does this branch do :)
04:36 JimmyZ diakopter: https://github.com/MoarVM/MoarVM/issues/278
04:36 JimmyZ diakopter: see above :)
04:39 vendethiel joined #moarvm
07:51 brrt joined #moarvm
07:51 brrt good * #moarvm
08:04 FROGGS joined #moarvm
08:07 diakopter brrt: hi :D
08:09 brrt hi diakopter
08:22 FROGGS joined #moarvm
08:53 FROGGS joined #moarvm
09:09 japhb joined #moarvm
09:25 japhb joined #moarvm
09:28 leont joined #moarvm
09:46 zakharyas joined #moarvm
10:29 FROGGS joined #moarvm
12:31 domidumont joined #moarvm
12:49 zakharyas joined #moarvm
13:11 domidumont joined #moarvm
13:48 dalek MoarVM/even-moar-jit: 74d3bb5 | brrt++ | / (3 files):
13:48 dalek MoarVM/even-moar-jit: Add convergence algorithm for tile rule cost
13:48 dalek MoarVM/even-moar-jit:
13:48 dalek MoarVM/even-moar-jit: I'm still not 100% sure that this is the right convergence
13:48 dalek MoarVM/even-moar-jit: criterium, but it does work much better than the earlier versions.
13:48 dalek MoarVM/even-moar-jit: review: https://github.com/MoarVM/MoarVM/commit/74d3bb5958
14:28 pyrimidine joined #moarvm
16:47 zakharyas1 joined #moarvm
17:28 leont joined #moarvm
18:15 leont left #moarvm
18:15 leont joined #moarvm
18:16 leont The error I'm still getting is confusing
18:16 leont «Missing or wrong version of dependency '/home/leon/Code/rakudo/Foo.pm' (from '/home/leon/Code/rakudo/Foo.pm')»
18:16 leont Depending on yourself is the shortest circle one can make, so that being an error makes sense, the question is why does it think it has this self dependency
18:17 leont backtrace at http://paste.scsys.co.uk/502430
18:30 leont joined #moarvm
18:39 llfourn joined #moarvm
18:43 [Coke] What's in your Foo.pm?
18:47 domidumont joined #moarvm
18:48 nine Does anyone have suggestions on how to debug "Missing serialize REPR function for REPR MVMContext"?
18:52 domidumont joined #moarvm
18:58 leont joined #moarvm
18:59 hoelzro joined #moarvm
19:24 diakopter nine: weird
19:25 diakopter how would an MVMContext get in a P6Opaque slot
19:29 zakharyas joined #moarvm
19:34 zakharyas1 joined #moarvm
19:37 nine Is there any way to track down which slot this is?
19:41 nine diakopter: well the answer to your question is probably my ignorance
19:41 diakopter well the error is in two places
19:41 diakopter serialization.c and P6Opaque
19:42 diakopter from which one was it throwing?
19:42 nine at gen/moar/stage2/QAST.nqp:4971  (/home/nine/rakudo/install/share/nqp/lib/QAST.moarvm:serialize_sc:7)
19:43 diakopter did you try --ll-exception
19:43 nine diakopter: https://gist.github.com/niner/de09d9798ae01c348b4f is the patch I'm working on. The first hunk in Perl6/Actions.nqp is probably responsible.
19:43 nine diakopter: do you see anything wrong with that?
19:44 diakopter what's the output before it errors
19:45 nine https://gist.github.com/niner/1285ced3a811451e8fe0
19:46 nine Test1.pm is: unit module Test1; use Test2; our sub resources() { %?RESOURCES<foo> }
19:46 nine Test1.pm is just: unit module Test2;
19:46 nine The error disappears if I remove the "use Test2;"
19:46 FROGGS joined #moarvm
20:02 timotimo maybe you need a nqp::getstaticcode somewhere, nine
20:05 nine I guess what I did is at least not completely wrong. Otherwise someone would have said so by now
20:37 donaldh joined #moarvm
21:19 timotimo i don't really know what MVMContext is for, but i know that nqp::getstaticcode will get you a static code reference rather than a closure-y one
21:20 timotimo er ... "i know" may be a bit too strong :)
21:42 vendethiel joined #moarvm
21:55 jnthn One hack to figure out where the MVMContext is coming from is to tweak it's allocate REPR function to dump out the memory address we allocate it at along with MVM_dump_backtrace
21:55 jnthn and then you have the address of the thing we can't serialize so can hunt it down
21:56 timotimo neat
21:56 timotimo hey jnthn, what would a heap explorer do?
21:57 timotimo hmm. if i want to start something new maybe i should prefer the coverage tool instead
22:32 nine jnthn: donaldh++ already figured out that it's CompUnit::Handle's $.module_ctx property containing the MVMContext.
22:32 jnthn Ah
22:33 nine jnthn: Working theory is: %?RESOURCES is a Distribution::Resource object that references the CompUnit::Repository which has a %.loaded hash that references CompUnits containing CompUnit::Handles referencing the contexts
22:33 nine That's why it suddenly surfaced
22:33 jnthn Sounds like a reasonable theory
22:34 nine Unfortunately replacing the module_ctx by the lexpad (which is what we're really interested in) doesn't seem to be enough
22:34 nine 22:38 < FROGGS> nine: sadly using the lexpad there isnt enough... a PseudoStash also has an attribute with a context in it
22:39 timotimo jnthn: did you do any design thinking for the coverage analysis tool yet? i was thinking it'd probably be wise to re-use the whole call graph node structure we have for the profiler anyway but just not emit the "allocated", "entered", "left", "osr'd" operations and instead emit "line hit". though perhaps it'd be wiser to just have a flat array of bools for all lines a file may have?
22:42 timotimo yeah, it doesn't make much sense to have the call graph involved
22:42 jnthn I was thinking of using annotations
22:42 jnthn So we can get closer to lines
22:43 timotimo right, in the emit/instrument phase we'd emit a "hit this line" op every time we find a filename/line annotation
22:43 timotimo that part is clear enough to me
22:44 jnthn I think we'll have to log it...somewhere...and then aggregate the data elsewhere
22:44 jnthn Becuaes usually you're intersted in coverage of a test suite
22:44 jnthn Not just one test file
22:44 jnthn So we need to aggregate data from many test files
22:44 timotimo yeah
22:44 timotimo i think the aggregation can live in a separate tool and we'd just be spitting out lots of files (so that we don't run into TEST_JOBS=9 trouble)
22:45 timotimo moar_coverage.PID might be good enough
22:45 jnthn PIDs get reused
22:45 leont In p5 it's done by essentially replacing all opcodes. I'm recommend coming up with something better…
22:45 jnthn leont: We already have something better :)
22:45 jnthn (Bytecode instrumentation, which we use for profiling)
22:46 leont :-)
22:48 jnthn Tteaching + delayed travel = exhausted; sleep &
22:50 nine Replacing module_ctx by the lexpad gets rid of a lot of uglyness in CompUnit::Handle, so it _must_ be more correct
22:51 timotimo gnite jnthn :)
23:06 nine diakopter: thanks for your help!
23:30 ggoebel7 joined #moarvm

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