]>
Commit | Line | Data |
---|---|---|
d8925383 A |
1 | This is the CoreFoundation framework project for Darwin, |
2 | sometimes also known as "CF-lite", because it does not | |
3 | contain every facility available from the CoreFoundation | |
4 | framework in Mac OS X. | |
5 | ||
6 | The purpose of this README file is to share "what needs | |
7 | doing", "how to do things", and Q&A information about | |
8 | CF-lite, as this information is discovered. | |
9 | ||
10 | --- What Apple is NOT interested in, with CF-lite: | |
11 | * Everybody's little convenience methods. Just because | |
12 | "everybody has to write their own", it does not | |
13 | follow immediately that it is a good idea to add it | |
14 | to the system libraries. It is not a goal of CF to | |
15 | be a "Swiss Army Knife"; that just increases the | |
16 | size of the binaries, and the documentation and | |
17 | maintenance burden. Functions to reverse a string | |
18 | or merge two arrays by taking alternate elements | |
19 | from the two arrays are not compelling. | |
20 | ||
21 | ||
22 | --- Major changes since March 2000: | |
23 | * Partial port to Linux | |
24 | * CF runtime refactored into CFRuntime.[hc], changed how | |
25 | types are registered/known to the runtime | |
26 | * CFMachPort and CFMessagePort now public API. | |
27 | * Most private symbols now are flagged with | |
28 | __private_extern__ so they aren't exported from | |
29 | the binary. | |
30 | * Partial port to FreeBSD. | |
31 | * CFBundle, CFPlugIn APIs added to Darwin. | |
32 | ||
33 | ||
34 | --- CF-lite to-do list: | |
35 | [Note: when it says "Apple has code" below, that usually | |
36 | means "Apple has some code it could provide to start an | |
37 | effort here", not "Apple has some code in the pipe, don't | |
38 | bother with this item". Anyone known to be doing work on | |
39 | any of these items will be listed here, including Apple.] | |
40 | * Some classes have a fair number of assertions, nearly all | |
41 | related to parameter checking. More assertions are needed | |
42 | nearly everywhere. The assertions that are there have been | |
43 | often found to be valuable -- you just get a message about | |
44 | some bad parameter and there's the bug. | |
45 | * More header doc is needed. CFArray.h and CFDictionary.h | |
46 | are models. | |
47 | * An exception model, similar to Cocoa Foundation's. Apple | |
48 | has some code for this already, and try/catch model like | |
49 | C++ is simple enough to support; finally blocks a la Java | |
50 | don't seem to be practical within the confines of ANSI C. | |
51 | * A CFFileDescriptor is needed which can act as a run loop | |
52 | source. Or maybe it should be CFPipeDescriptor. This is | |
53 | NOT something for general file handling -- just monitoring | |
54 | a file descriptor which is a pipe (for which there are | |
55 | notifications or other async activity). | |
56 | ||
57 | ||
58 | Contributors | |
59 | ------------ | |
60 | March 2000: partial port to Linux by Pedro Ivo Tavares (ptavares@iname.com). | |
61 | This was mostly integrated by ckane@apple.com by CoreFoundation-5, | |
62 | but the style was changed, and the hand-crafted Makefile, which is | |
63 | new since this port, tries to take care of some of the things that | |
64 | are needed for Linux (and build a libCoreFoundation.a instead of a | |
65 | CoreFoundation.framework), but ckane does not have a Linux box and | |
66 | can't finish that and test building. | |
67 | ||
68 | December 2000: port to FreeBSD by Sarwat Khan (sarwat@sarwat.net). | |
69 | Port to FreeBSD, except for RunLoop.subproj items. Integrated by | |
70 | ckane@apple.com into CoreFoundation-8. ckane also marginally | |
71 | improved the Linux port in that version. | |
72 | ||
73 | March 2001: CoreFoundation-9, corresponding to CoreFoundation-197 in | |
74 | Mac OS X, synchronizes Darwin CF with Mac OS X's released CF. | |
75 | ||
76 | May 2001: CoreFoundation-10, corresponding to CoreFoundation-206.5 | |
77 | synchronizes Darwin CF with TOT CoreFoundation. | |
78 | ||
79 | June 2001: Linux port maintenance by Robert Thompson <rothomp3@mac.com>. | |
80 | ||
81 | July 2001: Integrated addition of headerdoc for CFBinaryHeap.h from | |
82 | Kevin Van Vechten <kevinvv@uclink4.berkeley.edu>. | |
83 | ||
84 | Sept 2001: CoreFoundation-14, sync with Mac OS X 10.1 | |
85 | ||
86 | Oct 2001: More header doc (e.g., CFSet.h) and some CFTree implementation | |
87 | from Kevin Van Vechten <kevinvv@uclink4.berkeley.edu>. | |
88 | ||
89 | Jan 2002: Windows(TM) port changes from Kevin Van Vechten <kevinvv@uclink4.berkeley.edu>. | |
90 | ||
91 | Feb 2002: Some Windows(TM) port changes from Aleskey Dukhnyakov, Andrew Dzubandovsky, | |
92 | Roman Mukhin, and Sergey Zubarev; Orc Software<daa@orcsoftware.spb.ru> | |
93 | ||
94 |