[00:10] *** finanalyst joined
[00:14] *** finanalyst left
[00:41] *** finanalyst joined
[00:45] *** finanalyst left
[01:11] *** finanalyst joined
[01:16] *** finanalyst left
[01:26] *** Voldenet left
[01:27] *** Voldenet joined
[01:42] *** finanalyst joined
[01:47] *** finanalyst left
[02:13] *** finanalyst joined
[02:17] *** finanalyst left
[02:44] *** finanalyst joined
[02:48] *** finanalyst left
[03:14] *** finanalyst joined
[03:19] *** finanalyst left
[03:45] *** finanalyst joined
[03:50] *** finanalyst left
[04:16] *** finanalyst joined
[04:20] *** finanalyst left
[04:47] *** finanalyst joined
[04:51] *** finanalyst left
[05:17] *** finanalyst joined
[05:22] *** finanalyst left
[05:40] *** Pixi left
[05:41] *** Pixi joined
[05:48] *** finanalyst joined
[05:52] *** finanalyst left
[06:49] *** finanalyst joined
[06:54] *** finanalyst left
[07:20] *** finanalyst joined
[07:24] *** finanalyst left
[07:51] *** finanalyst joined
[07:56] *** finanalyst left
[08:22] *** finanalyst joined
[08:27] *** finanalyst left
[08:45] *** ShimmerFairy left
[08:45] *** ShimmerFairy joined
[08:51] <Geth> ¦ rakudo/main: 4b5d0071af | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/IO/Path.rakumod

