GNU Collection Class Library 940510 available

GNU Collection Class Library 940510 available

Post by Andrew McCall » Thu, 12 May 1994 02:48:03



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
     ftp.cs.rochester.edu:pub/objc/libcoll-940510.tar.gz

   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:
     ftp.uu.net:systems/gnu/gzip-1.2.4.tar
     gatekeeper.dec.com:pub/GNU/gzip-1.2.4.tar
     prep.ai.mit.edu:pub/gnu/gzip-1.2.4.tar


with no subject line, and two-line body with line one `help' and line
two `quit'.

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 `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";

        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
         NXStringTable

Noteworthy changes in verion 940510
===================================

   * A NeXT-compatible NXStringTable object, thanks to Adam Fedor

   * SplayTree and RBTree classes now operational.  More methods in Time
     class implemented.

   * 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.
     And more.

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