🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
ab5tract +2 spectests in that PRv :) 07:35
Geth__ rakudo/main: 37283cd6f2 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: use cheaper way to check for […]

About 30x faster.
07:53
Geth__ rakudo/main: 4db885c485 | ab5tract++ (committed using GitHub Web editor) | 2 files
RakuAST: Set yada on low-level Method object

By doing so, we activate logic inside of the RoleToClassApplier that checks whether the class has properly implemented any yada'd methods in the role it is mixing in.
This required work in signatures and method/methodish in order to properly set the type of the implicit invocant to the class in situations where said class has defined a replacement for a role's yada'd method.
07:56
lizmat 948 +2 ! 08:22
Geth rakudo/main: 491b84694b | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: work a bit more on whitespace handling

  - make method usable in grammar, avoid { } which affects LTM semantics
  - rename helper method to be clearer in what it does
09:02
rakudo/main: b1560d3a1d | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: unhuffmanize "unv" token

  "horizontal-whitespace" is a much better name
09:13
Geth rakudo/main: 5b8f98b98b | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: unhuffmanize "unsp" token

  "unspace" is a much better name
09:26
Geth rakudo/main: bda2be54bf | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: unhuffmanize "vws" token

  "vertical-whitespace" is a much better name. Also add some more
documentation.
09:53
rakudo/main: bc9a712325 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: unhuffmanize "ENDSTMT" token

  "end-statement" is a much better name.
10:07
rakudo/main: e0975a5aeb | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: remove dead code

  "uassoc" is never used anywhere in any prec hash
10:43
rakudo/main: 743c425298 | (Elizabeth Mattijsen)++ | src/Raku/ast/operator-properties.rakumod
RakuAST: OperatorProperties.next-term is really a thing

The refactor to .dottyopish and .nulltermish was inconvenient, so revert that.
11:14
ab5tract m: my $content = 'sub f(Int $x where { $x % 2 == 1 }) {}'; shell Q:scalar<RAKUDO_RAKUAST=1 $*EXECUTABLE -e '$content'> 11:17
camelia ( no output )
ab5tract m: my $content = 'role R[Int $x where { $x % 2 == 1 }] {}'; shell Q:scalar<RAKUDO_RAKUAST=1 $*EXECUTABLE -e '$content'>
camelia ===SORRY!=== Error while compiling
Variable '$x' is not declared. Perhaps you forgot a 'sub' if this was
intended to be part of a signature?
------> role R[Int $x where {⏏ $x % 2 == 1 }] {}
The spawned command 'RAKUDO_RAKUAST=…
ab5tract why? :( 11:18
lizmat feels like the resolver was not informed about the Int $x ? 11:36
ab5tract yeah, but presumably its the same parsing that happens for the working sub version 12:33
do actions get called immediately after the token matches? 12:45
lizmat yes afaik :-) 12:46
nemokosch The NQP workshop also stated that 12:53
lizmat glad to hear it's still being referenced
nemokosch edumentab.github.io/rakudo-and-nqp...ls-course/ day 1, slide 54 12:55
Or is it 53 12:57
Geth rakudo/main: 6605c0a8a6 | (Elizabeth Mattijsen)++ | src/Raku/ast/operator-properties.rakumod
RakuAST: add .sub-or-precedence method

Either returns the sub-precedence, or the precedence. Will allow making expression parsing a lot simpler.
13:13
rakudo/main: 238fa00390 | (Elizabeth Mattijsen)++ | src/Raku/ast/expressions.rakumod
RakuAST: introduce RakuAST::OperatorProperties role

  - used by RakuAST::Infix/Prefix/Postfix so far
  - gives access to the properties, either from the resolved
   Operator object, or from the default config for that operator
  - also adds shortcut methods to directly access aspects of
   operator properties for that operator
  - removes the hack in RakuAST::Infix
rakudo/main: 066d1d959e | (Elizabeth Mattijsen)++ | src/Raku/ast/operator-properties.rakumod
RakuAST: OperatorProperties fixes

  - default for next-term is 'termish'
  - fix sub-or-precedence (had meaning reversed)
  - some minor code reorganization
14:18
rakudo/main: a6cbf20144 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: some streamlining of token infixish

  - mostly just readability
  - ad-hoc operator hash was the same as %additive, so use that
14:41
Geth rakudo/main: b5e9f6fe01 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: add suppor for OperatorProperties.adverb

Seems there is one case in the grammar where adverbs are handled as a fake infix. So add a flag for it.
16:09
rakudo/main: 57b92f0753 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: a fake infix is in fact an adverb

So rename fields / methods / dynvars from being fake infixy, to being an adverb, which better describes why this is needed.
lizmat just realized that (almost) all S01-perl-5-integration*.t tests passing, are really false positives 16:18
Geth rakudo/main: f3da4c1f05 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: reverse order of test

Saves one nqp::isnull, and reads better
16:22
[Coke] lizmat: oops. 16:41
lizmat yeah, if the tests cannot find Inline::Perl5, they assume it's not installed and skip all the tests 16:42
and thus come out without fail
[Coke] yah, seems like we already have a mechanism for running some tests and not others, and *that* should determine if the test is even run, and then if it's run, it must be installed or fail. 16:44
Geth rakudo/main: 8991280170 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: use method for setting / getting pos

For readability instead of direct attribute accesses. Since this code is pretty hot, spesh should inline these quickly enough
16:48
rakudo/main: 66506c7940 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: streamline .can-meta logic
17:11
Geth rakudo/main: 0395c7bbb9 | (Elizabeth Mattijsen)++ | src/Raku/ast/operator-properties.rakumod
RakuAST: add support for postfix power and vulgar
18:02