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