Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-09-29

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

All times shown according to UTC.

Time Nick Message
00:23 BinGOs_ joined #moarvm
00:57 jnthn A better first step might be to understand where all the cursors come from :)
01:05 diakopter jnthn: no more of your rationality!
01:05 TimToady he was just floating a point
01:06 diakopter my cursor blinks faster than yours
01:06 TimToady it only has to blink once to do that
01:07 diakopter jnthn: so how could we have 300,000 cursors to parse 6473 characters
01:08 diakopter way more backtracking than we thought was happening?
01:08 TimToady more recursion levels?
01:08 TimToady too many clones of identical closures?
01:09 diakopter too many repetitively redundant restatements?
01:09 TimToady creating cursors for all the intermediate stages of a ratcheted *?
01:10 diakopter hm
01:10 TimToady that is, remembering choice points that don't need remembering
01:11 jnthn diakopter: How'd you get teh 300,000 ooc? Calls to !cursor_start?
01:11 diakopter yeah
01:12 diakopter or start_cursor_start or something
01:13 diakopter cursor_start_all ?
01:14 jnthn yeah, there's two variants of it
01:14 diakopter cursor_start_cur
01:15 diakopter that one
01:15 diakopter though CAPHASH is called even more oftne
01:16 Ben_Goldberg joined #moarvm
01:17 * diakopter waits for jnthn to discover some **3 behavior that should be linear
01:17 jnthn not at 3am ;-)
01:18 JimmyZ RFC: when pass -1 length to decode function, the decode function decdoes all :-)
01:18 yoleaux 28 Sep 2013 20:20Z <diakopter> JimmyZ: would you like to make a version of https://github.com/perl6/nqp/commit/401ed62382 in moarvm platform dir?
01:19 jnthn JimmyZ: What decode function?
01:19 jnthn And what all? ;-)
01:19 JimmyZ MVM_string decode function,
01:20 jnthn There is (should be? :)) a _nt (null-terminated) variant
01:20 diakopter jnthn: no, he createed a decode
01:20 JimmyZ that encode :{
01:21 JimmyZ encode_nt
01:21 JimmyZ no
01:21 JimmyZ I'm wrong
01:22 jnthn encode takes an MVMString and it'd better know its length :P
01:22 JimmyZ I meant MVM_string_utf8_decode
01:23 jnthn I thought there was a MVM_string_utf8_decode_nt too.
01:23 jnthn That's the better API design than a magic use of -1, imho :)
01:24 JimmyZ well, the length is MVM_string_utf8_decode was computed it self
01:25 diakopter today, my english decode is failing
01:27 JimmyZ hmm, I think I understand something wrong after re-read the code
01:30 TimToady for reference, compiling STD.pm5 with viv, the following numbers of objects are created: https://gist.github.com/TimToady/6748449
01:31 TimToady er, STD.pm6 I mean
01:31 TimToady which wc says is:   6341  24084 205627 STD.pm6
01:36 TimToady so about 1175878 cursors (counting makestr, which it shouldn't) for about 185 per line
01:37 TimToady or about 5.7 cursors per character
01:38 diakopter hm
01:38 TimToady so you're doing about 60 per character
01:39 TimToady well, closer to f7
01:39 TimToady 57
01:40 TimToady r: say 300000 / 6473
01:40 TimToady 46, actually
01:41 TimToady still, clearly in need of improvement
01:42 TimToady so roughly 8 times too man
01:42 TimToady *many
01:43 jnthn yeah
01:43 jnthn Will do some alalisis on it
01:43 jnthn *analysis
01:43 jnthn But sleep now :)
01:43 jnthn 'night o/
01:43 TimToady o/
02:09 FROGGS joined #moarvm
02:35 dalek MoarVM: 31e0c67 | jimmy++ | src/ (3 files):
02:35 dalek MoarVM: Add MVM_platform_unlink, improved MVM_dir_mkdir
02:35 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/31e0c67c4f
02:40 dalek MoarVM: 1bc56f1 | jimmy++ | src/ (2 files):
02:40 dalek MoarVM: Small fixes
02:40 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1bc56f1165
02:42 foo_bar_baz joined #moarvm
02:47 JimmyZ diakopter: done :-)
03:10 diakopter JimmyZ: cool. :)
03:10 diakopter JimmyZ: now move the other platform ifdef stuff in io/ to platform ?
04:28 MikeyG joined #moarvm
04:54 JimmyZ diakopter: I think I don't until jnthn++ add his io vtable ;)
05:23 yoleaux joined #moarvm
05:51 JimmyZ diakopter: I mereged master into gcorch branch(locally), and make selftest looks like a bit better
05:58 JimmyZ *merged
06:59 FROGGS joined #moarvm
07:06 diakopter JimmyZ: did you push it?
07:11 JimmyZ diakopter: nope, I can push it if you don't mind
07:13 diakopter JimmyZ: oh, nm, I merged it myself
07:13 diakopter pushing
07:13 FROGGS JimmyZ: can you please set the original file attrs when the delete didnt succeed? https://github.com/MoarVM/Mo​arVM/commit/31e0c67c4f#L2R77
07:13 diakopter JimmyZ: what is jnthn's io vtable?
07:14 JimmyZ FROGGS: will do
07:14 FROGGS thanks :o)
07:16 dalek Heuristic branch merge: pushed 116 commits to MoarVM/gcorch by diakopter
07:16 JimmyZ FROGGS: the libuv one didn't remove read only but removed delete attr
07:16 JimmyZ or add delete attr
07:17 FROGGS there is a delete-attr?
07:17 diakopter theres r,a,s,h
07:17 diakopter iirc
07:18 FROGGS and something about tempfiles and not getting indexed
07:19 JimmyZ diakopter: http://irclog.perlgeek.de/m​oarvm/2013-08-20#i_7474380
07:20 diakopter hm, oh
07:20 diakopter forgot about that :)
07:20 JimmyZ FROGGS: see http://msdn.microsoft.com/en-us/library/w​indows/desktop/aa363915%28v=vs.85%29.aspx and https://github.com/joyent/libuv​/blob/master/src/win/fs.c#L686
07:21 diakopter JimmyZ: after merging master in, the selftest output is unchanged
07:22 JimmyZ diakopter: I did see it changed , at least the role.t one
07:22 JimmyZ something like "NO TAP" => 'failed 4'
07:23 JimmyZ anothter is "NO TAP" => define 13 test but run 2
07:24 dalek MoarVM/gcorch: 175f39a | diakopter++ | src/gc/orchestrate.c:
07:24 dalek MoarVM/gcorch: renames
07:24 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/175f39a91e
07:25 dalek MoarVM/gcorch: 99381c5 | diakopter++ | .gitignore:
07:25 dalek MoarVM/gcorch: ignore my .sln
07:25 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/99381c594b
07:25 JimmyZ FROGGS: Did you see comment in https://github.com/perl6/nqp/commit/40​1ed623828a385bb3c80ee39ac3ee28026952e9
07:27 FROGGS JimmyZ: ohh yes, will fix
07:27 diakopter FROGGS: yer awake early?
07:27 FROGGS diakopter: no, it is 9:27am here
07:29 diakopter oh, heh.
07:29 cognominal joined #moarvm
07:34 dalek MoarVM: e0786fd | jimmy++ | src/platform/win32/io.c:
07:34 dalek MoarVM: small fixes, FROGGS++
07:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e0786fdeeb
07:42 dalek MoarVM/gcorch: f791194 | diakopter++ | src/gc/allocation.c:
07:42 dalek MoarVM/gcorch: margins
07:42 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/f791194b18
08:58 BinGOs joined #moarvm
09:13 grondilu joined #moarvm
09:44 jnthn o/
09:45 JimmyZ \o
09:46 JimmyZ good noon
09:46 jnthn almost is, yes :)
09:46 JimmyZ ;)
10:19 dalek MoarVM/relex: d266f69 | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp:
10:19 dalek MoarVM/relex: Contextual leak prevention.
10:19 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/d266f69b63
10:19 dalek MoarVM/relex: 4920d01 | jnthn++ | src/core/frame.c:
10:19 dalek MoarVM/relex: Toss looking down the stack for outer.
10:19 dalek MoarVM/relex:
10:19 dalek MoarVM/relex: This was a fallback, but it turns out we depended on it a lot. Now we
10:19 dalek MoarVM/relex: barely do, so it can go away. We will need a proper auto-close for a
10:19 dalek MoarVM/relex: handful of rare cases, but removing this approximation of it shows up
10:19 dalek MoarVM/relex: a couple of places we wrongly depend on such a thing, that need fixes
10:19 dalek MoarVM/relex: before putting auto-close in.
10:19 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/4920d0196d
10:57 dalek MoarVM/relex: 0662004 | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
10:57 dalek MoarVM/relex: Make multi subs not depend on auto-close.
10:57 dalek MoarVM/relex:
10:57 dalek MoarVM/relex: Technically, still not quite right, but no worse than before.
10:57 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/0662004b1a
10:59 masak jnthn: is "relex" like a cheap Rolex knockoff? :P
11:00 masak jnthn: what's auto-close? I guess it has to do with closure semantics. is it an operation of some kind? what's "auto" about it?
11:00 jnthn No no, it's a repaired lexington...
11:00 masak :P
11:00 jnthn It's the thing you gotta do in the 24-module.t case
11:00 jnthn Where you call something before the scope it was in was ever entered.
11:01 masak ah.
11:02 masak so, hm, "close over this (OUTER) scope now, even though it was never entered"
11:02 masak it's what I think of as closing over a static scope.
11:03 jnthn yes
11:04 masak ok, then I see what's "auto" about it -- it kinda has to be done last-minute.
12:09 dalek MoarVM/relex: c2c2431 | jnthn++ | src/core/frame.c:
12:09 dalek MoarVM/relex: First pass at autoclose.
12:09 dalek MoarVM/relex:
12:09 dalek MoarVM/relex: 24-module.t now passes.
12:09 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/c2c243198b
12:26 masak \o/
12:26 grondilu_ joined #moarvm
12:29 grondilu_ awesome!
12:32 grondilu joined #moarvm
12:33 dalek MoarVM/relex: aef1751 | jnthn++ | src/core/ (2 files):
12:33 dalek MoarVM/relex: Greatly simplify rethrow implementation.
12:33 dalek MoarVM/relex:
12:33 dalek MoarVM/relex: Has added advantage of not placing the PC in a random place after the
12:33 dalek MoarVM/relex: unwind, though I'm not entirely sure how that was happening before. :)
12:33 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/aef17513a8
12:34 jnthn Does 78-shell.t explode for everyone after 3 tests, or just me?
12:37 grondilu t/nqp/78-shell.t .. No subtests run
12:37 grondilu Test Summary Report
12:37 grondilu -------------------
12:37 grondilu t/nqp/78-shell.t (Wstat: 11 Tests: 0 Failed: 0) Non-zero wait status: 11 Parse errors: No plan found in TAP output
12:38 * grondilu got this after running:  prove -e '../moarvm nqp.moarvm' t/nqp/78-shell.t
12:43 JimmyZ Will there be an throw op?
12:44 jnthn There already is
12:45 JimmyZ jnthn: re shell.t, me too.
12:47 jnthn Yeah, looking into it a bit at the moment.
13:02 dalek MoarVM/relex: 7e2c156 | jnthn++ | src/ (3 files):
13:02 dalek MoarVM/relex: According to test suite, shouldn't cache envhash.
13:02 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/7e2c156ee9
13:02 dalek MoarVM/relex: 343fc46 | jnthn++ | src/io/procops.c:
13:02 dalek MoarVM/relex: envhash values should be boxed.
13:02 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/343fc46918
13:02 dalek MoarVM/relex: 9bf783b | jnthn++ | src/io/procops.c:
13:02 dalek MoarVM/relex: Missing MVMROOTs.
13:02 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/9bf783b070
13:02 dalek MoarVM/relex: 3bd333a | jnthn++ | src/io/procops.c:
13:02 dalek MoarVM/relex: Avoid uninit memory SEGV in spawn.
13:02 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/3bd333a988
13:08 FROGGS jnthn++ # \o/
13:15 FROGGS grondilu: I believe this fails for a few weeks now and never passed more than 3 tests
13:18 dalek MoarVM: f09f304 | jimmy++ | src/6model/serialization.c:
13:18 dalek MoarVM: re-order code to avoids object moving
13:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/f09f304291
13:30 FROGGS three fails left, supersweet!
13:31 jnthn bah, we're using uv_spawn wrong
13:31 JimmyZ ah!
13:32 FROGGS ohh, test 44 got fixed (except one single test)... need to read the commits
13:32 JimmyZ what's wrong?
13:40 jnthn JimmyZ: everything :P
13:40 dalek MoarVM/relex: 94d62e6 | jnthn++ | src/io/procops.c:
13:40 dalek MoarVM/relex: Use uv_spawn correctlier.
13:40 dalek MoarVM/relex:
13:40 dalek MoarVM/relex: Gets 78-shell.t passing, at least.
13:40 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/94d62e6efa
13:43 jnthn I think I know what's with the 44-try-catch.t.
13:43 jnthn 56-role.t is difficulter.
13:43 jnthn Anyway, seems at least in this branch we're down to two t/nqp with issues.
13:45 jnthn I guess that makes the branch better than master, so I could merge it :)
13:46 FROGGS +1
13:46 FROGGS \o/
13:46 FROGGS compiling src/io/procops.o
13:46 FROGGS src/io/procops.c: In function 'MVM_proc_spawn':
13:46 FROGGS src/io/procops.c:125:5: error: '_cmd' undeclared (first use in this function)
13:47 jnthn huh...
13:47 FROGGS hmmm
13:47 jnthn oh...
13:47 jnthn "works on windows" :P
13:48 FROGGS ahh, #ifdef?
13:48 FROGGS I only see the patch atm, not the file
13:48 dalek MoarVM/relex: 8c8ebd6 | jnthn++ | src/io/procops.c:
13:48 dalek MoarVM/relex: Fix (hopefully) non-Windows build.
13:48 dalek MoarVM/relex: review: https://github.com/MoarVM/MoarVM/commit/8c8ebd68f7
13:48 FROGGS jnthn++ # quickfix
13:48 jnthn yeah, was a silly
13:49 jnthn OK, will look at merging stuff...
13:49 jnthn .oO( relex, don't do it, when you want to autoclose it... )
13:49 FROGGS /o\
13:49 FROGGS err
13:49 FROGGS \o/
13:50 FROGGS (that should look like if I was running around with raised arms)
13:51 FROGGS jnthn: the echo test of 78-shell is failing here but I guess I can fix that in master then
14:02 jnthn ok
14:02 * jnthn wonders why
14:05 dalek joined #moarvm
14:09 dalek Heuristic branch merge: pushed 25 commits to MoarVM by jnthn
14:09 * FROGGS switches and builds
14:10 jnthn I'm guessing the 78-shell.t fail you have is non-Windows?
14:10 FROGGS jnthn: correct
14:16 jnthn walk &
14:19 FROGGS hmmm, something happened while merging... 56-role segfaults
14:20 jnthn Did for me in the branch too
14:20 FROGGS ahh, really?
14:20 FROGGS okay :o)
14:20 jnthn yeah...but if you comment out some tests it works out...
14:20 jnthn So need to figure out what's going on :)
14:20 FROGGS yeah
14:20 jnthn But we pass more than we did before relex, so... :)
14:21 jnthn really walk &
14:21 FROGGS yeah, see ya o/
14:21 FROGGS :o)
14:26 masak jnthn++
14:27 masak (for the merge, not for really taking a walk) :P
14:50 JimmyZ btw: make selftest still all outputs 'Dubious, test returned 5' on x86
15:05 FROGGS it seems like shell on linux doesn't work at all atm
15:09 JimmyZ .tell jnthn looks like 'MVMROOT(tc, env' is not needed
15:09 yoleaux JimmyZ: I'll pass your message to jnthn.
15:33 cognominal joined #moarvm
15:38 BenGoldberg joined #moarvm
15:39 jnthn JimmyZ: yes it is
15:39 yoleaux 15:09Z <JimmyZ> jnthn: looks like 'MVMROOT(tc, env' is not needed
15:40 jnthn Hm, it's needed earlier, I suspect...
15:54 japhb_ joined #moarvm
15:58 dalek MoarVM: 811b504 | jnthn++ | src/io/procops.c:
15:58 dalek MoarVM: Re-org to eliminate an MVMROOT and correct another
15:58 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/811b504e78
16:14 jnthn JimmyZ: That x86 fail is only on Windows, too?
16:17 JimmyZ jnthn: looks like yes
16:17 JimmyZ jnthn: I don't have linux x86
16:22 * grondilu has linux x86 in case you need a report
16:22 grondilu t/nqp/44-try-catch.t .................. Failed 1/9 subtests
16:22 grondilu t/nqp/49-regex-interpolation.t ........ Segmentation fault
16:23 grondilu 01 .. 43 are "ok"
16:23 jnthn grondilu: Is that make selftest?
16:24 grondilu make nqptest
16:24 grondilu should I run make selftest first?
16:24 not_gerd joined #moarvm
16:24 not_gerd o/
16:24 jnthn make selftest is the intertesting one.
16:24 grondilu ok
16:24 jnthn uh, interesting
16:25 jnthn .oO( oddly appropriate typo... )
16:25 jnthn o/ not_gerd
16:25 not_gerd nqptest - that's so yesterday ;)
16:25 * not_gerd compiles new NQP
16:25 grondilu oh I see, make selftest runs nqp.moarvm, while make nqptest runs the cross compiler I guess
16:26 grondilu no segfault on 49 with selftest
16:26 jnthn ok, good
16:27 jnthn 56-role.t "should" segfault
16:27 jnthn And 44-try-catch.t fail one test (whihc I'm workingish on at the moment)
16:27 grondilu my test summary report:  https://gist.github.com/grondilu/6754033
16:27 tadzik joined #moarvm
16:28 grondilu Linux redkey 3.11-1.towo-siduction-686 #1 SMP PREEMPT Mon Sep 16 08:33:20 UTC 2013 i686 GNU/Linux
16:28 jnthn ah, and I guess 78-shell.t needs non-Windows fixes; FROGGS++ already mentioned that :)
16:36 * TimToady fails try-catch, role, and shell on Linux edo 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
16:36 grondilu 78 uses '%NQP_SHELL_TEST_ENV_VAR%' which is windows variable, right?
16:37 grondilu it should be $NQP_SHELL_TEST_ENV_VAR on linux, I suppose.
16:38 * grondilu feels like making the modification manually, to see if it works
16:38 jnthn iirc, the test is assuming Windows then falling back to Linux
16:38 jnthn Or something
16:38 jnthn :)
16:40 grondilu oh yeah, my bad
16:41 dalek MoarVM: de4d6ff | jnthn++ | tools/update_ops.p6:
16:41 dalek MoarVM: Fix regex syntax.
16:41 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/de4d6ff67c
16:43 * grondilu notices that after running "touch tmp", I don't get the "fail to open file" error.
16:44 grondilu rather I got:
16:44 grondilu t/nqp/78-shell.t (Wstat: 0 Tests: 5 Failed: 2) Failed tests:  4-5
16:45 grondilu (and the tmp file is empty)
16:49 not_gerd jnthn: checking for st->REPR != NULL in MVM_6model_stable_gc_free() fixes the role.t segfault
16:49 not_gerd should I do so or does it just hide a different problem
16:49 jnthn not_gerd: It shouldn't be null...
16:50 jnthn not_gerd: I think that it is means that something is hosed elsewhere... :(
16:50 not_gerd yeah, that'S what I suspected
16:50 jnthn Unfortunately, likely some distance away.
16:50 not_gerd an STable without REPR seems dubious
16:50 jnthn yeah
16:50 jnthn I mean, we're destroying the STable at the time.
16:51 jnthn But it shouldn't be damaged yet :)
16:52 dalek MoarVM: d3dacef | jnthn++ | / (9 files):
16:52 dalek MoarVM: Add a way to get exception handler block results.
16:52 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d3dacef50f
16:52 dalek MoarVM: ee878ac | jnthn++ | nqp-cc/src/QASTOperationsMAST.nqp:
16:52 dalek MoarVM: Fix nqp::handle code-gen result handling.
16:52 dalek MoarVM:
16:52 dalek MoarVM: Fixes the remaining broken test in 44-try-catch.t.
16:52 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ee878acadf
16:55 not_gerd jnthn: note that the STable in question is completely zero, not only the REPR member
16:55 diakopter o_O
16:56 diakopter oh, I fixed some things with that in the gcorch branch
16:56 not_gerd how close is that to being mergeable?
16:57 jnthn Even if you fix that, though, something is still busted in 56-role.t
16:57 jnthn not_gerd: All null sounds even moar like corruption...
16:58 not_gerd or we somehow lost an STable we allocated but never used
16:59 diakopter not_gerd: well, threads.t hasn't failed at all
16:59 diakopter since I fixed the last thing
16:59 diakopter but
16:59 diakopter some other single-threaded tests are failing
16:59 jnthn o.O
16:59 diakopter but I suspect it's ones that make it to a major collection
17:00 diakopter but I'm not sure why, since I didn't think I changed stuff with that
17:00 * diakopter looks at the branch diff online
17:10 FROGGS nqp::shell() returns 127 whatever it should execute on linux
17:10 FROGGS and google told me that this is "command not found"
17:11 FROGGS so, shell() can spawn a process, but the process fails to execute /bin/sh -c
17:15 grondilu FROGGS: you're on 32bits?
17:16 FROGGS grondilu: no
17:17 * grondilu asked this because he notices that there is a .i64 in +3157 src/core/interp.c
17:17 benabik joined #moarvm
17:18 FROGGS btw, the args that go into the to-be-created process are fine
17:18 FROGGS for example: cmd='/bin/sh' args='-c 1' cwd='/home/froggs/dev/MoarVM/nqp-cc' env[0]='LIBOVERLAY_SCROLLBAR=0'
17:22 grondilu you've checked that with gdb?
17:22 FROGGS grondilu: no, because it does not crash
17:23 FROGGS I've just printf'd the cmd, args, ...
17:32 jnthn FROGGS: Try seeing if the 127 comes from the initial uv_spawn call or is the exit code set in the callback?
17:33 FROGGS jnthn: it is the exit code of the callback
17:34 jnthn hmm
17:34 * grondilu notices that there is a uv-unix.h header and wonder if it has been included
17:35 * jnthn wonders why it'd fail to find /bin/sh
17:36 FROGGS jnthn: I fixed it right now
17:36 FROGGS args[0] must be "/bin/sh" too, additionally to _cmd
17:37 FROGGS like the first example shows here: http://nikhilm.github.io/uvbook/processes.html
17:38 jnthn oh :)
17:38 jnthn .oO( why?! :) )
17:38 FROGGS and why does that work on windows then?
17:39 grondilu and args[1] is '-c'?
17:40 FROGGS yes
17:41 grondilu then what do you do with the next line (out of the #if):  args[1] = cmdin?
17:41 grondilu shouldn't cmdin be args[2]?
17:42 FROGGS correct
17:42 FROGGS I am pushing in a sec
17:42 grondilu then it must be put in the #if, otherwise it won't work on windows, I guess.
17:43 FROGGS true
17:45 FROGGS that's the diff btw https://gist.github.com/ano​nymous/dc281d876349ff9763ac
17:46 grondilu looks fine too me.
17:47 * grondilu is excited because if this works, there will be only one non-passing test left
17:48 dalek MoarVM: 6d957ca | (Tobias Leich)++ | src/io/procops.c:
17:48 dalek MoarVM: fix nqp::shell()
17:48 dalek MoarVM:
17:48 dalek MoarVM: args[0] for uv_spawn must be the shell, at least on unixes.
17:48 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6d957ca798
17:49 FROGGS grondilu: I only see one red light now :o)
17:49 grondilu :)
17:51 diakopter grondilu: what's the non-passing test
17:52 not_gerd 56-role.t
17:52 diakopter oh, well there's the ones in threads.t commented out
17:52 diakopter thread.t
17:52 diakopter threads.t
17:53 diakopter that are "fixed" in my branch
17:53 diakopter but with unwanted side effects
17:56 not_gerd the stable gets zeroed by collect.c:115, btw
17:56 not_gerd make of that what you will ;)
17:57 diakopter not_gerd: I've fixed that
17:57 diakopter (try it in gc_orch)
17:57 jnthn Is that individual fix stealable?
17:58 diakopter probably with effort, yes
17:58 diakopter it'd take a while to remember exactly which thing..
17:59 diakopter it just is too burdensome to switch branches and make small commits and switch back and merge back
18:00 diakopter esp when there is a large commit pending
18:00 diakopter that can't be broken up really
18:03 timotimo this is not a justification for the way of doing it, but args[0] is supposed to be the name used to find the binary for cases like busybox, where it's just one binary that decides what to do based upon which of the symlinks were used
18:04 timotimo like, the busybox packet provides a whole bunch of tools in a single binary and spreads symlinks throughout the system or something like that
18:04 FROGGS ahh, interesting
18:05 FROGGS and I guess this is not needed for windows, which explains why it works there
18:05 timotimo probably just not possible on windows ;)
18:05 timotimo because UNIX MASTER RACE ;) ;) ;)
18:06 diakopter also, divine right.
18:06 diakopter jnthn: I'm very willing to be convinced that my perception of the over-burden is off...
18:06 diakopter (if someone shows me how easy it is)
18:08 jnthn FROGGS: Still works on Windows with your patch :)
18:09 FROGGS jnthn: that is what I expected :o)
18:09 FROGGS but I'm currently building it on windows anyway
18:09 * jnthn cooks
18:20 grondilu fwiw I can confirm FROGGS++'s patch makes 78-shell work on linux
18:21 FROGGS and I can confirm that it still works on windows :o)
18:39 nwc10 selftest looks rather good now
18:39 nwc10 (everyone who is not me)++
18:40 dalek Heuristic branch merge: pushed 33 commits to MoarVM/gcorch by diakopter
18:41 diakopter .oO( you know velocity is fast when you can barely keep up with merging master into your branch... )
18:41 FROGGS joined #moarvm
18:48 jnthn om nom
18:49 FROGGS there is nothing interesting in my fridge :o(
18:50 jnthn There wasn't much in mine until I went to the shop earlier ;)
18:50 nwc10 mine still has beer and coffee
18:50 jnthn Well, there was much...lots of beer :)
18:50 jnthn But you can't make dinner with that. :)
18:51 nwc10 Guiness, on the other hand...
18:51 FROGGS here is no shop nearby that has opened on sundays
18:51 jnthn ...is dinner.
18:51 jnthn FROGGS: ouch
18:51 jnthn Sweden has really good Sunday opening
18:51 jnthn And, well, just good opening all the time really :)
18:51 FROGGS yeah, I guess this can be nice
18:52 nwc10 jnthn: this limited opening days is a strange thing to get used to when you've come from the UK
18:52 masak FROGGS: I think it's 'cus Germany is more Catholic than Sweden.
18:52 jnthn nwc10: Hadn't the UK used to be similar? :)
18:52 masak but I might be wrong on that.
18:52 nwc10 jnthn: yes, but long enough ago that I wasn't dealing with logistics
18:52 nwc10 it was SEP back then
18:52 FROGGS masak: you are correct
18:52 jnthn .oO( more addicted to cats? :) )
18:52 jnthn nwc10: Yeah, same for me... :)
18:53 diakopter my fridge has ... I don't know; I haven't looked in it today
18:53 nwc10 what's even weirder here is that Saturday can be a public holiday, and shops have shut, just to confuse me
18:53 diakopter cats aren't the best tasting
18:53 diakopter very chewy
18:54 masak diakopter: unless someone took their Fourier transform first.
18:55 not_gerd .oO( or if your name is ALF )
18:55 diakopter that just makes them even more elongated
19:01 jnthn Other good news: all but 56-role.t also pass with --optimize
19:01 diakopter how many times in a row? :)
19:01 jnthn :P
19:02 jnthn the one time I ran it. I'm building a debug one again now to look at 56-role.t a bit :)
19:02 * diakopter wonders if jnthn builds with NOISY every time
19:03 jnthn No :)
19:03 jnthn hm, does it in 17s on my box with --optimize too
19:03 jnthn That's without any kind of parallel running
19:03 diakopter does what
19:04 jnthn make selftest
19:12 jnthn not_gerd: How'd you figure out it was collect.c:115 ?
19:14 diakopter ugh, I merged master again and nothing runs
19:20 not_gerd jnthn: it turns out there was only one STable added to stables_to_free
19:20 not_gerd I just set a watchpoint on that
19:21 not_gerd (using gdb)
19:21 jnthn ah
19:21 jnthn but if it's in that chunk of memory then it came from an out-of-date pointer...
19:25 colomon joined #moarvm
19:30 jnthn if (MVM_decr(&tc->instance->gc_ack) == 2) {
19:30 jnthn diakopter: I hope magic numbers are gone in the branch :P
19:35 jnthn oh...fail...
19:35 jnthn I see why it's busted.
19:35 jnthn MVM_gc_collect_free_nursery_uncopied(other, tc->gc_work[i].limit); runs after finish_gc
19:36 colomon joined #moarvm
19:36 jnthn Meaning that the pointers are old by the next time around.
19:39 dalek MoarVM: f282aa9 | jnthn++ | src/gc/orchestrate.c:
19:39 dalek MoarVM: Reap STables in current run, not next one.
19:39 dalek MoarVM:
19:39 dalek MoarVM: By then, the pointers are in a new tospace.
19:39 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/f282aa995e
19:50 japhb_ joined #moarvm
19:50 not_gerd jnthn++
19:52 FROGGS ohh, do we get a bit further now?
19:52 FROGGS at least it dies differently
19:52 jnthn Yeah, first 3 of 56-role.t now pass
19:53 jnthn Trying to work out why the outer of the instantiated method bodies are messed up
19:53 FROGGS cool!
19:54 jnthn as in, missing...
19:54 jnthn These things are always a bit of a pain to hunt down...
19:55 jnthn hmm
19:55 foo_bar_baz joined #moarvm
19:55 jnthn oh...
19:56 jnthn :cuuid(self.unique('frame_cuuid_')));
19:56 jnthn d'oh
19:56 jnthn we're meant to get taht from le block's cuid :)
19:56 FROGGS ohh, there is something missing
19:56 jnthn Otherwise it won't correlate over the boundary...
19:56 jnthn If this is all that's wrong I'm gonna be happy
19:57 FROGGS ohh, and not just you
19:59 jnthn looks like that may have been in...confirmation soon...
20:00 nwc10 jnthn++ # 56-role.t no longer SEGVs
20:01 dalek MoarVM: 133ec91 | jnthn++ | src/6model/reprs/MVMCode.c:
20:01 dalek MoarVM: Bring coderef clone inline with other backends.
20:01 dalek MoarVM:
20:01 dalek MoarVM: Or at least, the JVM one.
20:01 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/133ec9177c
20:01 dalek MoarVM: f2c8224 | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp:
20:01 dalek MoarVM: Take cuid from the QAST::Block.
20:01 dalek MoarVM:
20:01 dalek MoarVM: Those in the generated bytecode must match up, otherwise fixups fail.
20:01 dalek MoarVM: This fixes 56-role.t.
20:01 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/f2c8224deb
20:02 FROGGS ?
20:02 * FROGGS builds and hopes
20:02 jnthn Should do it.
20:02 FROGGS wow
20:02 FROGGS jnthn++
20:02 jnthn Does here, at least.
20:02 FROGGS it will take a while till I see it
20:03 jnthn yeah, that was is fairly early in the change.
20:03 jnthn *chain
20:04 jnthn So, there we are. Next challenge will be t/serialization/
20:04 jnthn And then we'll be in place to make an attempt at bootstrap
20:05 FROGGS YESS!!!
20:05 FROGGS it passes here too!
20:05 FROGGS jnthn++
20:07 not_gerd I can also confirm 'All tests successful.'
20:07 jnthn Great
20:07 jnthn Successful hacking weekend was successful :)
20:08 FROGGS indeed
20:08 nwc10 now drink beer.
20:08 jnthn :D
20:09 nwc10 it was only a suggestion. Not an instruction :-)
20:10 not_gerd btw, does 'role R { say(42) }; class C does R {}' make sense at all?
20:10 not_gerd fails on both parrrot and moarvm
20:11 jnthn That's liable to fail in NQP on any backend.
20:11 jnthn Rakudo should get it right. It tries harder.
20:15 nwc10 jnthn++ # All tests successful.
20:15 nwc10 nqptest still fails 3
20:15 grondilu it probably does not matter, does it?
20:15 jnthn Nah, nqptest doesn't matter
20:15 nwc10 ah OK. I didn't know that
20:16 jnthn nqptest is testing the cross-compiler
20:16 jnthn From Parrot to MoarVM
20:16 nwc10 aha
20:16 jnthn Which only has to be good enough to get us a stage0
20:16 jnthn selftest is the one that matters for bootstrap
20:16 grondilu so what now?  compiling rakudo?
20:16 jnthn No, no
20:16 jnthn We need to get nqp on MoarVM able to build NQP first :)
20:16 nwc10 "drink beer"
20:16 grondilu oh yeah
20:17 jnthn We have selfhost, next is bootstrap. At this point we'll move the backend code into the NQP repo proper.
20:17 FROGGS prove -e "../moarvm nqp.moarvm" t/serialization/ # this must succeed first
20:17 jnthn There is one orthogonal task that I'd *very* happily delegate
20:17 nwc10 "drink beer", "brush teeth", "rest", "drink coffee" *then* do the next thing
20:17 jnthn We're gonna need a make install for MoarVM
20:17 grondilu you meen with autoconf stuff?
20:18 not_gerd well, as long as it's not install-dev
20:18 not_gerd our headers are not in an installable state
20:18 jnthn grondilu: no, just the ability to type "make install" and have it shove MoarVM somewhere.
20:18 grondilu ok
20:18 jnthn not_gerd: We won't need those for NQP at least.
20:19 jnthn not_gerd: Rakudo needs ops writing though...
20:21 FROGGS jnthn: do you mean it should create a ../nqp/src/vm/moarvm/ and put its stuff there, or do you mean the `make install` that we will have within the nqp repo?
20:22 jnthn FROGGS: I mean a make install in MoarVM's (top-level) Makefile
20:22 jnthn FROGGS: What's in nqp-cc now will be moved into the NQP repo
20:23 jnthn FROGGS: So I'm talking about an install target for the VM itself.
20:24 FROGGS jnthn: so, like parrots make install target?
20:24 jnthn Right
20:24 FROGGS so it would copy the nqp.moarvm besides other things to PREFIX or so?
20:24 jnthn no no
20:25 jnthn The vm
20:25 jnthn Not NQP
20:25 jnthn nqp-cc will go away
20:25 FROGGS ahh, yeah
20:25 not_gerd no, that would be handled by ConfigureMoar.pl in the nqp repo
20:25 jnthn Right
20:25 not_gerd basically, cp moarvm.exe moarvm.dll $(PREFIX)
20:25 FROGGS so, moarvm[.exe] + dlls/so
20:26 jnthn Right
20:26 jnthn Plus lib/ libraires I guess
20:26 jnthn MAST ops and MAST nodes
20:26 FROGGS if my brain is in a fit state tomorrow, I will try to do that
20:30 FROGGS everybody else is invited to do that if he/she wants... I wouldn't be too sad :o)
20:30 not_gerd ;)
20:30 not_gerd if it becomes a blocker, I can do it as well
21:02 diakopter not_gerd: you could work on implementing the extops.md
21:02 diakopter (since rakudo will need it)
21:02 diakopter (as jnthn wrote)
21:03 diakopter jnthn: glad to see you found my "XXX should these next two really be copied?" :)
21:04 diakopter jnthn: (usually my XXX notes are directed toward you)
21:09 not_gerd diakopter: I'll see what I can do about that
21:11 not_gerd anyway, good night and/or happy hacking
21:13 diakopter not_gerd: you leaving?
21:13 not_gerd o/
21:13 diakopter 'nite
21:13 not_gerd yes, right now
21:13 not_gerd left #moarvm
21:13 diakopter g'n'
21:14 jnthn gn, ng :)
21:16 dalek MoarVM/gcorch: f282aa9 | jnthn++ | src/gc/orchestrate.c:
21:16 dalek MoarVM/gcorch: Reap STables in current run, not next one.
21:16 dalek MoarVM/gcorch:
21:16 dalek MoarVM/gcorch: By then, the pointers are in a new tospace.
21:16 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/f282aa995e
21:16 dalek MoarVM/gcorch: 133ec91 | jnthn++ | src/6model/reprs/MVMCode.c:
21:16 dalek MoarVM/gcorch: Bring coderef clone inline with other backends.
21:16 dalek MoarVM/gcorch:
21:16 dalek MoarVM/gcorch: Or at least, the JVM one.
21:16 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/133ec9177c
21:16 dalek MoarVM/gcorch: f2c8224 | jnthn++ | nqp-cc/src/QASTCompilerMAST.nqp:
21:16 dalek MoarVM/gcorch: Take cuid from the QAST::Block.
21:27 diakopter jnthn: idea for Match/Cursor preservation
21:28 diakopter create a linked list of them... and cache the last used one for a particular depth of routine descent.. so when you descend again, there's already one there from the last time you descended to that level.. it just might need re-initialized a bit
21:30 diakopter .. so you'd want to clear out its bstack/cstacks when ascending
21:30 diakopter er, when fail-ascending
21:31 diakopter er, s/conversation/preservation/
21:31 diakopter er.
21:31 diakopter s/preservation/conservation/
21:31 diakopter (sigh*
21:31 diakopter *sigh)
21:31 diakopter *sigh*
21:32 jnthn diakopter: We can only re-use those that failed and didn't end up in the tree overall, mind...
21:32 diakopter right
21:32 diakopter but that's a lot of them
21:33 diakopter jnthn: well, we can reuse them when they are removed from the tree when their whole branch fails..
21:35 diakopter well, I guess that really is just the same as pushing to a stack when you're done with a cursor, and simply getting from that stack when you need a new one
21:35 diakopter so it's really just a normal pool idea.
21:35 diakopter so, fwiw.
21:43 diakopter jnthn: have you tried just a super-simple pool like that?
21:45 jnthn diakopter: not yet
21:46 jnthn Though I guess it could live in $!shared and it'd get the right type then...
22:07 benabik joined #moarvm
22:34 BenGoldberg joined #moarvm
22:58 BenGoldberg .ping
22:58 yoleaux There is no ping command; nor can this be construed as a response.
23:00 BenGoldberg This is probably a very silly question, but would it be possible to have the irc log at irclong.perlgeek.de translate mirc color control codes into html colors?
23:00 BenGoldberg :)

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