[01:52] *** ilbot3 joined
[02:00] *** greppable6 joined
[02:05] <Geth> ¦ MoarVM: samcv++ created pull request #661: Grapheme iterator cached

[02:05] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/661

[02:32] *** travis-ci joined
[02:32] <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> https://travis-ci.org/MoarVM/MoarVM/builds/267683413 https://github.com/MoarVM/MoarVM/compare/13bc298d66c1...78b339553405

[02:32] *** travis-ci left
[03:37] *** Ven`` joined
[04:05] *** travis-ci joined
[04:05] <travis-ci> MoarVM build failed. Samantha McVey 'add valgrind'

[04:05] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268593920 https://github.com/samcv/MoarVM/compare/9e1800278a1f...006ff257f109

[04:05] *** travis-ci left
[04:17] <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:18] <samcv> 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] <samcv> trying to pin it down

[04:27] <samcv> ok and now i'm getting tests passing even on travis. for no reason

[04:31] *** travis-ci joined
[04:31] <travis-ci> MoarVM build passed. Samantha McVey 'try and avoid the odd version error'

[04:31] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268596943 https://github.com/samcv/MoarVM/compare/006ff257f109...8dbcff83845e

[04:31] *** travis-ci left
[04:33] <samcv> why...

[04:33] <samcv> 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
[04:33] <travis-ci> MoarVM build failed. Elizabeth Mattijsen 'Fix spello'

[04:33] <travis-ci> https://travis-ci.org/MoarVM/MoarVM/builds/268388674 https://github.com/MoarVM/MoarVM/compare/0b364cb850b6...ef2b21ac5b58

[04:33] *** travis-ci left
[04:33] <samcv> while this one totally fails

[05:22] <samcv> trying to get it so we can get gdb printing out backtraces of coredumps

[05:25] <samcv> except in my branch i'm using to try and test this, it's not segfaulting... ughhhhh but

[05:33] *** travis-ci joined
[05:33] <travis-ci> MoarVM build failed. Samantha McVey 'Try and enable coredumps and gdb tracing of it'

[05:33] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268603901 https://github.com/samcv/MoarVM/compare/8dbcff83845e...3136eecf1854

[05:33] *** travis-ci left
[05:49] *** leont joined
[06:45] *** lizmat joined
[07:08] *** lizmat joined
[07:37] <Geth> ¦ MoarVM: samcv++ created pull request #662: Ignore this PR. trying to debug the segfault on travis

[07:37] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/662

[07:47] *** travis-ci joined
[07:47] <travis-ci> MoarVM build errored. Samantha McVey 'don't fail if can't cat'

[07:47] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268619411 https://github.com/samcv/MoarVM/compare/3136eecf1854...84cb23ebcdf5

[07:47] *** travis-ci left
[08:17] *** travis-ci joined
[08:17] <travis-ci> MoarVM build failed. Samantha McVey 'actually only run the cat command on linux'

[08:17] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268623510 https://github.com/samcv/MoarVM/compare/84cb23ebcdf5...7fd2f51306cc

[08:17] *** travis-ci left
[08:58] *** lizmat joined
[09:01] *** travis-ci joined
[09:01] <travis-ci> MoarVM build passed. Samantha McVey 'more conditional in travis'

[09:01] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268628566 https://github.com/samcv/MoarVM/compare/7fd2f51306cc...99a5a7187ab3

[09:01] *** travis-ci left
[09:17] <Geth> ¦ MoarVM/jit_nativecall: 7eb4703b43 | (Stefan Seifert)++ | 5 files

[09:17] <Geth> ¦ MoarVM/jit_nativecall: Fix hang on GC when unboxing a native functions return value

[09:17] <Geth> ¦ MoarVM/jit_nativecall:

[09:17] <Geth> ¦ MoarVM/jit_nativecall: We need to unblock GC on the current thread after we return from the

[09:17] <Geth> ¦ MoarVM/jit_nativecall: native function and before we box the return value. Otherwise if GC is

[09:17] <Geth> ¦ MoarVM/jit_nativecall: triggered by the boxing function, we will hang as GC is blocked.

[09:17] <Geth> ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/7eb4703b43

[09:17] <Geth> ¦ MoarVM/jit_nativecall: b5f40b2437 | (Stefan Seifert)++ | src/core/nativecall.c

