🦋 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: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
lizmat Files=1349, Tests=117863, 305 wallclock secs (35.20 usr 9.67 sys + 4265.80 cusr 345.74 csys = 4656.41 CPU) 08:49
Geth rakudo: 380c775888 | (Elizabeth Mattijsen)++ | src/core.c/Str.pm6
Reduce visibility of Str internal classes
09:45
rakudo: 15ed1566ad | (Vadim Belman)++ | 2 files
Fix X::Assignment::RO message when assignment to Nil is attempted

There was two issues:
  - Nil was passing a string with its name as the problematic value
  - The exception wasn't designed to accept `Nil` as a value
Resolves #4586
09:59
rakudo: 1ea47322a2 | (Vadim Belman)++ | src/core.c/Exception.pm6
Make X::Assignment::RO $!value required

It was previously initialized with a "value" string.
rakudo: 4fece61378 | (Jonathan Worthington)++ (committed using GitHub Web editor) | 2 files
Merge pull request #4594 from vrurg/immutable-nil-error

Fix X::Assignment::RO message when assignment to Nil is attempted
lizmat hmmm... given "X" in a variable, how to get to the stash of the X class without using EVAL 10:23
m: dd "X::".EVAL.keys
camelia ("Import", "IllegalOnFixedDimensionArray", "Enum", "ControlFlow", "Str", "WheneverOutOfScope", "TooLateForREPR", "Temporal", "Await", "EXPORTHOW", "IO", "Coerce", "Range", "Undeclared", "Exhausted", "TypeCheck", "Promise", "CompUnit", "MustBeParametri…
lizmat m: my $x = "X"; ($x ~ "::").EVAL.keys 10:24
camelia ( no output )
lizmat m: my $x = "X"; dd ($x ~ "::").EVAL.keys
camelia ("Promise", "Eval", "Experimental", "Parameter", "OS", "Str", "Composition", "HyperRace", "Match", "Sequence", "MOP", "InvalidType", "Numeric", "DateTime", "Trait", "IllegalOnFixedDimensionArray", "Set", "Value", "Syntax", "Cannot", "Anon", "Assignmen…
vrurg m: my $x = "X"; say ::($x).WHO.keys 13:19
camelia (NotEnoughDimensions Subscript Attribute Import PoisonedAlias Enum Syntax Lock SecurityPolicy Redeclaration Hash Obsolete Inheritance EXPORTHOW Constructor HyperRace TooLateForREPR Parameter StubCode Eval Backslash OutOfRange Mixin TooManyDimensions P…
vrurg lizmat: did you mean this ^^
[Tux] Drum-roll please … 14:34
Rakudo v2021.10-17-g4fece6137 (v6.d) on MoarVM 2021.10-15-g51bff712c
csv-ip5xs1.424 - 1.529
csv-ip5xs-2015.142 - 15.695
csv-parser4.000 - 4.019
csv-test-xs-200.368 - 0.373
test6.795 - 7.012
test-t1.534 - 1.541
test-t --race0.932 - 0.938
test-t-2022.415 - 22.618
test-t-20 --race7.786 - 7.966
5 2019-07-18 11:00:10 test-t 1.621
4 2019-04-29 10:24:11 test-t 1.605
3 2019-04-20 18:37:45 test-t 1.594
2 2021-10-28 16:32:08 test-t 1.541
1 2021-10-28 16:30:08 test-t 1.534
CONGRATULATIONS ALL YOU HARDWORKING PEOPLE! 14:35
Altai-man [Tux]++ # diligently measuring things 14:38
MasterDuke nice 14:40
timo wowie 14:45
Geth rakudo/megamorphic-handlers: 0412a81f85 | (Jonathan Worthington)++ | 2 files
Fix typos
14:48
japhb Where's a good place for uploading temporary *images*? (Like gists, but for screenshots) 15:06
MasterDuke spectacle has an option to anonymously upload a screenshot to imgur 15:09
japhb imgur.com/a/ew0Unqd -- looks like you need to click to zoon 15:19
*zoom in
[Tux] See also file://localhost/work/www/Talks/CSV6/speed4.html 15:25
tux.nl/Talks/CSV6/speed4.html
japhb Interestingly, I also see similarly-shaped improvements for test-t-20 and test-t-20 --race, but *not* for test-t --race (or at least, not enough to counteract the slowdown over the last quarter). 15:35
[Tux]++ # measuring and tracking for *years* 15:36
lizmat japhb: test-t --race suffers from increased startup time 15:50
japhb Ah! 15:51
Makes sense then
Geth nqp/dispatcher-replace-arg-syscall: 82594548eb | (Timo Paulssen)++ | src/core/dispatchers.nqp
replace drop-arg + insert-arg with replace-arg

in a few dispatchers that nqp uses. Once there is a replace arg with literal values, that could be used in more places.
15:54
Geth rakudo/IterationBuffer.new(iterable): a8db54a567 | (Elizabeth Mattijsen)++ | src/core.c/IterationBuffer.pm6
Add a IterationBuffer.new(iterable) candidate

To facilitate initializing iteration buffers. Makes
   IterationBuffer.new(<a b c d e f g h i j>);
about 2x as fast as:
   my $b := IterationBuffer.new;
   $b.push($_) for <a b c d e f g h i j>;
   $b
18:52
rakudo: lizmat++ created pull request #4599:
Add a IterationBuffer.new(iterable) candidate
Geth rakudo: 0dae67a60d | (Elizabeth Mattijsen)++ | src/core.c/Cool.pm6
Make .subst upto 1.9x as fast

Because new-disp allows removal of the nqp::getlexcaller hack in the proto to be able to access the $/ in the caller from a dispatched method. This making it an empty proto, which apparently in new-disp, doesn't even exist call stack-wise.
19:14
rakudo: 2204c7cbc7 | (Elizabeth Mattijsen)++ | src/core.c/Str.pm6
Make .match faster by simplifying proto
19:27
lizmat fg
oops
[Coke] -bash: fg: job has terminated 19:30
MasterDuke looks like .trans and .subst-match are likely candidates as well 19:36
Geth rakudo: d619e026fa | (Elizabeth Mattijsen)++ | 2 files
Make .subst-mutate faster by simplifying proto
19:37
lizmat actually, that one accidentally also included .trans
ugexe: if I have just installed a module with `zef install .`, is it to be expected that the first time an installed script loads that module, that it gets compiled again ? 19:55
(judging from what I see with --stagestats, which sadly doesn't mention the name of the module being parsed, could that be fixed?)
ugexe if the script has something like `use lib ...` sure 19:59
lizmat and when it doesn't?
ugexe well if you install zef and run zef --help you'll see it doesnt recompile anything 20:00
nine Actually just use lib shouldn't cause any recompilation. Except if the lib contains some dependency of the installed module 20:35
What will happen on the first run is re-checking of dependencies. So the first run will be slower but not terribly much. 20:37
lizmat well.. after a recompile of rakudo, restarting the irc logs server takes about a minute :-( 20:38
nine Well that is to be expected. In that case we have to recompile all used modules and Cro alone is quite a bit of code 20:42
lizmat yeah... running it with --stagestats shows it's going at least 6 levels deep 20:44
Geth nqp/dispatcher-replace-arg-syscall: c9ef29a218 | (Timo Paulssen)++ | src/core/dispatchers.nqp
use replace-arg-literal-obj in nqp's dispatchers
20:54
ugexe yeah i wasnt quiet clear... i meant `use lib "."` or `use lib "lib"` (which if either was in code installed by `zef install .` would get picked up as a dependency 20:59
Geth nqp: timo++ created pull request #745:
Dispatcher replace arg syscall
21:03