🦋 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.
00:00 reportable6 left 00:01 reportable6 joined 01:01 evalable6 left, greppable6 left, shareable6 left, unicodable6 left, tellable6 left, squashable6 left, bisectable6 left, sourceable6 left, notable6 left, benchable6 left, quotable6 left, linkable6 left, statisfiable6 left, committable6 left, bloatable6 left, nativecallable6 left, releasable6 left, reportable6 left, coverable6 left 01:02 linkable6 joined, committable6 joined, bloatable6 joined, benchable6 joined, statisfiable6 joined 01:03 shareable6 joined, quotable6 joined, bisectable6 joined, evalable6 joined, reportable6 joined, squashable6 joined, unicodable6 joined, greppable6 joined 01:04 sourceable6 joined, notable6 joined, releasable6 joined 01:05 coverable6 joined, nativecallable6 joined, tellable6 joined 02:51 linkable6 left, evalable6 left 02:53 evalable6 joined, linkable6 joined 05:06 linkable6 left, evalable6 left 05:08 evalable6 joined, linkable6 joined 06:00 reportable6 left 06:01 Geth__ joined 06:02 reportable6 joined, Geth left 06:18 nebuchad` joined 06:22 [Coke]_ joined 06:25 [Coke] left, nebuchadnezzar left
ab5tract +2 spectests in that PRv :) 07:35
07:42 samebchase left 07:43 samebchase joined 07:45 samebchase left 07:46 samebchase joined
Geth__ rakudo/main: 37283cd6f2 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: use cheaper way to check for […]

About 30x faster.
07:54 [Coke] joined 07:55 [Coke]_ left
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.
lizmat 948 +2 ! 08:22
08:23 Geth__ left, Geth joined 08:30 sena_kun joined
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
rakudo/main: b1560d3a1d | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: unhuffmanize "unv" token

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

  "unspace" is a much better name
09:28 Geth left, Geth joined
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
rakudo/main: bc9a712325 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: unhuffmanize "ENDSTMT" token

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

  "uassoc" is never used anywhere in any prec hash
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.
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
12:00 reportable6 left 12:03 reportable6 joined
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.
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
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:43 Geth left, Geth joined
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.
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.
16:11 linkable6 left, evalable6 left 16:13 evalable6 joined 16:14 linkable6 joined
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:24 Geth left, Geth joined
[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
rakudo/main: 66506c7940 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: streamline .can-meta logic
17:20 squashable6 left 17:23 squashable6 joined 17:27 ab5tract left 17:40 sena_kun joined 18:00 reportable6 left 18:02 reportable6 joined
Geth rakudo/main: 0395c7bbb9 | (Elizabeth Mattijsen)++ | src/Raku/ast/operator-properties.rakumod
RakuAST: add support for postfix power and vulgar
18:22 lucs left, lucs joined 19:22 linkable6 left, evalable6 left 19:23 linkable6 joined, evalable6 joined 20:44 kawaii left 20:45 kawaii joined 20:49 sjn left, sjn joined 20:55 sena_kun left 21:19 jgaz left 22:08 lizmat_ joined 22:12 lizmat left 23:30 reportable6 left, sourceable6 left, notable6 left, tellable6 left, coverable6 left, committable6 left, squashable6 left, evalable6 left, releasable6 left, statisfiable6 left, unicodable6 left, benchable6 left, quotable6 left, bisectable6 left, nativecallable6 left, greppable6 left, bloatable6 left, shareable6 left, linkable6 left 23:31 bloatable6 joined, greppable6 joined, quotable6 joined, unicodable6 joined, nativecallable6 joined 23:32 committable6 joined, reportable6 joined, bisectable6 joined 23:33 statisfiable6 joined, releasable6 joined, evalable6 joined, tellable6 joined, notable6 joined, linkable6 joined, coverable6 joined 23:34 benchable6 joined, shareable6 joined, sourceable6 joined, squashable6 joined