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:07
reportable6 left,
reportable6 joined
00:08
kjp left
00:11
kjp joined
00:24
[Coke] left
00:25
[Coke] left
00:28
[Coke] joined
00:53
[Coke] left,
[Coke] joined
01:04
MasterDuke left
02:09
reportable6 left,
linkable6 left,
bloatable6 left,
committable6 left,
notable6 left,
bisectable6 left,
releasable6 left,
unicodable6 left,
quotable6 left,
sourceable6 left,
tellable6 left,
evalable6 left,
shareable6 left,
statisfiable6 left,
nativecallable6 left,
coverable6 left,
greppable6 left,
benchable6 left,
greppable6 joined,
bisectable6 joined,
frost joined
02:10
unicodable6 joined,
benchable6 joined,
quotable6 joined,
releasable6 joined,
statisfiable6 joined,
sourceable6 joined,
reportable6 joined
02:11
shareable6 joined,
committable6 joined,
nativecallable6 joined,
notable6 joined,
evalable6 joined,
bloatable6 joined
02:12
linkable6 joined,
coverable6 joined,
tellable6 joined
02:19
frost left
02:22
frost joined
02:40
Kaiepi left
05:07
bisectable6 left,
statisfiable6 left,
shareable6 left,
unicodable6 left,
greppable6 left,
bloatable6 left,
reportable6 left,
benchable6 left,
notable6 left,
committable6 left,
nativecallable6 left,
tellable6 left,
quotable6 left,
releasable6 left,
linkable6 left,
coverable6 left,
sourceable6 left,
evalable6 left,
committable6 joined
05:08
bloatable6 joined,
tellable6 joined,
releasable6 joined,
evalable6 joined,
coverable6 joined,
statisfiable6 joined
05:09
shareable6 joined,
reportable6 joined,
bisectable6 joined,
nativecallable6 joined,
quotable6 joined,
unicodable6 joined
05:10
sourceable6 joined,
notable6 joined,
greppable6 joined,
benchable6 joined,
linkable6 joined
05:57
Geth__ joined
05:58
lizmat_ joined
05:59
Geth left
06:00
tailgate left
06:01
lizmat left
06:02
tailgate joined
06:06
reportable6 left
06:09
reportable6 joined
|
|||
nine | japhb: that makes me wonder: how does the old compiler frontend handle nqp ops in the first place? | 06:53 | |
Nicholas | good * | ||
"lex, yacc, smoke and mirrors" ? :-) | 06:54 | ||
nine | That's not that far off actually :D token term:sym<nqp::op> | 06:58 | |
And japhb++ is correct as well. The old frontend emits QAST::Want nodes for those literals. Actually the new one does as well, with just one exception: constant folded (double) quoted strings. So it's an omission rather than a conceptual issue. | 07:02 | ||
08:54
lizmat_ left,
lizmat joined
08:59
Geth__ left
09:00
Geth joined
09:22
frost left
09:29
frost joined
09:42
samcv left,
samcv joined
10:13
Altai-man joined
11:57
Kaiepi joined
12:07
reportable6 left
12:08
reportable6 joined
|
|||
nine | A longname is a name + optional colonpairs. My first instinct for the AST representation would be class RakuAST::LongName is RakuAST::Node { has RakuAST::Name $.name; has %.colonpairs; ... }. | 12:18 | |
However RakuAST::Type::Simple and other places expect a RakuAST::Name for the name, not such a LongName. This indicates that RakuAST::Name should be an abstract role rather than the class it is now. | 12:19 | ||
Alternatively RakuAST::Name::Long could be a subclass of RakuAST::Name. Would take care of those type constraints, but makes it somewhat cumbersome to construct (since $<name>.ast already creates a RakuAST::Name) which may be a sign that this isn't the right way either. | 12:20 | ||
jnthn | RakuAST::Name is what goes with LongName | 12:22 | |
*longname | |||
It's meant to have colonpairs included too eventually | 12:23 | ||
I don't think there's any reason to distinguish name vs. longname in the AST level; almost everywhere accepts a longname anyway | |||
So no subclass, just add colonpairs in RakuAST::Name | 12:24 | ||
nine | Ah, that's good to know :) | ||
jnthn | For things like TypeName:D and Type(OtherType) I was thinking of RakuAST::Type::Definedness and RakuAST::Type::Coercion, fwiw | ||
(Which would reference other RakuAST::Type nodes) | 12:25 | ||
nine | So "# TODO add colonpairs" is quite accurate then despite its brevity. I.e. get an object from $<name>.ast and then .add-colonpair those colonpairs | 12:26 | |
class RakuAST::Type::Coercion is RakuAST::Type is RakuAST::Lookup is already implemented :) | |||
github.com/rakudo/rakudo/commit/27...78d07ccfd6 | 12:27 | ||
jnthn | Ah, nice :) | 12:31 | |
nine | Interesting: the old compiler frontend emits QAST::Op(istype_nd) with Int followed by QAST::Op(isconcrete_nd) for an Int:D param. My current state emits QAST::Op(istype_nd) with Int:D instead, but that still seems to do the right thing | 13:58 | |
Any reason to do istype_nd+isconcrete_nd instead? | |||
14:21
frost left
|
|||
nine | sub group-of ( Pair ( Int:D :key($plan), Pair :value(( Str:D :key($desc), :value(&tests))))) # sometimes I wonder if we've taken things too far | 14:35 | |
jnthn | I think the istype + isconcrete pair are cheaper | 14:36 | |
Unless there's already dispatcher handling to do better on definedness types | 14:37 | ||
But by default it'll call accepts_type method on the meta-object, iirc | 14:38 | ||
nine | # Do type checks. | 15:09 | |
# TODO really more involved than this | 15:10 | ||
Indeed :D | |||
16:13
Kaiepi left
16:15
Kaiepi joined
16:20
Kaiepi left
16:24
Kaiepi joined
16:45
Kaiepi left
17:26
Altai-man left
17:54
Kaiepi joined
18:07
reportable6 left
18:08
reportable6 joined
19:21
MasterDuke joined
20:21
statisfiable6 left,
bloatable6 left,
releasable6 left,
linkable6 left,
benchable6 left,
shareable6 left,
greppable6 left,
committable6 left,
tellable6 left,
quotable6 left,
evalable6 left,
sourceable6 left,
coverable6 left,
bisectable6 left,
reportable6 left,
nativecallable6 left,
unicodable6 left,
notable6 left
20:22
tellable6 joined,
unicodable6 joined,
sourceable6 joined,
committable6 joined,
coverable6 joined,
benchable6 joined,
quotable6 joined
20:23
notable6 joined,
bloatable6 joined,
linkable6 joined,
greppable6 joined,
nativecallable6 joined,
statisfiable6 joined,
evalable6 joined,
shareable6 joined
20:24
reportable6 joined,
bisectable6 joined,
releasable6 joined
20:50
[Coke] left
22:18
discord-raku-bot left,
discord-raku-bot joined
23:13
[Coke] joined
23:16
[Coke] left
|