github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 27 September 2013.
00:55 cognominal joined 01:08 benabik joined
dalek arVM: a547c80 | jimmy++ | nqp-cc/src/QASTRegexCompilerMAST.nqp:
proper handling of classes an zerowidth, jnthn++
01:46
02:05 FROGGS joined 06:56 FROGGS joined 07:02 FROGGS joined
dalek arVM/gcorch: a547c80 | jimmy++ | nqp-cc/src/QASTRegexCompilerMAST.nqp:
proper handling of classes an zerowidth, jnthn++
07:32
arVM/gcorch: 4e236a5 | diakopter++ | nqp-cc/src/QASTRegexCompilerMAST.nqp:
Merge branch 'master' of github.com:MoarVM/MoarVM into gcorch
diakopter jnthn: you'll be glad to know I'm writing up a changelog for the gcorch branch 07:51
should aid the diff review.
.ask TimToady ltm s05 patch - "whitespace is the archtypical" .. archtypical? or archetypical? or archetypal? 08:06
yoleaux diakopter: I'll pass your message to TimToady.
moritz does 'make' in nqp-cc/ actually build an nqp? 08:40
if yes, where is it? if no, how can I run moarqp? 08:41
JimmyZ ../moarvm nqp.moarvm 08:42
moritz JimmyZ: thanks
diakopter :) 08:43
dalek arVM/gcorch: ce534ce | diakopter++ | src/gc/orchestrate.c:
finish merging jnthn's patch
09:02
tadzik I must draw that 09:08
diakopter O_O
masak .oO( what's an Orch, and what is it doing in the GC? ) 09:09
tadzik imgur.com/8hkkbnb there 09:14
masak :P 09:17
those horses all look identical :) 09:18
moritz free the s-tables? 09:19
tadzik stables 09:20
09:20 grondilu joined
tadzik masak: the first one I drew was so perfect, that trying to draw another would just result in a worse horse :) 09:21
masak .oO( reaching the saddle point of perfection ) 09:22
moritz tries to come up with a pun about warsow and worse horse, and fails 09:23
jnthn tadzik++ 09:24
masak moritz: making horse puns for a living would be fun, but unfortunately it does not result in a stable income. 09:26
moritz masak++ 09:30
tadzik :> 09:32
diakopter bridles at the humor 09:36
masak .oO( just some harness joking around ) 09:41
jnthn saddly, I can't think of any more horse puns... 09:45
masak I could keep doing them 'til I'm horse.
09:45 cognominal joined
diakopter nay. 09:46
tadzik neigh 09:47
jnthn Ƅhnej 09:49
FROGGS masak: you say careering horses gives you a better income as the career as a prance.... err, stand-up comedian? 09:55
masak I guess I'm saying... neither of these things should enter your curriculum. 10:05
10:19 not_gerd joined
not_gerd o/ 10:19
if there are no objections, I'll start implementing gist.github.com/gerdr/aabd97a9637e0720ccf4 tonight in preparation for adding extops
tadzik s/of of/of/ :) 10:20
not_gerd I don't think that will stop me from writing the code ;) 10:21
tadzik I hope not :)
jnthn not_gerd: Gotta go to a boring sales meeting now...will look at it when I'm back :) 10:25
&
not_gerd take your time - I won't start with actual coding until much later 10:27
FROGGS not_gerd: I don't think I can care about `make install` today :/ 10:34
not_gerd FROGGS: no worries - if it becomes an issue, I'll do it 10:37
FROGGS not_gerd: thank you 11:25
timotimo .o( any additional one would just have been a whorse ) 12:39
13:01 arnsholt joined 13:10 benabik joined
not_gerd bye, #moarvm 13:23
13:23 not_gerd left 15:57 FROGGS joined 16:37 not_gerd joined
not_gerd ~~ 16:37
16:37 jnap joined
diakopter hi :) 16:39
not_gerd ”Hola! 16:42
not_gerd wonders what the Ā” operator should do 16:43
TimToady it's says you're about to take a factorial
*it
timotimo Āæque? 16:44
TimToady actually it was one of the characters I was looking at for replacing lift with placeholderish syntax
though Ā© better indicates "caller" 16:45
TimToady wonders if Apple sues people for saying ”Pad! 16:47
17:04 jnap joined 17:10 jnap joined 17:28 jnap joined 18:27 grondilu joined 18:32 lizmat joined
dalek arVM: be0fe24 | jnthn++ | src/core/interp.c:
Fix STable claiming.

