github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:01 reportable6 left 00:02 reportable6 joined 03:18 bisectable6 left, bloatable6 left, statisfiable6 left, quotable6 left, sourceable6 left, linkable6 left, committable6 left, evalable6 left, releasable6 left, reportable6 left, tellable6 left, coverable6 left, shareable6 left, squashable6 left, unicodable6 left, greppable6 left, nativecallable6 left, benchable6 left, notable6 left, committable6 joined, linkable6 joined, shareable6 joined, nativecallable6 joined 03:19 bisectable6 joined, greppable6 joined, coverable6 joined, quotable6 joined, squashable6 joined 03:20 reportable6 joined, bloatable6 joined, tellable6 joined, unicodable6 joined, benchable6 joined, squashable6 left, statisfiable6 joined, releasable6 joined 03:21 notable6 joined, evalable6 joined, squashable6 joined, sourceable6 joined 04:00 MasterDuke left 04:44 frost-lab joined 06:02 reportable6 left, reportable6 joined 06:33 patrickb joined 06:42 patrickb90 joined 06:46 patrickb left 06:54 patrickb90 left 06:56 domidumont joined 07:08 frost-lab left 07:26 zakharyas joined 07:35 patrickb joined 07:50 frost-lab joined 07:58 MasterDuke joined 08:00 frost-lab left 08:17 frost-lab joined
Geth MoarVM/foreach-inline: bf5fa9bc33 | (Nicholas Clark)++ | 2 files
Make `MVM_fixkey_hash_foreach` static inline.

This permits the C compiler optimiser to inline the callback into it, and hence remove the indirect function call.
Moving `MVM_fixkey_hash_foreach` to fixkey_hash_table_funcs.h means that
  `calc_entries_in_use` also has to move to that file. Hence (re)name that
function to `MVM_fixkey_hash_kompromat` to be consistent with StrHashTable, and re-order the functions in fixkey_hash_table_funcs.h to be consistent with the order in str_hash_table_funcs.h.
09:22
nwc10 oops, I did that without a final proofread...
MoarVM: nwc10++ created pull request #1495:
Make `MVM_fixkey_hash_foreach` static inline.
09:23
nwc10 yet again, inline, the gateway to other optimisations 09:25
lizmat nwc10++ 09:26
MasterDuke segv here dev.azure.com/MoarVM/MoarVM/_build...5&l=43 should we just restart that job? 09:30
tellable6 2021-05-18T06:41:27Z #raku <patrickb> MasterDuke: I can't remember talking about Windows VMs. Can you recall what I wrote about?
MasterDuke patrickb: colabti.org/irclogger/irclogger_lo...-04-19#l86 but it turns out i do have a virtualbox win 10 vm lying around that may suffice 09:31
patrickb MasterDuke: Ah! I have a bare metal Windows 10 installation available and can do what ever is necessary with it. 09:33
MasterDuke i'll keep working in/on/with my vm for now (did already get nqp cloned and built for some jvm work i'm in the middle of), but if it turns out to not be usable i'll ping you again 09:35
09:40 evalable6 left, linkable6 left 09:42 linkable6 joined, evalable6 joined
nine Is there a way to always print a stacktrace on segfaults? 09:58
nwc10 IIRC I once managed this (but then lost the code) with an extreme hack - a SEGV handler that forked, attached gdb to the parent, then told gdb to print a backtrace. 10:00
I don't know of a better way 10:01
MasterDuke stackoverflow.com/questions/77005/...am-crashes looks like there may be a way...ish 10:02
gist.github.com/MasterDuke17/a5e9e...f2137a6090 has some catchsegv vs gdb output 10:26
Geth MoarVM: bf5fa9bc33 | (Nicholas Clark)++ | 2 files
Make `MVM_fixkey_hash_foreach` static inline.

This permits the C compiler optimiser to inline the callback into it, and hence remove the indirect function call.
Moving `MVM_fixkey_hash_foreach` to fixkey_hash_table_funcs.h means that
  `calc_entries_in_use` also has to move to that file. Hence (re)name that
function to `MVM_fixkey_hash_kompromat` to be consistent with StrHashTable, and re-order the functions in fixkey_hash_table_funcs.h to be consistent with the order in str_hash_table_funcs.h.
10:29
nine I'll take gdb-nojit.log :) 10:36
MasterDuke heh. but is the catchsegv output useful enough to always use it in our ci pipelines? 10:37
nine It's certainly better than nothing at all. I see daily failures 10:38
MasterDuke or maybe try to enable core dumping, check for core files at the end of each step, if there are any, open in gdb and print a backtrace? 10:39
 i don't know if `catchsegv make test` will work 10:42
