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.
00:00 reportable6 left, reportable6 joined
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.
06:00 reportable6 left 06:03 reportable6 joined
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
08:21 Nicholas left 08:27 sena_kun joined 08:45 Nicholas joined 09:09 sena_kun left 09:34 lizmat_ left, lizmat joined 10:02 lizmat left 10:04 lizmat joined 10:12 lizmat left 10:32 lizmat joined 12:00 reportable6 left 12:02 reportable6 joined
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
18:00 reportable6 left 18:02 reportable6 joined
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
20:05 bisectable6 left, bisectable6 joined, coverable6 left, coverable6 joined, nativecallable6 left, nativecallable6 joined 20:06 benchable6 left, mst left 20:07 rypervenche left 20:08 mst joined, rypervenche joined 20:09 benchable6 joined 20:54 sena_kun joined 21:52 lizmat left, lizmat joined 22:11 lizmat_ joined 22:15 lizmat left 22:17 sena_kun left, sena_kun joined 22:47 linkable6_ left, sena_kun left, sena_kun joined 22:49 linkable6_ joined 22:52 sena_kun left 22:53 sena_kun joined 22:57 sena_kun left