With this, t/serialization/01-basic.t now fully passes.
18:59
18:59 lizmat joined 19:00 sorear joined
diakopter o_O 19:00
jnthn 1..24 pass of 02-types.t too
Now need to fix 25..31 ;) 19:01
19:01 ssutch joined
diakopter o_O 19:01
TimToady careful, you'll be done with rakudo by the end of the day at this rate 19:02
diakopter and my eye will pop 19:04
jnthn Guess if progress is that awesome I've got time for a walk... :) 19:05
19:05 lizmat_ joined
jnthn bbiab & 19:05
FROGGS \\o/
awesome these days are 19:06
19:11 ssutch joined 19:17 lizmat_ joined
timotimo so, i understand this correctly? we now have a stage0 in .moarvm generated with the cross compiler and we're about to make that stage0 compile a stage1, so that we can build a stage2 with that? 19:17
diakopter "about to" is 1-2 weeks I'm sure 19:18
FROGGS timotimo: I think that should be right, yes 19:19
and then we will use that as stage0 I suppose, when all ops have settled
timotimo i thought all that's needed now is serialization? and jnthn is about to make that work tonight :P 19:20
FROGGS *g*
nwc10 win 32 19:22
19:23 lizmat joined 19:27 johnny5_ joined 19:28 lizmat_ joined 19:44 foo_bar_baz joined 19:52 lizmat_ joined 19:53 japhb_ joined
jnthn ok, let's see if I can figure out 02-thingy.t 19:58
diakopter sends you positive energy 19:59
jnthn Serialization Error: missing static code ref for closure
Hm :)
diakopter sounds like a bug :)
benabik An error, at least. 20:00
diakopter heh. 20:01
20:03 lizmat joined
dalek arVM: 310ccae | jnthn++ | src/core/interp.c:
scsetcode needs to set code object's SC

Fixes remaining failures in t/serialization/02-types.t.
20:04
diakopter jnthn: the recent fixes there have seemed surprisingly simple/similar.. ;) but I'm sure not trivial to find. 20:05
benabik Probably easier for jnthn, given that he's implemented this 3(?) times?
jnthn Plus designed the thing in the first place... :) 20:06
So I've got a better picture of how it's *meant* to work, which is decidedly helpful.
benabik Well, designing something doesn't always tell you where to look in the implementation...
diakopter jnthn's gotten accustomed to my mistkae patterns 20:07
jnthn 1..4 of 03-closures.t pass right off with that last fix. So, 5..9 there to go... :) 20:08
20:08 japhb joined
diakopter is flabbergasted you haven't fixed bugs in my half of serialization.c yet 20:09
timotimo \\o/
20:11 jnap joined
diakopter jnthn: master is telling me Unhandled blocktype QAST::Block<1400753610904153498>.blocktype 20:13
error error 20:14
jnthn diakopter: yeah :)
diakopter oh..
jnthn diakopter: Looks like interpolation fail
diakopter there's a Makefile thingie missing for nqp-mo.pm
jnthn or rather, expecting Perl 6 interpol semantics
When NQP has simpler ones
diakopter this is the 2nd time it's tripped me up
TimToady someday when our optimizers are up to snuff, we can just start porting it all to Perl 6, one of those sister languages to NQP :) 20:17
timotimo interpol, eh?
jnthn TimToady: I'm more scared of circularity sawing there... :) 20:19
I'm still, at this point, deeply glad that Rakudo is *not* a bootstrapped compiler and only NQP does that.
TimToady doubtless understanding circularity better is one of the prerequisites to getting our optimizers up to snuff 20:20
diakopter jnthn: I'm kinda stumped on this build error. 20:21
C:\\Users\\mwilson\\src\\MoarVM\\nqp-cc\\install\\bin\\nqp.exe nqp-moar-cc.nqp --setting=NULL --target=mbc --output=nqp-mo.moarvm nqp-src\\nqp-mo.pm
20:26 jnap joined
jnthn diakopter: Hm, is f->context_object just caching the context wrapper? 20:27
diakopter wha
oh, I think so, yes 20:28
jnthn oh...heh
0xbaadf00d...that's not a great point :)
*pointer
diakopter well
oh, did I forget to mark that one
20:29 ssutch joined
jnthn no, forgot to zero it in the first place 20:29
we don't memset(0) on frames 'cus we touch everything
or near enough
diakopter o 20:30
so anyways, any idea on how to build the cross-compiler?
jnthn but yeah, you may have forgot to mark it too :P
diakopter well it's not just a cache
it needs to be unique per frame
so it's enforcing that 20:31
it's so it can store a sc, mostly, I think. and used an object tomake it consistent
iirc.
jnthn Yeah, clearing it at frame allocation should do it.
On JVM I just shoved an SC pointer in the frame itself. But still needs care. 20:32
We don't re-use them on JVM at present...
diakopter jnthn: any ideas on how I can build the cross compiler? 20:35
FROGGS: well our stage0 is really nqp's stage3 20:37
dalek arVM: 4092f6e | jnthn++ | src/ (2 files):
Ensure context_object is NULL and marked.

