Skip to content

Commit

Permalink
[SR-59] Add information about how the Foundation project wishes to ma…
Browse files Browse the repository at this point in the history
…nage dependencies
  • Loading branch information
parkera committed Dec 6, 2015
1 parent cfa6894 commit 0254bc2
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions Docs/Design.md
Expand Up @@ -13,6 +13,8 @@ In a very limited number of cases, key Foundation API as it exists on Apple plat

A significant portion of the implementation of Foundation on Apple platforms is provided by another framework called CoreFoundation (a.k.a. CF). CF is written primarily in C and is very portable. Therefore we have chosen to use it for the internal implementation of Swift Foundation where possible. As CF is present on all platforms, we can use it to provide a common implementation everywhere.

Another aspect of portability is keeping dependencies to an absolute minimum. With fewer dependencies to port, it is more likely that Foundation will be able to easily compile and run on new platforms. Therefore, we will prefer solutions that are implemented in Foundation itself. Exceptions can be made for major functionality (for example, `ICU`, `libdispatch`, and `libxml2`).

## A Taxonomy of Types

A key to the internal design of the framework is the split between the CF implementation and Swift implementation of the Foundation classes. They can be organized into several categories.
Expand Down

0 comments on commit 0254bc2

Please sign in to comment.