mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3081 72102866-910b-0410-8b05-ffd578937521
224 lines
7.7 KiB
Text
224 lines
7.7 KiB
Text
@c -*-texinfo-*-
|
|
@ifclear GLOBAL-TODO
|
|
@chapter TODO
|
|
|
|
@ifset TEXT-ONLY
|
|
@include version.texi
|
|
@end ifset
|
|
|
|
@end ifclear
|
|
|
|
@itemize @bullet
|
|
|
|
@item Implement Formatter classes (NSDateFormatter, etc) [5] (980722).
|
|
|
|
@item Check that every class implements coding (correctly). [2, NSCoder] (980721).
|
|
|
|
@item Check that every class implements copying (correctly) - i.e. non-mutable classes should just retain, etc. [1, NSCopying] (980721).
|
|
|
|
@item Implement [NSDeserializer +deserializePropertyListLazilyFromData:atCursor:length:mutableContainers:]
|
|
[3 NSProxy] (980712)
|
|
|
|
@item Implement [NSDeserialiser - deserializeObjectAt:ofObjCType:fromData:atCursor:] [1] (980712)
|
|
|
|
@item Implement [NSSerialiser - serializeObjectAt:ofObjCType:fromData:] [1] (980712)
|
|
|
|
@item Improve initWithFormat releated methods for NSString and find out how to implemente the locale stuff [4 OPENSTEP/Rhapsody] (980712)
|
|
|
|
@item Make gstep-base 64bit clean [5, 64bit machine] (980629)
|
|
|
|
@item Make gstep-base smaller. Perhaps we can get rid of classes that
|
|
aren't strictly part of OpenStep and put them in an extensions-type
|
|
library. [5] (980629)
|
|
|
|
@item Fix NSLog so it conforms to specs. Need to check that write to
|
|
stderr went ok, and if not write to syslog. Also need to serealize
|
|
output (with threads). [3, OpenStep specs, threads] (980220)
|
|
|
|
@item Simplify NSException and NSAssertionHandler and make sure they
|
|
don't cause race conditions (if an exception is raised while processing
|
|
an exception. [4, exceptions, threads] (980220)
|
|
|
|
@item Fix all the places marked FIXME or xxx. [3-9] (980629)
|
|
|
|
@item Write tests for various classes using the testsuite build
|
|
by Richard Frith-Macdonald @email{richard@@brainstorm.co.uk}. Contact
|
|
him for details. [3, guile] (980629)
|
|
|
|
@item Change all the assert()'s (especially in the archiving code) to
|
|
NSAssert()'s. This will help make D.O. servers more safe from bad
|
|
clients. [2, exceptions] (980220)
|
|
|
|
@item Make NS... classes raise the NSExceptions they are supposed to.
|
|
Change many NSParameterAssert()'s into NSAssert()'s with
|
|
explanations. [2, exceptions] (970101)
|
|
|
|
@item
|
|
Many implementations could be made more efficient. The library hasn't
|
|
been efficiency tuned very much. Overridding more methods in certain
|
|
classes could make things more efficient (especially EltNodeCollector).
|
|
SplayTree's could be done using top-down splaying. collhash could be
|
|
completely reimplemented. [5-8] (970101)
|
|
|
|
@item Separate Constant and non-Constant collections for the rest of the
|
|
GNU connection classes the same way I did for Array. (970101)
|
|
|
|
@item Make sure the GNU Archiver/Unarchiver handle
|
|
-encodeConditionalObject: and -decodeObject: correctly. (970101)
|
|
|
|
@item Make sure that Encoder's properly release their CStream and
|
|
Stream's. It seems that the Stream is not getting -delloc'ed, and
|
|
therefore may not be closed, and therefore may be missing data at the
|
|
end. (970101)
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
@ignore
|
|
|
|
@section McCallum's To Do's
|
|
|
|
@itemize @bullet
|
|
|
|
@item Make sure the GNU Archiver/Unarchiver handle
|
|
-encodeConditionalObject: and -decodeObject: correctly.
|
|
|
|
@item Reorganize some of the Categories to make a minimal NSObject-using
|
|
program smaller. Currently it is huge becuase it pulls in archiving and
|
|
therefore many of the collection classes. (But perhaps this doesn't
|
|
matter, since we recommend using shared libraries anyway.)
|
|
|
|
@item Make sure that Encoder's properly release their CStream and
|
|
Stream's. It seems that the Stream is not getting -delloc'ed, and
|
|
therefore may not be closed, and therefore may be missing data at the
|
|
end.
|
|
|
|
@item Do low-level frobbing of TCP to reduce delays.
|
|
|
|
@item Make UdpPort work; make MachPort work.
|
|
|
|
@item Finish Collection heirarchy clean ups. We need non-mutable
|
|
version for many of the classes.
|
|
|
|
@item Possibly change implementation of @code{-(int)compare:anObject}
|
|
for Collection. How should non-Indexed collections be ordered?
|
|
|
|
@end itemize
|
|
|
|
@c ==================================================================
|
|
@section Questions
|
|
|
|
I would greatly appreciate your feedback on the questions
|
|
below. Please email your thoughts to mccallum@@gnu.ai.mit.edu.
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
I want to put method names in texinfo indices, but the colons in the
|
|
method names are interfering with info's notion of menu item names and
|
|
node names. Help. Any ideas? (Kresten?)
|
|
|
|
@item
|
|
HashTable.m (-initKeyDesc:valueDesc:capacity:) I tried to make it
|
|
portable, but I didn't try very hard. Anyone want to send in fixes?
|
|
|
|
@item
|
|
I fixed -emptyCopy in all the subclasses, but the -emptyCopy scheme
|
|
seems pretty fragile. How about calling -initFoo: inside -emptyCopy?
|
|
This way we avoid having yet another method in which instance vars
|
|
must be initialized to some consistent state. -allocCopy would never
|
|
even get called. <<ObjC insiders: This is a less well-expressed
|
|
version of what we've just been discussing in email.>>
|
|
|
|
@item
|
|
Does anyone really need the ability to set the collection element
|
|
comparison function independent of the -compare: method?
|
|
|
|
@item
|
|
How about adding flexibity in the method name that a LinkedList sends a
|
|
LinkedListNode to get/set the link ivars. This would enable us to add a
|
|
node to more than one linked list.
|
|
|
|
@item
|
|
Something like this needed?
|
|
- elementDidChange: (elt*)elementPtr;
|
|
Currently you have to remove, change, add, for some classes.
|
|
|
|
@end itemize
|
|
|
|
|
|
@section Albin's To Do List
|
|
|
|
I'm sure that there're other things to do, but these are the ones I know now:
|
|
|
|
@subsection General
|
|
|
|
@itemize @bullet
|
|
@item Make thread-safe all of my code that should be.
|
|
@item Fully annotate all of my headers.
|
|
@item Document my work and the use of its fruit.
|
|
@end itemize
|
|
|
|
@subsection Critical
|
|
|
|
@itemize @bullet
|
|
@item Code:
|
|
@itemize +
|
|
@item (@file{src/array.m}) @samp{objects_array_check}
|
|
@item (@file{src/array.m}) @samp{objects_array_map_elements}
|
|
@item (@file{src/cbs-char-p.m}) @samp{objects_char_p_describe}
|
|
@item (@file{src/cbs-int-p.m}) @samp{objects_int_p_describe}
|
|
@item (@file{src/cbs-int.m}) @samp{objects_int_describe}
|
|
@item (@file{src/hash.m}) @samp{_objects_hash_hash}
|
|
@item (@file{src/hash.m}) @samp{objects_hash_check}
|
|
@item (@file{src/hash.m}) @samp{objects_hash_description}
|
|
@item (@file{src/list.m}) @samp{objects_list_is_equal_to_list}
|
|
@item (@file{src/map.m}) @samp{_objects_map_hash}
|
|
@item (@file{src/map.m}) @samp{objects_map_check}
|
|
@item (@file{src/map.m}) @samp{objects_map_description}
|
|
@end itemize
|
|
|
|
@item Correct:
|
|
@itemize +
|
|
@item (@file{src/array.m}) @samp{objects_array_dealloc}
|
|
@item (@file{src/cbs-int.m}) @samp{_GNUSTEP_BASE_NOT_AN_INT_MARKER}
|
|
@end itemize
|
|
|
|
@item Improve the error handling of:
|
|
@itemize +
|
|
@item (@file{src/array.m}) @samp{_objects_array_insert_bucket}
|
|
@item (@file{src/hash.m}) @samp{objects_hash_add_element_known_absent}
|
|
@item (@file{src/list.m}) @samp{objects_list_at_index_insert_element}
|
|
@item (@file{src/map.m}) @samp{objects_map_at_key_put_value_known_absent}
|
|
@end itemize
|
|
@end itemize
|
|
|
|
@subsection Not So Critical
|
|
|
|
@itemize @bullet
|
|
@item Strengthen my resolve on the correctness of:
|
|
@itemize +
|
|
@item (@file{src/cbs-char-p.m}) @samp{_GNUSTEP_BASE_NOT_A_CHAR_P_MARKER}
|
|
@item (@file{src/cbs-id.m}) @samp{_GNUSTEP_BASE_NOT_AN_ID_MARKER}
|
|
@item (@file{src/cbs-int-p.m}) @samp{_GNUSTEP_BASE_NOT_AN_INT_P_MARKER}
|
|
@item (@file{src/cbs-int-p.m}) @samp{objects_int_p_is_equal}
|
|
@item (@file{src/cbs-void-p.m}) @samp{_GNUSTEP_BASE_NOT_A_VOID_P_MARKER}
|
|
@item (@file{src/hash.m}) @samp{objects_hash_rightsize}
|
|
@item (@file{src/hash.m}) @samp{objects_hash_all_elements}
|
|
@item (@file{src/map.m}) @samp{objects_map_rightsize}
|
|
@item (@file{src/map.m}) @samp{objects_map_all_keys}
|
|
@item (@file{src/map.m}) @samp{objects_map_all_values}
|
|
@end itemize
|
|
|
|
@item Improve the effeciency of:
|
|
@itemize +
|
|
@item (@file{src/array.m}) @samp{_objects_array_insert_bucket}
|
|
@item (@file{src/hash.m}) @samp{objects_hash_minus_hash}
|
|
@item (@file{src/list.m}) @samp{objects_list_at_index_insert_list}
|
|
@end itemize
|
|
@end itemize
|
|
|
|
@end ignore
|
|
|
|
|