🦋 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.
00:07 reportable6 left 01:03 frost joined 01:08 reportable6 joined 02:08 linkable6 left, shareable6 left, releasable6 left, evalable6 left, greppable6 left, statisfiable6 left, committable6 left, nativecallable6 left, benchable6 left, coverable6 left, unicodable6 left, reportable6 left, quotable6 left, notable6 left, squashable6 left, bisectable6 left, tellable6 left, bloatable6 left, sourceable6 left, coverable6 joined, evalable6 joined, greppable6 joined, bloatable6 joined 02:09 tellable6 joined 02:10 squashable6 joined 03:05 frost left 03:08 quotable6 joined, releasable6 joined, committable6 joined 03:09 notable6 joined 03:10 statisfiable6 joined, nativecallable6 joined, bisectable6 joined 03:15 frost joined 04:06 frost left 04:09 linkable6 joined 04:10 unicodable6 joined, sourceable6 joined, benchable6 joined, reportable6 joined 05:10 sourceable6 left, unicodable6 left, linkable6 left, bloatable6 left, benchable6 left, reportable6 left, bisectable6 left, evalable6 left, coverable6 left, releasable6 left, notable6 left, squashable6 left, quotable6 left, greppable6 left, statisfiable6 left, tellable6 left, committable6 left, nativecallable6 left 05:11 shareable6 joined, sourceable6 joined, bloatable6 joined, nativecallable6 joined 05:12 unicodable6 joined, linkable6 joined, tellable6 joined, reportable6 joined 05:13 coverable6 joined 06:07 reportable6 left 06:11 quotable6 joined, bisectable6 joined 06:12 releasable6 joined, evalable6 joined, benchable6 joined 06:54 linkable6 left 07:11 notable6 joined, committable6 joined 07:12 squashable6 joined, greppable6 joined 08:09 reportable6 joined 08:20 frost joined 08:57 linkable6 joined 09:30 frost left
lizmat Files=1351, Tests=117115, 288 wallclock secs (34.72 usr 9.69 sys + 4022.00 cusr 323.90 csys = 4390.31 CPU) 10:05
10:11 statisfiable6 joined
Geth JSON-JWT/main: 3a43f2abe8 | (Elizabeth Mattijsen)++ | 11 files
First commit in zef ecosystem
10:44
JSON-JWT/main: 37fdc96db1 | (Elizabeth Mattijsen)++ | Changes
1.1
10:48
JSON-JWT/main: 76423da9c7 | (Elizabeth Mattijsen)++ | 2 files
Fix typo in pod
10:53
11:06 frost joined
Geth JSON-JWT/main: 052510a472 | (Elizabeth Mattijsen)++ | 4 files
1.1.1
11:52
12:07 reportable6 left 12:09 reportable6 joined 12:56 Altai-man joined 12:58 Altai-man left, Altai-man joined 14:12 frost left 14:58 Altai-man left 15:01 Altai-man joined 15:26 Altai-man left 15:39 [Coke] left 15:42 [Coke] joined 16:12 [Coke] left 16:15 [Coke] joined 16:37 cognominal joined 18:07 reportable6 left 18:33 linkable6 left 18:34 linkable6 joined 19:09 reportable6 joined 19:24 RakuIRCLogger left 19:25 Geth left, TempIRCLogger left, lizmat left 19:27 lizmat joined 19:47 gotem is now known as qorg11 20:52 lizmat left, Geth joined 20:57 TempIRCLogger joined
patrickb good *, everyone 21:05
I'm looking at the breakage of IO::Path::parent I have caused.
m: /tmp/hiea/../foo".parent.parent 21:06
camelia ===SORRY!=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> /tmp/⏏hiea/../foo".parent.parent
expecting any of:
infix
infix stopper
statement end
statement modifier…
patrickb m: "/tmp/hiea/../foo".parent.parent
camelia No such method 'parent' for invocant of type 'Str'. Did you mean
'print'?
in block <unit> at <tmp> line 1
patrickb m: "/tmp/hiea/../foo".IO.parent.parent
camelia ( no output )
patrickb m: say "/tmp/hiea/../foo".IO.parent.parent
camelia "/tmp/hiea/../..".IO
patrickb I'd say that is correct behavior. Previous rakudo blindly removed elements from the end (but only if it's an absolute path). 21:07
Now File::Directory::Tree does: while $path !~~ :e { $path.=parent } 21:10
nine Whether that's correct depends on how "parent" is defined. In the file system sense, the above output is the only correct version. Of course "parent" could be defined as "chop off the last path part", then the previous behaviour would be correct
Seems like File::Directory::Tree is of the chopping persuation 21:11
patrickb The previous behavior was very inconsistent. It did the "blindly chop of" thing only for absolute paths and a broken version of the new behavior for relative paths. 21:12
[Coke] (tree) (chopping) (get it?)
nine is glad someone noticed :D 21:13
Seems like chopping is what the design meant: design.raku.org/S32/IO-OLD.html#parent
design.raku.org/S32/IO.html#.parent only says "Removes last portion of the path and returns the result as a new IO::Path." 21:14
patrickb I'm unsure I would read that into those docs. It also states that it doesn't remove "..". 21:15
21:16 discord-raku-bot left
patrickb Untested, but I'd say the examples given would work both in the new just as in the old implementation. 21:16
21:16 discord-raku-bot joined
patrickb The difficult question is what should happen if the path already contains a ".." 21:19
nine I'm more and more convinced that .parent is meant as a plain stupid path string manipulation method, i.e. "foo/..".IO.parent -> "foo", "/tmp/hiea/../foo".IO.parent.parent -> "/tmp/hiea", etc. 21:29
Because if not, what method would fill this role?
ugexe .stupid-parent 21:30
nine If we had that, then yes :) But we don't, so there's just parent. If you want the smart parent, you do $path.add('..').resolve
Or rather ($path ~~ :d ?? $path.add($*SPEC.updir).resolve !! $path.parent) which...yes... but at least it's possible 21:32
Geth roast: patrickbkr++ created pull request #802:
Change .parent behavior to "stupid" resolving
21:37
rakudo: patrickbkr++ created pull request #4800:
Change parent to always just remove the last element
21:59