1 =========================== BIG THINGS TO DO ==================================
4 - Unicode support in NSString
5 - change the NSInvocation and NSMethodSignature machine dependent macros to
6 use the macros defined into the GNU compiler. This should eventually become
7 part of the GNU Objective-C runtime library.
10 ========================== SMALL THINGS TO DO =================================
12 - Bug: descriptionWithCalendarFormat:timeZone:locale: does not honor timezone
13 argument, at least with NSCalendarDate (SKYRIX Bug 1106)
15 - finish NSFileManager
16 - port to HP-UX (NSInvocation and NSMethodSignature)
17 (what about OSF/1 and Ultrix?)
18 - serializer/deserializer
19 - change NSZone from class to struct
20 - finish NSByteOrder.h
21 - HH: avoid creating/releasing the formatter objects in common.m:Avsprintf
22 - HH: check return value of 'objc_thread_detach' in NSThread.m
23 - HH: description methods of NSCalendarFormat must be made timezone-aware
24 - HH: support GetTempPath() with mingw32
25 - HH: finish NSSearchPathForDirectoriesInDomains() function
26 - HH: merge implementation of -stringByTrimmingTailWhiteSpaces and
27 -stringByTrimmingTailWhiteSpaces? Or remove them altogether (not part
28 of gstep-base anymore either?)
30 - HH: add -replaceOccurrencesOfString:withString:options:range:
32 - NSCalendarDate parser can't parse '20041212' with %Y%m%d, because it uses
33 scanInt: which parses that as a complete int (needs a char-count limit)
35 ============================ general checks ===================================
37 (The following does not necessary mean they are missing ;-). These should
38 remind implementors what do they have to check for. )
40 - implement `copyWithZone:' and `mutableCopyWithZone:' for all classes
42 - implement `encodeWithCoder:' and `initWithCoder:' for all classes
44 - implement meaningful `description', `descriptionWithIndent:' or
45 `stringRepresentation'
47 - revise `hash' `isEqual:' and `compare:' methods for all containers so that
48 isEqual/compare/hash shoud be consistent
50 - check that all `dealloc' calls [super dealloc] to release memory
52 - check that calls to [super init] are done before *any* ivar is set
54 - check imutable `copyWithZone:' for containers so that it performs a deep
55 copy, making all its content imutable
57 - check mutable `mutableCopyWithZone:' for containers so that it performs a
58 shallow copy, making all its content imutable
60 - thread-safe notes (comment with `// THREAD') where we access global variables
62 ================================== CLASSES ====================================
64 NSArchiver, NSUnarchiver
67 NSArray, NSMutableArray
69 - init* methods for immutable should throw if called twice
75 - implement unloading of code (need some patches to objc-runtime)
77 NSCharacterSet, NSMutableCharacterSet
78 - init* methods for immutable should throw if called twice
82 - more tests with it and the NSArchiver for all methods
84 NSConnection, NSDistantObject, NSProxy
89 - init* methods for immutable should throw if called twice
90 - check subclasses for mmap and range
92 NSDate, NSCalendarDate
93 - init* methods for immutable should throw if called twice
96 NSDictionary, NSMutableDictionary
97 - init* methods for immutable should throw if called twice
101 - test that checks concurrence
114 - finish implementation (2-3 methods left)
117 - port and test on HPPA HPUX
121 - port and test on HPPA HPUX
122 - test on Solaris (code was written)
124 NSLock, NSRecursiveLock, NSConditionLock
127 NSNotification, NSNotificationCenter, NSNotificationQueue
136 NSPosixFileDescriptor
143 - write code that determines when the process is idle
148 NSSerializer, NSDeserializer
151 NSSet, NSMutableSet, NSCountedSet
152 - tests for all methods
153 - write init* in concrete classes
154 - init* methods for immutable should throw if called twice
156 NSString, NSMutableString
157 - add support for Unicode
165 NSTimeZone, NSTimeZoneDetail
172 - put command-line args in NSArgument domain
177 NSZone (NSDefaultZone)
178 - make an allocator with zones using page-allocation functions
179 - make a non-free zone and support recycle
184 NSStream, NSInputStream, NSOutputStream
190 ================================ DOCUMENTATION ===============================
192 - comment the headers about classes, functions, ivars
193 - comment sources about class structure and general ideas
196 ================================ NEW CLASSES =================================
199 - TODO: human readable and easy modifiable format. Such a class was
200 already designed and implemented and it is used for archiving
201 and unarchiving GNUstep GUI objects.
204 - new class and support methods in a category to NSString
206 ========================== Configure, Makefile, Porting ======================
208 We discussed long time ago about a makefile package to help developers
209 easily build libraries and applications using the current free
210 libraries written in Objective-C. This was finally implemented by
211 Scott Christley and Ovidiu Predescu in the GNUstep makefile package.