🦋 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.
Geth rakudo: MasterDuke17++ created pull request #5631:
Use binding for all sub aliases
02:56
doomlord ab5tract: do you know why splice flatten by default? Isn’t it confusing for newbies? Like the opposite of List.push 07:30
is this a correct statement: there are Lists, Slips, and itemized arrays that are the opposite of Slips 07:31
You get a slip on an array by the method Slip, you get an itemized array by the method ItemizedArray 07:33
nine ab5tract: I'm pretty sure it's working, but of course performance would be abysmal. 07:41
The best solution to the dispatch-based-on-caller's-language-version problem is, well, to write a dispatcher or extend the current multi-dispatcher. 07:43
For NativeCall I introduced the possibility for a routine to say that it needs a custom dispatcher: method CUSTOM-DISPATCHER(--> str) { 'raku-nativecall' }. This could be an easy way to experiment and write at least as first version of such custom dispatch code. Whether we want to keep it that way or incorporate it into the (already quite complex) multi-dispatch code would remain to be seen. 07:44
ab5tract I already wrote the custom dispatcher for is item 07:47
Are you suggesting that the version check should live in the dispatcher?
nine Yes. Then the check would happen only once at the call site. Even more, the language version is a very static property of that lexical scope, so it would be super cheap to check (much cheaper than a dynamic variable) 07:51
ab5tract The cheaper version of the check is what I was looking for, so thanks 07:52
doomlord So, how do you get an itemized array out of an array? 07:55
.Unslip method, .Deslip, .Pils haha 08:00
doomlord last time I checked, dynamics variables and unicode were dooming raku performances. Glad you are doing something against them 08:06
also gave a glance at lizmat work using rakuast. She’s on a good way to speed up regexes if I understand her trajectory correctly 08:07
I’m afraid the unicode implementation will doom raku forever though haha 08:09
[Tux] Rakudo v2024.07-211-g5c532a3e2 (v6.d) on MoarVM 2024.07-13-g5e52422f4
csv-ip5xs0.259 - 0.260
csv-ip5xs-201.105 - 1.114
csv-parser1.493 - 1.538
csv-test-xs-200.142 - 0.143
test1.801 - 1.831
test-t0.400 - 0.403
test-t --race0.267 - 0.271
test-t-204.800 - 4.813
test-t-20 --race1.179 - 1.190
08:53
tux.nl/Talks/CSV6/speed4-20.html / tux.nl/Talks/CSV6/speed4.html tux.nl/Talks/CSV6/speed.log
releasable6 Next release in ≈4 days and ≈3 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
ab5tract how does one check the Raku version from within NQP? 16:24
lizmat language version or commit ? 16:26
vrurg_ might actually know that offhand
ab5tract loooks like `nqp::getcomp('Raku').language_revision` is the ticket 16:57
Geth rakudo/splice-is-item-again-twice: cd858513fe | ab5tract++ | src/core.c/Array.rakumod
[6.e] Dispatch in Array.splice based in `is item` trait

This allows the following to DWIM:
   > use v6.e.PREVIEW;
   > my @a = 1,2,3;
   > @a.splice(1,1,$[7,8])
   # [1,[7,8],3]
17:12
ab5tract As far as I can tell, pushing the version check to the dispatcher is going to be a significant PITA 17:15
Geth rakudo/main: 35b89a37de | (Elizabeth Mattijsen)++ | 2 files
RakuAST: handle RakuAST::Trait::WillBuild in .raku/deparsing

At least for now: it feels like it is being incorrectly codegenned for something like "has $.a = 42"
ab5tract ah, nevermind, I think I've got it figured out. 18:12
Geth rakudo/main: c7dd2bc51e | (Elizabeth Mattijsen)++ | lib/RakuAST/Deparse/Highlight.rakumod
RakuAST: initial stab at providing :allow support

to syntax highlighting. This allows RakuDoc markup to be inserted in source code. For instance, having B<> rendered as <bold></bold> and L<> rendered as a hyperlink. For instance
   my B<$a> = L<42|the-answer.com>;
... (9 more lines)
19:49
rakudo/splice-is-item-again-twice: 2373cbc973 | ab5tract++ | 3 files
[6.e] Dispatch in Array.splice based in `is item` trait

This allows the following to DWIM:
   > use v6.e.PREVIEW;
   > my @a = 1,2,3;
   > @a.splice(1,1,$[7,8])
   # [1,[7,8],3]
19:55
rakudo/splice-is-item-again-twice: 61310eb82f | ab5tract++ | 3 files
[6.e] Dispatch in Array.splice based in `is item` trait

This allows the following to DWIM:
   > use v6.e.PREVIEW;
   > my @a = 1,2,3;
   > @a.splice(1,1,$[7,8])
   # [1,[7,8],3]
ab5tract nine: let me know if this matches your expectations 19:58
I wasn't sure how static the language revision is in this context 20:00
Geth rakudo/splice-is-item-again-twice: 46b6526dec | ab5tract++ | 3 files
[6.e] Dispatch in Array.splice based in `is item` trait

This allows the following to DWIM:
   > use v6.e.PREVIEW;
   > my @a = 1,2,3;
   > @a.splice(1,1,$[7,8])
   # [1,[7,8],3]
20:01
nine ab5tract: sorry, doesn't look right. I was more thinking about adding one more magic variable to the generated code, i.e. a QAST::Var(:name<!__RAKU_VERSION__>, :scope<lexical>) that the dispatcher can read from the caller's lexical environment 21:01
ab5tract Ok… I‘ll have to think on that because reading that right now, I have very little conception of what you are suggesting 21:04
ab5tract Is this a proposal for a new and improved way to gate features by language revision? Because we already do that in places and I’m not clear what makes this case so different that it needs such special treatment 21:08