🦋 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
07:24 doomlord joined
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
07:40 doomlord left
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?
07:49 doomlord joined
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
08:03 doomlord left 08:05 doomlord joined
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
08:12 sena_kun joined 08:16 doomlord left, doomlord joined 08:17 doomlord left
[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
10:28 dawids joined, dawids left 14:44 finanalyst joined
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
15:05 finanalyst left
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
16:27 sena_kun left, sena_kun joined 16:41 sena_kun left, sena_kun joined
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
21:05 donaldh left
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
21:34 donaldh joined 22:08 sena_kun left