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