01:52 ilbot3 joined 02:00 greppable6 joined
Geth MoarVM: samcv++ created pull request #661:
Grapheme iterator cached
02:05
02:32 travis-ci joined
travis-ci MoarVM build canceled. Samantha McVey 'Merge pull request #652 from MasterDuke17/add_error_string_to_failed_to_resolve_exception 02:32
travis-ci.org/MoarVM/MoarVM/builds/267683413 github.com/MoarVM/MoarVM/compare/1...b339553405
02:32 travis-ci left 03:37 Ven`` joined 04:05 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'add valgrind' 04:05
travis-ci.org/samcv/MoarVM/builds/268593920 github.com/samcv/MoarVM/compare/9e...6ff257f109
04:05 travis-ci left
samcv i'm trying to fix the segfault that happens on some of our builds. i was able to replicate it only once. and i think it only appears with certain compilation options 04:17
well actually never reproduced ./Configure.pl in nqp directory + make. but i ran the command that segfaulted during nqp compilation and got a segfault once with some variety of moar compilation options 04:18
trying to pin it down
ok and now i'm getting tests passing even on travis. for no reason 04:27
04:31 travis-ci joined
travis-ci MoarVM build passed. Samantha McVey 'try and avoid the odd version error' 04:31
travis-ci.org/samcv/MoarVM/builds/268596943 github.com/samcv/MoarVM/compare/00...bcff83845e
04:31 travis-ci left
samcv why... 04:33
i didn't do anything. usually like all the clang builds failed on travis. now it all passed and i didn't do anything
04:33 travis-ci joined
travis-ci MoarVM build failed. Elizabeth Mattijsen 'Fix spello' 04:33
travis-ci.org/MoarVM/MoarVM/builds/268388674 github.com/MoarVM/MoarVM/compare/0...2b21ac5b58
04:33 travis-ci left
samcv while this one totally fails 04:33
trying to get it so we can get gdb printing out backtraces of coredumps 05:22
except in my branch i'm using to try and test this, it's not segfaulting... ughhhhh but 05:25
05:33 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'Try and enable coredumps and gdb tracing of it' 05:33
travis-ci.org/samcv/MoarVM/builds/268603901 github.com/samcv/MoarVM/compare/8d...36eecf1854
05:33 travis-ci left 05:49 leont joined 06:45 lizmat joined 07:08 lizmat joined
Geth MoarVM: samcv++ created pull request #662:
Ignore this PR. trying to debug the segfault on travis
07:37
07:47 travis-ci joined
travis-ci MoarVM build errored. Samantha McVey 'don't fail if can't cat' 07:47
travis-ci.org/samcv/MoarVM/builds/268619411 github.com/samcv/MoarVM/compare/31...cb23ebcdf5
07:47 travis-ci left 08:17 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'actually only run the cat command on linux' 08:17
travis-ci.org/samcv/MoarVM/builds/268623510 github.com/samcv/MoarVM/compare/84...d2f51306cc
08:17 travis-ci left 08:58 lizmat joined 09:01 travis-ci joined
travis-ci MoarVM build passed. Samantha McVey 'more conditional in travis' 09:01
travis-ci.org/samcv/MoarVM/builds/268628566 github.com/samcv/MoarVM/compare/7f...a5a7187ab3
09:01 travis-ci left
Geth MoarVM/jit_nativecall: 7eb4703b43 | (Stefan Seifert)++ | 5 files
Fix hang on GC when unboxing a native functions return value

