10.11 and later#

The release notes for 10.11 and later are under the Apache License.

Darwin 15 / 10.11 El Capitan#

Commit a7b2b

Initial implementation of Foundation.

This commit also contains:

  • Import of CF-1253 (“El Capitan”), plus changes required to support this project.

  • Initial build system.

  • Basic framework for unit testing using XCTest.

  • Starting point for documentation, including Getting Started, Known Issues, and major Design guidelines.

There is much more to come. See you on the mailing lists. Foundation Team

Darwin 16 / 10.12 Sierra#

FOSS Subset#

Commit a455cd

No release notes.

Darwin 17 / 10.13 High Sierra#

FOSS Subset#

Commit 622c5
Commit df3ec

No release notes.

Darwin 18 / Mojave#

FOSS Subset#

Commit 480ce

No release notes.

10.15 Catalina#

FOSS Subset#

Commit ad044

This patch brings swift-corelibs-foundation closer to behavior parity with released versions of macOS Catalina and aligned Apple releases. Most of these changes are under-the-hood bug fixes or performance improvements, but a few may affect the behavior of your applications. In particular:

  • The deprecation of NSURL.parameterString is now also effective in Swift for Linux, with similar effects. This brings URL parsing in line with Catalina. Note that Swift for Linux does not support link checks, since there is no binary compatibility guarantee on Linux; this change will be effective to all application code running on Swift for Linux 5.3 or later.

  • Certain CFXML… types that have been deprecated on macOS are now removed, along with their associated implementation: CFXMLInputStream, CFXMLNode, CFXMLParser. Modern code should be using the FoundationXML module (or, on Darwin, the XMLDocument and related classes in Foundation) to parse documents.

11 Big Sur#

FOSS Subset#

Big Sur’s CF was never released to swift-corelibs-foundation.

12 Monterey#

FOSS Subset#

Commit d8e8a

This PR brings the FOSS portions of Core Foundation on par with macOS Monterey, iOS 15, watchOS 8 and tvOS 15. This includes the changes shipped during the previous releases.

Most of the changes include bug fixes and performance improvements, but some are useful to highlight:

  • This patch adds the Core Foundation code that underlies Foundation’s ListFormatter and RelativeDateTimeFormatter to the FOSS subset.

  • Several Emoji fixes are included that update CFString (and thus NSString and the Foundation methods on Swift.String) support for correctly decoding and iterating over emoji introduced during the Big Sur and Monterey timeframes. The corresponding character maps in `CharacterSet`` have been updated.

  • Certain parsing functions, most notably those that implement property list parsing, now have a maximum recursion depth to prevent resource abuse from malicious input.

  • Some architectural changes have been introduced that are used on Darwin to support Pointer Authentication. For more information on the topic, see Preparing Your App to Work with Pointer Authentication. Note that the FOSS subset does not ship on architectures that require this support, but the architectural changes have been merged for simplicity and synchronization between Darwin and FOSS builds.

  • Parameter checking has been improved for several CF functions.

  • Some implementations have been streamlined or consolidated, especially for CFPlugIn and CFBundle. CFBundle also adds support for “Wrapper”-style bundles (for example, the kind of bundle produced when installing iOS applications on Macs with Apple silicon).