02:37
jimmy_ joined
03:38
jimmy_ joined
04:28
zakharyas joined
06:11
kjs_ joined
07:16
FROGGS joined
07:37
woolfy joined
08:17
woolfy left
08:20
zakharyas joined
11:04
ggoebel111111119 joined
12:21
JimmyZ joined
13:27
brrt joined
|
|||
brrt | \o | 13:27 | |
jnthn | o/ brrt | 13:29 | |
brrt | \o jnthn | 13:30 | |
back from holiday? | |||
jnthn | Yes | ||
And loaded up with $dayjob... | |||
:S | |||
brrt | nice :-) how was it? | ||
ah that happens | |||
:-) | |||
jnthn | Vacation was nice :) | ||
.nz is very pretty | |||
And with good pubs :) | 13:31 | ||
brrt | you went to new zealand? | ||
jnthn | Yeah | ||
brrt | awesome | ||
jnthn | It's....a long way. :) | ||
But worth it. | |||
brrt | i'd love to go once | ||
jnthn | Stopped in KL and Singapore as city breaks on the way there/back to make the trip more tolerable. :) | ||
brrt | i see :-) | ||
jnthn | They were also pretty cool. Especially Singapore...it has great food. | 13:32 | |
brrt | kuala lumpur and singapore are not that remote from each other, are they | ||
or at least from the european perspective | |||
jnthn | Pretty close, yeah | ||
brrt | i'm working on something that i want to surprise #perl6 with... but i wanted to ask you about something | 13:33 | |
jnthn | :) | ||
brrt | basically, rakudo currently hard-codes all the flags used to compile-and-link something with moarvm | ||
in fact, those flags are all determined during compilation of moarvm | 13:34 | ||
in fact, during Configure.pl's run | |||
jnthn | Right | ||
brrt | so we could embed these flags in moarvm - as a compile-time-constant - and have moarvm carry them over | 13:35 | |
that would make it easer for third parties to #include <moar.h> and link libmoar.so :-) | |||
or libmoar.dll, whichever you fancy | |||
jnthn | Isn't that already done? | 13:36 | |
nqp --show-config | |||
That uses the info... | |||
brrt | hmm let me check | 13:37 | |
hmm | 13:38 | ||
how does that even work | |||
jnthn | MAGIC AND HIGH PONIES | ||
brrt | clearly :-) | ||
jnthn | I think there's a MoarVM op that obtains it | ||
brrt | ok, that is a basis to do that | ||
jnthn | And we compile in the data | ||
Likely it's mapped to some nqp:: op on Moar too | 13:39 | ||
brrt | :-) | ||
ok, we can use that... i can use that | |||
jnthn | ;) | 13:42 | |
jnthn looks forward to seeing the secret project. )) | |||
brrt hopes not to have given a too great impression yet | 13:45 | ||
:-) | |||
13:50
zakharyas joined
14:28
lizmat joined
14:39
woolfy joined
14:45
JimmyZ joined
14:56
synopsebot joined
15:33
kjs_ joined
15:35
Util joined
|
|||
timotimo | i think i know what brrt is up to %) | 16:02 | |
jnthn | Destroying the universe? /o\ | 16:07 | |
timotimo | if so, then only as an accidental byproduct | 16:10 | |
japhb | Now, now, no destroying the universe before we've all had a good breakfast. Because if I'm going to pop out of existence, I at least want to be well fed. | 16:22 | |
.oO( The Surreal Life ) |
|||
[Coke] | still lots of jit failures vs. non-jit | 16:51 | |
timotimo | jnthn: do you think we should do analysis based on "this variable has been checked with that operation in the dominance parent and thus we can assume this here fact holds true"? | ||
16:52
zakharyas joined
|
|||
[Coke] | github.com/coke/perl6-roast-data/b....out#L2812 vs. github.com/coke/perl6-roast-data/b....out#L2835 | 16:52 | |
timotimo | er ... do you think we should do it soon | ||
[Coke] | non jit seems to be memory errors, jit seems to be segfaults. | ||
timotimo | [Coke]: can you reproduce the failure in delete-adverb with any of MVM_SPESH_DISABLE and MVM_JIT_DISABLE set? | 16:53 | |
16:53
kjs_ joined
|
|||
[Coke] | timotimo: assuming that runs the same code as a non-jit moar, no. :) | 16:54 | |
one sec. | |||
I can't duplicate the error outside of my test run, even. | 16:55 | ||
timotimo | oh, of course m) | 16:56 | |
[Coke] | but it happens pretty regularly inside the test runs. | ||
timotimo | that was a big derp | ||
[Coke] | here: | 16:58 | |
echo "S32-hash/delete-adverb.t" > a ; PERL6LIB=lib perl t/spec/test_summary rakudo.moar a | |||
that uses the test_summary harness to run that one file. That reliably gives the malloc error here on the mac. | 16:59 | ||
still does with MVM_SPESH_DISABLE and MVM_JIT_DISABLE both set to 1 | |||
timotimo | wow. | 17:00 | |
let me try ... | |||
[Coke] | er, one sec. | 17:01 | |
timotimo | yeah, on my linux box i can't reproduce that :( | ||
[Coke] | ok. with MVM_SPESH_DISABLE=1 OR MVM_JIT_DISABLE=1, it doesn't give the memory error. | ||
(I had added them before the -echo-, not the "perl t/spec...") | 17:02 | ||
timotimo | ah | ||
jnthn | What about just MVM_JIT_DISABLE? | ||
[Coke] | timotimo: AHAHAHAHAHAHAAH | 17:03 | |
timotimo | mac should have ulimit, too, right? ulimit -c unlimited and inspect the core dump with gdb? | ||
what's wrong now? %) | |||
wrong .... or very right perhaps? | |||
[Coke] | I just did a perlbrew invocation. and the error went away. and now I cannot make it come back in this bash. | 17:04 | |
timotimo | so environment variable related trouble? | ||
LIBUV_CRASH_SOMETIMES=1 | 17:05 | ||
jnthn | Or different env var count leads to slightly different memory layout leading to hiding/revealing the issue... | ||
[Coke] | jnthn: that woudl be very persnickety. confirmed. fresh shell, dies repeatedly. if I do "perlbrew off", it works. | ||
jnthn | [Coke]: What about just with MVM_JIT_DISABLE, and not MVM_SPESH_DISABLE? | 17:06 | |
[Coke]: Could also try just with MVM_SPESH_INLINE_DISABLE=1 and MVM_SPESH_OSR_DISABLE=1 | |||
(and MVM_SPESH_DISABLE unset) | |||
[Coke] | jnthn: just MVM_JIT_DISABLE=1; no errors. | 17:08 | |
just MVM_SPESH_INLINE_DISABLE=1; no errors | 17:09 | ||
just MVM_SPESH_OSR_DISABLE=1; no errors | |||
jnthn | grmbl | ||
That doesn't, sadly, narrow it down as much as I'd hoped... | 17:10 | ||
timotimo | we should write a little shell script that sets different env vars to different length values | ||
[Coke] | timotimo: this particular failure is a memory issue, not a core dump. | ||
timotimo | memory issue, as in? | ||
[Coke] | let me see if I can run gdb instead of moar here. | ||
jnthn | Though we may just be hiding the issue by disabling features rather than actually turning off features that caues the issue... | ||
[Coke] | S32-hash/delete-adverb.t..moar(56870,0x7fff7987b310) malloc: *** error for object 0x7fedef6f2b20: pointer being freed was not allocated | 17:11 | |
timotimo | ah | ||
[Coke] | I feel like I should rename this box "canary". :) | ||
jnthn | .oO( And I can 'cus it's mine ;) ) |
17:12 | |
[Coke] | DOH. | 17:15 | |
(jnthn's pun) | |||
ok, I think I figured out how to make this launch lldb (os x, so no gdb)... | |||
... or not. seems to be hanging now. | 17:16 | ||
googling to find how to diagnose this, found this quote: | 17:17 | ||
We found the issue. We were using memset on the z variable which worked fine in 32-bit but it was clearing the wrong size of its memory block and corrupting the 64-bit block. ā GW.Rodriguez Jan 14 '13 at 20:26 | |||
ooh, developer.apple.com/library/mac/do...Debug.html (more env vars) | 17:18 | ||
of course, if I enable, say, MallocStackLoggingNoCompact ... the error goes away. :P | 17:20 | ||
japhb | [Coke]++ # Dogged persistence | 17:26 | |
[Coke] | ... and with that, I'm out. :) | 17:28 | |
(seriously, time for walkies and food) | |||
ah, one more important find. even BARFTACOS=1 makes the error go away. | 17:34 | ||
Does moar run multiple threads by default? | 17:43 | ||
jnthn | No | 17:45 | |
[Coke] | changing "plan 131" to "plan *" in the test file makes the error go away. :( | 17:48 | |
jnthn | [Coke]: No look running it under the debugger and getting a stack trace? | 17:49 | |
[Coke] | it's so finicky to get the error to occur in the first place. :| if I change ./perl6 to start with "exec lldb --", it seems to hang. | 17:50 | |
woohoo. | 17:51 | ||
jnthn: gist.github.com/coke/a6f7f41f05ee4dd4a64f | 17:52 | ||
jnthn | [Coke]: What if you "bt" there? | 17:53 | |
[Coke] | refresh - there's a bt.txt file there! | ||
I set a breakpoint at the method it said to, reran, got the error, then did the bt. | 17:54 | ||
jnthn | eek | ||
Unfortunately, there's multiple gc_free methods, and this build hasn't line numbers | 17:55 | ||
But I only need to consider gc_free methods that call MVM_free... | |||
[Coke] | aside from line numbers, anything else I can provide? | 18:02 | |
I might be able to do a debug build, but I suspect that will also hide the bug. :) | |||
jnthn | [Coke]: The file/line number is enough | ||
[Coke]: Though... | |||
18:02
FROGGS joined
|
|||
jnthn | [Coke]: Hm, no, I think there's nothing more that can be done. | 18:03 | |
[Coke]: Was going to say if you can walk up the frames, and look at an arg - but there's not enough info around to do that, I think. | |||
There's only so many gc_free methods that call MVM_free | 18:04 | ||
Knowing which one it is would help a good bit, but also this means it's likely decreasing nursery size will make the bug show up more too, perhaps | 18:07 | ||
[Coke] | doing a rebuild with debug. | ||
jnthn | [Coke]++ | 18:08 | |
[Coke] | gist.github.com/coke/a6f7f41f05ee4dd4a64f updated. | 18:30 | |
it's MVMString's gc_free. | 18:32 | ||
18:48
kjs_ joined
|
|||
[Coke] | jnthn: opened github.com/MoarVM/MoarVM/issues/154 | 19:07 | |
timotimo | but how does a b0rked pointer get in there? | 19:08 | |
can you check out what the MVMString's data looks like? | |||
usually a 32bit-per-grapheme storage, i believe | 19:09 | ||
[Coke] | (lldb) p *str | 19:11 | |
error: Couldn't materialize: couldn't get the value of variable str: no location, value may have been optimized out | |||
timotimo | ah | 19:13 | |
i bet if you build with more debug, less optimization the problem goes away, too | |||
[Coke] | I can't get output on anything. :( | 19:17 | |
might be PEBKAC with lldb. | 19:18 | ||
19:20
kjs_ joined
|
|||
timotimo | hum :\ | 19:20 | |
may want to try if the symbol is available in one of the outer frames? | 19:21 | ||
[Coke] | --debug might not be sufficient for OSX debug stuff. | 19:23 | |
I need whatever xcode does when you pick Debug mode, I guess. | 19:24 | ||
timotimo | probably --optimize=0? | 19:26 | |
[Coke] | trying. | 19:30 | |
nope, no help | 19:43 | ||
timotimo | >_< | 19:44 | |
20:18
colomon joined
20:53
oetiker joined
20:56
Ven joined
21:06
kjs_ joined
|
|||
timotimo | what does takedispatcher being null or not null mean? is that about nextsame and friends? | 23:14 | |
gist.github.com/timo/de0ef5d3f5e159117d2b | 23:47 | ||
argh argh | |||
[Coke] | urk urk | 23:49 | |
23:50
JimmyZ joined
|
|||
JimmyZ | hmm, It'd be nice if we will have static optimization when writing to *.movarvm, like `set ` op removal | 23:53 | |
timotimo | not terribly easy | 23:55 | |
most of these sets are hllize or deconts |