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