nine LD_PRELOAD=/lib/libSegFault.so make test maybe
lizmat nwc10: can we expect visible perf improvement from Make `MVM_fixkey_hash_foreach` static inline. ? 10:43
nwc10 probably not!
but I did look at the generated assembler, and it did what I hoped
it's only called for --full-cleanup
lizmat too bad :-) 10:44
I see... ok :-)
nine MasterDuke: or just link it statically: -lSegFault
nwc10 but the initial "foreach" thing does get us to zero reported leaks from valgrind for --full-cleanup for compiling the empty program
MasterDuke i just tried and it did work with make
i.e., `catchsegv make m-test` with my segv example added to a test file seemed to create similar output to running it directly 10:45
ugh, would have to break out all the CI jobs into separate ones for linux/windows again 10:49
lizmat is there a way to re-open STDIN after it has been closed? nqp::getstdin does not seem to cut it :-( 11:05
maybe nqp::getstdin needs to cut it ? 11:09
alternately, is there a way of dupping the PIO ?
11:10 zakharyas left
jnthn Is this about Ctrl+D? Because according to stackoverflow.com/questions/511948...fter-ctrld it's not really closing the file handle in this case 11:13
lizmat checks 11:16
so do we have a way to clearerr() on the stdin handle ? 11:17
that is, without needing to resort to NativeCall, as this is in the setting ? 11:18
jnthn No
lizmat meh... ok
jnthn Well, if we do I don't know about it
I've also no idea about the portability of clearerr 11:19
So, needs some research
lizmat workaround for now: github.com/rakudo/rakudo/commit/bca6d72917
nwc10 This linux man page says: The functions clearerr(), feof(), and ferror() conform to C89, C99, POSIX.1-2001, and POSIX.1-2008. 11:20
Geth MoarVM: MasterDuke17++ created pull request #1496:
Run NQP/Rakudo under catchsegv in non-Win32 CI jobs
11:55
MasterDuke i should have added a task that ran my segfaulting example just to see what the output would be like there... 12:01
12:02 reportable6 left 12:04 reportable6 joined 12:06 MasterDuke left 12:11 MasterDuke joined 12:14 patrickb left 12:20 zakharyas joined
MasterDuke dev.azure.com/MoarVM/MoarVM/_build...825fd2b939 an example of catchsegv output in the CI pipeline 12:21
useful enough to clean up github.com/MoarVM/MoarVM/pull/1496 and merge? 12:22
12:28 linkable6 left 12:31 linkable6 joined
nine Only if in a real world case the backtrace is a little bit more extensive than in the example :) 12:34
12:43 linkable6 left
MasterDuke Backtrace: 12:43
/home/dan/Source/perl6/install/lib/libmoar.so(MVM_spesh_frame_walker_move_outer+0x2b)[0x7fe16e70794b]
/home/dan/Source/perl6/install/lib/libmoar.so(+0x27897b)[0x7fe16e6b897b]
/home/dan/Source/perl6/install/lib/libmoar.so(MVM_context_apply_traversal+0x88)[0x7fe16e6b9348]
/home/dan/Source/perl6/install/lib/libmoar.so(MVM_interp_run+0x11dd)[0x7fe16e64350d]
./install/bin/raku(+0x17ce)[0x564e498c57ce]
./install/bin/raku(+0x19de)[0x564e498c59de]
that's a different segv run locally
nine is that with or without debug symbols? 12:44
MasterDuke with, but not disabling the jit
nine Well getting the function names is already a huge win
12:46 linkable6 joined
MasterDuke cleanup and merge the PR? 12:47
nine please :)
12:47 patrickb joined 12:59 linkable6 left
lizmat will that be for CI only? Or could that be for all cases of running Rakudo ? 13:01
lizmat had a segfault on logs.liz.nl last night :-(
13:01 linkable6 joined
MasterDuke i just changed how the CI call nqp/rakudo. but it looks like maybe there's something we could add to moarvm that would "just work" in some cases/configurations 13:03
lizmat that would be very nice, I think 13:10
Geth MoarVM: 67f5dddb4a | (Daniel Green)++ | azure-pipelines.yml
Run NQP/Rakudo under catchsegv in Linux CI jobs

This will give use more useful information if there's a random error. To help, also build MoarVM with debugging symbols.
13:26
MoarVM: 0cf502a682 | MasterDuke17++ (committed using GitHub Web editor) | azure-pipelines.yml
Merge pull request #1496 from MasterDuke17/use_catchsegv_in_CI_pipelines

Run NQP/Rakudo under catchsegv in Linux CI jobs
13:30 chansen_ left 13:33 chansen_ joined 13:42 chansen_ left 13:43 chansen_ joined 13:50 cog joined 13:59 vrurg left, vrurg_ joined 14:00 eater left 14:01 samcv_ joined, Kaiepi left, Kaiepi joined, patrickb left, samcv left, eaterof joined 14:02 patrickb joined 14:59 linkable6 left 15:02 linkable6 joined 15:30 linkable6 left 15:31 linkable6 joined 16:42 domidumont left 17:22 patrickb left 17:42 samcv_ is now known as samcv, samcv left, samcv joined 18:02 reportable6 left 18:03 reportable6 joined 18:09 zakharyas left 18:46 MasterDuke left 19:15 camelia left 19:16 nine left 19:18 MasterDuke joined 19:22 japhb left 19:24 japhb joined 19:34 camelia joined 19:37 camelia left 19:38 nine joined 19:39 nine left 19:43 nine joined 19:45 zakharyas joined, camelia joined 20:34 linkable6 left 20:37 linkable6 joined 20:44 zakharyas left 22:01 dogbert17 joined 22:06 dogbert11 left 23:06 evalable6 left, linkable6 left 23:07 evalable6 joined 23:08 linkable6 joined