We need to unblock GC on the current thread after we return from the native function and before we box the return value. Otherwise if GC is triggered by the boxing function, we will hang as GC is blocked.
09:17
MoarVM/jit_nativecall: b5f40b2437 | (Stefan Seifert)++ | src/core/nativecall.c
Support pointer return values in JITed calls to native functions
09:51 lizmat joined 10:33 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'put core dumps in $MOAR_PREFIX instead' 10:33
travis-ci.org/samcv/MoarVM/builds/268644977 github.com/samcv/MoarVM/compare/99...f3a3577581
10:33 travis-ci left 10:51 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'put core dumps in $MOAR_PREFIX instead' 10:51
travis-ci.org/samcv/MoarVM/builds/268644977 github.com/samcv/MoarVM/compare/99...f3a3577581
10:51 travis-ci left 10:53 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'Manually force us to make a coredump by breaking Moar' 10:53
travis-ci.org/samcv/MoarVM/builds/268648530 github.com/samcv/MoarVM/compare/c2...e1d45d7586
10:53 travis-ci left 10:56 Ven`` joined 11:43 lizmat joined 11:48 dogbert11 joined 11:54 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'Fix escaped quotation marks' 11:54
travis-ci.org/samcv/MoarVM/builds/268656745 github.com/samcv/MoarVM/compare/f4...971a12a9b5
11:54 travis-ci left
Geth MoarVM/jit_nativecall: 0cd3f70425 | (Stefan Seifert)++ | src/core/nativecall.c
JIT calls to native functions returning UTF-8 encoded strings
12:33
12:37 lizmat joined
samcv night o/ will get back to work on this tomrrow. when i'm done we will get stacktraces when moarvm dumps core 12:44
on travis, and then i will be happy
lizmat samcv: good night! 13:25
oops
continue sleeping! :-)
13:52 lizmat_ joined 14:41 buggable joined 15:10 AlexDaniel joined
Geth MoarVM: 8dc1fc0e71 | (Samantha McVey)++ | .travis.yml
Generate stacktraces on Travis CI when getting a segfault

On Linux we enable coredumps, and then set the coredumps folder to our build directory. It is then set so that gdb will print out a stacktrace from the coredumps if the build fails.
18:38
MoarVM: 1fe9beb383 | (Samantha McVey)++ (committed using GitHub Web editor) | .travis.yml
Merge pull request #662 from samcv/segfault-check

Generate stacktraces on Travis CI when getting a segfault
samcv I will find you segfault!!! you can't hide
mst hehehehehe 18:39
samcv: SHOW YOURSELF, YOU COWARD
samcv mst, when i made the PR everything passed. but obv now that it's merged now the segfault is back since it only happens on the master's Travis... 18:47
but i got the stacktrace :)
hahaha! travis-ci.org/MoarVM/MoarVM/jobs/2...1486-L1545
got you
mst \o/ 18:49
18:54 travis-ci joined
travis-ci MoarVM build failed. Samantha McVey 'Merge pull request #662 from samcv/segfault-check 18:54
travis-ci.org/MoarVM/MoarVM/builds/268732495 github.com/MoarVM/MoarVM/compare/e...e9beb38307
18:54 travis-ci left
Geth MoarVM: 605746489c | (Samantha McVey)++ | src/strings/ops.c
Remove unneeded MVMROOT from KMP algorithm

  @zhuomingliang++
