00:55 Kaiepi left 00:57 Kaiepi joined 01:45 ilbot3 left 01:57 ilbot3 joined 05:32 domidumont joined 05:39 domidumont left 05:40 domidumont joined 05:54 domidumont left 06:18 domidumont joined 06:23 domidumont left, domidumont joined 07:16 shareable6 joined 07:36 AlexDani` joined 07:37 AlexDaniel left 08:23 shareable6 left 09:36 robertle joined 09:38 shareable6 joined 10:01 shareable6 left, SourceBaby left, squashable6 joined 10:09 wictory[m] joined 11:00 yoleaux joined 11:20 brrt joined
brrt good * #moarvm 11:20
i've debugged my two remaining invokish-free testcases to: a): one case involving continuations, which is to be expected because continuations are weird 11:21
b): another case involing threads, which i didn't quite expect but i can probably figure out 11:22
samcv brrt: explain to me what invokish is?
brrt 'invokish' and 'throwish' are the names of annotations and so-called 'control guards' in the JIT 11:23
the basic problem they solve is that the MoarVM interpreter is a): non-nesting (we only have one interpreter runloop, except in an exceptional case of FFI) and b): prone to change the control flow of programs by updating interpreter data structures (i.e, updating the process counter, frame etc) 11:27
neither of which work well with the JIT
i.e. if the interpreter functions try to change control flow by setting the current frame to a new value, the JIT-compiled code must somehow 'figure that out' 11:28
anyway; invokish and throwish compile down to a set of pre-opcode setup and post-opcode check that allow us to return to the interpreter before calling 11:30
there's a bunch of opcodes that unexpectedly require this (e.g. smrt_numify) 11:35
now all code arround such opcodes requires this setup and teardown 11:36
this was necessary because until i started on jit-stack-walker, we couldn't read or write the 'current position' in the JIT
in the first iteration (when I still had an actual stack 'walker'), I could only read the current position. However, because (even with compiler flags), compilers don't always lay out stack frames in the way you expect, that didn't work, esp. on windows 11:38
in the current iteration, I just take a pointer to where I *know* my return address pointer will end up, and use that to read the current position
this works very well, actually 11:39
now for the final trick, we can also use the same pointer to get rid of the 'invokish' setup-and-dispatch code entirely, *because we can now assign the current-position in the JIT*
I mean, if I have a label, and I assign my jit-return-address pointer to some place, the return from C into the JIT-compiled frame will continue at the place I assigned to 11:40
and this is *always* true, regardless of OS 11:41
so that is really cool, actually
but, it doesn't work entirely
or at all :-D 11:46
samcv nice :) 12:09
heh
brrt: i'm working on getting asciidoc having proper links on github or if we generated the documents for web 12:10
basically our links currently to asciidocs act like raw links to the actual files on github. but turns out with asciidoc what you can do is declare it not as a link but as a reference and if you process the two files together it will link them automagically 12:11
and to named sections/features/invisible markers in other documents as well 12:12
brrt that'd be pretty nice 12:41
lizmat hopes brrt will blog about his JIT work in the near future (along with a x% faster MoarVM :-) 13:03
yoleaux 11:21Z <Zoffix> lizmat: it's an illformatted upload (maybe PAUSE should be rejecting those?) So modules.perl6.org doesn't know how to work with it, so it's not on the site: irclog.perlgeek.de/perl6/2018-05-28#i_16213620
Geth MoarVM: 33d94f7ee7 | (Samantha McVey)++ | docs/collation.asciidoc
Fix an incomplete sentence in the collation documentation
13:04
13:07 lucasb joined
lucasb re docs: I once collected a few notes about moar's source in a dir of markdown files 13:09
I showed to the community, but there was no interest :) I wish it could have been the base for a moar-docs project to generate a HTML static site of documentation 13:11
at the time I was trying to read moar's source, but I have given up 13:12
anyway, just commenting because I saw samcv and brrt talking about it 13:13
13:24 domidumont left 13:33 domidumont joined 13:46 domidumont1 joined, domidumont left 13:49 domidumont1 left
brrt lucasb: i'd still be interested, good chance we just missed it rather than any active disapprovement 13:49
13:49 domidumont joined
brrt so, ehm, if you could remind us again, we'd probably find some use of it :-) 14:00
lizmat: do you want that x to be positive though :-P 14:03
lizmat ah, yes, +x :-) 14:04
lucasb brrt: hey :) let me see in what shape those files are today and if I can publish them somewhere 14:12
it's just personal notes, copied from source code. most pages are empty, but I still think it's a good starting structure 14:14
lizmat lucasb++ 14:15
brrt thanks! 14:16
14:23 MasterDuke left 14:26 MasterDuke joined 15:26 domidumont left 15:43 brrt left 15:44 shareable6 joined 15:52 domidumont joined 16:08 robertle left 16:15 domidumont1 joined 16:18 domidumont left 16:28 shareable6 left 17:02 AlexDani` is now known as AlexDaniel 17:26 shareable6 joined 17:28 brrt joined
brrt so, i think i've fixed the one with continuations 17:58
but the infinite loop with races one is still looping on 18:03
lucasb here is the rough sketch: lucasbuchala.github.io/temp/ 18:06
I just played with the idea for a while but then abandoned it 18:07
timotimo looks like a good beginning. i wonder if we can put a lot of the text that'll go into this document into the actual source code and such 18:36
so that it's never far away from where changes are made
18:48 domidumont1 left 19:22 shareable6 left
brrt hmm, i can get an unbreak by uncommenting hllize, but i have *no* idea why that'd be 19:27
19:32 Ven`` joined 19:35 Ven` joined, Ven`` left 19:37 brrt left 19:42 Ven` left 19:44 lucasb left 20:16 shareable6 joined 20:25 shareable6 left 20:49 Kaiepi left
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/05/28/...o-you-too/ 21:02