]> git.saurik.com Git - apple/cf.git/blame - README
CF-476.19.tar.gz
[apple/cf.git] / README
CommitLineData
d8925383
A
1This is the CoreFoundation framework project for Darwin,
2sometimes also known as "CF-lite", because it does not
3contain every facility available from the CoreFoundation
4framework in Mac OS X.
5
bd5b749c
A
6This CoreFoundation corresponds to the Mac OS X 10.5.2 version
7of CF (CF-476.10)
8
d8925383
A
9The purpose of this README file is to share "what needs
10doing", "how to do things", and Q&A information about
11CF-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
39means "Apple has some code it could provide to start an
40effort here", not "Apple has some code in the pipe, don't
41bother with this item". Anyone known to be doing work on
42any 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
61Contributors
62------------
63March 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
71December 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
76March 2001: CoreFoundation-9, corresponding to CoreFoundation-197 in
77 Mac OS X, synchronizes Darwin CF with Mac OS X's released CF.
78
79May 2001: CoreFoundation-10, corresponding to CoreFoundation-206.5
80 synchronizes Darwin CF with TOT CoreFoundation.
81
82June 2001: Linux port maintenance by Robert Thompson <rothomp3@mac.com>.
83
84July 2001: Integrated addition of headerdoc for CFBinaryHeap.h from
85 Kevin Van Vechten <kevinvv@uclink4.berkeley.edu>.
86
87Sept 2001: CoreFoundation-14, sync with Mac OS X 10.1
88
89Oct 2001: More header doc (e.g., CFSet.h) and some CFTree implementation
90 from Kevin Van Vechten <kevinvv@uclink4.berkeley.edu>.
91
92Jan 2002: Windows(TM) port changes from Kevin Van Vechten <kevinvv@uclink4.berkeley.edu>.
93
94Feb 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