github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 27 September 2013.
01:01 jnap joined 01:54 FROGGS_ joined 03:13 Ben_Goldberg joined 03:22 tokuhirom joined 09:53 foo_bar_baz joined 11:15 cognominal joined
dalek arVM/relex: 29d681d | jnthn++ | / (8 files):
Add (untested so far) capturelex op.
12:57
arVM/relex: a4676f0 | jnthn++ | nqp-cc/src/QAST (2 files):
Minimal changes to cope with declaration_static.

Not actually generating code any differently yet.
arVM/relex: eecfe54 | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
Sync closure NQP changes into our copy of NQP.
arVM/relex: f9563ac | jnthn++ | nqp-cc/src/QAST (2 files):
62f9b6b | jnthn++ | src/ (4 files):

This yields 7 new failures in selftest, which will need tracking down.
jnthn The bit dalek missed was:
Switch QAST -> MAST to new closure model.
This should hopefully eliminate dependence on prior_invocation.
FROGGS_ \\o/ 13:14
jnthn Aww, first attempted fix for one tests breaks everything. 13:21
dalek arVM/relex: 7d3074a | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
Some declaration_static fixes from NQP repo.
13:33
jnthn That clears up many of the regressions. 13:34
JimmyZ jnthn++ # doing the hard work 13:38
dalek arVM/relex: cfa220e | jnthn++ | src/core/frame.c:
Remove dead decl.
14:01
arVM/relex: 5a1ab9e | jnthn++ | src/core/frame.c:
Re-instate error check; prevents SEGVs.
arVM/relex: 39f695d | jnthn++ | src/core/bytecode.c:
Set ->static_code in StaticFrame in bytecode load.
arVM/relex: 4cfb37b | jnthn++ | src/core/frame.c:
Fix cloned onlystar protoregex case.

