GNU Objective-C Collection Library
The GNU Objective-C Collection Class Library, `libcoll' version
940510, is now available.
Where can you get it? How can you compile it?
The library is available by anonymous ftp at
The library requires gcc 2.5.8 or higher. The library does not work
with the NEXTSTEP 3.2 compiler because NeXT's cc cannot handle nested
functions; the next version of NEXTSTEP will, however, and this version
of libcoll is already running internally at NeXT. See the `INSTALL'
file for more instructions about compiling and installing the library.
The `.tar' file is compressed with GNU gzip. It can be obtained by
anonymous ftp at any one of the GNU archive sites. For example:
with no subject line, and two-line body with line one `help' and line
What is the Collection library?
It's a library of Objective-C objects with similar functionality to
Smalltalk's Collection objects. It includes: Set, Bag, Array,
CircularArray, GapArray, Queue, Stack, Heap, LinkedList, BinaryTree,
SplayTree, RBTree, Dictionary, MappedCollector, EltNodeCollector and
Outside of its main heirarchy `libcoll' also includes List,
HashTable, Storage and NXStringTable objects compatible with NeXT's
objects of the same name.
As an extra plus, the library includes classes Magnitude and Time.
Preliminary documentation is available via `texinfo' in the files
`libcoll.info' and `libcoll.texi'. The info file was created from the
texi file using an modified version of `makeinfo' available by
anonymous ftp from `iesd.auc.dk:pub/ObjC'.
Here is the object inheritance heirarchy. All protocols end with
"ing"; all collection protocols end with "Collecting". All collection
abtract superclasses (classes which are not usable without subclassing)
end with "Collection";
Noteworthy changes in verion 940510
* A NeXT-compatible NXStringTable object, thanks to Adam Fedor
* SplayTree and RBTree classes now operational. More methods in Time
* Some API cleanup: -delegateListList changed to
-delegateListCollection. -includesSameContents: changed to
-contentsEqual:. -insertObject:atKey: changed to
-putObject:atKey:. See the ChangeLog for more detail.
* Configuration by autoconf in the self-tests directory.
* Bug fixes: BinaryTree rotate methods fixed. Fixed the way
`ifNone:' and `ifAbsent:' functions were called. Fixed the way
long elements are printed. Added methods for preventing memory
leaks by unfinished enumerations: `-newEnumState' and
`-freeEnumState:'. Several bug fixes in List, and changes for
better NeXT-compability. Better compatibility in Storage class.
How can you help?
* Read the questions in the `TODO' file. If you have any useful
comments mail them to me!
* Give me feedback! Tell me what you like, tell me what you think
could be better. Send me bug reports.
* Donate classes. If you write classes that fit in the libcoll
framework, I'd be happy to include them.
Computer Science Department UUCP: uunet!cs.rochester.edu!mccallum
University of Rochester VOX: (716) 275-2527
Rochester, NY 14627-0226 FEET: CSB Rm. 625
Computer Science Dept VOX: (716) 275-2527, (716) 275-1372 (lab)
University of Rochester FAX: (716) 461-2018
Rochester, NY 14627-0226 HTTP://www.cs.rochester.edu/users/grads/mccallum