🦋 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:41 finanalyst left 00:42 finanalyst joined 01:04 finanalyst left 08:45 sena_kun joined 09:55 finanalyst joined
lizmat MasterDuke: I have no ided 11:27
*idea
11:48 finanalyst left 14:40 timo left
Geth nqp/main: c80b1f7916 | (Elizabeth Mattijsen)++ | 3 files
Streamline NQPCapture

  - remove BUILD method, bind to attributes directly
  - rename internal name from @!array to `@list, to match method naming
15:10
rakudo/main: 70efd5f3ce | (Elizabeth Mattijsen)++ | 2 files
Bump NQP to get NQPCapture streamlining

Also fix a naught poke into NQPCapture internals in Raku
15:27
nqp/main: e466ce5254 | (Elizabeth Mattijsen)++ | 2 files
Streamline NQPMu

  - readability
  - don't bother using .CREATE
15:41
15:59 MasterDuke left
Geth nqp/main: 96d8640dae | (Elizabeth Mattijsen)++ | src/core/NQPRoutine.nqp
Streamline NQPRoutine

And NQPSignature, RegexCaptures and NQPRegex
Mostly replacing <foo> by atkey(..,'foo') and [42] by atpos(..., 42) where possible (prefix increment in hashes requires <foo> lookup). Also prevent repeated array and hash lookups as much as possble.
I wonder why these knowhows don't live in the src/how directory
16:59
nqp/main: d3a20aa4d3 | (Elizabeth Mattijsen)++ | src/core/Regex.nqp
Streamline match() / subst()

  - while loops instead of for loops
  - handle invokable seperately from non-invokable
  - use native string array for result of subst
18:27
japhb idly wonders if all this NQP hacking (lizmat++) will mean that things like the inlining threshold would need a tune as well 18:31
Geth nqp/main: f9ef9d7cf3 | (Elizabeth Mattijsen)++ | src/core/testing.nqp
Streamline testing logic
18:51
nqp/main: 0fe437c877 | (Elizabeth Mattijsen)++ | src/QRegex/Cursor.nqp
First part of streamlining NQPMatchRole
19:52
lizmat japhb: possibly 19:54
20:18 MasterDuke joined
MasterDuke ugh, my internet connection has gotten so flaky 20:18
21:09 finanalyst joined 21:26 timo joined
MasterDuke huh. i'm in gdb at the nqp::istype (github.com/MoarVM/MoarVM/blob/main...p.c#L1720) of `if nqp::istype($expected, Positional) {` and `p MVM_6model_get_debug_name(tc, obj)` is 'Positional', but `p MVM_6model_get_debug_name(tc, type)` is 'NQPMu' 21:51
maybe because Positional is a role? 21:56
vrurg No, it means the name is not in the scope. 22:31
NQP fallbacks to NQPMu when can't resolve a symbol.
MasterDuke hm. any other way than string checking the name then? 22:36
doh, couple lines above is `if nqp::eqaddr($param_type, $Positional)`, i'll try that 22:37
vrurg Exactly. 22:38
Actually, particular solution depends on where the code is located. In your case it looks like grammar, or actions, or World case.
MasterDuke signature binder in the bootstrap 22:39
vrurg Hm, the link you provided above points into error reporting. I see no Positional somewhere around. 22:40
MasterDuke it's the error if the bind fails
vrurg Anyway, here is the answer how it gets there: github.com/rakudo/rakudo/blob/70ef...P.nqp#L176 22:41
MasterDuke yep. i'm working down at line 288
vrurg The point is that bootstrap doesn't declare Raku roles. So, they don't exists there. 22:42
The only way for it to know about any role is either via hllsym API, or by manually registering them by the CORE code.
MasterDuke looks like this is working now. will run a last spectest and create the PR later tonight 22:52
thanks
23:04 timo left, timo joined 23:20 timo left 23:22 timo joined