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:05 reportable6 left 00:06 reportable6 joined 01:06 evalable6 left, committable6 left, reportable6 left, notable6 left, linkable6 left, statisfiable6 left, coverable6 left, releasable6 left, nativecallable6 left, shareable6 left, bisectable6 left, benchable6 left, bloatable6 left, unicodable6 left, greppable6 left, sourceable6 left, quotable6 left 01:07 benchable6 joined, notable6 joined, linkable6 joined, sourceable6 joined, statisfiable6 joined, coverable6 joined 01:08 evalable6 joined, reportable6 joined, shareable6 joined, committable6 joined, bisectable6 joined, greppable6 joined, quotable6 joined, nativecallable6 joined 01:09 bloatable6 joined, releasable6 joined, unicodable6 joined 01:20 japhb left 01:23 japhb joined 03:19 linkable6 left, evalable6 left 03:22 evalable6 joined, linkable6 joined 04:22 benchable6 left, coverable6 left, sourceable6 left, notable6 left, releasable6 left, greppable6 left, committable6 left, statisfiable6 left, linkable6 left, unicodable6 left, shareable6 left, evalable6 left, nativecallable6 left, bisectable6 left, reportable6 left, bloatable6 left, quotable6 left, greppable6 joined 04:23 quotable6 joined, nativecallable6 joined, bloatable6 joined, sourceable6 joined, notable6 joined, unicodable6 joined, benchable6 joined, reportable6 joined, committable6 joined 04:24 linkable6 joined, bisectable6 joined, statisfiable6 joined 04:25 releasable6 joined, coverable6 joined, evalable6 joined, shareable6 joined 05:27 frost joined, frost left 05:51 frost joined 06:07 reportable6 left, reportable6 joined
nine jnthnwrthngtn: 329! 08:31
jnthnwrthngtn: github.com/rakudo/rakudo/commit/997c4f20b2 adds API and needs review
lizmat looks like we can't build on Windows since dev.azure.com/Rakudo/rakudo/_build...7ed1ecd095 ? 10:24
MasterDuke a quick google suggests atomic support wasn't added until visual studio 2022 10:30
but CI uses Visual Studio 2019
lizmat so: does that mean we have an issue with testing, or more generally with building ? 10:33
MasterDuke we could revert a3476e286967f33af50c6dad821db16bf347b5bc (which made C11 atomics the default), we could add the `--no-c11-atomics` MoarVM option to our Windows CI jobs, we could add a probe in Configure.pl to check whether C11 atomics are actually supported 10:36
lizmat feels like the last option would be best ?
10:36 linkable6 left
nine indeed 10:37
10:39 linkable6 joined
nine method multi_declarator:sym<multi> 10:58
And suddenly the flexibility of routine names makes so much sense... 10:59
Surprisingly just parsing multi declarators (and still compiling them into plain normal only routines) gets us to 331 11:24
11:38 sena_kun left 11:39 sena_kun joined 12:06 reportable6 left 12:08 reportable6 joined
jnthnwrthngtn omg, I must have been sleepy when I did the Rat parsing stuff, it was doing it wrong 12:11
So Rat literals often got the wrong values
Fixing that is worth 32 extra passes, bringing us to 356 even before I pull nine++'s latest things :)
lizmat jnthnwrthngtn++ 12:14
jnthnwrthngtn nine: Mixed feelings about the signature "tell, don't ask" changes, in so far as I'm not sure if it will have a negative impact when folks manipulate the AST (for example, add extra parameters) 12:20
Plus now we have a mix of "some properties (like invocant type) are discovered through attachment, others are pushed down at BEGIN time" 12:21
nine It has the benefit of being a solution I could find. It had no competitors... 12:22
It's not clear whose responsibility it is to determine those types. I could argue it both ways. It'd certainly be easier (more magical) for parameters to do it. But then this magic may also be a bit surprising and get in the way. Arguably it's for the owner to decide these things. 12:25
We can of course go all the way and treat invocant type the same. At least that would make it consistent. Only reason I didn't do it is that I wanted to get by with as few changes as possible. 12:27
jnthnwrthngtn The attachment mechanism is meant to be the general way for handling situations where compilation and meta-object production depends on the surrounding context, although it's certainly the case that timing and similar around it is not fully fleshed out yet 12:30
nine BEGIN makes everything hard 12:31
jnthnwrthngtn Right, and I'm certainly not "done" in terms of exploring that territory in the RakuAST design
nine So I suggest leaving it as it is for now, so we continue to make progress and collect more use cases and re-visit that part later with a hopefully better design. 12:32
jnthnwrthngtn OK, hopefully the revisit won't be too painful. 12:38
Seems we're up to 375 passing tests 12:39
Blasting us well over the 25% mark (27.7%) 12:40
MasterDuke nice 12:41
jnthnwrthngtn In general, I want to try and avoid too many special-case interactions between AST nodes. So I hunt for generic things (like visiting, the attachment mechanism) that extract common "node interaction patterns" and solve many problems at once. 12:43
The expression thunk thing is another example of that
Timing *also* comes up there, though: when is the right time for an expression to get its whatever-code thunker attached? 12:44
(I don't know yet.)
BEGIN time execution also implies that we might need to push parts of the AST into later "stages" than we might naturally otherwise do 12:45
It may be that at the point you BEGIN-time evaluate something, the AST below that point is made immutable, for example. 12:46
Anyway, I guess there's some kind of lifetime model to come up with here. 12:47
That should also rationalize the difference between EVAL from parse-time and EVAL from synthetic AST 12:48
Or when synthetic AST appears in a parse-produced AST (for example, thanks to a macro) 12:49
(Effectively, in the case we're parsing, BEGIN-time effects can affect how we parse/interpret what follows. But in a synthetic AST, well, it's already decided what things are. A bit like how precedence is no longer a question in an AST.) 12:50
nine How would traits then work with a synthetic AST? 12:51
jnthnwrthngtn The BEGIN-time effects are performed, it's just that there's not a parsing triggering them "as soon as possible" 12:52
The question is what the rules are for triggering that 12:53
For example, should there be a rule like "my children must be in at least the compilation phase that I am"
We're going to have a nice headache in this area with quasi quoting too :) 12:55
Lunch, bbiab 12:56
lizmat MasterDuke: will you do the Rakudo bump ? 12:59
MasterDuke sure 13:04
lizmat well, I can do that also... just wanted to make sure we're not both doing it :-) 13:09
nine Out-of-sync package detected in LANG1 at age ~= "\n$indents# between tw (value in braid: RakuAST::Package, value in $*PACKAGE: RakuAST::Package) 13:45
I wonder if this is still a correct warning (issued by NQP) or if it's just obsolete.
14:52 dogbert17 joined 15:09 frost left 15:45 sena_kun left 15:46 sena_kun joined
nine (value in braid: RakuAST::Package (X::SubtestsSkipped), value in $*PACKAGE: RakuAST::Package (Test)) looks legit 16:30
16:57 sena_kun left 16:58 sena_kun joined 18:04 discord-raku-bot left 18:05 discord-raku-bot joined 18:07 reportable6 left 18:08 reportable6 joined
lizmat is it correct that you cannot do an nqp::atkey on a lexpad, unless the key actually exists ? 19:09
if not, you get: Lexical with name 'Version' does not exist in this frame
19:11 linkable6 left 19:13 linkable6 joined 20:20 Geth left, Geth joined 22:05 discord-raku-bot left 22:06 discord-raku-bot joined 23:54 reportable6 left, committable6 left, bloatable6 left, nativecallable6 left, linkable6 left, releasable6 left, benchable6 left, quotable6 left, shareable6 left, sourceable6 left, statisfiable6 left, bisectable6 left, coverable6 left, evalable6 left, greppable6 left, unicodable6 left, notable6 left, reportable6 joined 23:55 linkable6 joined, greppable6 joined, bloatable6 joined 23:56 coverable6 joined, bisectable6 joined, quotable6 joined, releasable6 joined, benchable6 joined, nativecallable6 joined, committable6 joined, Techcable left, sourceable6 joined 23:57 notable6 joined, statisfiable6 joined, evalable6 joined, unicodable6 joined, shareable6 joined 23:58 Techcable joined