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.
Nicholas good *, * 05:44
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2022/04/25/2022-...inrelease/ 12:10
nine jnthnwrthngtn: I'm still struggling with auto generated protos in RakuAST. They need to be added to the StatementList containing the multi we're running the PERFORM-BEGIN of. But that StatementList doesn't even exist yet at that point (as actions are bottom up). 16:44
jnthnwrthngtn: Do you think it likely that we'll encounter another case where BEGIN time processing will cause us to add something to the parent StatementList? Or is this a super special case that will warrant a special case solution? 16:45
jnthnwrthngtn nine: I don't think generating protos should be done by generating a RakuAST node in the statement list 16:47
nine Where else would we attach that node?
jnthnwrthngtn In general, the RakuAST tree we get should match to elements in the source; generated things come via mechanisms like implicit declaratikons 16:49
*declarations
Though in this case add-generated-lexical-declaration is perhaps the right hook 16:50
btw, I've been working on some design around timings of things 16:57
nine But declarations declare symbols, don't they? And the symbol is the code object, i.e. the runtime representation. What I need to find a place for is the sub's AST
jnthnwrthngtn I figure that whatever generates the proto is what would be passed along into add-generated-lexical-declaration 17:01
nine jnthnwrthngtn: can you elaborate a bit on that? I don't really have a picture of what that would look like (though that may be more due to lack of sleep and the headache that follows...) 17:17
jnthnwrthngtn nine: Really haven't designed this bit fully yet, but: I think RakuAST::Routine will want to do RakuAST::BeginTime, and do an installation action there. It'd use the resolver to see if there's a proto in scope already; if not, it'd create an AST node (possibly even a RakuAST::Routine) and use it with add-generated-lexical-declaration. 17:36
In github.com/rakudo/rakudo/blob/cbff...kumod#L701 it'd need to look at if the multiness is `multi` (I assume we add an attribute for this) and not do produce a lexical symbol installation 17:37
(Just like it doesn't produce one for methods, or anon, and so on)
home time; bbiab 17:38
nine jnthnwrthngtn: already got all of that implemented except for the add-generated-lexical-declaration part 18:24
MasterDuke why would a profile show something with 1000001 entries as red (i.e., not jitted), but there are no bails in a spesh log? 19:37