Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-10-29

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

All times shown according to UTC.

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

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