|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 28 October 2013. |
|||
|
00:32
jnap left
03:17
woosley left
03:25
woosley joined
03:48
johnny5_ joined
06:28
timotimo joined
07:06
FROGGS joined
|
|||
| FROGGS | o/ | 08:24 | |
|
09:14
cognominal joined
09:23
donaldh joined
10:04
cognominal joined
|
|||
| jnthn | o/ for a short moment | 11:18 | |
| jnthn is at l'airport :) | |||
| timotimo | have a pleasant flight! | 11:19 | |
| jnthn | It's good weather and up the croatian coast and I think I picked the correct side of the plane for a view. So it should be nice. )) | 11:20 | |
| moritz | \\o/ | 11:21 | |
| FROGGS | nice :o) | ||
| jnthn | Probably noisy too... Propellor plane... | 11:22 | |
| FROGGS | ohh, hehe | ||
| jnthn | If anybody fancies a Unicode task | 11:25 | |
| While code-reviewing recent commits I noticed MVM_string_equal_at_ignore_case uses tc | |||
| When it should use fc | |||
|
11:40
colomon joined
13:08
jnap joined
13:33
benabik joined
14:27
colomon joined
14:35
colomon joined
14:37
FROGGS[mobile] joined
15:02
colomon joined
|
|||
| jnthn | "setlexvalue only handles static case so far" | 16:03 | |
| So, that's where we've got to :) | |||
| I think I can get that one picked off this evening :) | |||
| diakopter | o_O | 16:04 | |
| diakopter gets curious and searches for NYI | |||
| JimmyZ: some LHF in coerce.c - the four NYI in lines 120-149 can be replaced with calls to the things that do that now, I think | 16:08 | ||
| JimmyZ: uhm, I mean in args.c | 16:10 | ||
| C:\\Users\\mwilson\\src\\MoarVM\\src\\6model\\reprs\\MVMContext.c (1 hit) | |||
| Line 29: MVM_panic(MVM_exitcode_NYI, "MVMContext copy_to NYI"); | |||
| C:\\Users\\mwilson\\src\\MoarVM\\src\\6model\\reprs\\MVMException.c (1 hit) | |||
| Line 29: MVM_panic(MVM_exitcode_NYI, "MVMException copy_to NYI"); | |||
| Line 633: MVM_exception_throw_adhoc(tc, "flattening of other hash reprs NYI."); | |||
| C:\\Users\\mwilson\\src\\MoarVM\\src\\core\\exceptions.c (1 hit) | |||
| Line 154: MVM_panic(1, "Exception object creation NYI"); | |||
| C:\\Users\\mwilson\\src\\MoarVM\\src\\core\\interp.c (7 hits) | |||
| Line 182: MVM_exception_throw_adhoc(tc, "extend/trunc NYI"); | |||
| Line 251: MVM_exception_throw_adhoc(tc, "get/bindlex_ng NYI"); | |||
| Line 284: MVM_exception_throw_adhoc(tc, "const_iX NYI"); | |||
| Line 290: MVM_exception_throw_adhoc(tc, "const_n32 NYI"); | |||
| Line 1102: MVM_exception_throw_adhoc(tc, "captureposprimspec NYI"); | |||
| moritz | arg, stop it | ||
| diakopter | Line 1932: MVM_exception_throw_adhoc(tc, "atkey_i/n NYI"); | ||
| Line 1957: MVM_exception_throw_adhoc(tc, "bindkey_i/n NYI"); | 16:11 | ||
| hm | |||
| should've nopasted | |||
| moritz: does it beep on every line or something? | |||
| moritz | diakopter: it visually beeps on every line :-) | ||
| diakopter | hm, where'd chain go | 16:14 | |
| thought I saw a commit from froggs on it | 16:16 | ||
| jnthn: there's still moarboot branch in nqp | 16:17 | ||
| jnthn | ah. No need for it to stay around now. | ||
| Feel free to kill it | |||
| diakopter | should kill all the branches not updated in 11 months or more | 16:18 | |
| timotimo: do you still need the futile-qrpa branch in nqp? | 16:20 | ||
| arnsholt: do you still need the vmarray-list branch in nqp? | |||
| arnsholt | Hmm, not entirely sure | 16:21 | |
| I've been mulling over reviving the work in that branch, since it's a way to close NQP #89 | 16:22 | ||
| Or rather, bits and pieces of it can be used to close it | 16:23 | ||
| dalek | arVM: d7a86ea | jonathan++ | src/ (4 files): Stub in support for container/state handling. For now, just stores away the flags; will need to implement the rest later. |
16:34 | |
| timotimo | i don't think i still need it, i've probably got a local copy of it anyway, diakopter | ||
| yeah, there were some changes from .push/pop/unshift/shift to the nqp:: equivalents which pmichaud measured to be much much faster | 16:35 | ||
| but it didn't seem to matter too much | |||
| arnsholt | True, there's always the local copy | 16:37 | |
| diakopter: Feel free to vmarray-list. I'll resurrect the relevant bits of it if I ever start working on #89 | |||
| diakopter | my current assessment is that performance improvements at the nqp level [or parrot/jvm backends] are way down the list from performance improvements in Moar and its machine code compiler | 16:39 | |
| dalek | arVM: b52552d | jonathan++ | src/core/interp.c: Do VM destruction on nqp::exit. Means we might manage to clean up properly and properly close file handles. |
16:40 | |
| jnthn | Note that Moar and JVM are using the QRPA algorithm already. | 16:41 | |
| diakopter | jnthn: note that currently vm_destroy_instance blocks on every other thread finishing [because gc_global_destruction does] | ||
| which I suppose is the right thing for now | 16:42 | ||
| jnthn | yeah, that patch is more "be less wrong" than "be right"... :) | 16:43 | |
| diakopter | also, vm_destroy_instance needs to enforce that it's only run from the main thread | ||
| arnsholt | jnthn: Yeah, my main motivation for resurrecting the vmarray-list work isn't so much performance as eradicating RPAs and bringing the Parrot backend more into line withJVM (and Moar, I assume) | ||
| jnthn | *nod* | 16:44 | |
| arnsholt | IIRC part of the reason that branch floundered was a bit of bootstrap related hilarity due to changing the REPR compose protocol. That won't be a problem this time | 16:45 | |
| jnthn: Oh, while you're here. Is the appropriate way in NQP to override the behaviour of prefix:<+> to implement a Num method, or a Numeric method? | 16:46 | ||
| JVM expects the former, but it looks like Parrot wants the latter | |||
| jnthn | Hmm | ||
| arnsholt | (Never mind that .Numeric is broken on Parrot =) | 16:47 | |
| jnthn | I'm pretty sure Moar is looking for Num too | ||
| Generally, NQP ain't too into you overriding these things... :) | |||
| arnsholt | Oh, and NQPMu has a method Numeric I think | ||
| jnthn | ah :) | ||
| well, hm ;_ | |||
| diakopter | in case anyone is curious which compiler/optimization books I *don't* yet have... amzn.com/w/F6LXNRJBB4EV | 16:48 | |
| [and a few non-compiler/optimization thingies on my wishlist] | 16:49 | ||
| jnthn | grr, current state is that Rakudo being compiled with Moar dies with 0xc0000374 | ||
| with no error | 16:50 | ||
| And it doesn't die under the debugger. | |||
| diakopter | wut's 0xc0000374 | ||
| heap corruption.. | |||
| double free? | |||
| maybe ASan would help | 16:51 | ||
|
16:52
jnap joined
|
|||
| jnthn | maybe, yes | 16:53 | |
| diakopter | yoleaux: where are you | ||
| jnthn | Though, just doing a fix for the valgrind stuff FROGGS noted the other day | ||
| Or at least, what I hope will be one | |||
| Maybe that helps | |||
| diakopter | FROGGS: there are a few things wrong with your chain gist gist.github.com/FROGGS/9bf9c160196cec89f617 | 16:54 | |
| jnthn | oh, that helped... | ||
| diakopter | FROGGS: $ops.push is wrong, MAST::InstructionList.new(:result is wrong, should leave the .as_mast calls with :want instead of wrapping with .coerce | 16:56 | |
| jnthn | Error while compiling op p6store (source text: "="): No registered operation handler for 'p6store' | ||
| :) | |||
| diakopter | :D | ||
| dalek | arVM: 1857df2 | jonathan++ | src/core/ (2 files): Make sure we've a big enough arg buffer. Avoids find_method's late-bound case writing past the end of an arg buffer. Noticed by FROGGS++ from valgrind++ output. |
||
| diakopter | that should be fun | 16:57 | |
| jnthn | yeah... | ||
| I just love the smell of CPS-by-hand in the evening... :) | |||
| diakopter | why does p6store need that | ||
| jnthn | 'cus it can arrange a call to .STORE | 16:58 | |
| The good thing is that this stuff is rather efficient in Moar :) | |||
| I may work on it, but I think a little shopping and dinner searching/eating comes first :) | 16:59 | ||
| diakopter read that as "eating coma" | 17:02 | ||
| jnthn | The coma comes *after* the eating:) | 17:06 | |
| & | 17:12 | ||
| moritz | linking moar | 17:44 | |
| ./libmoar.so: undefined reference to `MVM_num_nan' | |||
| ./libmoar.so: undefined reference to `MVM_num_isnanorinf' | |||
| same for posinf and neginf | |||
| what am I doing wrong? | 17:45 | ||
| oh, just needed to reconfigure | |||
| never mind | |||
| TimToady keeps thinking our makefiles ought to be able to figure out when a reconfigure is necessary | 17:50 | ||
| make is about tracking dependencies, after all | |||
| moritz | rakudo and nqp have that mechanism | 17:51 | |
| (at least for parrot-based builds) | |||
| probably just needs porting | |||
| FROGGS | diakopter: feel free to take my gist, fix and push it :o) | 18:02 | |
| as long as I can't test (or understand it fully), I won't push | 18:03 | ||
|
18:06
lizmat joined
18:09
colomon joined
|
|||
| FROGGS | moritz: yeah, I added files (wrt `MVM_num_nan') | 18:22 | |
| current segfault: gist.github.com/FROGGS/700836ddc1a131acc8c5 | 18:36 | ||
| (updated with gdb out, which is nicer) | 18:37 | ||
| this "patch" still works around it: gist.github.com/FROGGS/603692fde738639fc0d3 | 18:39 | ||
| damn, we really need to properly close filehandles... | 18:42 | ||
| moar: 3rdparty/libuv/src/unix/loop.c:150: uv__loop_delete: Assertion `!((((*(&(loop)->active_reqs))[0]) == (&(loop)->active_reqs)) == 0)' failed. | |||
|
18:57
lizmat joined
19:08
ssutch joined
|
|||
| jnthn back | 19:43 | ||
| diakopter | FROGGS: yeah, closing filehandles... I've seen that while debugging in VS | 20:09 | |
| but not otherwise | |||
| moritz | Stage start : 0.000 | 20:12 | |
| *** glibc detected *** /home/moritz/p6/rakudo/install/bin/moar: double free or corruption (out): 0x00002b52a6b8cc60 *** | |||
| diakopter | sounds like a job for asan | ||
| jnthn | .oO( pain in the asan ) |
||
| moritz: Is that very latest Moar? | 20:13 | ||
| I fixed a buffer overrun earlier. | |||
| moritz | This is MoarVM version 2013.10-110-g1857df2 | ||
| FROGGS | moritz: I bet this solves it: gist.github.com/FROGGS/603692fde738639fc0d3 | ||
| moritz | which seems up-to-date | 20:14 | |
| FROGGS | moritz: btw, after applying that "patch", you just need to `make install` in moar, and type make in rakudo repo | ||
| no need to reconfigure anything | |||
| diakopter | FROGGS: you can remove that MVMROOT since you're not using orig anymore | ||
| moritz | FROGGS: I'm trying | 20:15 | |
| FROGGS | diakopter: I could, but finetuning a (temporary?) hack doesn't make much sense | ||
| moritz | FROGGS: nope, still get the double free | ||
| FROGGS | diakopter: but you are totally right | ||
| moritz: weird | |||
| diakopter | FROGGS: why is it temporary? | ||
| FROGGS | moritz: do you have valgrind or gdb? | 20:16 | |
| diakopter: because it should not be needed | |||
| hmmm, I wonder | |||
| moritz: is that an optimized build of moarvm? | 20:17 | ||
| moritz | FROGGS: I'm not sure | ||
| FROGGS | nqp-m --show-config | grep config | ||
| nqp-m: say(nqp::backendconfig()<config>) | 20:18 | ||
| camelia | nqp-moarvm: OUTPUTĀ«--prefix=/home/p6eval/nqp-moarvm/install --optimizeā¤Ā» | ||
| FROGGS | see | ||
| :o) | |||
| moritz | FROGGS: no optimize | ||
| diakopter | moritz: I hate to ask, but did you try realclean or reset/clean or whatever | 20:19 | |
| moritz | FROGGS: gist.github.com/moritz/7221834 | ||
| diakopter: I did a realclean pretty recently | 20:20 | ||
| but I can try again | |||
| FROGGS | moritz: but that is at least related | ||
| moritz | I hope parallel builds of Moar aren't discouraged? | ||
| FROGGS | hmmm | 20:21 | |
| jnthn | I hope not :) | ||
| moritz | diakopter: still present after realclean + git clean -xdf | ||
| anything else I can do? valgrind it? | |||
| jnthn | Given if you've a 24-way you can build Moar in several seconds :P | ||
| FROGGS | parallel did work the last time I tried | ||
| moritz: valgrind was not that useful for me in this case | |||
| jnthn | moritz: valgrind is worth a try; it was what led to the buffer overrun fix I did earlier | ||
| FROGGS | it is just that figure_filename destroys the filename string | 20:22 | |
| diakopter | oh, it shouldn't.. | ||
| moritz | oh, it's very useful, because it tells me I haven't install valgrind yet on that machine :-) | ||
| FROGGS | I mean, it does not free it, it just scrambles it or so | ||
| so that something that uses the string afterwards blows up | |||
| diakopter | FROGGS: I don't understand the change to push_op you made | ||
| moritz | ==32085== Invalid free() / delete / delete[] / realloc() | 20:23 | |
| ==32085== at 0x4C2A82E: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) | |||
| ==32085== by 0x4F381D1: MVM_file_exists (fileops.c:170) | |||
| ==32085== by 0x4F202C1: figure_filename (loadbytecode.c:38) | |||
| FROGGS | diakopter: about :result? | ||
| moritz | same backtrace as gdb gave me | ||
| FROGGS | diakopter: I just tried to mimic the parrot version | ||
| diakopter | yeah; why does it add a call | ||
| that call isn't going to do anything | 20:24 | ||
| FROGGS | hmmm | ||
| diakopter: no idea, really | |||
| diakopter | I don't see how it would emit something that could compile | ||
|
21:14
ssutch joined,
harrow joined,
tadzik joined,
ingy joined
21:16
jnap joined
21:24
BenGoldberg joined
22:19
colomon joined
22:49
BenGoldberg joined
23:05
FROGGS joined
23:42
jnap1 joined
23:50
arnsholt_ joined
23:53
JimmyZ_ joined
23:54
Woodi_ joined
23:57
eternaleye_ joined
|
|||