🦋 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.
03:19 |Tux| left 04:27 lizmat left 04:31 |Tux| joined 04:44 vrurg joined 04:46 vrurg_ left
nine Well I'm not sure what to do here. The new behaviour is not wrong. Quite the opposite, detecting an error at compile time is always better than leaving it for runtime. 06:57
08:12 sena_kun joined
nine I guess I can just change the test to no longer supply a literal ala my $n = 9; my G $g = $n 08:20
08:31 finanalyst joined 08:40 camelia left, nine left 08:47 camelia joined 08:49 finanalyst left 08:51 nine joined 09:00 camelia left 09:01 nine left 09:02 nine joined 09:03 camelia joined 09:05 lizmat joined 09:06 sena_kun left, sena_kun joined, nine left, camelia left 09:07 nine joined 09:14 camelia joined
ab5tract nine: ahh, it was late and I wasn’t reading clearly. The only difference is compile time versus run time, right? Could the test maybe changed to an eval style one? It should fail for both compile time and runtime in equal measure 10:33
*should then 10:34
Geth rakudo/main: cee25a7c08 | (Stefan Seifert)++ | src/Raku/Actions.nqp
RakuAST: Fix $*RAKU.version in v6.e.PREVIEW

The PREVIEW modifier should not be included in $*RAKU.version. This is ensured by the call to set_language_revision which replaces the previously set language_version.
10:53
lizmat for the record: 2 days of REA harvester run without crash 10:56
nine takes note
lizmat also I haven't seen any flappers in make spectest anymore, but that may be too soon to tell 10:57
nine: looking at the strings heap in c setting: any idea where the 21K+ numeric strings come from? 11:00
feels like something is being stringified in the compilation process that shouldn't
fg 11:02
oops
Geth roast: ea4e74b76e | (Stefan Seifert)++ | S12-subset/type-subset.t
Fix invalid test failure when error is detected at compile time.
11:03
lizmat I guess that's a +1 again :-)
nine Yeah, it's 1042 now
I'd guess that any number that we parse out of the source will still be in string representation 11:04
lizmat yeah, but I don't see the numbers 0..21000+ in the source, is what I'm saying
not all of them, I mean :-) 11:05
walking the c setting string heap in Raku is .02 seconds 11:08
but yeah, in C it's probably 1000x faster, so 0.00002 seconds, ok :-) 11:09
Looks like the numbers are coming from compilation unit names ??? 12:39
ab5tract lizmat: are you poking at R#5550? 12:51
linkable6 R#5550 [open]: github.com/rakudo/rakudo/issues/5550 [Fixed in RakuAST] Simple literal-only regex fails
ab5tract FWIW I think the fixed in RakuAST tag may be a misnomer here, as the logic in the base compiler is to add a rxtype <scan> to any rxtype<literal> 12:54
lizmat nope, poking at bytecode introspectability atm
ab5tract ack
lizmat if you think the label is premature, you can remove it 12:55
ab5tract The label isn’t inaccurate, so I’ll leave it. I’m more trying to initiate a conversation around whether this difference in behavior is intentional and/or desirable. I know very little about the regex stack 12:59
nine Any idea on what scan actually does? 13:02
ab5tract I didn’t actually manage to find that bit out yet :) 13:03
Maybe poking into the Java implementation will prove more comprehensible
My money is that the culprit is the switch to `memmem32` in e71ba7381 13:06
(MoarVM).
"The only caveat is the table uses a modulus so it can only jump to the next codepoint of the same modulus" 13:07
I'll report back with any findings regarding what `:rxtype<scan>` actually, you know, does :) 13:08
(re: e71ba7381 -- best guess so far is that the modulus-based string indexing could explain why this bug is triggered by a specific pattern) 13:09
nine indeed 13:10
lizmat nine: any idea why the cuuid of a frame is stored as a string, and not just as a number ?? 13:37
because *that*s what is filling up the string heap in the core settings: having 21K+ cuuids stored as strings 13:38
nine Well it _is_ a string. We just use an incrementing counter to generate them because it's convenient. 14:01
lizmat why is it a string? 14:02
| Compilation unit unique ID |
| 32-bit string heap index |
those 32bits could also be considered a cuuid by themselves, without having a string heap entry 14:03
I'm just wondering... that's all :-)
nine don't know 14:06
lizmat I'll ask the architect when I have the chance :-)
ab5tract unsurprisingly, the base MorVM Rakudo compiler and the NQP MoarVM interpreter both go through the `scan` method in `QAST::MASTRegexCompiler` -- gist.github.com/ab5tract/a4dbd249c...5e96b9ce27 16:54
unsurprising because that's what the QAST says its going to do.. surprising in that one works and the other does not
19:14 finanalyst joined 20:39 finanalyst left
Geth rakudo/main: c0f0ad3c6d | (Stefan Seifert)++ | 3 files
RakuAST: check whether sub calls work at compile time
20:45
rakudo/main: 151236e83a | (Stefan Seifert)++ | 2 files
RakuAST: detect more coercive parameter types
nine 1051 which is quite unexpected :)
Apparently we have quite a few tests that rely on compile time sub call signature checks 20:46
20:47 finanalyst joined 20:51 vrurg_ joined, vrurg left 21:52 sena_kun left 21:53 sena_kun joined
ab5tract Nice! 22:04
22:19 |Tux| left
lizmat nine: cool! but it appears we lost t/02-rakudo/03-corekeys.t 22:21
22:29 finanalyst left 22:31 |Tux| joined 23:00 sena_kun left