🦋 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.
patrickb ugexe: In general support for \\?\ paths in our tooling is desirable irrespective of us using those paths under the hood right? So fixing our tooling to understand those is a good thing in its own right. Right? 08:44
sjn gets 3 failing subtests (test 7-9) in t/09-moar/01-profilers.t when building 2023.10 10:43
lizmat what OS is this ? 10:58
sjn Ubuntu 22.04.3 LTS 11:09
lizmat well, I can't repro on MacOS, so perhaps make an issue for it :-) 11:12
so it won't fall through the cracks
sjn tries again first
hmf. second try worked fine. 11:22
lizmat ok, I guess it's a flapper then 11:34
sjn mm 11:35
ugexe i've had that test flap on me before 12:14
Geth rakudo/main: aff290dab3 | (Elizabeth Mattijsen)++ | src/Raku/ast/checktime.rakumod
RakuAST: simplify sorry/worry innitialization
12:16
ugexe patrickb: yeah, although I'm not sure if I'd try to tackle the build system stuff... for the most part is it pretty easy to not install rakudo into a path that violates max path, but it is much harder to not have precompilation occur in such a path. I also noticed that some command line tools (like bsdtar) already handle long paths on windows automatically (see the output of 12:17
github.com/ugexe/zef/issues/533#is...1783048692 )
so i wonder if the build system would msotly just work anyway 12:18
but yes the idea is no special handling by the build system should be required, and that any C:\too\long\path it generates would just get turned into \\?\C:\too\long\path whenever rakudo passes that string to moarvm 12:25
(or moarvm itself turns it into that)
java and javascript both handling long paths automatically. I kind of assumed perl would as well, but maybe not 12:27
(perl being important because our build system uses it) 12:28
Geth rakudo/main: cf3feb5841 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: simplify RakuDoc w|sorries

If a class does ::CheckTime, it can call .sorry/.worry without any additional tweaks
12:50
[Coke] ugexe: so if I uninstall zef-latest, install zef v0.13.8, I can then install JSON::Fast:ver<0.19> without error 13:20
the latest zef triggers the issue.
(well, some zef after 13.8)
(this on windows)
ugexe what issue 13:32
[Tux] Rakudo v2023.10-88-gcf3feb584 (v6.d) on MoarVM 2023.10-2-g18604f691
csv-ip5xs0.816 - 0.899
csv-ip5xs-205.437 - 5.481
csv-parser3.733 - 4.535
csv-test-xs-200.398 - 0.414
test6.970 - 7.692
test-t1.513 - 1.770
test-t --race0.880 - 1.133
test-t-2021.525 - 22.298
test-t-20 --race6.674 - 6.905
13:33
No extrem load, so I cannot explain the relative high numbers
ugexe [Coke]: i think it will install if JSON::Fast tests are updated to not have `use lib "lib"` 13:39
the reason an older version of zef is able to install it is probably because the REA ecosystem was eventually prioritized over p6c and cpan. but the REA files usually have a longer file name than the p6c/cpan counterparts, and so are more likely to get path length limitation 13:40
JSON::Fast is using `use lib "lib"` in its tests, which means even though zef has already precompiled the code for the staging repository, it will be precompiled again
except this time it is precompiled to the much longer non-staging path 13:41
lizmat JSON::Fast is using lib? hmmmm 13:51
ok, will at least make a PR for fixing that 13:53
Geth rakudo/main: 3d91a34c70 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: it's .add-(w|s)orry duh

Sadly no tests caught this :-(
13:56
[Coke] ugexe: thanks for the explanation! 15:08
Geth rakudo/main: b468d243ec | (Elizabeth Mattijsen)++ | src/Raku/ast/expressions.rakumod
RakuAST: a class doing CheckTime can invoke .add-worry
15:44
lizmat nine: am a bit confused re worries/sorries 16:01
so a class doing CheckTime has its own worries / sorries 16:02
and Resolver.all-worries/sorries collects these from all objects doing CheckTime
however, all places that do an add-worry / add-sorry have a $resolver object available 16:03
so why not push the worry/sorry to the resolver directly ?
ab5tract_ m: my class { has @.z is default(44) where * == 42 }.new.z[6] ==> dd() 19:07
camelia Int @!z[6] = 44