!lheuhImcToQZYTQTuI:nixos.org

Nix on macOS

1154 Members
“There are still many issues with the Darwin platform but most of it is quite usable.” — http://yves.gnu-darwin.org187 Servers

Load older messages


SenderMessageTime
24 Oct 2025
@emilazy:matrix.orgemilyother way around: the SDK has 14.401:23:52
@emilazy:matrix.orgemily but darwin.AvailabilityVersions only generates for 14.3 01:23:59
@emilazy:matrix.orgemily

the include of AvailabilityInternalPrivate.h seems like a non-trivial difference, and relevantly they differ in terms of handling of the __SPI_AVAILABLE stuff…

darwin.AvailabilityVersions also creates an AvailabilityMacros.h that doesn't pull in TargetConditionals.h, while the SDK one does

01:24:06
@reckenrode:matrix.orgRandy Eckenrodeadv_cmds gets rid of colldef. That’s not helpful.01:24:21
@emilazy:matrix.orgemilyanyway, like I said we can have functioning availability checks just by forwarding to the non-private ones (that's what the generated headers do in effect)01:24:26
@reckenrode:matrix.orgRandy EckenrodeAh. That could be a bug in my script changes.01:24:33
@emilazy:matrix.orgemilywithout shadowing all the other availability header stuff from the SDK01:24:36
@emilazy:matrix.orgemily this is on nixpkgs-unstable, I could check your PR though 01:24:47
@emilazy:matrix.orgemilyI'm just saying there are a fair few differences01:24:57
@emilazy:matrix.orgemily AFAICT, the __SPI_AVAILABLE stuff is just identical to __API_AVAILABLE for internal stuff and defined away for external stuff 01:25:44
@emilazy:matrix.orgemilynot sure why they do it in such a convoluted way given that but I guess it's what their scripts make convenient01:25:58
@emilazy:matrix.orgemilyalso not sure why they define away the availability for internal stuff01:26:17
@emilazy:matrix.orgemily* also not sure why they define away the availability for external stuff01:26:19
@emilazy:matrix.orgemilynot like it hides the definitions01:26:23
@reckenrode:matrix.orgRandy Eckenrodehttps://github.com/freebsd/freebsd-src/commit/c844ab67178719d956f1571f70bae84edc49cf7201:29:08
@reckenrode:matrix.orgRandy EckenrodeI guess Apple is catching up changes from FreeBSD 11 ….01:29:15
@emilazy:matrix.orgemily oh. I think I understand why SPI_AVAILABLE is defined away for public users 01:33:41
@emilazy:matrix.orgemily it seems like it's used to annotate things defined in the source releases, not system stuff 01:34:46
@emilazy:matrix.orgemily so __SPI_AVAILABLE(macos(15.0), …) just means "this wasn't in dyld before macOS 15.0", I guess (why that's useful I don't know) 01:35:18
@emilazy:matrix.orgemilywhen we're building the source releases ourselves it seems the public SDK behaviour of eliding those availability checks is exactly the correct thing01:35:48
@emilazy:matrix.orgemilyhttps://github.com/search?q=repo%3Aapple-oss-distributions%2Flibdispatch%20dispatch_time_from_nsec&type=code another example01:36:15
@emilazy:matrix.orgemily so… all the darwin.AvailabilityVersions version of it would do is incorrectly mark stuff we're building as unavailable depending on SDK version, essentially 01:37:10
@reckenrode:matrix.orgRandy EckenrodeIt probably depends on whether we’re linking to the implementation in one of the source releases or to the symbol exported by the system in the SDK.01:37:19
@emilazy:matrix.orgemilyright01:37:28
@emilazy:matrix.orgemilybut I think this stuff is mostly not exported by the SDK?01:37:36
@emilazy:matrix.orgemilybecause it's all stuff in private headers01:37:40
@reckenrode:matrix.orgRandy EckenrodeThe symbols are.01:37:42
@reckenrode:matrix.orgRandy EckenrodeThey’re in the text-based stubs.01:37:48
@emilazy:matrix.orgemily right, ok, dispatch_time_from_nsec is there 01:38:06
@emilazy:matrix.orgemilyit seems at least very contextual whether you'd want them to expand to availability checks01:38:16

Show newer messages


Back to Room ListRoom Version: 6