[swift-corelibs-dev] [swift-corelibs-libdispatch] Port transform and use libbsd (#13)

Pierre Habouzit phabouzit at apple.com
Mon Dec 14 22:12:28 CST 2015


> […]
> On a previous pull request, Daniel had requested we use #ifdef __APPLE__ instead of #if HAVE_MACH. Not sure if that also applies to this pull request too or if HAVE_MACH is ok to use in these files.

Hi,

I think this explanation is worth sharing and not leaving on an hidden review.
The pull request in question uses #if HAVE_MACH in .c files and internal headers where it’s possible to use HAVE_MACH because they see config.h and internal.h

It’s not ok to use this in public (or private headers, which is an OS X concept where we ship private APIs for sharing with other subsystems such as Foundation but aren’t generally useful or exposed as robust API: these entry points may change behavior or even not exist at all anymore from one release to the next) as we don’t ship config.h for relatively obvious reasons so HAVE_MACH is *not* defined there.

Technically, until someone ports libdispatch to GNU/Hurd,it’s okay to use #if __APPLE__ to hide anything mach related.

I hope I make sense.

-Pierre


More information about the swift-corelibs-dev mailing list