[09:18] <Geth> ¦ MoarVM/jit_nativecall: Support pointer return values in JITed calls to native functions

[09:18] <Geth> ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/b5f40b2437

[09:51] *** lizmat joined
[10:33] *** travis-ci joined
[10:33] <travis-ci> MoarVM build failed. Samantha McVey 'put core dumps in $MOAR_PREFIX instead'

[10:33] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268644977 https://github.com/samcv/MoarVM/compare/99a5a7187ab3...c2f3a3577581

[10:33] *** travis-ci left
[10:51] *** travis-ci joined
[10:51] <travis-ci> MoarVM build failed. Samantha McVey 'put core dumps in $MOAR_PREFIX instead'

[10:51] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268644977 https://github.com/samcv/MoarVM/compare/99a5a7187ab3...c2f3a3577581

[10:51] *** travis-ci left
[10:53] *** travis-ci joined
[10:53] <travis-ci> MoarVM build failed. Samantha McVey 'Manually force us to make a coredump by breaking Moar'

[10:53] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268648530 https://github.com/samcv/MoarVM/compare/c2f3a3577581...f4e1d45d7586

[10:53] *** travis-ci left
[10:56] *** Ven`` joined
[11:43] *** lizmat joined
[11:48] *** dogbert11 joined
[11:54] *** travis-ci joined
[11:54] <travis-ci> MoarVM build failed. Samantha McVey 'Fix escaped quotation marks'

[11:54] <travis-ci> https://travis-ci.org/samcv/MoarVM/builds/268656745 https://github.com/samcv/MoarVM/compare/f4e1d45d7586...8a971a12a9b5

[11:54] *** travis-ci left
[12:33] <Geth> ¦ MoarVM/jit_nativecall: 0cd3f70425 | (Stefan Seifert)++ | src/core/nativecall.c

[12:33] <Geth> ¦ MoarVM/jit_nativecall: JIT calls to native functions returning UTF-8 encoded strings

[12:33] <Geth> ¦ MoarVM/jit_nativecall: review: https://github.com/MoarVM/MoarVM/commit/0cd3f70425

[12:37] *** lizmat joined
[12:44] <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] <samcv> on travis, and then i will be happy

[13:25] <lizmat> samcv: good night!

[13:25] <lizmat> oops

[13:25] <lizmat> continue sleeping!  :-)

[13:52] *** lizmat_ joined
[14:41] *** buggable joined
[15:10] *** AlexDaniel joined
[18:38] <Geth> ¦ MoarVM: 8dc1fc0e71 | (Samantha McVey)++ | .travis.yml

[18:38] <Geth> ¦ MoarVM: Generate stacktraces on Travis CI when getting a segfault

[18:38] <Geth> ¦ MoarVM:

[18:38] <Geth> ¦ MoarVM: On Linux we enable coredumps, and then set the coredumps folder to our

[18:38] <Geth> ¦ MoarVM: build directory. It is then set so that gdb will print out a stacktrace

[18:38] <Geth> ¦ MoarVM: from the coredumps if the build fails.

[18:38] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8dc1fc0e71

[18:38] <Geth> ¦ MoarVM: 1fe9beb383 | (Samantha McVey)++ (committed using GitHub Web editor) | .travis.yml

[18:38] <Geth> ¦ MoarVM: Merge pull request #662 from samcv/segfault-check

[18:38] <Geth> ¦ MoarVM:

[18:38] <Geth> ¦ MoarVM: Generate stacktraces on Travis CI when getting a segfault

[18:38] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1fe9beb383

[18:38] <samcv> I will find you segfault!!! you can't hide

[18:39] <mst> hehehehehe

[18:39] <mst> samcv: SHOW YOURSELF, YOU COWARD

[18:47] <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] <samcv> but i got the stacktrace :)

[18:47] <samcv> hahaha! https://travis-ci.org/MoarVM/MoarVM/jobs/268732500#L1486-L1545

[18:47] <samcv> got you

[18:49] <mst> \o/

[18:54] *** travis-ci joined
[18:54] <travis-ci> MoarVM build failed. Samantha McVey 'Merge pull request #662 from samcv/segfault-check

