Alpha Release of the Collection Library for GNU Objective-C WARNING: This library is still in alpha release, and has not been thoroughly tested. I am making it public now in order to get feedback on design issues. A further warning: The API may still change before the first official release---if you write code based on this library you may later have to update your code to match. ------------------------------------------------------------------ * Where can you get it? How can you compile it? By anonymous ftp at cs.rochester.edu:pub/libcoll/libcoll-yymmdd.tar.gz where yymmdd is some string of numbers specifying its date. The library requires gcc 2.5.0 or higher. See the INSTALL file for more instructions. ------------------------------------------------------------------ * 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 DelegateList. Outside of its main heirarchy it also includes List, HashTable and Storage objects compatible with NeXT's objects of the same name. This release also includes a very preliminary version of a String object. I threw it together mostly as a thought-experiment to make sure that my changes to the IndexedCollection abstract superclass would fit well with a String class. Many methods are left unimplemented; it is not useable. As an extra plus, the .tar file includes classes Magnitude and Time. Eventually the .h files for these will be moved outside of the "coll" directory. 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"; Collection <Collecting> Set Bag KeyedCollection <KeyedCollecting> Dictionary MappedCollector IndexedCollection <IndexedCollecting> Array Stack GapArray CircularArray Queue Heap LinkedList BinaryTree RBTree EltNodeCollector String DelegateList LinkedListNode LinkedListEltNode BinaryTreeNode BinaryTreeEltNode RBTreeNode RBTreeEltNode HashTable List Storage ------------------------------------------------------------------ * What's new in this release? - Installation using ./configure and autoconf - New BinaryTree and RBTree(unfinished) classes. Rewritten LinkedList class. - A new scheme for holding non-object elements in classes that require object contents; EltNodeCollector class. - Archiving with -write: and -read: methods. This involved removing the ability to set the comparison function independent of content type. - Removed COLL_NO_ELEMENT and friends. Now there are no arbitrary restrictions on which long int's can be stored. Like in Smalltalk, ...ifAbsentCall: methods have been added to replace this functionalty. - Added a LABMDA() macro for defining small functions in the arg position. - Removed many ...perform: methods. Use instead the more flexible ...call: methods with LABMDA(). - Renamed ...Description: methods to ...Encoding: for better use of already-defined objc keyword: @encode(). - New in the Collecting protocol: + Filtered enumerating instead of filtered shallowCopy'ing. + Enumerations still safe when modifying the contents. - The beginnings of documentation in libcoll.texi. - Many bug fixes. ...and more. See also the ChangeLog for notes about the differences between this release and the last. ------------------------------------------------------------------ * How can you help? - Read the questions in TODO.texi. 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. ------------------------------------------------------------------ R. Andrew McCallum ARPA: mccallum@cs.rochester.edu Computer Science Department UUCP: uunet!cs.rochester.edu!mccallum University of Rochester VOX: (716) 275-2527 Rochester, NY 14627-0226 FEET: CSB Rm. 625
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.