github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
MasterDuke timotimo: any thoughts on github.com/MoarVM/MoarVM/pull/1073 ? 01:14
04:57 unicodable6 left, bloatable6 left, quotable6 left, undersightable6 left, reportable6 left, nativecallable6 left, coverable6 left, squashable6 left, statisfiable6 left, releasable6 left, benchable6 left, committable6 left, greppable6 left, bisectable6 left, notable6 left, shareable6 left, evalable6 left 04:58 evalable6 joined, squashable6 joined, reportable6 joined, releasable6 joined 04:59 statisfiable6 joined, greppable6 joined 05:00 undersightable6 joined, notable6 joined, benchable6 joined, bisectable6 joined 05:01 committable6 joined, unicodable6 joined, quotable6 joined 05:02 bloatable6 joined, coverable6 joined, nativecallable6 joined, shareable6 joined 05:06 harrow left 05:11 harrow joined 06:24 domidumont joined 07:14 domidumont left 07:29 domidumont joined 08:13 nebuchadnezzar left, nebuchadnezzar joined 08:20 harrow left 08:30 harrow joined 08:47 robertle_ joined 08:48 squashable6 left 08:51 squashable6 joined
timotimo MasterDuke: i wonder if there are any stresstests that have abs_n in them 08:52
but otherwise if the tests all succeed, then the fabs and the interpreter implementation are probably equivalent (or we have some missing tests to write) 08:53
09:26 zakharyas joined 10:52 domidumont left 11:54 zakharyas left 12:42 domidumont joined 13:01 lucasb joined 13:44 zakharyas joined
lizmat so I thought I'd let "zef" create a profile to find out what it does to install a distribution 13:54
so I added "--profile" to the #!/usr/bin/env perl6 shebang
this seems to *always* result in either a segfault or a MoarVM panic: Internal error: zeroed target thread ID in work pass 13:55
timotimo jnthn is this something should put in an issue, or is that something that is known already ? 13:56
also: for these cases, I think the --profile functionality should also be settable using an environment variable ?
ugexe i think that happens because zef uses exit(...) 14:16
you can comment them all out, or set &*EXIT to be a no op
and you dont need zef to be installed to profile it, you can just do `perl6 --profile -I. bin/zef install MyFoo`, so you dont have to keep reinstalling when making those changes 14:17
(comment out exit() or override &*EXIT in Zef::CLI)
14:22 AlexDaniel joined
lizmat that sorta implies that having started with --profile, should override &*EXIT ? 14:34
at least fro now ?
ugexe well it might just be &*EXIT should do exactly what it was told to do, just with a delay (i dont know if a delay solves this) 14:36
eh actually a delay probably doesn't help anything 14:37
it would just get profiled itself 14:38
lizmat perhaps a "die" inside the &*EXIT routine would do the trick, maybe not 14:50
AlexDaniel this ticket needs some help: github.com/MoarVM/MoarVM/pull/1072
I kinda want to just hit merge but it feels wrong to do that somewhat blindly 14:51
15:00 robertle_ left 15:02 robertle_ joined
jnthn AlexDaniel: I'd agree with your assessment that we should benchmark it some more 15:06
That said, the vast majority of our short-lived allocations do *not* go through malloc
(Still more than would be ideal though) 15:07
AlexDaniel jnthn: am I right in thinking that 128KiB is way too low?
jnthn hah, I just read this bit from the linked article: "The manual is wrong! Analysis of the source code tells me that it frees all eligible OS pages, not just those at the top." 15:10
That makes it quite a lot more useful :P
The "best" value would probably depend on program behavior. Generally, programs that asked for memory once will ask for it again. 15:12
But it's of course an over-generalization; some programs have different phases with different memory behaviors.
timotimo i still want someone to put that malloc heap analyzer into moar :P 15:13
jnthn AlexDaniel: To be clearer: it depends on what kinds of allocations the program does. It's possible that a program could be doing lots of allocations, but moar satisfies them all out of the GC nursery or fixed size allocator and so never asks malloc for more. 15:18
My gut feeling would also be to set it a little higher than 128KB though 15:19
But I don't really have an intuition of the cost of being wrong. Just another page fault? 15:20
Or a lot more?
Also, I dunno the cost of calling malloc_trim :)
15:23 AlexDani` joined 15:24 AlexDaniel left 15:25 sivoais left 15:26 sivoais joined, camelia left, camelia joined
ugexe readdir isn't thread safe if two threads need to read from the same dirstream. does that mean this is not thread safe? `readdir(data->dir_handle);` 15:38
or is getting into that situation to begin with already a problem 15:39
jnthn I think from a Perl 6 perspective, such handles are never exposed anyway; `dir` always returns a new sequence that does an open/read*/close 15:43
15:52 robertle_ left 16:04 robertle_ joined 16:07 Guest5277 left
ugexe ah right, directory handles can't be opened in Perl 6 16:14
16:19 robertle_ left 16:24 squashable6 left 16:28 squashable6 joined
ugexe libuv just added uv_fs_*dir() functions, but comparing implementation the main difference seems to be on windows it ignores ERROR_FILE_NOT_FOUND error specifically instead of breaking 16:29
break;ing ^ 16:31
16:33 zakharyas left, domidumont left 16:35 AlexDani` left 17:25 domidumont joined 18:09 squashable6 left 18:14 squashable6 joined 19:14 squashable6 left 19:19 squashable6 joined 19:30 AlexDani` joined 19:44 squashable6 left 19:49 squashable6 joined 20:14 domidumont left, AlexDani` left 20:20 lucasb left 23:10 camelia left, camelia joined 23:14 camelia left 23:45 AlexDani` joined 23:46 AlexDani` is now known as AlexDaniel, AlexDaniel left, AlexDaniel joined