|
github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
|
04:14
AlexDani` joined
04:18
AlexDaniel left
06:09
domidumont joined
06:57
robertle joined
07:38
zakharyas joined
08:33
AlexDani` left
08:34
AlexDani` joined
09:29
domidumont left
10:14
domidumont joined
10:27
AlexDani` is now known as AlexDaniel,
AlexDaniel left,
AlexDaniel joined
11:31
zakharyas left
11:45
discord61 joined,
discord61 left,
discord61 joined
11:46
discord6 left
11:47
discord61 is now known as discord6
11:55
domidumont left
11:56
domidumont joined
12:01
brrt` joined
|
|||
| brrt` | \o | 12:36 | |
|
12:36
brrt` is now known as brrt
|
|||
| brrt | so I've decided I'm going to start a full rewrite of the JIT. | 12:36 | |
| In Rust. | |||
| lizmat | yet another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/04/01/...kes-today/ | 12:40 | |
| timotimo | brrt: i might rewrite the debugger protocol to just be perl6 code that you have to evaluate to get the data structure composed | 12:42 | |
| brrt | .oO( Not sure if kidding ... ) | 12:43 | |
| timotimo | it's like JSONP | 12:44 | |
| so ... JSONP6 i guess? | |||
| brrt | lol | 12:46 | |
| honestly though..... an interpreter that would be just a bit more tuned to the needs of the JIT... that'd be nice | 12:47 | ||
| fewer functions calls | 12:48 | ||
| nwc10 | brrt: is MoarVM structured well enough that one could write the JIT in NQP? | 12:49 | |
| timotimo | then we'd have to port dynasm to nqp, too? | 12:50 | |
| well, that or minilua in nqp | |||
| nwc10 | thanks, that's an answer | ||
| brrt | well, or output x86 bytecode in nqp | 12:51 | |
| nwc10: it's a difficult question, actually | 12:52 | ||
| could it be made to work? surely | |||
| would it be reliable? probably not | |||
| nwc10 | ah OK. that ("reliable") is an excellent reason | ||
| I was thinking "is it easier in the long run?" and it seems to be "no" (where "In the long run we are all dead") | |||
| brrt | and the reason why is that (imo) MoarVM inherited too much.... perlishness, parroticness, or so | 12:53 | |
| too much damn C code | |||
| and C is just a little too high level | |||
| so one of the advantages of the expr JIT, for instance, is that we can refer symbolically to field offsets and struct sizes | |||
| and the C compiler fixes them up for us | 12:54 | ||
| and at the same time, I have all sorts of little support hacks to be sure we don't trip up a GC invariant | |||
| If I had to design the VM today, with what I've learned, I'd probably make it so that at least a write barrier would be cheaper | 12:55 | ||
| and I"d probably do that with some form of pointer tagging | |||
| .... and, I'd design it so that regular function calls would be cheaper | 12:56 | ||
| which is hard to do | |||
| but nevertheless possible, because you can always JIT something for the match between a callsite and a callee | 12:57 | ||
| which is already kind of what we do | 12:58 | ||
| more importantly, I'd start by implementing measurements | 13:00 | ||
| timotimo | measurements? what kind are you thinking of? | 13:01 | |
| brrt | (all of this, by the way, is not at all a critique of MoarVM..... it's more a what-would-I-do-with-infinite-time-and-resources) | ||
| jnthn | Indeed; MoarVM has largely been "what can we afford to do". :) | ||
| brrt | well, I'm assuming that a calling convention that reuses the C stack would perform better than our current implementation, which uses a heap-allocated stack | 13:02 | |
| but I don't know that | |||
| jnthn | Well, then you get into recursion depth limits and have more fun with continuations :) | ||
| Setting up our callframes is certainly too costly, though, and that's quite visible now many other things are fairly fast. | 13:03 | ||
| nwc10 | it has been said (forget by whom) that one of the good bits of the Perl 5 (hence Perl 1) VM design was that Perl subroutine calls don't recurse on the C stack | ||
| timotimo | inlining gives us a calling convention where data is partially passed in registers :) | ||
|
13:03
zakharyas joined
|
|||
| nwc10 | implication is that you can't bust the C stack (as a SEGV type "unfortunate surprise") from recursing deeply in the language | 13:03 | |
| it does break the assumptions of dtrace | |||
| brrt | sure. | 13:04 | |
| on the other hand, C stacks are large these days | |||
| timotimo | except when you create threads :D | ||
| brrt | really? | ||
| timotimo | on alpine, that is | ||
| brrt | oh | ||
| timotimo | we had that problem when spesh would crash | 13:05 | |
| brrt | weird | ||
| nwc10 | large, but IIRC still no portable way to know when you've exhausted it | ||
| timotimo | we were able to greatly reduce the size of frames that are left on the stack when spesh recurses | ||
| brrt | nwc10: true, true | 13:08 | |
| well, alternatively, you can go so far as allocate your own stack frames via mmap | 13:09 | ||
| not sure how far you should take such a thing | |||
| timotimo | so brrt what did you mean by measurements? | 13:11 | |
| brrt | and the other question is... for whom is the perl6 VM? | ||
| timotimo: basically, detailed knowledge of how the internals perform | 13:12 | ||
| timotimo | sounds like you want to put Tracy into moarvm | ||
| *hint hint* | 13:13 | ||
| brrt | hehe | ||
| what's Tracy? | |||
| timotimo | it's good, it's fast, it has a snazzy GUI | 13:15 | |
| basically telemeh, except good, and maintained by someone else | |||
| brrt | well, it is also a first name, so it's not really very googleable | 13:17 | |
| timotimo | hold on | ||
| bitbucket.org/wolfpld/tracy/ | |||
| brrt | oh, and bloody *tests*. I'm kicking myself for not adding tests to the MoarVM JIT yet | ||
| timotimo | aye | 13:18 | |
| nwc10 | ooh, runs on both kinds of CPU, x86 and ARM :-) | ||
| timotimo | lol | ||
| brrt | btw, there's been zero interest in the jit-testing proposal so far | ||
| so I'm going to probably do that in some weekend | |||
.oO( Sure bitbucket, I care so much about your api's ) |
13:19 | ||
| timotimo | yeah | ||
| nwc10 | off topic - best use of "bloody" seen recently: me.me/i/all-of-parliament-maam-yes...13e28f0c5b | ||
| timotimo | that is a really annoying popup | ||
| brrt | it is cool, yes | 13:20 | |
| timotimo | i wanted to look into putting tracy into moarvm last week but i'd have to do some build system changes, since it's a C++ project with an optional C API | 13:21 | |
| and i've still got so much other stuff to do that i'd already started, some of which would be paid for :) | 13:22 | ||
| not trying to say "you have too much free time, you do it for me" | |||
| brrt | I have too little free time :-( | 13:24 | |
| timotimo | ;( | ||
| brrt | don't we all | ||
|
14:10
domidumont1 joined
14:13
domidumont left
14:34
lucasb joined
15:24
robertle left
15:39
brrt left
15:59
zakharyas left
16:37
domidumont joined
16:40
domidumont1 left
17:11
robertle joined
17:25
domidumont left
19:32
AlexDaniel left
20:44
brrt joined
21:20
robertle left
21:24
lucasb left
21:47
brrt left
22:45
dogbert17 left
22:54
dogbert17 joined
23:56
samcv left
23:59
samcv joined
|
|||