This unbusts 55-multi-method.t.
jnthn Down to 4 selftest failures total now, all that were busted before anyway. 14:02
JimmyZ nice 14:03
jnthn Especially not bad for changing something so deep... 14:06
JimmyZ yeah 14:09
masak .oO( twss ) 14:24
14:31 grondilu joined
dalek arVM/relex: ef71881 | jnthn++ | src/core/frame.c:
Fix correct-outer test.
15:38
arVM/relex: 54fb61d | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
MAIN fix from NQP.
FROGGS_ build relex 15:59
builds*
moritz is that relaxing? 16:07
16:49 diakopter joined 17:00 cognominal joined 17:01 japhb_ joined
FROGGS hmmm, rethrow fails... gist.github.com/anonymous/14f980ab40b002af97f2 17:07
yoleaux 02:55Z <BenGoldberg> FROGGS: Ok, the over-eager 'for' bug has been rakudobugged :)
FROGGS (I commented out from line 61 to EOF to get a nicer error message) 17:08
this is t/nqp/44-try-catch.t
diakopter . 18:02
FROGGS no message for you sir :o( 18:17
diakopter .
19:48 japhb_ joined
timotimo relex is there to fix the tough "cannot find outer" bug? 20:16
FROGGS I suppose so 20:17
timotimo neato
FROGGS at least it kills prior_invocation which, as I have heard, must die in order to fix that bug 20:18
timotimo interesting
FROGGS because 'it was a bad idea' 20:19
timotimo yeah, it's a hack, i read that much. it's interesting that it worked on the other back ends :)
diakopter it was a temp hack, known to be a bad idea
timotimo but it's also cool that adding more back ends are causing cleanups all over the place
diakopter sometimes you have to make sacrifices
.ask JimmyZ would you like to make a version of github.com/perl6/nqp/commit/401ed62382 in moarvm platform dir? 20:20
yoleaux diakopter: I'll pass your message to JimmyZ.
diakopter I'm kindof at a loss as to how to debug this gc problem. 20:21
it's deterministically failing at the same time every run.
but I still don't know how to trace back where the problem is coming from
without spending tons of time creating huge hashes of debug-only runtime behavior 20:22
timotimo have you tried the trick someone mentioned where you leave all old spaces around to trace pointers going between the semispaces or something? is that even relevant at all?
diakopter (hashes of addresses)
hrm 20:23
oh, I see what you're saying 20:24
I didn't remember that as the trick, but I see how that could help
timotimo that makes me glad :)
i'm pretty sure i heard it from somebody related to perl, *maybe* jnthn? don't really know :(
diakopter probably Guido 20:26
er
dalek arVM/gcorch: 0a5244a | diakopter++ | src/gc/ (2 files):
another race and off-by-infinity error
20:41
FROGGS somebody at RaNIW said that 20:46
timotimo off-by-infinity? that's a lot 20:47
oh is that what you call an accidental infinite loop?
that's pretty cool
diakopter 6 runs in a row without crashing; should I call it fixed? :) 20:50
dalek arVM/gcorch: 890bc81 | diakopter++ | src/gc/orchestrate.c:
last few runs must be full collections to get everything...
20:51
diakopter I said that at raniw I htink
FROGGS yeah, quite possible :o) 20:52
20:54 foo_bar_baz joined
diakopter well, interestingly I'm happy with that branch now 20:55
who wants to merge master into it for me? :)
timotimo it changes the garbage collector orchestration? 20:56
diakopter yeah, dramatically
timotimo less overhead?
oh no 20:57
dalek arVM/gcorch: 7211170 | diakopter++ | nqp-cc/t/moar/threads.t:
replace tests
20:58
diakopter oh no?
timotimo i ran test_summary for rakudo.jvm on a quite old checkout of roast
so i had to start over after what feels like half an hour of waiting ;) 20:59
21:00 foo_bar_baz joined
diakopter gist.github.com/diakopter/6746600 21:12
FROGGS: ^
timotimo: ^
not sure why it's doing that
FROGGS master is down to: 21:15
t/nqp/24-module.t (Wstat: 256 Tests: 0 Failed: 0)
t/nqp/44-try-catch.t (Wstat: 139 Tests: 0 Failed: 0)
t/nqp/56-role.t (Wstat: 139 Tests: 0 Failed: 0)
t/nqp/78-shell.t (Wstat: 139 Tests: 0 Failed: 0)
but I guess some of the gcorch fails will vanish when you merge in master
21:17 eternaleye joined 21:21 benabik joined
diakopter well hrm. 21:25
argh. 21:34
weird, 11 gc runs just to parse a small nqp file. 21:35
that's a lotta allocations 21:36
FROGGS: no, unfortunately it seems the errors are occurring when a full collection runs
which doesn't make sense since I thought I changed only things that affected multithreaded case 21:37
and these are multithreaded
*aren't
guess how many times cursor_start is called to parse a 160-line .nqp test 21:43
timotimo hm, like 50 times per line?
FROGGS dunno, like >2k times?
ohh, wow
diakopter 300,000 times
timotimo oh my 21:44
FROGGS well, that is >2k :P
timotimo you were righter than me i guess?
FROGGS do we get a price? 21:45
a gift I mean
diakopter no, but you get 300,000 prizes
timotimo oooh, it's my lucky day!
FROGGS gnight 21:48
timotimo does that mean we probably really want to have a pool of cursor objects to draw from to make cursor_start play much nicer? 22:13
diakopter timotimo: yes, but they need refcounted, of sorts... this is the optimizaiton jnthn and I were disussing (mostly off-channel) theother day 22:16
we need to do escape analysis/tracing 22:17
to save all the allocations, and maintain our own pool
timotimo ooooh, that's always fun :o
diakopter to do it at the vm level.
which would be much more efficient than at the user code level
timotimo hm
i'm just wondering how close that pattern you'd end up with is to the "stack" (as it were) and how hard it would be to generate helpful info when building the grammar 22:18
diakopter no it'd be transparent to the current semantics; nothing there would change 22:19
timotimo that's the goal of course 22:20
i'm just thinking of ways to help the VM do its pooling properly/easily
diakopter ah yes, the qast compiler would inject hints of registers it's done with 22:21
well there's a couple ways to do it 22:22
22:33 BenGoldberg joined