[08:51] <Geth> ¦ rakudo/main: Re-imagine IO::Path.resolve (#6906)

[08:51] <Geth> ¦ rakudo/main: 

[08:51] <Geth> ¦ rakudo/main: Several goals to be achieved here:

[08:51] <Geth> ¦ rakudo/main: 1. make it fully functional on Windows as well

[08:51] <Geth> ¦ rakudo/main: 

[08:51] <Geth> ¦ rakudo/main: This has been attempted by completely agnostically accept both

[08:51] <Geth> ¦ rakudo/main: / and \ as path separators when parsing paths, and to always allow

[08:51] <Geth> ¦ rakudo/main: <…commit message has 7 more lines…>

[08:51] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/4b5d0071af

[08:52] *** finanalyst joined
[08:57] *** finanalyst left
[09:01] <Geth> ¦ rakudo/main: 75698c709a | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/IO/Path.rakumod

[09:01] <Geth> ¦ rakudo/main: Add IO::Path.resolve-inside method (#6904)

[09:01] <Geth> ¦ rakudo/main: 

[09:01] <Geth> ¦ rakudo/main: Returns a possibly updated IO::Pathwith the absolute resolved path of the invocant if it is inside the absolute resolved path of the IO::Path given.

[09:01] <Geth> ¦ rakudo/main: 

[09:01] <Geth> ¦ rakudo/main: my $resolved = $io.resolve-inside($root)

[09:01] <Geth> ¦ rakudo/main: 

[09:01] <Geth> ¦ rakudo/main: Requires the $root to be a directory (otherwise the invocant could never be "inside" of the root anyway). Based in .resolve(:completely).

[09:01] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/75698c709a

[09:02] <timo> lizmat: are you aware that you can make directories on linux that have a backslash in them?

[09:03] <lizmat> yes

[09:03] <timo> then i might have misread the commit message

[09:03] <lizmat> no, you haven't I think

[09:04] <lizmat> you probably also can make directories on WIn systems with forward slashes in them?

[09:04] <lizmat> it *is* a minefield

[09:05] <timo> c: 4b5d0071af^,4b5d0071af dd IO::Path.new("/tmp/what\\is_this").resolve

[09:05] <committable6> timo, ¦4b5d0071af^: «IO::Path.new("/tmp/what\\is_this", :SPEC(IO::Spec::Unix), :CWD("/"))␤» ¦4b5d007: «IO::Path.new("/tmp/what/is_this", :SPEC(IO::Spec::Unix), :CWD("/"))␤»

[09:05] <timo> that seems bad

[09:06] <lizmat> so you're saying we should only accept $!SPEC.dir-sep?

[09:06] <timo> probably

[09:23] *** finanalyst joined
[09:24] <lizmat> hmmm.. doing that breaks a spectest

[09:26] <lizmat> I'm inclined to keep the current change, and see if it breaks anything in blin

[09:26] <lizmat>     not ok 15 - IO::Path::Win32 with "../foo"

[09:26] <lizmat>     # Failed test 'IO::Path::Win32 with "../foo"'

[09:26] <lizmat>     # at t/spec/S32-io/io-path.t line 228

[09:26] <lizmat>     # expected: IO::Path::Win32.new("/Users/liz/Github/rakudo\\../bar", :CWD("\\"))

[09:28] *** finanalyst left
[09:30] <timo> I think backslash and forward slash are equivalent on windows

[09:33] <lizmat> m: dd IO::Spec::Win32.dir-sep

[09:33] <camelia> rakudo-moar e17a1d43b: OUTPUT: «"\\"␤»

[09:33] <lizmat> that's not what we haz here ?

[09:33] <timo> yeah, dir-sep is a Str, not a List or Set, right?

[09:33] <lizmat> indeed... now, I could fix .resolve

[09:38] <timo> I don't expect blin to show trouble for treating backslashes as forward slashes on linux (or mac) since it'd already be kinda weird to use backslashes in file or folder names in the first place

[09:43] <timo> a friend tells me there are no APIs in windows that accept forward slashes except for APIs that are for URLs where forward slashes are the correct separater

[09:43] <timo> separator*

[09:44] <timo> so my assumption that forward and backward slashes are equivalent was actually wrong and it's maybe just some programs or higher-level APIs that allow you to use forward slashes to mean back slashes

[09:50] <lizmat> ok, so if .resolve uses the $!SPEC.dir-sep, we have one spectest fail

[09:50] <lizmat> should the test be fixed?

[09:51] <timo> I would very much hope someone who gets tortured regularly by windows can chime in

[09:53] <timo> OK, my friend says UNC paths also use forward slashes and UNC paths can go into many older APIs on newer windows versions

[09:54] *** finanalyst joined
[09:58] *** finanalyst left
[10:02] <ShimmerFairy> On Windows, you can generally use both kinds of slashes on directory separators. On POSIX, only / is a path separator, and \ is a legal filename character (along with everything else, save for / and null).

[10:05] <ShimmerFairy> As an example of where inspiration may be found, in C++ the std::filesystem::path class understands the concept of a "preferred separator", which may be (and on Windows is) distinct from the "portable" separator.

[10:10] <timo> do we need to do something to support ¥ as path separators? :D

[10:11] <Geth> ¦ rakudo/lizmat-115: 5650ae8bfe | (Elizabeth Mattijsen)++ | src/core.c/IO/Path.rakumod

[10:11] <Geth> ¦ rakudo/lizmat-115: Only support / and \ on IO::Spec::Win32 on IO::Path.resolve

[10:11] <Geth> ¦ rakudo/lizmat-115: 

[10:11] <Geth> ¦ rakudo/lizmat-115: On all other systems, only / is allowed as a directory separator.

[10:11] <Geth> ¦ rakudo/lizmat-115: timo++, ShimmerFairy++ for the nudge

[10:11] <Geth> ¦ rakudo/lizmat-115: review: https://github.com/rakudo/rakudo/commit/5650ae8bfe

[10:11] <Geth> ¦ rakudo: lizmat++ created pull request #6909: Only support / and \ on IO::Spec::Win32 on IO::Path.resolve

[10:11] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6909

[10:11] <lizmat> this at least is spectest clean for me

[10:14] <timo> thanks for the input ShimmerFairy!

[10:21] <ShimmerFairy> No problem, glad I could help, esp. with something as gnarly as pathname handling. (Another inspiration source which is good to keep in mind, just in case, is that IIRC Rust doesn't handle pathnames as normal Unicode strings, because the OS could allow for any kind of wacky byte sequence there.)

[10:21] <timo> indeed, we do, or at least should, use utf8-c8 for paths and filenames

[10:22] <lizmat> yes, we do do that as well

[10:22] <ShimmerFairy> That's good, I don't know the particulars and a very quick glance just saw the presence of Strs in IO::Path.

[10:22] <lizmat> well, at least in resolve

[10:23] <lizmat> https://github.com/rakudo/rakudo/pull/6909/changes

[10:25] <timo> Str uses synthetic graphemes to represent stuff that wasn't valid utf8, they look a bit funky but when you encode them back with utf8-c8 they turn into what was put in at the beginning

[10:25] <lizmat> the joys of NFG  :-)

[10:27] <ShimmerFairy> I've had utf8-c8 garbage show up a couple times before where it shouldn't, I think only when typing certain things on the commandline.

[10:30] <timo> if you just "say" it back, it will go through the utf8 encoder and it will put a personal use character and the hex characters

[10:30] <timo> it doesn't output the round-tripped data because then it could just output invalid utf8 on the output

[10:31] <ShimmerFairy> that's what I mean by "garbage"; every once in a while my terminal will fail to send through Unicode properly and I'll suddenly see [box]xFF in the output.

[10:32] <timo> you also don't want to just spit out bytes to the terminal emulator and get it to react to random terminal escape sequences unless you actually want to be sending them

[10:56] *** finanalyst joined
[11:00] *** finanalyst left
[11:26] *** finanalyst joined
[11:31] *** finanalyst left
[11:57] *** finanalyst joined
[12:01] *** finanalyst left
[12:18] <Geth> ¦ rakudo/main: a3af6b859a | (Elizabeth Mattijsen)++ (committed by ab5tract) | src/Raku/ast/var-lowering.rakumod

[12:18] <Geth> ¦ rakudo/main: RakuAST: use lowered lexical in hot loops during optimization

[12:18] <Geth> ¦ rakudo/main: 

[12:18] <Geth> ¦ rakudo/main: The variable lowering optimization logic contains a lot of hot

[12:18] <Geth> ¦ rakudo/main: loops going through frames.  This commit replaces these accesses

[12:18] <Geth> ¦ rakudo/main: from a getattr into a lowered lexical.

[12:18] <Geth> ¦ rakudo/main: 

[12:18] <Geth> ¦ rakudo/main: Makes optimize stage by about 10% faster (roughly from 5.9 seconds

[12:18] <Geth> ¦ rakudo/main: to 5.4 seconds for the core.c setting optimization on my MBP).

[12:18] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/a3af6b859a

[12:28] *** finanalyst joined
[12:31] <Geth> ¦ rakudo/main: f571d2fa2c | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/IO/Path.rakumod

[12:31] <Geth> ¦ rakudo/main: Only support / and \ on IO::Spec::Win32 on IO::Path.resolve (#6909)

[12:31] <Geth> ¦ rakudo/main: 

[12:31] <Geth> ¦ rakudo/main: On all other systems, only / is allowed as a directory separator.

[12:31] <Geth> ¦ rakudo/main: timo++, ShimmerFairy++ for the nudge

[12:31] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/f571d2fa2c

[12:33] *** finanalyst left
[12:59] *** finanalyst joined
[13:03] *** finanalyst left
[13:29] *** finanalyst joined
[13:34] *** finanalyst left
[14:00] *** finanalyst joined
[14:04] *** finanalyst left
[14:31] *** finanalyst joined
[14:35] *** finanalyst left
[14:48] <[Coke]> one item in the blin run:

[14:48] <[Coke]> * [ ] [Injector](https://raku.land/zef:FCO/Injector) – Fail, Bisected: [f20534c](https://github.com/rakudo/rakudo/commit/f20534cb3a5df815e7c3b8ca08160bcb78f9d6c2)

[14:49] <[Coke]> which I think was fixed by https://github.com/FCO/Injector/pull/7

[14:50] <lizmat> yup, *phew*

[14:51] <SmokeMachine> Oh! I have not released that?! Sorry… I’ll do that after work

[14:53] <[Coke]> oh, it you!

[14:53] <[Coke]> :)

[14:54] <[Coke]> I can redo the bin run just for that when the new version is out

[15:02] *** finanalyst joined
[15:06] *** finanalyst left
[15:32] *** finanalyst joined
[15:37] *** finanalyst left
[16:03] *** finanalyst joined
[16:08] *** finanalyst left
[16:34] *** finanalyst joined
[16:38] *** finanalyst left
[17:05] *** finanalyst joined
[17:09] *** finanalyst left
[17:35] *** finanalyst joined
[17:40] *** finanalyst left
[18:06] *** finanalyst joined
[18:11] *** finanalyst left
