Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-09-28

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

All times shown according to UTC.

Time Nick Message
01:01 jnap joined #moarvm
01:54 FROGGS_ joined #moarvm
03:13 Ben_Goldberg joined #moarvm
03:22 tokuhirom joined #moarvm
09:53 foo_bar_baz joined #moarvm
11:15 cognominal joined #moarvm
12:57 dalek MoarVM/relex: 29d681d | jnthn++ | / (8 files):
12:57 dalek MoarVM/relex: Add (untested so far) capturelex op.
12:57 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/29d681ddcb
12:57 dalek MoarVM/relex: a4676f0 | jnthn++ | nqp-cc/src/QAST (2 files):
12:57 dalek MoarVM/relex: Minimal changes to cope with declaration_static.
12:57 dalek MoarVM/relex:
12:57 dalek MoarVM/relex: Not actually generating code any differently yet.
12:57 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/a4676f04a9
12:57 dalek MoarVM/relex: eecfe54 | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
12:57 dalek MoarVM/relex: Sync closure NQP changes into our copy of NQP.
12:57 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/eecfe54076
12:57 dalek MoarVM/relex: f9563ac | jnthn++ | nqp-cc/src/QAST (2 files):
12:57 jnthn The bit dalek missed was:
12:57 jnthn Switch QAST -> MAST to new closure model.
12:57 jnthn This should hopefully eliminate dependence on prior_invocation.
13:03 dalek MoarVM/relex: 62f9b6b | jnthn++ | src/ (4 files):
13:03 dalek MoarVM/relex: Remove prior_invocation hack.
13:03 dalek MoarVM/relex:
13:03 dalek MoarVM/relex: This yields 7 new failures in selftest, which will need tracking
13:03 dalek MoarVM/relex: down.
13:03 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/62f9b6b84f
13:14 FROGGS_ \o/
13:21 jnthn Aww, first attempted fix for one tests breaks everything.
13:33 dalek MoarVM/relex: 7d3074a | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
13:33 dalek MoarVM/relex: Some declaration_static fixes from NQP repo.
13:33 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/7d3074a471
13:34 jnthn That clears up many of the regressions.
13:38 JimmyZ jnthn++ # doing the hard work
14:01 dalek MoarVM/relex: cfa220e | jnthn++ | src/core/frame.c:
14:01 dalek MoarVM/relex: Remove dead decl.
14:01 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/cfa220eb6a
14:01 dalek MoarVM/relex: 5a1ab9e | jnthn++ | src/core/frame.c:
14:01 dalek MoarVM/relex: Re-instate error check; prevents SEGVs.
14:01 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/5a1ab9e45f
14:01 dalek MoarVM/relex: 39f695d | jnthn++ | src/core/bytecode.c:
14:01 dalek MoarVM/relex: Set ->static_code in StaticFrame in bytecode load.
14:01 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/39f695d1f6
14:01 dalek MoarVM/relex: 4cfb37b | jnthn++ | src/core/frame.c:
14:01 dalek MoarVM/relex: Fix cloned onlystar protoregex case.
14:01 dalek MoarVM/relex:
14:01 dalek MoarVM/relex: This unbusts 55-multi-method.t.
14:01 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/4cfb37b124
14:02 jnthn Down to 4 selftest failures total now, all that were busted before anyway.
14:03 JimmyZ nice
14:06 jnthn Especially not bad for changing something so deep...
14:09 JimmyZ yeah
14:24 * masak .oO( twss )
14:31 grondilu joined #moarvm
15:38 dalek MoarVM/relex: ef71881 | jnthn++ | src/core/frame.c:
15:38 dalek MoarVM/relex: Fix correct-outer test.
15:38 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/ef71881f37
15:38 dalek MoarVM/relex: 54fb61d | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
15:38 dalek MoarVM/relex: MAIN fix from NQP.
15:38 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/54fb61dcb4
15:59 * FROGGS_ build relex
15:59 FROGGS_ builds*
16:07 moritz is that relaxing?
16:49 diakopter joined #moarvm
17:00 cognominal joined #moarvm
17:01 japhb_ joined #moarvm
17:07 FROGGS hmmm, rethrow fails... https://gist.github.com/ano​nymous/14f980ab40b002af97f2
17:07 yoleaux 02:55Z <BenGoldberg> FROGGS: Ok, the over-eager 'for' bug has been rakudobugged :)
17:08 FROGGS (I commented out from line 61 to EOF to get a nicer error message)
17:08 FROGGS this is t/nqp/44-try-catch.t
18:02 diakopter .
18:17 FROGGS no message for you sir :o(
18:17 diakopter .
19:48 japhb_ joined #moarvm
20:16 timotimo relex is there to fix the tough "cannot find outer" bug?
20:17 FROGGS I suppose so
20:17 timotimo neato
20:18 FROGGS at least it kills prior_invocation which, as I have heard, must die in order to fix that bug
20:18 timotimo interesting
20:19 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 :)
20:19 diakopter it was a temp hack, known to be a bad idea
20:19 timotimo but it's also cool that adding more back ends are causing cleanups all over the place
20:19 diakopter sometimes you have to make sacrifices
20:20 diakopter .ask JimmyZ would you like to make a version of https://github.com/perl6/nqp/commit/401ed62382 in moarvm platform dir?
20:20 yoleaux diakopter: I'll pass your message to JimmyZ.
20:21 diakopter I'm kindof at a loss as to how to debug this gc problem.
20:21 diakopter it's deterministically failing at the same time every run.
20:21 diakopter but I still don't know how to trace back where the problem is coming from
20:22 diakopter 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?
20:22 diakopter (hashes of addresses)
20:23 diakopter hrm
20:24 diakopter oh, I see what you're saying
20:24 diakopter I didn't remember that as the trick, but I see how that could help
20:24 timotimo that makes me glad :)
20:24 timotimo i'm pretty sure i heard it from somebody related to perl, *maybe* jnthn? don't really know :(
20:26 diakopter probably Guido
20:26 diakopter er
20:41 dalek MoarVM/gcorch: 0a5244a | diakopter++ | src/gc/ (2 files):
20:41 dalek MoarVM/gcorch: another race and off-by-infinity error
20:41 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/0a5244ad1f
20:46 FROGGS somebody at RaNIW said that
20:47 timotimo off-by-infinity? that's a lot
20:47 timotimo oh is that what you call an accidental infinite loop?
20:47 timotimo that's pretty cool
20:50 diakopter 6 runs in a row without crashing; should I call it fixed? :)
20:51 dalek MoarVM/gcorch: 890bc81 | diakopter++ | src/gc/orchestrate.c:
20:51 dalek MoarVM/gcorch: last few runs must be full collections to get everything...
20:51 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/890bc8116c
20:51 diakopter I said that at raniw I htink
20:52 FROGGS yeah, quite possible :o)
20:54 foo_bar_baz joined #moarvm
20:55 diakopter well, interestingly I'm happy with that branch now
20:55 diakopter who wants to merge master into it for me? :)
20:56 timotimo it changes the garbage collector orchestration?
20:56 diakopter yeah, dramatically
20:56 timotimo less overhead?
20:57 timotimo oh no
20:58 dalek MoarVM/gcorch: 7211170 | diakopter++ | nqp-cc/t/moar/threads.t:
20:58 dalek MoarVM/gcorch: replace tests
20:58 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/72111705f1
20:58 diakopter oh no?
20:58 timotimo i ran test_summary for rakudo.jvm on a quite old checkout of roast
20:59 timotimo so i had to start over after what feels like half an hour of waiting ;)
21:00 foo_bar_baz joined #moarvm
21:12 diakopter https://gist.github.com/diakopter/6746600
21:12 diakopter FROGGS: ^
21:12 diakopter timotimo: ^
21:12 diakopter not sure why it's doing that
21:15 FROGGS master is down to:
21:15 FROGGS t/nqp/24-module.t                   (Wstat: 256 Tests: 0 Failed: 0)
21:15 FROGGS t/nqp/44-try-catch.t                (Wstat: 139 Tests: 0 Failed: 0)
21:15 FROGGS t/nqp/56-role.t                     (Wstat: 139 Tests: 0 Failed: 0)
21:15 FROGGS t/nqp/78-shell.t                    (Wstat: 139 Tests: 0 Failed: 0)
21:15 FROGGS but I guess some of the gcorch fails will vanish when you merge in master
21:17 eternaleye joined #moarvm
21:21 benabik joined #moarvm
21:25 diakopter well hrm.
21:34 diakopter argh.
21:35 diakopter weird, 11 gc runs just to parse a small nqp file.
21:36 diakopter that's a lotta allocations
21:36 diakopter FROGGS: no, unfortunately it seems the errors are occurring when a full collection runs
21:37 diakopter which doesn't make sense since I thought I changed only things that affected multithreaded case
21:37 diakopter and these are multithreaded
21:37 diakopter *aren't
21:43 diakopter guess how many times cursor_start is called to parse a 160-line .nqp test
21:43 timotimo hm, like 50 times per line?
21:43 FROGGS dunno, like >2k times?
21:43 FROGGS ohh, wow
21:43 diakopter 300,000 times
21:44 timotimo oh my
21:44 FROGGS well, that is >2k :P
21:44 timotimo you were righter than me i guess?
21:45 FROGGS do we get a price?
21:45 FROGGS a gift I mean
21:45 diakopter no, but you get 300,000 prizes
21:45 timotimo oooh, it's my lucky day!
21:48 FROGGS gnight
22:13 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:16 diakopter timotimo: yes, but they need refcounted, of sorts... this is the optimizaiton jnthn and I were disussing (mostly off-channel) theother day
22:17 diakopter we need to do escape analysis/tracing
22:17 diakopter to save all the allocations, and maintain our own pool
22:17 timotimo ooooh, that's always fun :o
22:17 diakopter to do it at the vm level.
22:17 diakopter which would be much more efficient than at the user code level
22:17 timotimo hm
22:18 timotimo 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:19 diakopter no it'd be transparent to the current semantics; nothing there would change
22:20 timotimo that's the goal of course
22:20 timotimo i'm just thinking of ways to help the VM do its pooling properly/easily
22:21 diakopter ah yes, the qast compiler would inject hints of registers it's done with
22:22 diakopter well there's a couple ways to do it
22:33 BenGoldberg joined #moarvm

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