
=========================== BIG THINGS TO DO ==================================

- Distributed Objects
- Unicode support in NSString


========================== SMALL THINGS TO DO =================================

- NSException thread-safe
- finish NSFileManager
- port to Solaris and HP-UX (NSInvocation and NSMethodSignature)
  (what about OSF/1 and Ultrix?)
- finish NSRunLoop and NSTimer
- serializer/deserializer
- change NSPosixFileDescriptor to NSFileHandle
- change NSZone from class to struct

============================ general checks ===================================

(The following does not necessary mean they are missing ;-). These should
remind implementors what do they have to check for. )

- implement `copyWithZone:' and `mutableCopyWithZone:' for all classes

- implement `encodeWithCoder:' and `initWithCoder:' for all classes

- implement meaningful `description', `descriptionWithIndent:' or
`stringRepresentation'

- revise `hash' `isEqual:' and `compare:' methods for all containers so that
isEqual/compare/hash shoud be consistent

- check that all `dealloc' calls [super dealloc] to release memory

- check that calls to [super init] are done before *any* ivar is set

- check imutable `copyWithZone:' for containers so that it performs a deep
copy, making all its content imutable

- check mutable `mutableCopyWithZone:' for containers so that it performs a
shallow copy, making all its content imutable

- thread-safe notes (comment with `// THREAD') where we access global variables

================================== CLASSES ====================================

NSArchiver, NSUnarchiver
	- more tests

NSArray, NSMutableArray
	- extended tests
	- init* methods for immutable should throw if called twice

NSAutoreleasePool
	- OK

NSBundle
	- modify the configure script to detect the underlaying dynamic loader 
	- implement unloading of code (need some patches to objc-runtime)

NSCharacterSet, NSMutableCharacterSet
	- init* methods for immutable should throw if called twice
	- extended tests

NSCoder
	- more tests with it and the NSArchiver for all methods

NSConnection, NSDistantObject, NSProxy
	- TODO

NSData, NSMutableData
	- extended tests
	- init* methods for immutable should throw if called twice
	- check subclasses for mmap and range

NSDate, NSCalendarDate
	- init* methods for immutable should throw if called twice
	- extended tests

NSDictionary, NSMutableDictionary
	- init* methods for immutable should throw if called twice
	- tests

NSDistributedLock
	- test that checks concurrence

NSEnumerator
	- OK

NSException
	- thread-safe support

NSFileManager
	- tests
	- finish implementation (2-3 methods left)

NSInvocation
	- port and test on HPPA HPUX
	- port and test on Solaris

NSMethodSignature
	- port and test on HPPA HPUX
	- test on Solaris (code was written)

NSLock, NSRecursiveLock,  NSConditionLock
	- OK

NSNotification, NSNotificationCenter, NSNotificationQueue
	- OK

NSObject
	- OK

NSPosixFileDescriptor
	- tests
	- turn it into NSFileHandle

NSProcessInfo
	- kill StackZone stuff

NSRunLoop
	- to implement the missing methods and check the existing one
	- extended tests

NSScanner
	- OK

NSSerializer, NSDeserializer
	- TODO

NSSet, NSMutableSet,  NSCountedSet
	- tests for all methods
	- write init* in concrete classes
	- init* methods for immutable should throw if called twice

NSString, NSMutableString
	- add support for Unicode

NSThread
	- tests

NSTimeZone, NSTimeZoneDetail
	- tests

NSTimer
	- tests for all methods
	- tests for integration with NSRunLoop

NSUserDefaults
	- put command-line args in NSArgument domain

NSValue, NSNumber
	- tests

NSZone (NSDefaultZone)
	- make so that we can have multiple zones
	- make an allocator with zones using page-allocation functions
	- make a non-free zone and support recycle

================================ DOCUMENTATION ===============================

- comment the headers about classes, functions, ivars
- comment sources about class structure and general ideas
- README.debugging

================================ NEW CLASSES =================================

Ascii Coder
	- TODO: human readable and easy modifiable format

Regexp support 
	- new class and support methods in a category to NSString

========================== Configure, Makefile, Porting ======================

Configure
	- test for dynamic loading (NeXT, Linux ELF, Solaris)
	- test for shared library (Linux ELF, Solaris)
	- generic configure for applications

Makefile
	- make a set of makefiles that contain rules for app, bundle, subdir,
	library etc.
	- shared library building for systems that support it

