|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 1 September 2013. |
|||
|
00:01
colomon joined
|
|||
| diakopter | colomon: ping | 00:50 | |
| colomon | pong | ||
| diakopter | would you like a (very small) todo in moarvm? it's a math function thing I don't know how to solve.. | ||
| colomon | sure, I'd be happy to take a look | 00:51 | |
| though right now I don't have anything like a recent build on my machine. I've focused on JVM. | |||
| diakopter | recent builds are quite different :D | 00:52 | |
| but this particular code hasn't changed in more than a year | |||
| colomon does a git pull that has to grab everything since June. | |||
| diakopter | need to git clean dxf reset hard and stuff | ||
| colomon | …. I'll just start it over. | 00:53 | |
| diakopter | yeah :) | ||
| in master branch, src/core/interp.c | |||
| benabik | git clone --recursive | 00:54 | |
| colomon | --recursive? | ||
| diakopter | there are three todos marked handle edge cases | ||
| there are three todos marked handle edge cases | |||
| math functions that I *completely* guessed on without doing hardly any research or due diligence | 00:55 | ||
| (I'm not even sure the main cases are correct) | |||
| colomon | you'll have to give me a minute, I just slaughtered my editor by opening too large a directory | 00:56 | |
| diakopter | so basically the task is to identify the edge cases (dividing by zero?? I think??), test them on parrot/jvm, decide what they should do, and make it consistent on all 3 NQPs | ||
| (and/or fix them entirely) | 00:57 | ||
| benabik: configure does the submodule things for you now, I think | 00:58 | ||
| sec, asec, sech | |||
| (and while you're at it, all the other math functions could use a code review | 00:59 | ||
| ) | |||
| colomon | okay, I'll see what I can do. | ||
| diakopter | like, even the others that currently abort need to have those cases trapped and exceptions thrown instead, I think | 01:00 | |
| colomon: thanks :) | 01:03 | ||
| colomon: if you dont have a commit bit, just make apull request | |||
| colomon | I don't have a commit bit. :) | ||
|
01:04
FROGGS_ joined
|
|||
| diakopter | colomon: there are three test targets.. | 01:11 | |
| across two different Makefiles | 01:12 | ||
| colomon | hmmm | 01:14 | |
| switching to #perl6... | 01:15 | ||
|
01:19
BabsSeed joined
|
|||
| benabik | diakopter: I hadn't seen that commit go by. Fair enough. | 01:21 | |
| diakopter | benabik: did you take a look at the todos in validation.c? | 01:22 | |
| .tell moritz I'm sorry I'm holding the nfg code hostage.. I'll try really hard to get it pushed usably this week | 01:23 | ||
| yoleaux | diakopter: I'll pass your message to moritz. | ||
| benabik | diakopter: I have a branch around with bits to move validation things into the instance, but never completed it. | 01:25 | |
| diakopter | into instance.c? | ||
| benabik | Oh, sorry. Hang caches and such for validation into thread context. | 01:26 | |
| (Actually looking at what I have now.) | |||
| diakopter | well, compunits are now garbage collected so they're less permanent | ||
| (and their staticframes) | 01:27 | ||
| benabik | Was trying to keep around working memory to avoid mallocs. | ||
| colomon | diakopter: so how do I throw an exception? | ||
| diakopter | search exception there in interp.c | ||
| it's actually a printf format string with varargs | 01:28 | ||
| so you can adorn the message with stuff if you want | |||
| colomon | MVM_exception_throw_adhoc, you mean? | ||
| diakopter | yes | ||
| (same as parrot's) | 01:29 | ||
| (though independently discovered, iirc) | |||
| colomon | how can I test this? | 01:33 | |
| diakopter | write tests in nqp-cc/t/nqp/88-maths.t or something | 01:34 | |
| (or an existing math one) | |||
| there's not a throws_ though.... | |||
| colomon | highest number is 76? | 01:35 | |
| diakopter | yeah I was just picking a number | ||
| colomon | ah | ||
| diakopter | there hsould be an existing math one | ||
| or trig | |||
| afk a bit& | 01:36 | ||
| dalek | arVM: 6947186 | jimmy++ | / (3 files): updated libuv to latest version |
01:48 | |
|
02:01
FROGGS_ joined
|
|||
| diakopter | 02:14:41 up 175 days, 10:29, 4 users, load average: 0.00, 0.01, 0.05 | 02:18 | |
| JimmyZ | :) | 02:19 | |
|
02:34
FROGGS joined
|
|||
| dalek | arVM: 8166578 | jimmy++ | src/io/procops.c: Don't added instance->clargs to permanent, it's already in MVM_gc_root_add_instance_roots_to_worklist |
02:52 | |
|
02:52
foo_bar_baz joined
|
|||
| diakopter | JimmyZ: actually it should be in the place of creation... it is a permanent since it doesn't change | 03:07 | |
| (so remove it from MVM_gc_root_add_instance_roots_to_worklist) | |||
| JimmyZ | diakopter: but tc->instance->env_hash is in MVM_gc_root_add_instance_roots_to_worklist also | 03:09 | |
| diakopter: they are the same thing, for MVM_gc_root_add_instance_roots_to_worklist and MVM_gc_root_add_permanents_to_worklist | 03:10 | ||
| they do the same thing | 03:11 | ||
| diakopter | I suppose you're right | 03:16 | |
| dalek | arVM: 9890d98 | jimmy++ | src/moarvm.c: Don't add instance->compiler_registry and instance->hll_syms to permanent, they are already in MVM_gc_root_add_instance_roots_to_worklist |
03:23 | |
|
03:29
FROGGS joined
03:56
ggoebel2 joined
03:59
FROGGS joined
04:32
FROGGS joined
04:58
FROGGS joined
05:21
FROGGS joined
|
|||
| JimmyZ | eli.thegreenplace.net/2012/07/12/co...ch-tables/ | 06:07 | |
| FYI | |||
|
06:18
ozmq joined
06:45
FROGGS joined
|
|||
| JimmyZ | not_gerd: cgoto for MSVC: abepralle.wordpress.com/2009/01/25/...threading/ | 06:50 | |
| jnthn | moarning o/ | 06:53 | |
| FROGGS | o/ | 06:54 | |
| is it possible that github.com/MoarVM/MoarVM/commit/6947186ea2 broke the build? | 06:59 | ||
| ahh, no, `git submodule update` helped... | 07:00 | ||
| JimmyZ | perl Configure.pl helps too | 07:02 | |
| morning, jnthn | |||
| .tell not_gerd cgoto for MSVC: abepralle.wordpress.com/2009/01/25/...threading/ | 07:08 | ||
| yoleaux | JimmyZ: I'll pass your message to not_gerd. | ||
| jnthn | JimmyZ: That article basically adds up to, "don't do this", right? :) | 07:09 | |
| dalek | arVM: 8848992 | (Tobias Leich)++ | nqp-cc/t/nqp/ (14 files): sync test with nqp |
||
| JimmyZ | jnthn: you're right, 3 times slower. it said | 07:12 | |
| jnthn: you may have an interset: www.cs.toronto.edu/syslab/pubs/demk...ontext.pdf | |||
| *interest | |||
| I have tried to read this, but if is full of english | 07:14 | ||
| s/if/it/ | |||
| jnthn | oh noes, English?! | ||
| JimmyZ | yeah :P | ||
| jnthn | Looks interesting, anyways | ||
| But I should be teaching here in a moment | 07:15 | ||
| Will read it later :) | |||
| JimmyZ | heh, I think it's useful for MoarVM | ||
| jnthn | yes, looks relevant | ||
| JimmyZ | thank ozmq++ for it :P | 07:16 | |
| FROGGS: Do we need port the nqp pull request code to MoarVM? github.com/perl6/nqp/pull/120 | 07:30 | ||
| FROGGS | JimmyZ: yeah, looks like, github.com/MoarVM/MoarVM/blob/mast...ps.c#L1219 | 07:33 | |
| JimmyZ | FROGGS: I don't know whether #L1221 contains it or not | 07:35 | |
| FROGGS | ahh, good question | 07:40 | |
| let's test it... | |||
|
07:41
not_gerd joined
|
|||
| not_gerd | o/ | 07:41 | |
| yoleaux | 1 Sep 2013 20:10Z <jnthn> not_gerd: that needs doing, but I think it's can't be that; the call to compunit_coderefs will die before we ever get there 'cus the op it depends on is also NYI | ||
| 07:08Z <JimmyZ> not_gerd: cgoto for MSVC: abepralle.wordpress.com/2009/01/25/...threading/ | |||
|
07:41
odc joined
|
|||
| not_gerd | JimmyZ: MS is moving away from inline asm in favour of compiler intrinsics | 07:42 | |
| JimmyZ | not_gerd: ignore the post | ||
| not_gerd | ;) | ||
| FROGGS | JimmyZ: it looks like it gets treated as whitespace, but not newline | ||
| JimmyZ | not_gerd: yo may have an interest with the pdf one | ||
| not_gerd: www.cs.toronto.edu/syslab/pubs/demk...ontext.pdf | 07:43 | ||
| not_gerd | JimmyZ: I actually tried to do something like that before I did cgoto | ||
| some toy interpreter with various dispatch strategies: gist.github.com/gerdr/6d327799863d9ef88cff | |||
| performance when jitting the runloop to sequences of call/ret was underwhelming | 07:44 | ||
| perhaps I messed up the asm ;) | |||
| JimmyZ | not_gerd: per eli.thegreenplace.net/2012/07/12/co...h-tables/, continue is not needed | ||
| replacing continue with goto *table is better | 07:45 | ||
| not_gerd | JimmyZ: needs to be measured | ||
| indirect calls are more expensive than direct ones | |||
| JimmyZ | not_gerd: yeah, maybe reduce a 'jmp' op | 07:46 | |
| not_gerd | in the cgoto branch, it was worse partly because of the double-indirection | ||
| JimmyZ | let's remove the bank | ||
| ;) | |||
| not_gerd | JimmyZ: that's the plan | ||
| we should wait a bit until opcodes are more stable | 07:47 | ||
| JimmyZ | yes | ||
| mostly until bootstrap | |||
| I think with cgoto, we don't need natural number for op, except msvc | 07:48 | ||
| continue natual number ... | 07:49 | ||
| FROGGS | JimmyZ: about NEL, maybe we should wait until we have NFG strings? | 07:51 | |
| JimmyZ | FROGGS: yes | ||
| or until unfugde roast | |||
| not_gerd | the 80-matches.t failure seems to be just someone forgetting to increment a variable (QRegex.nqp:1106) | 08:00 | |
| FROGGS | not_gerd: that was fixed recently in nqp, do you wanna fix or should I ? | 08:02 | |
| not_gerd | feel free to do so | 08:03 | |
| FROGGS | k | ||
| jnthn | Banks can go whenever somebody feels like. Yes, we should do an ops numbering cleanup before we go for bootstrap, 'cus beyond there we have to start keeping backcompat | 08:05 | |
| I think killing banks will also simplify mast op name => number resolution in code | 08:07 | ||
| (in the QAST to MAST code) | |||
| JimmyZ | btw: I still thinks dynasm makes jit much easy :). a simple one: blog.reverberate.org/2012/12/hello-...-jits.html | 08:11 | |
| the more I read, the more I like it | 08:12 | ||
| I can help remove bank if anyone can remove it from compiler.c | 08:15 | ||
| and MAST maybe | 08:16 | ||
| jnthn | yes, it needs changes in quite a few places | ||
| JimmyZ | I can try remove it from src, nqp-cc maybe needs you! | 08:17 | |
| jnthn | And probably mostly needs doing in one sweep | ||
| Well, first thing I'd do is fix update_ops.p6 | |||
| The rest of the changes should flow out from that | 08:18 | ||
| JimmyZ | yeah | ||
| not_gerd | someone also needs to investigate common op sequences so we can skip the break/goto and just fall through to the next op in the common case | 08:20 | |
| jnthn | Um. Really? | 08:21 | |
| not_gerd | might be worth it if it gets branch prediction going | ||
| jnthn is skeptical that will be a win | |||
| ah, there is that... | 08:22 | ||
| But still...feels too clever for its own good. | |||
| not_gerd | always jumping back to the top level indirect dispatch is one thing that makes interpreters slow | 08:23 | |
| jnthn | I'm struggling to see an especially good hit rate on common op sequences, fwiw | 08:24 | |
| I mean, we can try to analyze actual compiler output, but there's relatively few that spring to mind | |||
| JimmyZ | not_gerd: replace contine with goto *table avoids jump to the top | ||
| *continue | 08:25 | ||
| jnthn | This is all focusing on stuff we shouldn't focus on at the moment, though. Our problem isn't the interpreter not performing, our problem is that we dont' run Rakudo on MoarVM yet. | ||
| not_gerd | ;) | ||
| JimmyZ: but it's still an indirect branch | |||
| JimmyZ | oh, yes | 08:26 | |
| not_gerd | same applies if we call the same op repeatedly | ||
| add if(next_op == push_i) goto PUSH_I; else goto *labels[next_op]; to the end of push_i | 08:27 | ||
| jnthn | arg_o is probably a good candidate for that. | 08:28 | |
| dalek | arVM: 2ca96e5 | (Tobias Leich)++ | nqp-cc/nqp-src/QRegex.nqp: pull in nqp's QRegex/Cursor.pm to pass t/nqp/80, not_gerd++ |
08:29 | |
| JimmyZ | not_gerd: good points, I guess this needs some statistics | 08:30 | |
|
08:40
ozmq joined
08:56
ozmq left
|
|||
| dalek | arVM/nobank: ff90219 | jimmy++ | tools/update_ops.p6: start removing banks from update_ops.p6 |
08:58 | |
| arVM: cd591d5 | (Gerhard R)++ | build/Makefile.in: Wire up build of (not yet implemented) computed goto dispatch |
09:04 | ||
| not_gerd | ^ just future-proofing the build system | ||
| JimmyZ | good | 09:06 | |
| dalek | arVM/nobank: a4a4a37 | jimmy++ | tools/update_ops.p6: remove all bank codes from update_ops.p6 |
09:15 | |
| FROGGS | guys, my last commit broke test 9 and 14, I'm currently investigating... github.com/MoarVM/MoarVM/commit/2c...bab9fa3a56 | 09:16 | |
| dalek | arVM/nobank: 3a85767 | jimmy++ | / (2 files): remove banks from oplist |
09:21 | |
| arVM/nobank: a3fa0d6 | jimmy++ | / (4 files): updated ops files |
09:39 | ||
| JimmyZ | this also reduced .moarvm file size | 09:42 | |
| dalek | arVM/nobank: f560493 | jimmy++ | src/core/interp.c: removed bank from interp.c |
09:51 | |
| JimmyZ | argh, some many places to remove | 09:52 | |
| not_gerd | still needs switching from uint8 to uint16? | 09:58 | |
| JimmyZ | yes | 10:00 | |
| so didn't save size | |||
| not_gerd: how about import stdint and #define MVMint32 int32_t? | 10:01 | ||
| jnthn may like MVMint32? | |||
| not_gerd | JimmyZ: I can do that | 10:02 | |
| JimmyZ | may ask jnthn first :) | ||
| jnthn | Probably wants to be typedef rather than #define ? | ||
| JimmyZ | yes | ||
| jnthn | But yes, I want us to carry on using MVMint32 etc in the code | ||
| But if we define them in terms of int32_t that's fine by me. | |||
| JimmyZ | you're ok import stdint? | ||
| if typedef | 10:03 | ||
| JimmyZ decommute | |||
| not_gerd | if that's a go-ahead, I can do it later today | ||
| the patch should be minimal | |||
| errands& | 10:04 | ||
| dalek | arVM: 7dfbabf | (Tobias Leich)++ | nqp-cc/nqp-src/QRegex.nqp: revert change of ACCEPT's signature, unbreak test 9 and 14 |
10:34 | |
|
10:49
not_gerd joined
|
|||
| JimmyZ | not_gerd, it's ago-ahead | 11:02 | |
| .tell jnthn so you're fine to import github.com/MoarVM/MoarVM/tree/stdt...msinttypes with typedef MVMint32 int32_t ? | 11:06 | ||
| yoleaux | JimmyZ: I'll pass your message to jnthn. | ||
| diakopter | JimmyZ: i think not_gerd was saying he wanted to do that | 11:18 | |
| JimmyZ | diakopter: after removing bank, should label need to changed uint16? | 11:28 | |
| diakopter | label? | 11:29 | |
| JimmyZ | diakopter: see validation.c | 11:30 | |
| diakopter | ... | 11:31 | |
| I wrote it; what about it in particular | |||
| JimmyZ | about instr_offsets in MVMStaticFrame.h | 11:33 | |
| and annotations_data | |||
| diakopter | no | 11:34 | |
| dalek | arVM/nobank: e7948e0 | jimmy++ | src/ (8 files): start removing bank from various c code |
11:42 | |
| JimmyZ | diakopter: needs review | ||
| ^^ | |||
| .tell jnthn e7948e0441 needs your review | |||
| yoleaux | JimmyZ: I'll pass your message to jnthn. | ||
| JimmyZ | or diakopter could help join in? | 11:44 | |
| or just changed *(cur_op++) to *(MVMuint16 *)(cur_op += 2) ? | 11:46 | ||
|
11:48
not_gerd joined
|
|||
| JimmyZ | hello not_gerd | 11:48 | |
| dalek | arVM: 556f294 | (Gerhard R)++ | / (6 files): Use msinttypes for standard integers but still keep our Formatting patterns like %lli should be replaced with the appropriate macros from inttypes.h. |
||
| JimmyZ | how do you think it? | 11:49 | |
| I think *(MVMuint16 *)(cur_op += 2) would much better? | |||
| not_gerd | cur_op itself could probably be a MVMuint16* | 11:50 | |
| or do we actually read an uint8 somewhere from the stream? | |||
| JimmyZ | uint16 means we need rewrite most things | 11:51 | |
| i.e::cur_op += 6; | |||
| GET_UI32(cur_op, 2); | 11:52 | ||
| and all other places | |||
| *(MVMuint16 *)(cur_op += 2) could be much simpler :P | 11:53 | ||
| only one line I think | |||
| not_gerd | won't work like that, though - (cur_op += 2) works like (++cur_op), not (cur_op++) | 11:54 | |
| JimmyZ | oh | 11:57 | |
| yes | |||
| but we can modify it | 11:58 | ||
| *(MVMuint16 *)(cur_op++++) | 12:00 | ||
| not_gerd | that might be illegal - two modifications without sequence point | 12:02 | |
| JimmyZ | well, I ran into a problem that I don't know which uint8 needs to be uint16 | 12:03 | |
| not_gerd | (cur_op += 2, ((MVMuint16 *)cur_op)[-1]) | ||
| couldn't think of anything less ugly right now | 12:04 | ||
| JimmyZ | so if changed to uint16, I need help | ||
| jnthn | Do the minimum set of changes needed to make it work. Then we can tweak afterwards. | 12:10 | |
| yoleaux | 10:28Z <FROGGS> jnthn: Are the changes to ACCEPTS alright? moarvm doesn't like it: github.com/perl6/nqp/commit/0f1be3...3f1#L3L821 | ||
| 10:36Z <FROGGS> jnthn: So this was needed, and might hurt us later: github.com/MoarVM/MoarVM/commit/7dfbabf794 | |||
| 11:06Z <JimmyZ> jnthn: so you're fine to import github.com/MoarVM/MoarVM/tree/stdt...msinttypes with typedef MVMint32 int32_t ? | |||
| 11:42Z <JimmyZ> jnthn: e7948e0441 needs your review | |||
| jnthn | It really should be no more complicated than | ||
| MVMint16 op_to_dispatch = *((MVMint16 *)cur_op); | 12:11 | ||
| cur_op += 2; | |||
| ...switch... | |||
| not_gerd | meah - splitting the line in 2 is cheating ;) | 12:12 | |
| FROGGS | but hey, it is readable :o) | ||
| jnthn | Yeah. I hate it when I can read the code easily. | ||
| JimmyZ | or switch to cgoto | 12:13 | |
| give up msvc | |||
| :P | |||
| no need switch | |||
| jnthn | *sigh* | ||
| FROGGS | or we switch to basic and have line numbers at the left? | 12:14 | |
| it sucks just a bit when inserting lines between 190 and 200 | 12:15 | ||
| JimmyZ | Be be honest, which one do you prefer? uint8 or uint16? | ||
| jnthn: ^^ | |||
| not_gerd | uint8 short-term, uint16 long-term | ||
| cosmetic changes can wait | |||
| JimmyZ | well, change to uint16 is not that hard, for interp.c can use s/cur_op, 2/cur_op, 1/g or similar | 12:21 | |
| I just need some tips | |||
| i.e: the label | 12:22 | ||
| jnthn | < jnthn> Do the minimum set of changes needed to make it work. | 12:24 | |
| So uint8. | |||
| JimmyZ | ok | 12:26 | |
| FROGGS | jnthn: do you think I need to buy a nice beer and sit on the couch this evening to read something? | 12:31 | |
| diakopter | to read this irclog, yes | 12:33 | |
| jnthn | FROGGS: Buying a nice beer is always a good plan :) | 12:34 | |
| Drinking it is an even better one :) | |||
| FROGGS | k, I'll make sure I got one :o) | 12:35 | |
| diakopter | jnthn: what should I work on the next few hours | 12:36 | |
| FROGGS | serialization? | ||
| diakopter | sshh | 12:37 | |
| toward selfhost? | |||
| jnthn | diakopter: t\\nqp\\31-grammar.t segfaults here; I was too exhausted to finish hunting it last night but it looks like the hll config hash doesn't keep the name around/anchored so the hash ends up pointing into heck knows where. Maybe look into that :) | 12:38 | |
| diakopter | jnthn: I thought I saw a patch [from you] that addressed that | 12:41 | |
| jnthn | No, I fixed env_args last night | ||
| But got another segfault in 31-grammar.t | |||
| And it was when looking up hll_name | 12:42 | ||
| diakopter | jnthn: 31 passes for me | 12:43 | |
| jnthn | bah, same for me... | 12:45 | |
| No. | |||
| *now | |||
| But t\\nqp\\14-while.t segfaults now?! | |||
| hm, in the compiler.c | 12:46 | ||
| oh...I wonder if it depends on GC not running while it's compiling... | |||
| diakopter | not for me | ||
| passes for me | 12:47 | ||
| er | |||
| dalek | arVM/nobank: 487752e | jimmy++ | src/ (7 files): removed all bank code from c codes |
||
| JimmyZ | ^^ should be done | ||
| jnthn | diakopter: t\\nqp\\78-shell.t is missing nqp::shell | 12:49 | |
| diakopter: May be one to look at. | |||
| Perhaps the t\\nqp\\19-file-ops.t failures too | |||
| diakopter: Besides that, t/serialization/ :D | |||
| diakopter | prove likes 14-while | 12:50 | |
| but... it segfaults | |||
| jnthn | make selftest doesn't like it here | ||
| diakopter | C:\\Users\\mwilson\\src\\MoarVM\\nqp-cc>..\\moarvm nqp.moarvm t\\nqp\\14-while.t | 12:51 | |
| C:\\Users\\mwilson\\src\\MoarVM\\nqp-cc>echo %ERRORLEVEL% | |||
| -1073741819 | |||
| t\\nqp\\14-while.t ...................... ok | 12:53 | ||
| something is amiss. | |||
| jnthn | weird | 12:54 | |
| dalek | arVM/nobank: 9c42170 | jimmy++ | lib/MAST/Nodes.nqp: removed bank from MAST/Nodes.nqp |
12:57 | |
| diakopter | JimmyZ: as jnthn said, the op() and push_op() subs in the qast->mast compiler can be vastly improved now with one big hash | 13:00 | |
| dalek | arVM/nobank: cd591d5 | (Gerhard R)++ | build/Makefile.in: Wire up build of (not yet implemented) computed goto dispatch |
||
| arVM/nobank: 7dfbabf | (Tobias Leich)++ | nqp-cc/nqp-src/QRegex.nqp: revert change of ACCEPT's signature, unbreak test 9 and 14 |
|||
| arVM/nobank: 556f294 | (Gerhard R)++ | / (6 files): Use msinttypes for standard integers but still keep our Formatting patterns like %lli should be replaced with the appropriate macros from inttypes.h. |
|||
| arVM/nobank: 5342bf8 | (Gerhard R)++ | / (8 files): 2cc4b2f | jimmy++ | nqp-cc/src/ (5 files): |
|||
| not_gerd | JimmyZ: ^ merged master + some fixes | ||
| the cross-compiler doesn't build yet | |||
| FROGGS | diakopter / jnthn: the 14-while fail might due to my patch... (see the yoleaux msgs from almost an hour ago) | 13:04 | |
| jnthn | FROGGS: The segfault looks unrelated (as in, coincidental that the ACCEPTS change triggered it) | ||
| FROGGS | jnthn: I was thinking the same, just wanted to point on it :o) | 13:08 | |
| jnthn | hm, think I may need a short nap...slept badly last night then got up early to go teach today... | 13:11 | |
| diakopter | www.youtube.com/watch?v=TIUUVEojULE | ||
| FROGGS | I'd need a nap too, but I have two little problems that prevent me from doing it | 13:12 | |
| diakopter: yeah, but the end is cut off | |||
| diakopter | FROGGS: no place to rest your head? | 13:13 | |
| FROGGS | diakopter: well, I could go home but there are $kids that won't let me sleep | 13:14 | |
| JimmyZ | jnthn: MAST::Ops.WHO{'$allops'} is it right? | ||
| FROGGS | JimmyZ: I'd say yes: nqp-cc/nqp-src/QASTMoar.nqp:5503: next if ~$_ eq '$allops'; | 13:15 | |
| diakopter | JimmyZ: close enough | 13:16 | |
| FROGGS | it is used that way in several places | ||
| diakopter | JimmyZ: or just refactor the Ops.nqp generation script to make it better named | ||
| JimmyZ | my @operands := MAST::Ops.WHO{'$allops'}{$moarop}{"operands"}; | 13:18 | |
| I can't get it | |||
| +@operands return 0 | |||
|
13:21
woolfy left
|
|||
| diakopter | JimmyZ: some of them have 0 operands | 13:21 | |
| JimmyZ | I know that | 13:22 | |
| diakopter | ok :) | ||
| FROGGS: when I run prove with -vv, it shows that 14-while.t runs just fine.... | 13:25 | ||
| FROGGS | O.o | 13:28 | |
| diakopter: so is there an issue with 14 anymore? | |||
| diakopter | don't know. | 13:29 | |
| FROGGS | hmmm, now it fails on my box | ||
| diakopter | yeah, definitely something is wrong | 13:30 | |
| FROGGS | Program received signal SIGSEGV, Segmentation fault. | ||
| 0x0000000000423894 in MVM_hll_get_config_for () | |||
| diakopter | hrm | ||
| diakopter tries in vs | |||
| boom | 13:31 | ||
| erm. | |||
| not boom. | |||
| but no output. | |||
| FROGGS | 0x000000000043c361 in MVM_hll_get_config_for (tc=0x81a2d0, name=0x0) at src/core/hll.c:8 | ||
| 8\t MVM_HASH_EXTRACT_KEY(tc, &kdata, &klen, name, "get hll config needs concrete string"); | |||
| diakopter | JimmyZ removed some marking | 13:32 | |
| gotta be that | |||
| diakopter tries | 13:33 | ||
| hm | 13:34 | ||
| JimmyZ | I just removed duplicated part | 13:35 | |
| diakopter | yeah didn't fix | 13:36 | |
| dalek | arVM/nobank: bc552ca | jimmy++ | / (5 files): removed left bank code |
13:48 | |
|
13:53
jnap joined
13:54
not_gerd left
|
|||
| JimmyZ | diakopter: Could you help take a look at nobank branch? I got a blocker ... | 14:03 | |
|
14:17
benabik joined
|
|||
| diakopter | JimmyZ: ok | 14:33 | |
| FROGGS | .tell jnthn I think the problem with 14-while is that cu->body->hll_name is overwritten by a gc run: gist.github.com/FROGGS/c05f3c4d8dec0fa98e00 | 14:35 | |
| yoleaux | FROGGS: I'll pass your message to jnthn. | ||
| JimmyZ | diakopter: thanks | 14:36 | |
| dalek | arVM/nobank: 0faf79b | jimmy++ | nqp-cc/src/QASTOperationsMAST.nqp: small fixes |
||
| diakopter | JimmyZ: what's the problem | 14:37 | |
| JimmyZ | diakopter: cd nqp-cc && make | 14:38 | |
| diakopter: you will see it | |||
| diakopter | JimmyZ: you removed the thing that verifies whether the op exists | 14:41 | |
| so it's not catching the error soon | |||
| JimmyZ | I think I just fixed it | 14:43 | |
| testing | |||
| diakopter | why is it not looking in the hash for the op in push_op | 14:44 | |
| FROGGS | .tell jnthn Maybe I'm wrong, since the gc run swaps from- and to-space, right? | 14:45 | |
| yoleaux | FROGGS: I'll pass your message to jnthn. | ||
| dalek | arVM/nobank: f444698 | jimmy++ | lib/MAST/Nodes.nqp: another small fixes |
||
| diakopter | it needs to do the MAST::Ops.WHO{'$allops'}{$op} lookup in push_op | ||
| JimmyZ | diakopter: feel free to add it | 14:46 | |
| diakopter | no I htink your last patch is ok | 14:47 | |
| JimmyZ | but I got anothter blocker | 14:48 | |
| diakopter | ok ok let me look at it | ||
| JimmyZ | thanks | ||
| FROGGS | ohh | 14:51 | |
| when it copies the cu to tospace it copies 176 bytes, which might be sizeof MVMCompUnit | 14:52 | ||
| but the cu->body points to other stuff (hll_name), which is in mem after there 176 bytes | |||
| these* | |||
| benabik | JimmyZ++ # cgoto links | 14:55 | |
| diakopter | FROGGS: ohh. | 14:58 | |
| but the body is malloc'd | 14:59 | ||
| JimmyZ: I'm fixing the branch.. | 15:01 | ||
| redoing the .p6 gen script | |||
| JimmyZ | diakopter: great | ||
| Is it the .p6 gen script problem? | |||
| jnthn | I suspect the p6 gen script gets simpler :) | 15:02 | |
| yoleaux | 14:35Z <FROGGS> jnthn: I think the problem with 14-while is that cu->body->hll_name is overwritten by a gc run: gist.github.com/FROGGS/c05f3c4d8dec0fa98e00 | ||
| 14:45Z <FROGGS> jnthn: Maybe I'm wrong, since the gc run swaps from- and to-space, right? | |||
| jnthn | So long as it doesn't end up written in p5, it's fine :P | ||
| JimmyZ is going to sleep | |||
| jnthn | 'night, JimmyZ++ | ||
| JimmyZ | jnthn: I think most work is done, just need some small fixes(which maybe need big debug) :P | 15:03 | |
| diakopter | JimmyZ: no needs much slimplifiatsknadfslidfn | ||
| erm. | 15:04 | ||
| JimmyZ | jnthn: github.com/MoarVM/MoarVM/compare/nobank for a quick review, may I lost something | ||
| diakopter | simplification. | ||
| fixing... | |||
| diakopter claims the branch | |||
| jnthn: yes, simpler. in p6. | |||
| jnthn | :) | ||
| JimmyZ | and thanks n_gerd++ for type help | 15:05 | |
| diakopter | baby p6, anyway. ;) | ||
|
15:05
donaldh joined
|
|||
| JimmyZ | err, not_gerd++ | 15:09 | |
|
15:15
jnap joined
15:18
dalek joined
16:29
FROGGS joined
16:53
not_gerd joined
|
|||
| not_gerd | o/ | 16:53 | |
| naive op sequence statistics: gist.github.com/gerdr/2c16eff066736d181b99 | |||
| hm... | 16:54 | ||
| I probably should have sorted by the first percentage value | 16:55 | ||
| [Coke] | not_gerd: if you make that a csv, github will format it nicely for you. | 16:56 | |
| (hurm. maybe not when it's a gist) | 16:57 | ||
| arnsholt | not_gerd: Another statistic that might be interesting is conditional probabilities. Given the previous op, which ops are most probable? | 17:02 | |
| not_gerd | now we're getting fancy ;) | ||
| arnsholt | Once you have unigram and bigram statistics, not really =) | 17:03 | |
| Just the bigram count divided by the unigram count of the op you're conditioning on | 17:04 | ||
| moritz | 'make install' will install MoarVM Cross Compiler. | 17:26 | |
| moritz@lara:~/p6/MoarVM/nqp-cc>make install | |||
| make: *** No rule to make target `install'. Stop. | |||
| benabik | Well, it will. Someday. | 17:28 | |
| jnthn | .oO( it depends what the meaning of "will" will be... ) |
17:31 | |
| not_gerd | arnsholt: gist.github.com/gerdr/77cb5e2c9336aedde466 | 17:37 | |
| arnsholt | \\o/ | 17:41 | |
|
18:11
donaldh joined
18:28
lizmat joined
|
|||
| not_gerd | bye, #moarvm | 18:59 | |
|
18:59
not_gerd left
|
|||
| FROGGS | diakopter: is there a way to tell the GC that an object should not be moved to tospace because something is modifying it currently? | 19:23 | |
| jnthn | FROGGS: It doesn't work like that. | ||
| Modification is not the problem, the problem is usually that you have a pointer to an object that the GC doesn't know about. | 19:24 | ||
| And thus can't update. | |||
| FROGGS | jnthn: the problem is that we fetch the obj's pointer, and right after that it gets moved, and ->forwarder is set | 19:25 | |
| and then it sets values to the old obj as it seems | 19:26 | ||
| jnthn | That can only happen if something allocates. | ||
| FROGGS | it does | ||
| it calls a function that allocates strings | |||
| jnthn | Right, that's why we have MVMROOT, etc. | ||
| FROGGS | (I'm talking about the 14-while prob) | ||
| jnthn: so, I just have to wrap it in MVMROOT, right? | 19:27 | ||
| jnthn | FROGGS: Yeah, though where is this? In compiler.c? | 19:28 | |
| FROGGS | jnthn: bytecode.c/MVM_bytecode_unpack | ||
| jnthn | oh...wow | ||
| Unpacking bytecode should probably allocate directly to the old generation, like deserialization does. | 19:29 | ||
| Since those objects are going to live for along time | |||
| And old generation direct allocations will (a) never trigger GC, and (b) at present never result in objects moving around. | |||
| FROGGS | that is called gen2, right? | 19:30 | |
| jnthn | See MVM_gc_allocate_gen2_default_set and MVM_gc_allocate_gen2_default_clear, which you probably want to call before/after bytecode unpacking. | ||
| aye | |||
| The penguin | |||
| FROGGS | yeah | 19:31 | |
| :o) | |||
| it passes \\o/ | 19:35 | ||
| TimToady | ship it! | 19:36 | |
| FROGGS | *g* | ||
| dalek | arVM: e3ef9d7 | (Tobias Leich)++ | src/core/bytecode.c: allocate directly in gen2, fixes 14-while.t |
19:42 | |
| FROGGS | jnthn++ # I love ya! I learned much {yester,to}day, and it was super fun :o) | ||
| jnthn | Shit pi! That breaks MSVC! | ||
| FROGGS | wut? | 19:43 | |
| jnthn | ReaderState *rs = dissect_bytecode(tc, cu); | ||
| Comes after the MVM_gc_allocate_gen2_default_set(tc); call | |||
| FROGGS | ahhh | ||
| yeah | |||
| I see | |||
| jnthn | MSVC doesn't like this :) | ||
| Otherwise, looks good :) | |||
| FROGGS | yeah, I basically know that :o) | 19:44 | |
| dalek | arVM: 136a699 | (Tobias Leich)++ | src/core/bytecode.c: declaration before code, really |
19:45 | |
| diakopter | MVM_gc_allocate_gen2_default_set and companion need to atomically increment/decrement an integer | 20:17 | |
| jnthn | Nah | 20:18 | |
| They're per-tc | |||
| Not global | |||
| diakopter | ok/ s/atomically// | 20:19 | |
| jnthn | yes, we could do 'em that way, if they ain't already | ||
| Probably wise :) | |||
| dalek | arVM: 1de88f0 | (Tobias Leich)++ | nqp-cc/nqp-src/QRegex.nqp: revert a revert, we an run this code now |
20:27 | |
| diakopter | jnthn: not being able to store stuff in NQP class our serialized hurts speed a lot.. | 20:28 | |
| jnthn | diakopter: I think it may be possible...moment... | 20:34 | |
| diakopter: gist.github.com/jnthn/6429209 | 20:36 | ||
| diakopter: I guess you're doing this for op info to speed startup? :) | 20:38 | ||
| FROGGS | $ ../moarvm nqp.moarvm -e 'sub a() { return; }' # Could not locate compile-time value for symbol return | 20:40 | |
| $ ../moarvm nqp.moarvm -e 'sub a() { return }' # cannot stringify this | |||
| (t/nqp/44-try-catch.t) | |||
|
20:40
donaldh joined
|
|||
| jnthn | Curious failure mode | 20:41 | |
| I know 44-try-catch depends on missing stuff, so won't work out, but something weird about that way of it failing. | |||
| FROGGS | yeah, if that would be fixed it would be blow up because of missing nqp::rethrow | 20:42 | |
| s:2nd[be\\s] = '' | 20:43 | ||
| token prefix:sym<return> { <sym> \\s <O('%list_prefix')> { $*RETURN_USED := 1 } } | 20:45 | ||
| how should that match 'return;' ? | |||
| FROGGS looks at nqp | |||
| jnthn | um, it don't o.O | 20:46 | |
| *won't | |||
| moritz | FROGGS: you actually have to return a value in NQP | 20:47 | |
| jnthn | See #perl6, but yeah, I remember this now... | ||
| It parses as a type name and apparently on MoarVM gets upset over it being missing... | |||
| diakopter | jnthn: aye [to your q[ | 20:52 | |
| [ | |||
| ]]] | |||
| dalek | arVM: ab90d7d | (Tobias Leich)++ | nqp-cc/t/nqp/44-try-catch.t: return is a list prefix |
20:53 | |
| jnthn | diakopter: najs | ||
| 'night all, happy hacking :) | 21:53 | ||
|
23:07
benabik joined
|
|||
| diakopter | .tell JimmyZ I'm still claiming the nobank branch... just a few more hours at the max.. | 23:09 | |
| yoleaux | diakopter: I'll pass your message to JimmyZ. | ||
| diakopter | .tell not_gerd I'm still claiming the nobank branch... just a few more hours at the max.. | 23:10 | |
| yoleaux | diakopter: I'll pass your message to not_gerd. | ||