Avoids one segfault in closure serialization.
arVM: e79e004 | jnthn++ | src/6model/serialization.c:
Better error reporting.
arVM: 709dce3 | jnthn++ | src/6model/serialization.c:
Pass correct object; fixes 03-closures.t.
jnthn diakopter: What's keeping you from building it?
diakopter that error I pasted
for that command I pasted
jnthn diakopter: What branch?
diakopter master like I said :P 20:38
jnthn o.O
FROGGS diakopter: I thought it is just a copy of stage2
jnthn is on master too and it builds here... :S
diakopter make realclean?
jnthn diakopter: nqp --version ?
diakopter This is nqp version 2013.09-48-g62b8cab built on parrot 5.5.0 revision RELEASE_5_5_0
jnthn hm, that matches mine exactly too
Doing realclean 20:39
btw, all t/serialization/*.t pass now :)
diakopter wow.
FROGGS jnthn++
yay!!
benabik O.o
jnthn diakopter++ # master transliterator :)
benabik diakopter++ jnthn++ 20:40
diakopter jnthn: did you like how I left the parrot macros in :)
jnthn um...
diakopter :X
jnthn :) 20:41
diakopter >.<
jnthn So that's where they're from... :P
diakopter I'm sure rakudo will expose more errors that don't have test coverage
jnthn bootstrapping NQP may also :) 20:42
benabik Erm. "t/serialization/01-basic.t ..... moarvm(41865) malloc: *** error for object 0x7ffc40a35808: incorrect checksum for freed object - object was probably modified after being freed." 20:44
diakopter hee
configuring with clang && instrumentation then running with the asan prettifier will help solve that 20:45
asan_symbolize
jnthn diakopter: The realclean and re-bulid worked for me... 20:46
not_gerd did anyone here try out the clang visual studio integration, btw?
diakopter I installed it
not_gerd there are shiny new windows binaries for clang
diakopter but haven't tried it
BinGOs o.O 20:47
diakopter this is what I have on ubuntu btw.. Ubuntu clang version 3.4-1~exp1 (trunk) (based on LLVM 3.4)
(which includes the awesome asan_symbolize)
dalek arVM: 746bdfa | jnthn++ | nqp-cc/tools/build/Makefile.in:
Add serialization tests to selftest.
20:48
benabik clang: error: '-fsanitize-undefined-trap-on-error' required with '-fsanitize=address' option
clang: error: unsupported argument 'address' to option 'fsanitize='
diakopter too old clang? 20:49
benabik Is there a simple way to add to CFLAGs?
not_gerd edit the Makefile ;) 20:50
benabik So no
jnthn CFLAGS = ...
Looks pretty easy to me :)
benabik Apparently too old a clang. Xcode seems to use 3.3 and Asan is 3.4(?) 20:51
diakopter I thought there was a new xcode like last week 20:52
benabik Yeah, but Apple (like many large vendors) moves up versions slowly 20:53
diakopter but Apple *makes* clang
its chief architect is now the vp head of the xcode division 20:54
jnthn: I pulled to master and it seems to be working now
(oops, osrry)
jnthn diakopter: hm, ok
benabik Doesn't keep the release engineers from complaining if you try to change the version of something. I bet 10.9 will upgrade.
jnthn So, now to try and make --target=mbc work... 20:57
20:58 donaldh joined
benabik At least it's reliable. Although gdb just tells me it's trying to allocate a page in the GC. 20:59
In stub_objects, if that's informative. 21:00
dalek arVM/dll: ec3339c | (Gerhard R)++ | / (18 files):
Start implementing DLL support

Symbols are still stubbed.
21:01
not_gerd so, I did get some hacking in 21:02
jnthn not_gerd++
benabik: Hmm, that's the point that mallocs though, thing is what had it before... :)
benabik jnthn: Right. 21:03
benabik doesn't really have the time to build a new clang to get asan
not_gerd if we want to keep cgoto performing well, we can't add extops to the opcode space, though, but would need to dispatch from a single op 21:04
ie a single extop instruction which takes the extop id as first argument (and a variable number of remaining args) 21:05
thoughts?
jnthn :/ 21:07
Not too fond of an extra 2 bytes on every extop in the bytecode. 21:08
diakopter not_gerd: nah you can inject placeholders for all the unused ones :)
jnthn Well, you could resize the labels table, yes :) 21:09
And just point 'em all at the extop label :)
diakopter right
not_gerd for a reasonable number of extops, just adding dummy targets could work out 21:10
jnthn: I could resize the table, but how would I inject the labels into the code ;)
no JIT yet
diakopter just on startup 21:11
benabik void *extop_label = &&OP_extop; 21:12
Then insert extop_label into the jump table, and the OP_extop code handles dispatching to function. 21:13
jnthn was thinking of what benabik said, yes.
diakopter too, ftw
jnthn for the win? :) 21:14
diakopter yeah :P
tadzik I always wondered, isn't "for the win" a grammar fail of sorts? 21:16
diakopter well it's an appendix 21:17
tadzik appendix? 21:18
diakopter something appended? 21:19
tadzik: good thing I didn't make reservations for yosemite, since it's now closed due to USA govt "shutdown" 21:20
tadzik oh shite
soooooo, is anyone guarding it? :> 21:21
jnthn :P 21:22
jnthn is quite happy not to live under a political system where the majority vote to re-elect a president who set a policy, and those who lost the election get to hold the country ransom 'cus they don't like the policy anyway... 21:23
benabik tadzik: Police are "essential" (although I wonder if their paychecks are...) 21:24
diakopter jnthn: erm the president doesn't set policy 21:26
benabik Well, he sets policy but not law. >.> <.< 21:27
Surprising number of regulations are solely under the control of the Executive.
jnthn diakopter: Right, I'm sure obamacare has nothing to do with obama :P
diakopter I didn't say that; I'm saying the Congress had to vote for it
TimToady well, originally it was romneycare :)
diakopter right
jnthn hah :) 21:28
TimToady the ironies in all this is too deep for words
diakopter but yes it's a hostage/blackmail/ransom situation 21:29
but they do that all the time
usually on smaller thingies.
TimToady at the moment, the democrats and moderate republicans are both content to pursue a strategy of letting the tea party marginalize itself further
eventually the money will walk away from the tea party, even if they are still gerrymandered to get elected 21:30
tadzik well, at least you guys aren't discussing an airplane that fell off the sky 4 years ago...
benabik Heh. Australia shut down in '75 and the Queen just fired the entire Parliament. 21:32
diakopter the even stupider thing is they don't have the money to continue operating, obamacare or not
grondilu remembers that few years ago Belgium has had no government during a year or two (don't remember how long exactly). Life went on. 21:33
diakopter were there a million furloughed workers?
jnthn Are there a million people in Belgium? ;) 21:34
(yes, I know, there's probably about 10 million or so... :)) 21:35
A million furloughed workers would be a rather incredible chunk of the working population though :)
grondilu well, I should shut up anyway, as I pretty much don't know what this shutdown stuff is about.
dalek arVM/gcorch: be0fe24 | jnthn++ | src/core/interp.c:
Fix STable claiming.

With this, t/serialization/01-basic.t now fully passes.
21:36
diakopter bah
jnthn oh noahs! 21:37
TimToady wb?
diakopter fark.
21:37 dalek joined
jnthn phew :) 21:37
dalek arVM: 73403d0 | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp:
Fix serialization string heap code-gen.

Just nabbed a fix from JVM version.
21:39
arVM: bf63b53 | jnthn++ | / (7 files):
Add and map getscdesc op.
arVM: a42d053 | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp:
A couple more deserialization code-gen fixes.

This gets --target=mbc to produce MAST for a small example; next fail is in bytecode generation.
21:40 flussence joined
grondilu .mbc is 'MoarVM Byte Code'? How is it different from .moarvm 21:44
?
diakopter it's not
just a fossil naming convention kept for .. convention 21:45
grondilu k
diakopter inherited from the squawker
timotimo the squawker is the parrot-moarvm crosscompiler? 21:52
jnthn My invocation is --target=mbc --output=foo.moarvm, fwiw :) 21:53
timotimo hehe
jnthn That's where I'll be bug hunting next, anyways. :)
not_gerd good night o/
diakopter o/
jnthn 'night, not_gerd
Getting that working is next step to being able to work on bootstrap
diakopter I almost want to work on master again to let the gcorch branch simmer a bit
jnthn: did you see my changelog branch diff? 21:54
jnthn (and it shouldn't be much to get it to work...maybe I nail it tomorrow)
diakopter: Yeah, I wasn't sure what all of it meant :)
diakopter just what it said! ;)
jnthn well, the last bit confused me 21:55
diakopter jnthn: and maybe I steal the rest of mbc from you tonight :P
jnthn had imagined a "flat" bunch of threads rather than parent/child relations
diakopter they are flat..
but a thread has to survive at least 1 gc run anyway 21:56
since it is the gc that cleans them up
jnthn ok
diakopter (because it has to be the one to do it)
jnthn "a worker thread sorts the worklist it receives by the allocating thread_id of the pointers' targets"
I'm curious why we aren't just passing the pre-categorized work? :)
diakopter cuz theoretically this saves a bunch of allocations and awakenings/check-locations, and sorting takes like 1 ns 21:58
in high parallel situations anyway
jnthn ok 21:59
22:00 not_gerd left
diakopter jnthn: can I have 10 min of your time to glance at gist.github.com/diakopter/7b70423d7db7de3fcd72 22:03
jnthn diakopter: Those are ones that blow up on gcorch? 22:04
diakopter jnthn: I'm at a loss for where to start
yeah
any tips for where to start looking would be awesome
jnthn diakopter: The files that fail largely strike me as larger ones.
diakopter yeah, I suspect they are ones that are surviving 10 gc runs 22:05
jnthn diakopter: Could it possibly be that only those make it to a gen2 collection?
Turning on GC orch debugging should tell...
diakopter yeah
jnthn Well, or it used to. I dunno current state. :)
diakopter yeah :P
but..
jnthn Next question is, does it segv inside of GC? or after it? 22:06
diakopter after
interpreter gets a pointer to a zeroed object
jnthn Is the pointer it segfaults on in either semispace?
*into
diakopter how do I tell
jnthn Look at tc->fromspace and tc->tospace or so 22:07
And add on to them the nursery size
(to get end of each)
And see if the pointer is in that range.
diakopter oh noes.
my vs has decided to stop being able to attache to processes.
jnthn If not (I'm guessing *not* if we're looking at a gen2 issue) then it must be into GC
s/GC/gen2/ sorry
Or just junk 22:08
What kind of pointer is it, ooc? To an object, or an STable?
diakopter objet
it always fails in the same place
jnthn (vs) that's invonceneint...
diakopter array push
jnthn oh, and array's memory is zeroed...hm 22:09
The other thing you can do to maybe trigger it in a smaller case is just set the gen2 ratio to 1
So it does a gen2 collect every time.
diakopter heh, ok
jnthn It'll then probably explode on more things, but hopefully on things with a smaller overall heap
Or maybe one of the failure modes gives mroe clues
Is it always array push in all the tests?
diakopter I think so 22:10
jnthn hmmm
diakopter makes me think it's some particular array
jnthn I was gonna say, could it be one of the global ones, but it's strange we'd be pushing to any built-in thingy...
I then wondered about something we deserialized which are directly gen2 allocated 22:11
But that also seems odd.
It sounds like *something* that points to an array ends up unrooted, anyways...
diakopter erm
vs is now debugging
but I'm getting source lines interspersed with machine ode 22:12
code
jnthn o.O
Right click, is there some "show disassembly" thing?
diakopter oh heh.
nm back to normal
erm the object isn't zeroed
it has a threadid, size, and st 22:13
elems is 3, start is 0, ssize is 8, but slot is 0
so what would null slots but leave the rest alone 22:14
jnthn: ? 22:16
jnthn ...
Would a wrong call to gc_free do it?
diakopter yep 22:17
jnthn Then it's likely that.
diakopter what could cause that
jnthn The object not being marked, and then the GC freeing it, I'd imagine.
So it sounds like it's "just" a lack of marking 22:18
diakopter I'm having trouble imagining what could've had an effect on that in my branch
jnthn You could be unlucky enough to have moved memory around enough to trigger it...
diakopter but it's not doing anything differenly in the single-threaded case, I thought 22:19
jnthn Hm, true
I mean, what I said would have to imply memory corruption...
hmm 22:20
Did you manage to confirm it's a pointer into gen2 btw?
diakopter the verbose instruction tracing output doesn't help since it outputs more than 4GB in the first 400ms worth of untraced run
jnthn See src/gc/debug.h for a macro that I sometimes use that may be inspiration... 22:21
diakopter 3cc55c55b0
fromsapce 0x0000003cc54cb040
tospace 0x0000003cc56d3040 22:22
MVM_NURSERY_SIZE 2097152
jnthn r: say 1025392 < 2097152 22:23
It's into fromspace.
That should never happen.
diakopter :P 22:24
jnthn So, not gen2 specific issue, seems...
To see where it's going on in the code, use the macro in debug.h in an if statement, and call MVM_panic.
diakopter but where? 22:25
jnthn This will give a backtrace, which may help us understand where we are and what array we're talking about
It's happening in a push, yes?
diakopter er, at_pos
jnthn Is it from a push op from interp.c?
diakopter atpos_o
jnthn If so jsut stick if int there...
Yeah
oh, it's easier even 22:26
MVM_ASSERT_NOT_FROMSPACE(tc, obj);
In that op
You'll need to #include gc/debug.h too.
diakopter Collectable in fromspace accessed 22:29
gist.github.com/diakopter/f186647c9522cdcbcfb0
o_O
line no seems off 22:31
jnthn Presumably $cur_candidate := @candidates[$cur_idx]; though... 22:32
diakopter <shrug> 22:33
jnthn It's somewhat suspect we end up calling .dispatch too 22:34
We really should be hitting the multi-dispatch cache...
unless this is really early on in QAST -> MAST 22:35
diakopter last gc seq was 12 22:36
diakopter turns on gc orch
jnthn I wonder if it's a write barrier failure
diakopter debugging
jnthn That is
@!candidates is computed and stashed in a gen2 object 22:37
diakopter yeah
jnthn uh, $!dispatch_order is the attr
@candidates is pulled from it
diakopter wut.
wait... (./NQPCOREMoar.setting.moarvm:dispatch:4294967295) 22:38
that's... a large bytecode 22:39
jnthn That number is often wrong...
even in master
diakopter yeah :(
but it uses that number to get the other numbers 22:41
jnthn oh...but dispatch is the right sub name...and the NQP line nubmer makes sense... 22:45
diakopter sort of
jnthn: any other thoughts? 22:54
what might cause the write barrier not to be updated 22:55
jnthn Not really...only that the code object is certainly going to be in gen2 as it is deserialized
MVM_gc_gen2_allocate_zeroed is correctly seeing the MVM_CF_SECOND_GEN flag 22:57
So that looks right...
diakopter jnthn: splice is missing write barriers
jnthn That'd be an issue...though I dunno if it's this issue 22:58
diakopter also, how does the wb list know about moved memory like tht
couldn't splice cause some pointers to become located in invalid memory 22:59
jnthn It stores objects that point to nursery things
Not interior pointers inside that object
diakopter oh yeah
set_size_internal doesn't have wbs either 23:00
(for its memmove)
jnthn Doesn't need them, same reason.
diakopter ? 23:01
jnthn It's only when a gen2 comes to point to an additional nursery
memmove doesn't change the set of objects that the array references.
diakopter hm
23:02 lizmat joined
diakopter well, copy_to doesn't have them, and I know it needs them :P 23:02
jnthn yes, it does :)
diakopter .todo moarvm/moarvm add write barriers to MVMArray.c splice and copy_to 23:03
jnthn happy debugging...night o/ 23:27
diakopter o/ 23:28
23:41 ssutch left