18:54
19:08 travis-ci joined
travis-ci MoarVM build passed. Samantha McVey 'Remove unneeded MVMROOT from KMP algorithm 19:08
travis-ci.org/MoarVM/MoarVM/builds/268735626 github.com/MoarVM/MoarVM/compare/1...5746489cf4
19:08 travis-ci left 19:11 AlexDaniel joined
dogbert11 samcv: was the NFG checker functionality completed, i.e. can I use it? 20:06
tried it on AlexDaniel's golfed bug and the code SEGV's when I use the NFG checker functionality 20:08
samcv oh yeah it should work 20:09
dogbert11 but it doesn't, unless it's uncovering some other bug
samcv hm what's AlexDaniel's bug
dogbert11 sec 20:10
here: irclog.perlgeek.de/perl6-dev/2017-...i_15071903
there's a gist a bit further down on that page
trying AlexDaniel's example the code SEGV's at MVM_string_gi_get_grapheme (tc=0x804c588, gi=0xbfffda80) at src/strings/iter.h:118 20:11
I have set #define MVM_DEBUG_NFG 1 and #define MVM_DEBUG_NFG_STRICT 0 20:13
samcv ok
you got more of the stack trace? 20:14
where is it before MVM_string_gi_get_grapheme? what line/file called it? 20:15
dogbert11 gist.github.com/dogbert17/889cd587...f666cc9e99
samcv oh
well either it's GCing one of the strings or there's a problem with the source string 20:16
ok 20:19
trying to replicate
dogbert11 ++samcv
I was hoping that the checker would help uncover AlexDaniel's original problem 20:20
samcv yeah i'm guessing it did 20:22
which caused it to segfault
dogbert11, do you know where strings are created when we read utf8? 20:24
we should put a NFG_CHECK(tc, string, "utf8-decode") or something there 20:25
since the string is created before the concat is called
dogbert11 I can't say that I do :(
samcv i'll start adding it places 20:26
dogbert11 cool, I also tried a spectest run with the NFG flag set, there were many failures 20:28
samcv one thing at a time :) 20:30
wow i got 20:32
invilid thread id in work pass
MoarVM panic: Internal error: invalid thread ID -951500821 in GC work pass 20:33
# after reaching 6795
looks like there may be a GC problem
dogbert11 cool 20:34
samcv i'm going to enable STRICT 20:36
though it's crashing in re_nfg. but maybe somewhere earlier it could segfault since it will check each grapheme manually between it and the re_nfg'd form
dogbert11 I get a SEGV at the same place with strict set to 1 20:39
samcv well there are 2 threads 20:47
oh got another 20:48
MoarVM oops: MVM_nfg_get_synthetic_info call requested a synthetic codepoint that does not exist.
dogbert11, is there a way to get moarvm to dump its stack for MoarVM oops? i mean it prints a perl 6 trace 20:49
but not always helpful
dogbert11 perhaps nwc10 knows 20:51
are you running the program under gdb? 20:53
samcv lldb is givinng me beter backtraces. uh i'm looking at the coredump right now 20:55
gdb wasn't giving all the symbols for me
sec
dogbert11, sweet. i got a shell function that grabs the last coredump and outputs a backtrace on all threads with lldb or gdb 20:59
ok cool that makes things easier 21:02
dogbert11 let's hope something interesting turns up :) 21:03
samcv using 'print $++, " "' so i get less lines on my screen 21:04
uh valgrind isn't happy
seems: out = (MVMString *)MVM_repr_alloc_init(tc, tc->instance->VMString); 21:05
dogbert11 heh 'Conditional jump or move depends on uninitialised value(s)' 21:09
samcv dogbert11, what distro do you have?
dogbert11 I'm running Linux Mint
samcv gist.github.com/e35cc9db2692f8fd74...394a0bb167 21:10
this should probably work for you
as long as `cat /proc/sys/kernel/core_pattern` shows /usr/lib/systemd/systemd-coredump
will print out the full stacktrace of the last coredump 21:11
dogbert11 cool, will try it out 21:14
samcv dogbert11, i'm thinking of making perl6-valgrind-m have a MVM_VALGRIND_OPTS variable that can let you define valgrind options 21:54
does that sound like an OK name?
getting some more useful info with --track-origins=yes 21:56
gist.github.com/846287070706906fce...031c806b20 21:57
22:04 zakharyas joined
samcv dogbert11, i iterated the whole string before calling re_nfg, and i get a segfault as well 22:23
dogbert11 cool, so do you think it's a GC problem? 22:32
22:33 Ven`` joined
dogbert11 also if you're making changes to perl6-valgrind-m remove --full-cleanup while you're at it. That option is busted 22:33
22:50 lizmat joined
samcv ok 22:59
dogbert11, done 23:07
dogbert11 samcv++ 23:17
Geth MoarVM: 1776b561f4 | (Samantha McVey)++ | 2 files
Add MVM_DEBUG_NFG in more places. Initialize a few pointers as NULL

  * Initialize a few pointers to NULL in NFG_checker() and re_nfg()
  * In MVM_string_replace() don't pop MVMROOT until after debug functions run
  * Move the conditional defines for MVM_DEBUG_NFG into strings/ops.h so we can
   include them in files other than strings/ops.c
23:32
samcv dogbert11, pull the latest changes. i fixed some of the valgrind errors
oh wow this is pretty nice 23:42
i did find some error by compiling with clang uh -fsanitize=address
from my KMP algorithm. darn
i thought it fixed that. well valgrind doesn't get angry at least
i don't think it's causing our problem but 23:43
it was only off by a few bytes. ok i think i know why this was happening sweet 23:45
that was super useful
and wasn't caught by valgrind
23:48 quotable6 joined
Geth MoarVM: af996dfcde | (Samantha McVey)++ | src/strings/ops.c
KMP: fix off by one alloca allocation

The jump table needs to be one more than the length of the needle, instead of the length of the needle. It is written to at the very end of the patterns processing.
23:48
samcv dogbert11, ok yeah it has to be a gc problem. with this clang instrumentation. it tells me it got a read after free, and showed me the exact line 23:50
` gi->strands_remaining = s->body.num_strands - 1;`
trying to access the number of strands but the string has already been freed 23:51
dogbert11 interesting, something for jnthn perhaps 23:53
samcv dogbert11, gist.github.com/samcv/0bfd825ac061...f69179fe87