03:49 PerlJam joined 06:30 brrt joined 06:31 FROGGS[mobile] joined 06:55 Ven joined 07:23 lizmat joined 07:36 Ven joined 07:38 FROGGS joined 07:50 Ven joined 07:59 zakharyas joined 08:38 Ven joined 11:00 brrt joined
timotimo damn, i thought i was being super clever by turning on profiling and enabling the spesh log so that i could get the compiler output from the mast_references test file 11:24
but it doesn't show up :(
11:25 Ven joined
timotimo possibly something about nesting of compilers and clearing the profiling flag? 11:25
nothing fixed the "cannot assign to immutable value" problem in the mean time 11:26
timotimo has no clever idea for debugging this 11:27
at the same time, i managed to get rid of a brainfart regarding the "let the metamodel compile accessors and BUILDALL methods for us" thing 11:31
brrt waitwhat 11:34
can i help :-) 11:35
timotimo oh, that'd be fantastic
you know about local vs localref and lexical vs lexicalref in the QAST::Var :scope?
brrt ... no
sorry :-)
timotimo OK, so at the QAST level we take references to locals by accessing a local with a :scope<localref> 11:36
that'll be compiled to the proper localref_s operation
and working with a variable that was declared :scope<localref> and using that in :scope<local> will decont_s (for example)
with that in mind, check out the nqp branch "mast_localref" 11:37
there's tests in there that fail with the exception "cannot assign to immutable value", and i can't quite figure out how to get at the exact code it's generating
you can rebase it onto the newest nqp safely 11:38
and the test i wrote is in t/moar/02-*.t
brrt ah ok 11:48
i'll check
timotimo maybe the op that compiles a MAST tree into a frame or what exactly it is, could be instrumented to dump what it compiles directly after it finishes 11:49
brrt hmm wait 11:50
i think i can help you with that 11:51
have you looked at src/mast/compiler.c
timotimo no, i just had that idea 11:54
were you just about to point me at something in particular, or just tell me to read through that file? :) 12:16
brrt i was looking through it myself :-) 12:17
anyway, that's what you could do, i'd guess 12:18
timotimo now let me have a look at what exact function will give me a dump and what struct it expects
takes a compunit, i see
brrt not sure which does mast dumps 12:19
timotimo MVM_vm_dump_file? 12:20
er ... actually not 12:21
MVM_bytecode_dump
and that uses map_from_file
but if we just use nqp::getcomp to compile something, no file gets created
brrt hmmmpf 12:44
timotimo yes :) 12:53
i can't get anything to show up in the spesh log even if i execute the compiled code 100 times 13:02
like, a simple whle loop inside is_qast
oh 13:03
because it dies, duh
brrt can't you do target=mast
FROGGS src/strings/unicode_gen.h:112:30: warning: no newline at end of file 13:04
src/core/coerce.h:24:93: warning: no newline at end of file 13:05
3rdparty/uthash.h:1001:22: warning: no newline at end of file
(openbsd that is)
timotimo nope :( 13:06
gist.github.com/timo/e20656ab88afb282a503 - well! this certainly looks very wrong 13:07
(i'm pretty sure that assign_i should be accessing r1(1), not r2(1) and r2(1) shouldn't exist at all
so i sort of know where to look now)
kind of looks like an off-by-one error 13:08
brrt doesn't look good, no 13:09
timotimo++
timotimo or more like a "we asked the register allocator for a fresh register but we shouldn't have" 13:12
brrt that's possible too 13:17
13:35 sivoais joined, Ven joined 13:58 Ven joined 15:41 nebuchadnezzar joined 15:46 Ven joined
nwc10 jnthn: I believe that this is the deserialisation bug: paste.scsys.co.uk/472836 16:00
jnthn: oh wait. PEBKAC. Needs a bit of refinement 16:02
neuralise that link... 16:03
but there is something very screwball about performance depending on precisely when *(reader->cur_read_offset) is updated 16:06
FROGGS nwc10++ # for hunting this 16:11
nwc10 aargh, I simply can't get it to crash 16:13
FROGGS :o( 16:14
dalek arVM: ed6acb2 | FROGGS++ | src/io/syncpipe.c:
fake POSIX exit codes consequently on windows

We faked these before when the invoked command already had shut down, now we also do the right thing when we explicitly close it.
16:24
arVM: a300558 | FROGGS++ | src/io/syncpipe.c:
remove extra call to uv_run when closing a pipe

This fixes a bug on *BSD, which swallowed the exit code on these platforms. I tested this patch on linux, Windows 7 and OpenBSD (successfully).
nwc10 jnthn: paste.scsys.co.uk/472839 17:35
bother, no that's not right either, as the code assumes that nothing trashes reader->root.stables_data 17:41
20:53 lizmat_ joined 21:10 lizmat joined