Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
Woodi "memory mapped" sound faster then open/seek/read syscals but it's still disc access, right ? good for big user data but for language constructs ? 03:32
maybe language is too big and some similiar features can be compressed together ? or moved to "more important" standard library, core of core ? 03:36
japhb Woodi: Purely for cache optimization, perl5 had pp_hot.c (explained in github.com/Perl/perl5/blob/blead/p...#L21-L32), so the concept isn't completely unreasonable, but given how much of Raku is written in Raku or NQP, I would think it would be hard to do something similar simply from a dependency ordering standpoint. 04:16
C code has the "advantage" of writing everything in different source files and letting the linker figure it out.
xiaomiao Woodi: memory mapped /sounds/ good, but there's lots of annoying limitations 06:43
for example very little control over writeback, so if you modify lots of pages you might get "random" latency spiked ... and implementation-specific, linux kernel has some unpleasant locking/serialisation around mmap 06:44
nine Good thing these are mapped read only then 07:30
Woodi but it still is disc access vs array in memory lookup ? 13:14
as in: array loaded on startup as part of executable. but it is in profiller anyway ? 13:18
jnthn Stuff that is mapped is typically demand paged (e.g. pulled from disk into memory on demand), and when it's readonly the underlying physical memory where it resides can be shared between multiple processes. 13:29
I'd bet even when it's not readonly then it's shared and CoW'd 13:31
Woodi japhb: nice thing with pp_hot :) but I mean: language spec is enormous and thinked about some magical implementation tricks to compress it :) like eg. class and roles and anything similiar be implemented with same code, etc. Maybe&Magic :)
nine jnthn: you'd win that bet 13:35
Woodi: have you had a look at Rakudo's metamodel? Classes, roles, etc. are already implemented using shared primitives. 13:37
Woodi that "core of core" part was also about splitting what is available all the time, somehow.
nine: that just example, there are so many things... and I do mainly "maybe" here... 13:40
jnthn: nice to learn that. now we need raku to be as popular as bash ;) 13:43
btw. world compilation failed on my 1Gb vps, buu... 13:44
lizmat :q 14:00
oops ww
heh, I just realized there's an actual "goto" op in MoarVM :-) 17:27
nine And it's used quite commonly 17:36
15K+ times in the setting for example 17:37
lizmat heh
nine: but all within the current frame, I assume ? 17:58
nine sure 18:02
lizmat in the oplist, any idea what :confprog means ? 18:12
nine profiler related 18:35
lizmat I guess the name says it all ?? 18:36
no_op :confprog
nine IIRC it means that this op is valid in a profile configuration program 19:24
The letter being something telling the profiler when to start and stop or something