| 15 Aug 2025 |
raitobezarius | the SSO flow is confusing | 15:40:20 |
raitobezarius | let me know if you need help | 15:40:23 |
helle (just a stray cat girl) | ah yes, fixing code so our code will run if compiled on a new version of macos but ran on an old version of macos | 17:31:51 |
| @shawn8901:matrix.org left the room. | 18:27:07 |
helle (just a stray cat girl) | (this is for future not even existing macos releases) | 19:01:02 |
emily | hm, version format, or? | 19:07:16 |
helle (just a stray cat girl) | no, this is a feature MacOS X will support in the future, but our binaries are built on a new version, but still should run on older ones | 19:13:59 |
helle (just a stray cat girl) | so this will be amusing failures if we don't do this | 19:14:13 |
emily | that's what availability annotations are for | 19:43:26 |
emily | if (__builtin_available(macOS …, *)) or such | 19:43:36 |
emily | but you will have to compile with an SDK that supports that feature, which if it's not even shipping yet Nixpkgs won't have the SDK | 19:43:53 |
emily | which means an availability check inside an #if if you want to land the code before then I guess | 19:44:11 |
helle (just a stray cat girl) | there is a different trick in this case that we can do | 19:45:46 |
helle (just a stray cat girl) | I need to finish this patch tomorrow | 19:45:56 |
helle (just a stray cat girl) | this is for SOCK_CLOEXEC, we can even if we are compiled with it, try and fail and retry without even if the #ifdef showed it was available | 19:49:53 |
emily | what's the functionality? | 19:48:25 |
emily | wait, macOS is adding SOCK_CLOEXEC? is that in Tahoe? | 19:51:04 |
helle (just a stray cat girl) | at some point, it is in the new POSIX spec so we are expecting MacOS X to support it "soon" | 19:51:41 |
helle (just a stray cat girl) | hence needing to make sure we don't create ourselves some very funny bug reports | 19:51:57 |
emily | hmm, I wouldn't necessarily bet on that… Apple only certify macOS as UNIX 03, which corresponds to POSIX 2001 | 20:13:33 |
helle (just a stray cat girl) | well, I think it is still worth while safeguarding the code against it, this isn't in a hot path, so we can easily support this | 20:14:10 |
helle (just a stray cat girl) | (and the code itself is like 4 lines of code) | 20:14:20 |
helle (just a stray cat girl) | (we discussed this with some people in person who actually suggested making sure we wouldn't have a breakage in this way when fixing all this) | 20:15:16 |
emily | sure, feature detection is good in general :) it may help non-macOS | 20:16:27 |
emily | I would not expect Apple to add things that get added to POSIX in the general case though | 20:16:40 |
emily | I'm pretty sure there's things in POSIX 2008 they don't have | 20:16:51 |
helle (just a stray cat girl) | yeah, for FreeBSD this is also a funny scenario of not supporting it rn but it being planned | 20:17:20 |
emily | (it looks like errno = ESOCKTNOSUPPORT; return -1; would be a compliant implementation of SOCK_CLOEXEC so no guarantee that a POSIX 2024 OS actually supports it anyway) | 20:19:57 |
helle (just a stray cat girl) | oh, yeah, so we need that path regardless | 20:22:20 |
helle (just a stray cat girl) | that is btw literally how it is handled | 20:22:27 |