[00:01] *** reportable6 left [00:02] *** reportable6 joined [03:18] *** bisectable6 left [03:18] *** bloatable6 left [03:18] *** statisfiable6 left [03:18] *** quotable6 left [03:18] *** sourceable6 left [03:18] *** linkable6 left [03:18] *** committable6 left [03:18] *** evalable6 left [03:18] *** releasable6 left [03:18] *** reportable6 left [03:18] *** tellable6 left [03:18] *** coverable6 left [03:18] *** shareable6 left [03:18] *** squashable6 left [03:18] *** unicodable6 left [03:18] *** greppable6 left [03:18] *** nativecallable6 left [03:18] *** benchable6 left [03:18] *** notable6 left [03:18] *** committable6 joined [03:18] *** linkable6 joined [03:18] *** shareable6 joined [03:18] *** nativecallable6 joined [03:19] *** bisectable6 joined [03:19] *** greppable6 joined [03:19] *** coverable6 joined [03:19] *** quotable6 joined [03:19] *** squashable6 joined [03:20] *** reportable6 joined [03:20] *** bloatable6 joined [03:20] *** tellable6 joined [03:20] *** unicodable6 joined [03:20] *** benchable6 joined [03:20] *** squashable6 left [03:20] *** statisfiable6 joined [03:20] *** releasable6 joined [03:21] *** notable6 joined [03:21] *** evalable6 joined [03:21] *** squashable6 joined [03:21] *** sourceable6 joined [04:00] *** MasterDuke left [04:44] *** frost-lab joined [06:02] *** reportable6 left [06:02] *** 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 [09:22] ¦ MoarVM/foreach-inline: bf5fa9bc33 | (Nicholas Clark)++ | 2 files [09:22] ¦ MoarVM/foreach-inline: Make `MVM_fixkey_hash_foreach` static inline. [09:22] ¦ MoarVM/foreach-inline: [09:22] ¦ MoarVM/foreach-inline: This permits the C compiler optimiser to inline the callback into it, and [09:22] ¦ MoarVM/foreach-inline: hence remove the indirect function call. [09:22] ¦ MoarVM/foreach-inline: [09:22] ¦ MoarVM/foreach-inline: Moving `MVM_fixkey_hash_foreach` to fixkey_hash_table_funcs.h means that [09:22] ¦ MoarVM/foreach-inline: `calc_entries_in_use` also has to move to that file. Hence (re)name that [09:22] ¦ MoarVM/foreach-inline: function to `MVM_fixkey_hash_kompromat` to be consistent with StrHashTable, [09:22] ¦ MoarVM/foreach-inline: and re-order the functions in fixkey_hash_table_funcs.h to be consistent [09:22] ¦ MoarVM/foreach-inline: with the order in str_hash_table_funcs.h. [09:22] oops, I did that without a final proofread... [09:22] ¦ MoarVM/foreach-inline: review: https://github.com/MoarVM/MoarVM/commit/bf5fa9bc33 [09:23] ¦ MoarVM: nwc10++ created pull request #1495: Make `MVM_fixkey_hash_foreach` static inline. [09:23] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/1495 [09:25] yet again, inline, the gateway to other optimisations [09:26] nwc10++ [09:30] segv here https://dev.azure.com/MoarVM/MoarVM/_build/results?buildId=564&view=logs&j=6c6a5d99-9ff7-5965-2956-d1404138e2a1&t=344c77fe-7b67-5881-d8f9-b24cbe709955&l=43 should we just restart that job? [09:30] 2021-05-18T06:41:27Z #raku MasterDuke: I can't remember talking about Windows VMs. Can you recall what I wrote about? [09:31] patrickb: https://colabti.org/irclogger/irclogger_log/moarvm?date=2021-04-19#l86 but it turns out i do have a virtualbox win 10 vm lying around that may suffice [09:33] MasterDuke: Ah! I have a bare metal Windows 10 installation available and can do what ever is necessary with it. [09:35] 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:40] *** evalable6 left [09:40] *** linkable6 left [09:42] *** linkable6 joined [09:42] *** evalable6 joined [09:58] Is there a way to always print a stacktrace on segfaults? [10:00] 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:01] I don't know of a better way [10:02] https://stackoverflow.com/questions/77005/how-to-automatically-generate-a-stacktrace-when-my-program-crashes looks like there may be a way...ish [10:26] https://gist.github.com/MasterDuke17/a5e9e6a54e3721c8c111a4f2137a6090 has some catchsegv vs gdb output [10:29] ¦ MoarVM: bf5fa9bc33 | (Nicholas Clark)++ | 2 files [10:29] ¦ MoarVM: Make `MVM_fixkey_hash_foreach` static inline. [10:29] ¦ MoarVM: [10:29] ¦ MoarVM: This permits the C compiler optimiser to inline the callback into it, and [10:29] ¦ MoarVM: hence remove the indirect function call. [10:29] ¦ MoarVM: [10:29] ¦ MoarVM: Moving `MVM_fixkey_hash_foreach` to fixkey_hash_table_funcs.h means that [10:29] ¦ MoarVM: `calc_entries_in_use` also has to move to that file. Hence (re)name that [10:29] ¦ MoarVM: function to `MVM_fixkey_hash_kompromat` to be consistent with StrHashTable, [10:29] ¦ MoarVM: and re-order the functions in fixkey_hash_table_funcs.h to be consistent [10:29] ¦ MoarVM: with the order in str_hash_table_funcs.h. [10:29] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/bf5fa9bc33 [10:36] I'll take gdb-nojit.log :) [10:37] heh. but is the catchsegv output useful enough to always use it in our ci pipelines? [10:38] It's certainly better than nothing at all. I see daily failures [10:39] 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:42]  i don't know if `catchsegv make test` will work [10:42] LD_PRELOAD=/lib/libSegFault.so make test maybe [10:43] nwc10: can we expect visible perf improvement from Make `MVM_fixkey_hash_foreach` static inline. ? [10:43] probably not! [10:43] but I did look at the generated assembler, and it did what I hoped [10:43] it's only called for --full-cleanup [10:44] too bad :-) [10:44] I see... ok :-) [10:44] MasterDuke: or just link it statically: -lSegFault [10:44] but the initial "foreach" thing does get us to zero reported leaks from valgrind for --full-cleanup for compiling the empty program [10:44] i just tried and it did work with make [10:45] 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:49] ugh, would have to break out all the CI jobs into separate ones for linux/windows again [11:05] is there a way to re-open STDIN after it has been closed? nqp::getstdin does not seem to cut it :-( [11:09] maybe nqp::getstdin needs to cut it ? [11:09] alternately, is there a way of dupping the PIO ? [11:10] *** zakharyas left [11:13] Is this about Ctrl+D? Because according to https://stackoverflow.com/questions/51194821/how-to-restart-stdin-after-ctrld it's not really closing the file handle in this case [11:16] * lizmat checks [11:17] so do we have a way to clearerr() on the stdin handle ? [11:18] that is, without needing to resort to NativeCall, as this is in the setting ? [11:18] No [11:18] meh... ok [11:18] Well, if we do I don't know about it [11:19] I've also no idea about the portability of clearerr [11:19] So, needs some research [11:19] workaround for now: https://github.com/rakudo/rakudo/commit/bca6d72917 [11:20] This linux man page says: The functions clearerr(), feof(), and ferror() conform to C89, C99, POSIX.1-2001, and POSIX.1-2008. [11:55] ¦ MoarVM: MasterDuke17++ created pull request #1496: Run NQP/Rakudo under catchsegv in non-Win32 CI jobs [11:55] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/pull/1496 [12:01] i should have added a task that ran my segfaulting example just to see what the output would be like there... [12:02] *** reportable6 left [12:04] *** reportable6 joined [12:06] *** MasterDuke left [12:11] *** MasterDuke joined [12:14] *** patrickb left [12:20] *** zakharyas joined [12:21] https://dev.azure.com/MoarVM/MoarVM/_build/results?buildId=567&view=logs&j=1f3a7134-3b80-549a-eaff-49041f6b71c8&t=16456ddf-b4d4-5061-2557-e2825fd2b939 an example of catchsegv output in the CI pipeline [12:22] useful enough to clean up https://github.com/MoarVM/MoarVM/pull/1496 and merge? [12:28] *** linkable6 left [12:31] *** linkable6 joined [12:34] Only if in a real world case the backtrace is a little bit more extensive than in the example :) [12:43] *** linkable6 left [12:43] Backtrace: [12:43] /home/dan/Source/perl6/install/lib/libmoar.so(MVM_spesh_frame_walker_move_outer+0x2b)[0x7fe16e70794b] [12:43] /home/dan/Source/perl6/install/lib/libmoar.so(+0x27897b)[0x7fe16e6b897b] [12:43] /home/dan/Source/perl6/install/lib/libmoar.so(MVM_context_apply_traversal+0x88)[0x7fe16e6b9348] [12:43] /home/dan/Source/perl6/install/lib/libmoar.so(MVM_interp_run+0x11dd)[0x7fe16e64350d] [12:43] ./install/bin/raku(+0x17ce)[0x564e498c57ce] [12:43] ./install/bin/raku(+0x19de)[0x564e498c59de] [12:43] that's a different segv run locally [12:44] is that with or without debug symbols? [12:44] with, but not disabling the jit [12:44] Well getting the function names is already a huge win [12:46] *** linkable6 joined [12:47] cleanup and merge the PR? [12:47] please :) [12:47] *** patrickb joined [12:59] *** linkable6 left [13:01] will that be for CI only? Or could that be for all cases of running Rakudo ? [13:01] * lizmat had a segfault on https://logs.liz.nl last night :-( [13:01] *** linkable6 joined [13:03] 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:10] that would be very nice, I think [13:26] ¦ MoarVM: 67f5dddb4a | (Daniel Green)++ | azure-pipelines.yml [13:26] ¦ MoarVM: Run NQP/Rakudo under catchsegv in Linux CI jobs [13:26] ¦ MoarVM: [13:26] ¦ MoarVM: This will give use more useful information if there's a random error. To [13:26] ¦ MoarVM: help, also build MoarVM with debugging symbols. [13:26] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/67f5dddb4a [13:26] ¦ MoarVM: 0cf502a682 | MasterDuke17++ (committed using GitHub Web editor) | azure-pipelines.yml [13:26] ¦ MoarVM: Merge pull request #1496 from MasterDuke17/use_catchsegv_in_CI_pipelines [13:26] ¦ MoarVM: [13:26] ¦ MoarVM: Run NQP/Rakudo under catchsegv in Linux CI jobs [13:26] ¦ MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0cf502a682 [13:30] *** chansen_ left [13:33] *** chansen_ joined [13:42] *** chansen_ left [13:43] *** chansen_ joined [13:50] *** cog joined [13:59] *** vrurg left [13:59] *** vrurg_ joined [14:00] *** eater left [14:01] *** samcv_ joined [14:01] *** Kaiepi left [14:01] *** Kaiepi joined [14:01] *** patrickb left [14:01] *** samcv left [14:01] *** 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 [17:42] *** samcv left [17:42] *** 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 [19:45] *** 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 [23:06] *** linkable6 left [23:07] *** evalable6 joined [23:08] *** linkable6 joined