🦋 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:00 reportable6 left 00:01 reportable6 joined 01:03 MasterDuke joined
MasterDuke ugexe, lizmat: currently the highest function by exclusive time during a `raku -I . -e 'use Test'` in a large directory is `sub DYNAMIC`. there are 104k lookups each for `$*CWD` and `$*SPEC` 01:55
02:04 linkable6 left, evalable6 left 02:06 evalable6 joined, linkable6 joined
MasterDuke ah, looks like i have a patch that gets rid of most of them, drops the time from ~3.7s to ~3.5s 02:47
02:50 zostay left, zostay joined
MasterDuke and passes a spectest 03:19
oh, it's against github.com/rakudo/rakudo/pull/5287, so i can't PR it right now 03:43
tldr, it adds a new Str.IO multi with`:$SPEC!` and `:CWD!` parameters and passes them on to the IO::Path.new call. then use that in CompUnit::Repository::FileSystem!dist-from-ls 03:45
doh, it's not against that PR, i just don't like the git diff output 03:59
but i'll be inspired by that pr for my branch name 04:01
doh again, don't need to create a new Str.IO multi 04:13
Geth rakudo: MasterDuke17++ created pull request #5288:
Don't lookup $*(SPEC|CWD) for every file in dir...
05:12 linkable6 left, evalable6 left 05:13 kurahaupo joined, linkable6 joined 05:15 evalable6 joined 06:00 reportable6 left 06:02 reportable6 joined 06:27 kurahaupo left 06:28 kurahaupo joined 06:29 kurahaupo left 06:35 kurahaupo joined 06:48 kurahaupo left 06:56 kurahaupo joined, kurahaupo left 07:10 kurahaupo joined 07:12 squashable6 left 07:14 squashable6 joined 07:56 squashable6 left 07:58 squashable6 joined 07:59 sivoais left 08:00 sivoais joined 08:37 kurahaupo left 08:48 kurahaupo joined 08:49 kurahaupo left 08:59 kurahaupo joined 09:06 kurahaupo left 09:10 kurahaupo joined 09:11 kurahaupo left 09:15 kurahaupo joined 09:16 kurahaupo left 09:21 kurahaupo joined 09:26 kurahaupo left 09:28 kurahaupo joined 09:30 kurahaupo left 09:35 kurahaupo joined 09:37 kurahaupo left 09:41 kurahaupo joined 09:43 kurahaupo left 09:48 kurahaupo joined 09:49 kurahaupo left 10:05 kurahaupo joined
lizmat notable6: weekly 10:08
notable6 lizmat, No notes for “weekly”
10:09 kurahaupo left 10:11 kurahaupo joined 10:12 kurahaupo left 10:13 kurahaupo joined 10:15 kurahaupo left 10:26 kurahaupo joined, kurahaupo left 10:27 kurahaupo joined 10:28 kurahaupo left
lizmat m: class A { has $.a is rw; submethod TWEAK() { $.a = 42 } } 10:30
camelia ===SORRY!=== Error while compiling <tmp>
Virtual method call $.a may not be used on partially constructed object (maybe you mean $!a for direct attribute access here?)
at <tmp>:1
------> { has $.a is rw; submethod TWEAK() { $.a⏏ = …
lizmat that fails, but this is ok?
class A { has $.a is rw; submethod TWEAK() { self.a = 42 } }
m: class A { has $.a is rw; submethod TWEAK() { self.a = 42 } }
camelia ( no output )
10:33 kurahaupo joined 10:37 kurahaupo left 10:40 kurahaupo joined 10:42 kurahaupo left 10:53 kurahaupo joined 10:57 kurahaupo left 11:14 kurahaupo joined 11:15 kurahaupo left 11:21 kurahaupo joined 11:24 kurahaupo left 11:29 kurahaupo joined
Geth rakudo/main: 4 commits pushed by (Nick Logan)++ 11:30
11:31 kurahaupo left 11:32 elcaro left, elcaro joined 11:35 kurahaupo joined 11:36 kurahaupo left 11:41 kurahaupo joined 11:43 kurahaupo left 12:00 reportable6 left 12:01 reportable6 joined
Geth rakudo/main: 3fa0fdf74c | (Daniel Green)++ | src/core.c/CompUnit/Repository/FileSystem.pm6
Don't lookup $*(SPEC|CWD) for every file in dir...

when recursing through a directory given as a `-I` option. When applied on top of github.com/rakudo/rakudo/pull/5287, `time raku -I . -e 'use Test'` in a directory with ~113k subdirectories/files dropped from ~3.7s to
rakudo/main: 7a3ab690a4 | MasterDuke17++ (committed using GitHub Web editor) | src/core.c/CompUnit/Repository/FileSystem.pm6
Merge pull request #5288 from MasterDuke17/speedup_internal_dir_recursion_by_reducing_dynamic_lookups

Don't lookup $*(SPEC|CWD) for every file in dir...
lizmat and yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2023/06/19/2023-...llections/ 12:34
12:50 kurahaupo joined 13:50 linkable6 left, evalable6 left 13:52 linkable6 joined 13:53 evalable6 joined 14:36 kurahaupo left 14:41 kurahaupo joined 14:42 kurahaupo left 14:43 kurahaupo joined
ugexe Hmm, using the home directory as a repository is a terrible idea for another reason: IDEs will generate temp files and those are probably going to change a lot (and affect potentially unrelated code). I have hundreds of files like `/Users/nlogan/Library/Application Support/Code/User/History/-6f9923b8/W6qz.rakumod` 15:41
raku -e 'say CompUnit::Repository::FileSystem.new(:prefix($*CWD)).distribution.meta<provides>{"Library::Application Support::Code::User::History::-6f9923b8::W6qz"}' 15:44
nlogan/Library/Application Support/Code/User/History/-6f9923b8/W6qz.rakumod
16:45 samebchase joined 18:00 reportable6 left 18:02 reportable6 joined 19:09 sena_kun joined 20:07 SmokeMachine left 20:08 SmokeMachine joined 20:09 rypervenche left 20:10 rypervenche joined 20:12 coleman left, coleman joined 20:34 sena_kun left 21:48 kurahaupo left 22:09 kurahaupo joined 23:01 |Tux| left 23:02 |Tux| joined 23:22 squashable6 left 23:25 squashable6 joined
Geth rakudo/ugexe/use-nqp-try: d6c9c075d9 | (Nick Logan)++ | src/core.c/Rakudo/Internals.pm6
Use nqp::handle instead of try

Previously we added 'try' to ignore errors from the various nqp stat calls. The rest of the code is written in nqp, so this changes that 'try' to use nqp::handle instead for a slight performance benefit.
rakudo: ugexe++ created pull request #5290:
Use nqp::handle instead of try