Skip to content

Commit 0254bc2

Browse files
committed
[SR-59] Add information about how the Foundation project wishes to manage dependencies
1 parent cfa6894 commit 0254bc2

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

Docs/Design.md

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ In a very limited number of cases, key Foundation API as it exists on Apple plat
1313

1414
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.
1515

16+
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`).
17+
1618
## A Taxonomy of Types
1719

1820
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.

0 commit comments

Comments
 (0)