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 |