ftp.nice.ch/pub/next/developer/resources/libraries/libcoll.931026.s.tar.gz#/libcoll-931026

Array.m
[View Array.m] 
Bag.m
[View Bag.m] 
BinaryTree.m
[View BinaryTree.m] 
BinaryTreeEltNode.m
[View BinaryTreeEltNode.m] 
BinaryTreeNode.m
[View BinaryTreeNode.m] 
COPYING
 
COPYING.LIB
 
ChangeLog
 
CircularArray.m
[View CircularArray.m] 
Collection.m
[View Collection.m] 
DISCUSSION
 
DelegateList.m
[View DelegateList.m] 
Dictionary.m
[View Dictionary.m] 
EltNodeCollector.m
[View EltNodeCollector.m] 
GapArray.m
[View GapArray.m] 
HashTable.m
[View HashTable.m] 
Heap.m
[View Heap.m] 
INSTALL
 
IndexedCollection.m
[View IndexedCollection.m] 
KeyedCollection.m
[View KeyedCollection.m] 
LinkedList.m
[View LinkedList.m] 
LinkedListEltNode.m
[View LinkedListEltNode.m] 
LinkedListNode.m
[View LinkedListNode.m] 
List.m
[View List.m] 
Magnitude.m
[View Magnitude.m] 
Makefile.in
 
MappedCollector.m
[View MappedCollector.m] 
Queue.m
[View Queue.m] 
RBTree.m
[View RBTree.m] 
RBTreeEltNode.m
[View RBTreeEltNode.m] 
RBTreeNode.m
[View RBTreeNode.m] 
README
 
Set.m
[View Set.m] 
SplayTree.m
[View SplayTree.m] 
Stack.m
[View Stack.m] 
Storage.m
[View Storage.m] 
String.m
[View String.m] 
TODO
 
Time.m
[View Time.m] 
coll/
 
collhash.c
[View collhash.c] 
collstd.m
[View collstd.m] 
configure
 
configure.in
 
eltfuncs.m
[View eltfuncs.m] 
libcoll.info
 
libcoll.texi
 
mkinstalldirs
 
tests/
 
todo.texi
 
version.c
[View version.c] 
version.texi
 

README

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.