[18:54] <travis-ci> https://travis-ci.org/MoarVM/MoarVM/builds/268732495 https://github.com/MoarVM/MoarVM/compare/ef2b21ac5b58...1fe9beb38307

[18:54] *** travis-ci left
[18:54] <Geth> ¦ MoarVM: 605746489c | (Samantha McVey)++ | src/strings/ops.c

[18:54] <Geth> ¦ MoarVM: Remove unneeded MVMROOT from KMP algorithm

[18:54] <Geth> ¦ MoarVM:

[18:54] <Geth> ¦ MoarVM: @zhuomingliang++

[18:54] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/605746489c

[19:08] *** travis-ci joined
[19:08] <travis-ci> MoarVM build passed. Samantha McVey 'Remove unneeded MVMROOT from KMP algorithm

[19:08] <travis-ci> https://travis-ci.org/MoarVM/MoarVM/builds/268735626 https://github.com/MoarVM/MoarVM/compare/1fe9beb38307...605746489cf4

[19:08] *** travis-ci left
[19:11] *** AlexDaniel joined
[20:06] <dogbert11> samcv: was the NFG checker functionality completed, i.e. can I use it?

[20:08] <dogbert11> tried it on AlexDaniel's golfed bug and the code SEGV's when I use the NFG checker functionality

[20:09] <samcv> oh yeah it should work

[20:09] <dogbert11> but it doesn't, unless it's uncovering some other bug

[20:09] <samcv> hm what's AlexDaniel's bug

[20:10] <dogbert11> sec

[20:10] <dogbert11> here: https://irclog.perlgeek.de/perl6-dev/2017-08-26#i_15071903

[20:10] <dogbert11> there's a gist a bit further down on that page

[20:11] <dogbert11> 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:13] <dogbert11> I have set   #define MVM_DEBUG_NFG 1    and      #define MVM_DEBUG_NFG_STRICT 0

[20:13] <samcv> ok

[20:14] <samcv> you got more of the stack trace?

[20:15] <samcv> where is it before MVM_string_gi_get_grapheme? what line/file called it?

[20:15] <dogbert11> https://gist.github.com/dogbert17/889cd5877c975055980816f666cc9e99

[20:15] <samcv> oh

[20:16] <samcv> well either it's GCing one of the strings or there's a problem with the source string

[20:19] <samcv> ok

[20:19] <samcv> trying to replicate

[20:19] <dogbert11> ++samcv

[20:20] <dogbert11> I was hoping that the checker would help uncover AlexDaniel's original problem

[20:22] <samcv> yeah i'm guessing it did

[20:22] <samcv> which caused it to segfault

[20:24] <samcv> dogbert11, do you know where strings are created when we read utf8?

[20:25] <samcv> we should put a NFG_CHECK(tc, string, "utf8-decode") or something there

[20:25] <samcv> since the string is created before the concat is called

[20:25] <dogbert11> I can't say that I do :(

[20:26] <samcv> i'll start adding it places

[20:28] <dogbert11> cool, I also tried a spectest run with the NFG flag set, there were many failures

[20:30] <samcv> one thing at a time :)

[20:32] <samcv> wow i got

[20:32] <samcv> invilid thread id in work pass

[20:33] <samcv> MoarVM panic: Internal error: invalid thread ID -951500821 in GC work pass

[20:33] <samcv> # after reaching 6795

[20:33] <samcv> looks like there may be a GC problem

[20:34] <dogbert11> cool

[20:36] <samcv> i'm going to enable STRICT

[20:36] <samcv> 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

[20:39] <dogbert11> I get a SEGV at the same place with strict set to 1

[20:47] <samcv> well there are 2 threads

[20:48] <samcv> oh got another

[20:48] <samcv> MoarVM oops: MVM_nfg_get_synthetic_info call requested a synthetic codepoint that does not exist.

[20:49] <samcv> 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] <samcv> but not always helpful

[20:51] <dogbert11> perhaps nwc10 knows

[20:53] <dogbert11> are you running the program under gdb?

[20:55] <samcv> lldb is givinng me beter backtraces. uh i'm looking at the coredump right now

[20:55] <samcv> gdb wasn't giving all the symbols for me

[20:55] <samcv> sec

[20:59] <samcv> dogbert11, sweet. i got a shell function that grabs the last coredump and outputs a backtrace on all threads with lldb or gdb

