Wed Aug 12 14:55:00 1998 Richard Frith-Macdonald * src/NSBundle: ([+initialize]) modified to take account of the environment variables GNUSTEP_TARGET_DIR, GNUSTEP_TARGET_CPU, GNUSTEP_TARGET_OS, and LIBRARY_COMBO to override the defaults. Fri Aug 4 10:55:00 1998 Richard Frith-Macdonald * src/GNUmakefile: Removed NSAllocateObject.m and NSDeallocateObject.m (contents merged into NSObject.m). * src/NSObject.m: Modified to perform storage of retain counts local to the objects concerned in order to speed up performance - also modified to cache an objects zone with it - in order to maintain (or better) current performance when we get the NSZone code fixed to work with malloced memory. * src/include/NSObjCRuntime.h: Removed NSDebugLog() * src/include/NSDebug.h: Added new version of NSDebugLog() * src/include/NSProcessInfo.h: Added [-debugArray] method. * src/NSProcessInfo.m: Added [-debugArray] method and modified to parse arguments list and remove debug options, putting them in a mutable array (returned by [-debugArray]). * src/externs.m: Removed NSDebugLogging. * src/NSBundle.m: Modified to use new version of NSDebugLog(). Thu Aug 3 15:35:00 1998 Richard Frith-Macdonald * src/include/NSGCString.h: Added _hash instance variable. * src/include/NSGString.h: Added _hash instance variable. * src/NSGCString.m: Added implementation of [-hash] to handle caching of strings hash value, also added implementation of a few other methods for the sake of performance. Modified NSGMutableCString methods to reset hash cache when string is modified. * src/NSGString.m: Added implementation of [-hash] to handle caching of strings hash value. Modified NSGMutableString methods to reset hash cache when string is modified. * src/NSString.m: Misc performance hacks - use alloca() rather than malloc/free where possible etc. YMMV, but the above changes got me a 20% performance improvement in the app I was working with. * src/o_map.m: Don't use o_map_key_callbacks() - access the field in the structure directly to avoid the function-call overhead as this function was being called LOTS of times. Only a tiny performance improvement - but every little helps. Thu Jul 30 16:00:00 1998 Richard Frith-Macdonald * src/include/NSSet.h: Corrected protocol conformance * src/NSSet.m: Added ([-encodeWithCoder:]), ([-initWithCoder:]). Fixed ([-copyWithZone:]) to remove memory and to simply retain where possible. Implemented ([-description]) and ([-descriptionWithLocale:]). * src/NSGCountedSet.m: Removed ([-initWithCapacity:]) and fixed enumerator. * src/include/NSDictionary.h: Added ([+dictionaryWithObject:forKey:]) and corrected protocol conformance. * src/NSDictionary.m: Added ([+dictionaryWithObject:forKey:]) Wed Jul 29 15:00:00 1998 Richard Frith-Macdonald * src/Collection.m: Removed [-copy] * src/include/Collecting.h: likewise * src/NSAttributedString.m: fixed ([-copy]) and ([-isEqual:]) * src/NSCharacterSet.m: implemented (inefficiently) ([-isEqual:]) Wed Jul 29 9:10:00 1998 Richard Frith-Macdonald * src/TcpPort.m: typecast to get rid of warning * src/NSCharacterSet.m: Added NSCoding methods. * src/NSBitmapCharSet.m: Added NSCoding methods. * src/NSHost.m: typecast to get rid of warning. * src/NSData.m: ([-copy]) removed. * src/NSDictionary.m: ([-copy]) removed. * src/NSGSequence.m: ([-copy]) removed. * src/NSScanner.m: ([-copy]) removed. * src/NSArray.m: ([-copy]) removed. * src/NSAttributedString.m: ([-copy]) removed. * src/NSString.m: ([-copy]) removed. * src/NSObject.m: ([-copyWithZone:]) modified to conform strictly to Rhapsody docs. Added ([+instanceMethodSignatureForSelector:]). * src/include/IndexedCollectionPrivate.h: fixed include for NSString.h * src/Makefile.postamble: modified rule for building srcdir-include stuff so that it works for me. * src/NSException.m: ([-copyWithZone:]) typecast to get rid of warning. * src/NSValue.m: ([-copyWithZone:]) typecast to get rid of warning. * src/NSDistantObject.m: fixed ([-classForPortCoder]) for Protocol. Tue Jul 28 12:57:54 1998 Adam Fedor * src/GNUmakefile: Remove NEXTSTEP classes. * src/NSConcreteNumber [-copy]: Removed. [-copyWithZone:]: Likewise. * src/NSNumber: [-copy]: Implement [-copyWithZone:]: Likewise. * src/NSDate.m [-copyWithZone:]: Correct implementation. * src/NSException.m [-copyWithZone:]: Likewise. * src/NSPort.m: [-copyWithZone:]: Likewise. * src/NSValue.m: [-copyWithZone:]: Likewise. Tue Jul 21 09:15:32 1998 Adam Fedor * src/GNUmakefile: Removed redundant classes. * src/Connection: Removed. * src/Lock: Likewise. * src/Notification: Likewise. * src/Proxy: Likewise. * src/include/Connection.h, src/include/Lock.h, src/include/Notification.h, src/include/Proxy.h: Likewise. * src/include/RetainingNotifier.h: Removed. * src/libgnustep-base.def: Removed reference to redundant classes. * src/include/ConnectedCoder.h: Likewise * src/include/NSConnection.h: Likewise * src/include/NSNotification.h: Likewise * src/include/NSPort.h: Likewise * src/include/all.h: Likewise * src/ConnectedCoder.m: Likewise * src/Makefile.postamble: Likewise * src/MachPort.m: Likewise * src/NSConnection.m: Likewise * src/NotificationDispatcher.m: Likewise * src/NSNotification.m: Likewise * src/Port.m: Likewise * src/TcpPort.m: Likewise * src/behavior.m: Likewise * src/NSThread.m: Likewise * src/UdpPort.m: Likewise * examples/first-client.m, examples/first-server.h, examples/first-server.m, examples/second-client.h, examples/second-client.m, examples/second-server.h, examples/second-server.m: Removed. * src/NSRunLoop.m: Add time.h (For GNU/Linux-2.0) * src/TcpPort.m: Likewise. * src/UdpPort.m: Likewise. * sec/UnixFileHandle.m: Likewise. Wed Jul 20 21:25:00 1998 Richard Frith-Macdonald * src/Decoder.m: ([-decodeClass]) modified to ensure correct decoding instances of classes relying on multiple inheritance. Tue Jul 14 16:26:36 1998 Adam Fedor * src/Makefile.postamble (gnustep/base): Fixup dir creation. (Foundation): Likewise. * src/externs.m: New NSDebugLogging variable. * src/include/NSObjCRuntime: Change NSDebugLog so it works when DEBUG is defined and NSDebugLogging is set. * src/NSBundle.m: Use it. * src/include/Foundation.h: Include NSTimer.h * src/include/NSObject.h: Define +instanceMethodSignatureForSelector: Tue Jul 14 10:06:31 1998 Masatake Yamato * checks/nsset.m : Added new testing functions. (intersects_set_test): Likewise. (is_subset_of_set_test): Likewise. * src/include/NSSet.h ([NSSet -setWithObjects:]): Remove the type declaration of arguments, "NSArray *". The arguments should be declared as id. * src/NSSet.m ([NSSet -isSubsetOfSet:otherSet]): Implement. ([NSSet -intersectsSet:otherSet]): Likewise. Wed Jul 15 12:45:00 1998 Richard Frith-Macdonald * src/Invocation.m: Rewrote ([-invoke]) to retrieve return values correctly by using mframe_decode_return() * src/NSCharacterSet.m: Fixed ([-copyWithZone:]) to avoid using the (non-existant) NSObject method. * src/NSFileHandle.m: Modified method for making socket connections and added a synchronous version. * src/NSObjCRuntime.m: Tidied and added NSGetSizeAndAlignment(). * src/NSObject.m: Removed ([-copyWithZone:]) and ([-mutableCopyWithZone:]) (which shiould not exist in NSObject). * src/NSString.m: Fixed implementation of the ([-rangeOfCharacterFromSet:options:range:]) method. * src/UnixFileHandle.m: Various bug fixes for synchronous operations. * src/mframe.m: Added mframe_decode_return() function to get the return value out of a retframe. * src/include/NSCharacterSet.h: Modified to say we conform to the NSCoding protocol (whith the spec says we should). * src/include/NSFileHandle.h: Altered methods for making a network call. * src/include/NSObjCRuntime.h: Added NSGetSizeAndAlignment(). * src/include/NSObject.h: Removed stuff saying we conform to the NSCoding and NSCopying protocols (we shouldn't) and removed the ([-copyWithZone:]) and ([-mutableCopyWithZone:]) methods - which shouldn't be there. * src/include/UnixFileHandle.h: Altered methods for making a network connection. * src/include/mframe.h: Added mframe_decode_return() function. Tue Jul 14 16:06:16 1998 Masatake Yamato * checks/invocation_*.m : New test files. * checks/invocation2.m: Removed the file. * src/include/NSInvocation.h (NS_INVOCATION, NS_MESSAGE): Added new arguments to the macros. These macros don't require SEL type argument to specify the method to invoke now. * checks; Added invocation_char.m, invocation_short.m, invocation_int.m and invocation_long.m Fri Jul 10 21:43:30 1998 Adam Fedor * src/include/GapArrayPrivate.h (gapMoveGaptTo): Change - to +. * docs/todo.tmpl.texi: Updates Fri Jun 25 20:45:00 1998 Richard Frith-Macdonald * src/TcpPort.m: Improved debug code and added method to turn it on - ([+setDebug:]) * src/NSConnection.m: Changed code so that if a process sends us a 'release' for an object local to us, which it vended to a third party, we retain the object for 30 seconds before releasing it in order to give the third party time to connect to us and retain it. Improved debug code and added method to turn it on - ([+setDebug:]) * src/NSDistributedObject.m: Added flag to say whether an object has been vended to a third party. Improved debug code and added method to turn it on - ([+setDebug:]) * src/include/NSDistantObject.h: Added flag. Thu Jun 24 22:05:00 1998 Richard Frith-Macdonald * src/proplist.y: Make parser more tolerant - permit a comma after the final element in an array. * src/NSData.m: Added ([NSMutableData +data]) * src/Unicode.m: Efficiency hack for conversion to/from unicode * src/include/NSArray.h: Added ([-writeToFile:Atomically:]) * src/include/NSString.h: Added GSUndefinedEncoding and comment to make sure nobody deletes it - needed for efficiency hack in Unicode.m Fri Jun 19 13:37:37 1998 Adam Fedor * NSObject (+isKindOfClass:): New method (patch from Bruce Ide ). (+isMemberOfClass): Likewise. Tue Jun 16 09:48:18 1998 Adam Fedor * src/NSProtocolChecker.m, src/include/NSProtocolChecker.h: New files. (from Mike Kienenberger ) Fri May 29 10:16:09 1998 Adam Fedor * doc/news.tmpl.texi: Fixed typo. * doc/readme.tmpl.texi: Likewise. (patch from doko@cs.tu-berlin.de (Matthias Klose)). * src/ostream.m (ostream_save_buffer): Retain stream. * src/include/MemoryStream.h: Remove outdated methods. * src/include/NSException.h (NS_VALUERETURN): New macro. Thu May 28 10:45:00 1998 Richard Frith-Macdonald * Tools/gdomap.c: Added code to cope with systems where we can't determine what network interfaces are active. * checks/heap.m: Portability fix for svr4 systems. * configure.in: Improved portability to svr4 systems. * src/NSMethodSignature.m: Changed order of includes to fix compilation on svr4 systems. * src/NSPage.m: Altered to use 'sysconf(_SC_PAGESIZE)' to get page size on svr4 systems. * src/NSTask.m: Altered to use 'kill()' rather than 'killpg()' on svr4 * src/NSThread.m: Altered to use 'sleep()' rather than 'usleep()' on svr4 * src/include/config.h.in: Added a couple of configuration constants for portability - HAVE_KILLPG and HAVE_USLEEP Thu May 21 09:38:14 1998 Adam Fedor * src/NSUser.m (NSUserName): Use getpwuid for BSD machines (patch provided by Stefanos Kiakas ). * src/GetDefEncoding.c (GetDefEncoding): Change binary AND to logical AND. (GetEncoding): Likewise (patch provided by David Fritzsche ). Wed May 20 15:26:50 1998 Richard Frith-Macdonald * src/GNUmakefile: Added NSUndoManager.[hm] * src/Invocation.m: ([-_initArgframeFrom:withType:retainArgs:]) fixed memory leak due to failing to set 'args_retained' flag. * src/NSObject.m: ([-forward::]) modified to call (forwardInvocation:) method so we can conform to OpenStep spec. * src/NSUndoManager.m: Implementation of new class. * src/include/NSUndoManager.h: Interface for new class. Wed May 13 13:18:35 1998 Adam Fedor * src/NSArray.m ([NSArray -initWithContentsOfFile:]): Move definition from NSMutableArray. * NSBundle.m (+initialize): New method. (+mainBundle): Use recursive lock. (-initWithPath:) Likewise. * Unicode.m (encode_chartouni): Cast char to unsigned before to unichar (patch provided by David Fritzsche ). Fri May 1 14:26:50 1998 Masatake Yamato * src/mframe.m(mframe_do_call): before allocating a storage for returned structure, check stack_argsize. Mon Apr 27 15:45:00 1998 Richard Frith-Macdonald * src/include/mframe.h: Added three new functions to enable passing of pointers using the mframe routines. * src/mframe.m: Added mframe_dissect_call_opts(), mframe_do_call_opts(), and mframe_build_return_opts() so that we may pass pointers to and from functions in other languages rather than using the DO behaviour which is to copy a single object when given a pointer. Tue Apr 21 15:45:00 1998 Richard Frith-Macdonald * src/NSMethodSignature.m: ([+signatureWithObjCTypes:]) rewritten to use some macros from libFoundation (adapted from gcc) to handle creation of NSMethodSignature objects where the types string passed in does not contain the position information of the arguments. Thu Apr 16 13:45:00 1998 Richard Frith-Macdonald * checks/client.m: enable testing of DO strucuture return. * checks/server.m: fix typo in keyword * src/KeyedCollection.m: ([-decodeContentsWithCoder:]) fixed a memory leak. * src/mframe.m: Fixed a few bugs in returning structures - now works properly on GNU/Linux intel. Can anyone figure out how to handle all this stuff using autoconf? Mon Apr 20 09:23:58 1998 Adam Fedor * src/NSLock.m: Eliminate busy waiting from NSConditionLock * src/NSLock.h: add instance variable and rename "value" to support changes to NSConditionLock * src/NSLock.m: Raise appropriate exceptions * src/NSLock.m: Prevent NSLock and NSConditionLock from being locked recursively * src/NSThread.m: -sleepUntilDate: implemented * src/NSThread.m: remove calls to objc_get_thread_data except in currentThread message * src/BinaryCStream.m: Replace assert's with NS*Assert * src/CStream.m.orig: Likewise * src/Decoder.m: Likewise * src/Encoder.m: Likewise * src/MemoryStream.m: Likewise * src/RawCStream.m: Likewise * src/TextCStream.m: Likewise * src/ostream.m.orig: Likewise (patches from Quetzalcoatl Bradley ). * src/NSFileManager.h: Include pwd.h if we have it * configure.in: Check for pwd.h * configure: regenerate. * src/include/config.h.in: Likewise. Wed Apr 15 09:54:25 1998 Adam Fedor * src/NSFileManager.m ([NSFileManager -fileAttributesAtPath:traverseLink:]): Add NSFileOwnerAccountName. * src/externs.m: Add NSFileOwnerAccountName definition. (patch provided by Marcus Mueller ) * src/NSThread.m (-sleepUntilDate:): Implemented (from Quetzalcoatl Bradley ). Sun Apr 5 20:07:28 1998 Scott Christley * Utilize documentation rules in Makefile Package. * doc/GNUmakefile: Rewrite to use Makefile Package. * doc/Makefile.postamble: Remove old obsolete rules. * Documentation which covers GNUstep as a whole versus just gstep-base has been moved to the top level Documentation dir. * GNUstep-HOWTO: Delete. * doc/gnustep-base.tmpl.texi: GNUstep-HOWTO and FAQ removed. Add variable so that included files know they are within the main document. * doc/gnustep-howto.tmpl.texi: Delete. * doc/faq.tmpl.texi: Delete. * doc/announce.tmpl.texi: Don't include version.texi needlessly. * doc/news.tmpl.texi: Don't include version.texi needlessly. * doc/todo.tmpl.texi: Don't include version.texi needlessly. * src/GNUmakefile: Don't compile Random class as the name too often conflicts with user apps. * src/GetDefEncoding.m: Reformat. * src/NSArray.m (-replaceObjectsInRange:withObjectsFromArray:): Fix range check. Use enumerator instead of count. Wed Apr 1 18:45:00 1998 Richard Frith-Macdonald * Tools/gdomap.m: Modified code so that we make sure we have at least one valid route to any gdomap process which has probed us. This is to cope with machines which send out info about all their interfaces when one or more of the interfaces is not working. * src/checks/nstask.m: added test for environment setting. * src/NSCalendarDate.m: Fixed bug in initialisation where daylight savings time is in operation - was adjusting in wrong direction. * src/NSRunLoop.m: Added NSObject catagory for the methods - ([NSObject +cancelPreviousPerformRequestsWithTarget:selector:object:]), ([NSObject -performSelector:withObject:afterDelay:]), and ([NSObject -performSelector:withObject:afterDelay:inModes:]) * src/NSTask.m: Various bug fixes as a result of running the test suite. All seems to work ok now. * src/NSDate.h: Changed order of declaractions so this can be included within NSObject.h * src/NSObject.h: Added run-loop integration methods - ([NSObject +cancelPreviousPerformRequestsWithTarget:selector:object:]), ([NSObject -performSelector:withObject:afterDelay:]), and ([NSObject -performSelector:withObject:afterDelay:inModes:]) * src/NSRunLoop.h: Added an instance variable to keep track of queued delayed actions to be performed on objects. Tue Mar 31 11:32:03 1998 Adam Fedor * aclocal.m4 (OBJC_CON_AUTOLOAD): Improved test. Check nm output for indicator functions. * configure: Regenerate. * checks/GNUmakefile (LoadMe_RESOURCE_FILES): Changed name. * doc/gnustep-howto.tmpl.texi: Update. * doc/status.tmpl.texi: Likewise. Fri Mar 20 11:15:00 1998 Richard Frith-Macdonald * checks/client.m: Added some tests for passing objects byref * checks/server.h: Added ([-sendByref:]) to protocol. * checks/server.m: Added ([-sendByref:]) for testing 'byref'. * src/Coder.m: Added ([-encodeByrefObject:]) * src/Encoder.m: Added ([-_doEncodeByrefObject:]) and changed the designated encoding method throughout from ([-_encodeObject:withName:isBycopy:isForwardReference:]) to ([-_encodeObject:withName:isBycopy:isByref:isForwardReference:]) * src/NSCoder.m: Added ([-encodeBytes:length:]), ([-encodeByrefObject:]) and ([-decodeBytesWithReturnedLength:]) * src/NSConnection.m: Modified ([-forwardForProxy:selector:argFrame:]) and ([-_service_forwardForProxy:]) methods to handle byref flag. * src/NSDictionary.m: Added ([+dictionaryWithDictionary:]) * src/NSPortCoder.m: Added ([-isByref]) and ([-_doEncodeByrefObject:]) methods and modified ([-_doEncodeBycopyObject:]) to handle byref flag. * src/include/Coding.h: Added ([-encodeByrefObject:]) * src/include/NSCoder.h: Added ([-encodeBytes:length:]), ([-encodeByrefObject:]) and ([-decodeBytesWithReturnedLength:]) * src/include/NSDictionary.h: Fixed prototype for the ([+dictionaryWithDictionary:]) method. * src/include/NSPortCoder.h: Added ([-isByref]) * src/objc-gnu2next.m: Added _F_BYREF flag code Fri Mar 13 15:05:00 1998 Richard Frith-Macdonald * src/NSCalendarDate.m: ([-descriptionWithCalendarFormat:locale:]) Fixed bug in displaying time-zone - was displaying minutes and seconds when should have been showing hours and minutes. Wed Mar 11 11:56:00 1998 Richard Frith-Macdonald * src/NSArray.m: ([-copyWithZone:]) changed to use the NSShouldRetainWithZone() function. * src/NSCalendarDate.m: ([-dealloc]) don't release the timezone - we never retain it anyway (should we?) ([-setCalendarFormat:]) make a copy of the string we are given in case it gets changed or deleted. * src/NSConcreteNumber.m: ([-copyWithZone:]) fixed to use the NSShouldRetainWithZone() function. * src/NSData.m: ([-copyWithZone:]) fixed to use the NSShouldRetainWithZone() function. * src/NSDictionary.m: ([-copyWithZone:]) fixed to use the NSShouldRetainWithZone() function. * src/NSHost.m: Added ([-awakeAfterUsingCoder:]) * src/NSNumber.m: Added ([-copy]) and ([-copyWithZone:]) * src/NSString.m: ([-copyWithZone:]) fixed to use the NSShouldRetainWithZone() function. * src/TcpPort.m: Commented out unnecessary warning message. * src/NSTimeZone.m: Modified ([-encodeWithCoder:]) and ([-awakeAfterUsingCoder:]) so that the local timezone is encoded specially and is restored as whatever the local timezone of the restoring application is. * src/NSValue.m: Added ([-copy]) and ([-isEqualToValue:]) Tue Mar 10 17:05:00 1998 Richard Frith-Macdonald * src/NSArray.m: ([-copyWithZone:]) rewritten to avoid doing unnecessary copy of non-mutable objects and to fix memory leak. * src/NSCTemplateValue.m: ([-isEqaul:]) and ([-isEqualToValue:]) implemented. * src/NSCalendarDate.m: ([-initWithCoder:]) and ([-encodeWithCoder:]) implemented. * src/NSConcreteNumber.m: ([-copy]) and ([-copyWithZone:]) implemented to do simple retains. * src/NSDictionary.m: ([-copyWithZone:]) rewritten to avoid doing unnecessary copy of non-mutable objects and to fix memory leak. * src/NSGString.m: ([-cString]) fixed crash when called on empty string. * src/NSTimeZone.m: ([-awakeAfterUsingCoder:]) implemented to handle decopding of archived objects correctly. * src/include/NSValue.h: Added ([-isEqualToValue:])