dalek arVM: f10000f | timotimo++ | src/jit/ (2 files):
getstderr is used in NFA's optimize and mergesubrule

when you have a module that add lots of operators, this can give a noticable speed-up.
the NFA situation wants an algorithmic improvement instead, though.
00:44
timotimo ooooh so many 0s in the commit ID 00:46
diakopter___ timotimo: did you stumble upon a bitcoin magic hash value? 00:47
timotimo hah
i don't think i can make any money off of that at all
01:38 tokuhiro_ joined 02:25 FROGGS_ joined
dalek arVM: 986b20e | hoelzro++ | src/core/callsite. (2 files):
Add function for seeing if a Callsite is "common"

A "common" callsite is one that is defined entirely in static memory, and thus may never be MVM_free()'d. We need to know this when we start cleaning up after callsites
02:59
arVM: bd537a1 | hoelzro++ | src/core/callsite. (2 files):
Add a function for cleaning up after a callsite
arVM: bac9d59 | hoelzro++ | src/6model/reprs/MVMCompUnit.c:
Clean up callsites in comp unit objects
MoarVM: 2004013 | hoelzro++ | src/moar.c:
03:13 tokuhiro_ joined 04:57 vendethiel joined
diakopter hoelzro: oh, I just saw you didn't use the is_common check yet 05:43
hoelzro I thought I did? in interpreter destruction? 05:44
hoelzro checks
ah, here we are: github.com/MoarVM/MoarVM/commit/20...4fec1a67c0 05:45
I think dalek forgot to report that commit here =)
diakopter ah yeah, there it is 05:48
hoelzro thanks for giving my code a look over! 06:02
hoelzro goes off to bed 06:03
diakopter heh it's bedtime here
on the west side of US 06:04
dalek MoarVM/cache_sc_idx: 83b3ae3 | brrt++ | src/core/frame.c: 06:21
MoarVM/cache_sc_idx: Dynvar lookup check if we're using the JIT code
MoarVM/cache_sc_idx:
MoarVM/cache_sc_idx: For some reason, we sometimes 'drop out' the jitcode, into the
MoarVM/cache_sc_idx: spesh code, and I can't really find out why. But checking
06:22 dalek joined
nwc10 good *, dalek 06:57
07:07 FROGGS joined 07:09 domidumont joined 07:15 domidumont joined
diakopter lolz 07:38
jnthn moarning, #moarvm 08:06
konobi morning
nwc10 jnthn: so, if noms aren't curry, what are noms? 08:11
jnthn Pizza last night, though not home-made in any sense. Was feeling tired/lazy. :) 08:12
diakopter jnthn: if I suspected the method cache wasn't being as cacheful as it could be, how might I investigate that 08:13
jnthn I think it'll be a cheese curry tonight. :)
diakopter: --profile and see where we land in a find_method method
nwc10 it's when you get to "lemon curry" that I start worrying that you're defecting 08:15
jnthn lemon curry? o.O 08:17
diakopter jnthn: well, I'm not seeing it at all in the XCode Instruments thing, so I guess it's not even close to a hotspot
jnthn Cheese curry is something I never thought I'd be that into (meat FTW!), until I made one and was like...mmmm... :)
diakopter: You won't really, a method cache miss results in a high level method call 08:18
diakopter ok so, disregarding that suspicion, next thingie is 10.1% of time spent in MVM_frame_invoke, with 6% of time spent *exclusively* in it.. I'll burrow into that for a while 08:21
konobi diakopter: Instruments is dtrace based... so you could always use a custom dtrace script to get better info 08:23
diakopter: infact... a flame graph would probably be quite interesting
diakopter konobi: cool, thanks. I don't know of the scope of possibilities 08:24
hrm
konobi diakopter: www.brendangregg.com/flamegraphs.html 08:25
at the bottom of the page, there's lots of specific examples on use 08:26
www.perkin.org.uk/posts/reducing-ra...pkgin.html is a useful one 08:27
jnthn: so yeah... that kinda thing. 08:28
also thankfully, there's info there on how to do similar under linux 08:32
08:34 zakharyas joined 08:42 zakharyas joined 09:18 kjs_ joined
arnsholt jnthn: Cheese curry being something like paneer tikka masala? 09:20
jnthn arnsholt: Paneer jalfrezi in this case. I totally should do paneer tikka masala at some point but...it's a bit more effort. :) 09:24
arnsholt Yeah, it is. Paneer makhani is pretty good as well (you'll see it as butter paneer too) 09:25
Same gravy as chicken makhani/butter chicken, but paneer instead of chicken obviously
09:38 Ven joined 09:39 zakharyas joined 09:52 zakharyas joined
konobi jnthn: oh yes... how does the build/setup.pm work? 09:58
specifically the block where each platform has the whole posix, win32, gcc, etc. 09:59
jnthn konobi: I thought that was largely just data? 10:01
I don't really know, though. I leave worrying about build infrastructure to people who're better than me at worrying about such problems. 10:02
I think everything I wrote on configure/build stuff got replaced. :) 10:03
nwc10 IIRC Pm had some thoughts on how to do it better, but Pm seems to have been abducted by Real Life (TM) :-( 10:07
jnthn Aye
:-(
nwc10 It does need imrpoving. But it would benefit from being done by someone who has some understanding of how to do it well (enough) on Win32 and POSIX
and also with an idea on how to reduce the duplication between NQP and Rakudo's build tools 10:08
jnthn Build/configure stuff is one of the few areas where I explicitly say "no, I'm not caring about it, it's somebody elses problem" :)
konobi k... there's an issue there with the "Solaris" thing... but I couldn't work out what the fix would be
10:09 kjs_ joined
jnthn As far as I understand it, compiler and toolchain can be selected independently. 10:09
konobi yeah, but for Solaris, the CFLAGS are hardcoded, even if gcc is detected 10:13
k... created issue #306 for 2 build issues 10:14
the 2nd part might be of more interest 10:15
though jit specific 10:16
k... added logs of the build issues 10:21
jnthn Thanks 10:24
10:37 zakharyas joined
timotimo diakopter: when i perf'd a random moarvm process, the biggest portion of samples were counted in the atomic counting operations for the ref counts 12:00
perhaps there's a little win to be had when there's only one thread? 12:01
12:02 zakharyas1 joined 12:37 brrt joined 13:01 Ven joined 14:28 dalek joined 14:45 kjs_ joined
diakopter timotimo: how much time was spent in there 15:08
15:09 kjs_ joined
diakopter timotimo: yes, it's worth considering adding a single global atomic read of the "single thread mode" thingie that can bypass the rest of the multithread evasive maneuvers 15:10
15:16 Ven_ joined
diakopter timotimo: ohh you mean frame refcounts.. yes, those could also have a single-thread fastpath until the instance denigrates to userthreads mode 15:17
.oO( s/denigrates/desecrates/ ?)
15:30
15:42 Ven_ joined 15:52 tokuhiro_ joined 16:03 zakharyas joined
japhb_ degenerates 16:11
hoelzro o/ #moarvm 16:55
japhb o/ hoelzro 17:08
hoelzro o/ japhb
17:36 kjs_ joined, vendethiel joined
hoelzro there's no env variable to imply --full-cleanup, is there? if not, is anyone opposed to it being added? 17:44
18:23 kjs_ joined
jnthn hoelzro: No, I'm fine with it being added, just added it to --help also 18:26
18:38 zakharyas joined 18:56 domidumont joined 19:40 zakharyas joined
jnthn m: my $timer = Supply.interval(0.1); $timer.tap(-> $_ { die 'uh-oh' }); sleep 2; 19:42
camelia ( no output )
hoelzro jnthn: *nod* 19:44
speaking of full cleanup, don't be *too* alarmed if you get a use-after-free ASAN failure if you use full-cleanup; I did that late last night, and will address it after work today 19:49
apologies for breaking Moar =(
jnthn Thankfully, full cleanup is not the default :) 19:50
hoelzro =) 19:53
20:20 kjs_ joined 20:29 zakharyas joined 21:09 kjs_ joined 21:10 diakopter___ joined 21:16 kjs_ joined 21:19 kjs_ joined 21:21 leont joined 23:24 vendethiel joined