[21:02] <samcv> ok cool that makes things easier

[21:03] <dogbert11> let's hope something interesting turns up :)

[21:04] <samcv> using 'print $++, " "' so i get less lines on my screen

[21:04] <samcv> uh valgrind isn't happy

[21:05] <samcv> seems: out = (MVMString *)MVM_repr_alloc_init(tc, tc->instance->VMString);

[21:09] <dogbert11> heh 'Conditional jump or move depends on uninitialised value(s)'

[21:09] <samcv> dogbert11, what distro do you have?

[21:09] <dogbert11> I'm running Linux Mint

[21:10] <samcv> https://gist.github.com/e35cc9db2692f8fd74b206394a0bb167

[21:10] <samcv> this should probably work for you

[21:10] <samcv> as long as `cat /proc/sys/kernel/core_pattern` shows /usr/lib/systemd/systemd-coredump

[21:11] <samcv> will print out the full stacktrace of the last coredump

[21:14] <dogbert11> cool, will try it out

[21:54] <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] <samcv> does that sound like an OK name?

[21:56] <samcv> getting some more useful info with --track-origins=yes

[21:57] <samcv> https://gist.github.com/846287070706906fceccd7031c806b20

[22:04] *** zakharyas joined
[22:23] <samcv> dogbert11, i iterated the whole string before calling re_nfg, and i get a segfault as well

[22:32] <dogbert11> cool, so do you think it's a GC problem?

[22:33] *** Ven`` joined
[22:33] <dogbert11> also if you're making changes to perl6-valgrind-m remove --full-cleanup while you're at it. That option is busted

[22:50] *** lizmat joined
[22:59] <samcv> ok

[23:07] <samcv> dogbert11, done

[23:17] <dogbert11> samcv++

[23:32] <Geth> ¦ MoarVM: 1776b561f4 | (Samantha McVey)++ | 2 files

[23:32] <Geth> ¦ MoarVM: Add MVM_DEBUG_NFG in more places. Initialize a few pointers as NULL

[23:32] <Geth> ¦ MoarVM:

[23:32] <Geth> ¦ MoarVM: * Initialize a few pointers to NULL in NFG_checker() and re_nfg()

[23:32] <Geth> ¦ MoarVM: * In MVM_string_replace() don't pop MVMROOT until after debug functions run

[23:32] <Geth> ¦ MoarVM: * Move the conditional defines for MVM_DEBUG_NFG into strings/ops.h so we can

[23:32] <Geth> ¦ MoarVM:   include them in files other than strings/ops.c

[23:32] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1776b561f4

[23:32] <samcv> dogbert11, pull the latest changes. i fixed some of the valgrind errors

[23:42] <samcv> oh wow this is pretty nice

[23:42] <samcv> i did find some error by compiling with clang uh -fsanitize=address

[23:42] <samcv> from my KMP algorithm. darn

[23:42] <samcv> i thought it fixed that. well valgrind doesn't get angry at least

[23:43] <samcv> i don't think it's causing our problem but

[23:45] <samcv> it was only off by a few bytes. ok i think i know why this was happening sweet

[23:45] <samcv> that was super useful

[23:45] <samcv> and wasn't caught by valgrind

[23:48] *** quotable6 joined
[23:48] <Geth> ¦ MoarVM: af996dfcde | (Samantha McVey)++ | src/strings/ops.c

[23:48] <Geth> ¦ MoarVM: KMP: fix off by one alloca allocation

[23:48] <Geth> ¦ MoarVM:

[23:48] <Geth> ¦ MoarVM: The jump table needs to be one more than the length of the needle, instead of

[23:48] <Geth> ¦ MoarVM: the length of the needle. It is written to at the very end of the patterns

[23:48] <Geth> ¦ MoarVM: processing.

[23:48] <Geth> ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/af996dfcde

[23:50] <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] <samcv> `        gi->strands_remaining    = s->body.num_strands - 1;`

[23:51] <samcv> trying to access the number of strands but the string has already been freed

[23:53] <dogbert11> interesting, something for jnthn perhaps

[23:53] <samcv> dogbert11, https://gist.github.com/samcv/0bfd825ac061af7a36fac7f69179fe87
