diff --git a/ChangeLog b/ChangeLog index 964cd66f3..7b69eac72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10865 +1,59 @@ -Wed Mar 11 17:11:23 1998 Adam Fedor +Wed Mar 11 11:56:00 1998 Richard Frith-Macdonald - * Version: Version 0.5.0; + * src/NSArray.m: ([-copyWithZone:]) changed to use the + NSShouldRetainWithZone() function. -Wed Mar 11 11:02:49 1998 Scott Christley + * 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. - * doc/gnustep-howto.tmpl.texi: Update. - * GNUstep-HOWTO: Regenerate. + * src/NSConcreteNumber.m: ([-copyWithZone:]) fixed to use the + NSShouldRetainWithZone() function. -Tue Mar 10 9:40:00 1998 Richard Frith-Macdonald + * src/NSData.m: ([-copyWithZone:]) fixed to use the + NSShouldRetainWithZone() function. - * Tools/gdomap.c: Changes to permit configuration of gdomap so that - it probes a specific list of hosts rather than all hosts on the - local net. Also permit compile-time override of port number. - - * Tools/gdomap.h: Added comments about overriding port used by gdomap. + * src/NSDictionary.m: ([-copyWithZone:]) fixed to use the + NSShouldRetainWithZone() function. - * src/TcpPort.m: (nameServer()) modified for easy compile-time - override of port number used. + * src/NSHost.m: Added ([-awakeAfterUsingCoder:]) -Thu Mar 5 15:40:00 1998 Richard Frith-Macdonald + * src/NSNumber.m: Added ([-copy]) and ([-copyWithZone:]) - * src/GNUmakefile: removed byte_order.h and added NSByteOrder.h - - * src/NSData.m: Changed all byte-ordering code to use new byte order - functions described in the Rhapsody documentation. + * src/NSString.m: ([-copyWithZone:]) fixed to use the + NSShouldRetainWithZone() function. - * src/NSSerializer.m: Removed unused include file. + * src/TcpPort.m: Commented out unnecessary warning message. - * src/include/NSByteOrder.h: Added this file containing all the - byte-order management functions described in the Rhapsody docs. + * 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. -Wed Mar 4 21:06:00 1998 Richard Frith-Macdonald + * src/NSValue.m: Added ([-copy]) and ([-isEqualToValue:]) - * src/NSConnection.m: Changed some objects to be OpenStep rather than - old libobjects types. Using NSMutableArray rather than Queue for the - message queues seems to fixes bug with queue corruption under heavy - load. - - * src/NSHost.m: Added methods for archiving NSHost objects and - sending them bycopy over DO at all times. +Tue Mar 10 17:05:00 1998 Richard Frith-Macdonald - * src/NSRunLoop.m: ([-runUntilDate:forMode:]) modified to exit - promptly if there are no more input sources for the run loop. + * src/NSArray.m: ([-copyWithZone:]) rewritten to avoid doing + unnecessary copy of non-mutable objects and to fix memory leak. -Mon Mar 2 10:04:57 1998 Adam Fedor + * src/NSCTemplateValue.m: ([-isEqaul:]) and ([-isEqualToValue:]) + implemented. - * ANNOUNCE, NEWS, GNUstep-HOWTO: Update. - * doc/faq.tmpl.texi, doc/gnustep-howto.tmpl.texi, - doc/news.tmpl.texi: Likewise. - * src/GNUmakefile (GENERATED_HAFILES): Add include/o_... + * src/NSCalendarDate.m: ([-initWithCoder:]) and ([-encodeWithCoder:]) + implemented. -Thu Feb 26 12:49:10 1998 Adam Fedor + * src/NSConcreteNumber.m: ([-copy]) and ([-copyWithZone:]) + implemented to do simple retains. - * configure.in: Use AC_CHECK_HEADERS instead of AC_CHECK_HEADER. - * src/include/config.h.in: Regenerate. + * src/NSDictionary.m: ([-copyWithZone:]) rewritten to avoid doing + unnecessary copy of non-mutable objects and to fix memory leak. - * doc/GNUmakefile (HTML_FILES): Add fac_toc.html - * doc/Makefile.postamble: (fac_toc.html): New target. - - * src/include/NSDictionary.h: Add NSMutableCopying protocol - (suggested by David Fritzsche ). - -Thu Feb 26 8:12:00 1998 Richard Frith-Macdonald - - * Tools/defaults.m: Removed autorelease debugging. - * Tools/dread.m: Removed autorelease debugging. - * Tools/dremove.m: Removed autorelease debugging. - * Tools/dwrite.m: Removed autorelease debugging. - - * Tools/gdomap.m: Substantial rewrite with changes to the protocol - for name servers to identify themselves to each other. - Now handles subnet addressing within a class-c network. - Now handles machines with multiple IP addresses more efficiently. - Removes addresses from list of known servers after a period in - which it fails to contect them. - - * Tools/gdomap.h: Changed comments to reflect protocol changes. - - * src/Coder.m: ([-initForReadingWithData:]) removed an inefficient - hack for dealing with a problem that should never happen - (init methid called on autoreleased object). - - * src/NSConnection.m: ([+newForInPort:outPort:cancestorConnection:), - (-_handleRmc:) removed 'delay_dialog_interruptions' which could - result in deadlock in three-way DO conversations. - - * src/NSPortCoder.m: ([-_doEncodeObject:]) changed so that a copy - over-the-wire is a deep copy rather than a shallow one. I think - this gives a more expected behaviour, though I don't know what - OPENSTEP does. - - * src/include/NSConnection.h: Removed delay_dialog_interruptions. - -Sat Feb 14 16:03:07 1998 Scott Christley - - * configure.in: Check for sys/statvfs.h header file. - * configure: Regenerate. - * std/include/config.h.in: Regenerate. - * src/NSFileManager.m: Include header files only if available. - -Sat Feb 14 15:50:40 1998 Adam Fedor - - * src/NXStringTable_scan.c src/lex.pl.m src/lex.sf.m - src/proplist.tab.h src/proplist.tab.m src/stringsfile.tab.h - src/stringsfile.tab.m: Add regenerated files to repository. - -Sat Feb 14 13:41:39 1998 Scott Christley - - * src/include/config.h.in: Create and add back into repository. - -Thu Feb 12 13:31:00 1998 Adam Fedor - - * src/NSDictionary.m ([-copy]): New method. - -Mon Feb 9 13:08:27 1998 Adam Fedor - - * AUTHORS, ANNOUNCE, README, INSTALL, STATUS, TODO: New files. - * configure: Likewise. - * +cronscript, +crontab, +patch.sh, Makefile.local, make-*, - upload-dist: Removed non-dist files. - * src/Makefile.local, src/Makefile.set.nt: Likewise. - * GNUmakefile (DIST_FILES): Remove gcc diffs. - * Makefile.postamble (regenerate): New target. - (snapshot, dist): Update for cvs export. - * NSCharacterSets/Makefile.postamble (regenerate): New target. - * NSTimeZones/Makefile.postamble: Likewise - * Tools/Makefile.postamble: Likewise. - * admin/Makefile.postamble: Likewise - * checks/Makefile.postamble: Likewise - * doc/Makefile.postamble: Likewise - * examples/Makefile.postamble: Likewise - * src/Makefile.postamble: Likewise - - * src/NSUserDefaults ([-synchronize]): Check for defaultDatabase - and create it it doesn't exist. - * src/NSThread.m ([-currentThread]): Set thread data for new - thread. - * src/NSString.m ([-initWithContentsOfFile:]): Check for NULL - data. Patches suggested by Ulrich Steinmetz - - * src/NSHost.m: Remove arpa/inet.h - * src/TcpPort.m: Likewise. - * src/UnixFileHandle.m: Likewise. - patches from Paul Kunz - -Thu Feb 5 10:12:00 1998 Richard Frith-Macdonald - - * src/NSConcreteNumber.m: Defined preprocessor values to handle - 'promotion' of numeric types and added private methods to support - this. Modified ([-compare:]) to promote numeric values so that - comparisons work as expected. Implemented ([-isEqualToNumber:]), - Implemented ([-description]) and partially ([-descriptionWithLocale:]) - Implemented ([-hash]) so that numbers which compare the same also - has the same (so we can use NSNumbers as dictionary keys). - - * src/NSData.m: Added non-openstep method ([-relinquishAllocatedBytes]) - to ask a data object to hand over it's malloced buffer. - - * src/NSNumber.m: Added initialisation methods specified in Rhapsody - documentation. - - * src/NSString.m: ([-dataUsingEncoding:allowLossyConversion:]) made - tiny change for efficiency - moving test outside loop - perhaps the - compiler would have optimised it anyway. - - * src/Port.m: Modified initialisaers to test for failure to create - NSData objects and return nil as appropriate. - - * src/TcpPort.m: ([+newForReceivingFromPortNumber:]) release newly - created port before raising exceptions. - In both ([-invalidate]) methods we remove the port from the various - maps before doing anything else so that invalid ports can't be found - by accident during the invalidation process. - - * src/UnixFileHandle.m: ([-readDataOfLength:]) fixed problem with - data object causing read value to be overwritten with nuls. - - * src/include/NSData.h: Added ([-relinquishAllocatedBytes]) - - * src/NSValue.h: Added initialisation methods for NSNumber and - ([-isEqualToNumber:]) method. - -Thu Feb 5 10:48:35 1998 Adam Fedor - - * GNUmakefile (GNUSTEP_MAKEFILES): New variable. Use it to - include makefiles. - * Likewise for all sub-directory GNUmakefile files. - -Mon Feb 2 10:11:20 1998 Adam Fedor - - * Version (GCC_VERSION): Change to 2.8.0 - * gcc-2.7.2-objc.diff: Remove. - * gcc-2.7.2.1-objc.diff: Likewise. - - * NSTimeZones/Makefile.postamble (after-install): Remove - directories before (re-)installing. - - * checks/GNUmakefile: Include bundle.make. - * checks/invocation2.m: New file. - - * doc/gnustep-howto.tmpl.texi: Make gcc2.8.0 supported compiler. - * doc/news.tmpl.texi: Add recent changes. - - * src/NSFileManager.m: Include sys/statvfs for mips-sgi-irix6.2 - * Tools/gdomap.c: Add IPPORT_USERRESERVED def for sgi. - * src/TcpPort.m: Likewise. - * src/UdpPort.m: Likewise. - (patches from Mike Kienenberger ) - -Fri Jan 30 20:38:56 1998 Masatake Yamato - - * src/Invocation.m ([MethodInvocation - -initWithTarget:selector:,...]): Add _C_CLASS, a CASE_TYPE to the - switch-case labels. Implement default: in the switch-case. I - used typeof, a gcc extension. - - * src/NSMethodSignature.m ([NSMethodSignature -argumentInfoAtIndex:]): - Implemented. - - * src/include/NSInvocation.h (NS_INVOCATION, NS_MESSAGE): New macros. - -Mon Feb 2 12:54:00 1998 Richard Frith-Macdonald - - * Tools/defaults.m: Modified to make sure that defaults are all - written correctly when reading multile defaults settings from stdin. - - * src/NSArray.m: Modified or rewrote almost all methods to use - unsigned ints rather than ints and to avoid retain/release - sequences for the sake of efficiency. Also rewrote property list - and sorting methods for much greater efficieny. - - * src/NSData.m: (readContentsOfFile(NSString*, void**, unsigned*)) - fixed bug leaving file open and modified to use - ([NSString -fileSystemRepresentation]). Similarly modified - ([-writeToFile:atomically;]) and ([-initWithContentsOfMappedFile:]). - - * src/NSDictionary.m: Modified ([-descriptionInStringsFileFormat]) - and ([-descriptionWithLocale:indent:]) for better performance. - - * src/NSGArray.m: Added implementations of ([-getObjects:]) and - ([-getObjects:range:]) so that it is possible to get high speed - access to array contents. Added implementation of - ([-sortUsingFunction:context:]) for faster sorting of array contents - so that property descriptions are generated more quickly. - - * src/NSGCString.m: Modified various methods so that the _capacity - instance variable has the space available for characters in the - string without the terminator. Added ([-getCharacters:]) and - ([-getCharacters:range:]) implementations. - - * src/NSGString.m: Modified various methods so that unicode - strings are no longer nul terminated and the _capacity instance - variable has the number of character spaces available in the - string. Added ([-getCharacters:]) and ([-getCharacters:range:]) - implementations. Added ([-replaceCharactersInRange:withString:]) - implementation. - - * src/NSString.m: Fixed a few places where it was assumed that - string buffers include space for a nul terminator. In - ([-compare:options:range:]) made modifications so that literal - comparisons now work correctly for ranges other than the entire - string. Made some changes to avoid use of malloc/free sequences - where not necessary. Made efficiency improvements to append - methods. - - * src/NSUserDefaults.m: ([-initWithContentsOfFile:]) changed to take - process name as being the last path component of the full process - name. Also added code to retry a few times if the database is locked. - - * src/TcpPort.m: ([+newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]) - Vague attempt to make rapid shutdown/startup of DO more robust. - - * src/UnixFileHandle.m: (getAddr()) Fixed error in handling service - names and permit nil service to mean 'any'. - Also use ([NSString -fileSystemRepresentation]) as appropriate. - - * src/include/NSGArray.h: modified to contain same instance variables - as the Array class so we can access them directly in NSGArray.m - -Mon Jan 26 09:10:39 1998 Adam Fedor - - * src/NSPage.m (NSRealMemoryAvailable): Add implementation for - GNU/Linux (Patch from Matt Jenkins ). - - * src/Invocation.m (-setArgument:atIndex:): Make argument const. - * src/NSInvocation.m (-methodSignature): Make my_sel_type const. - -Sat Jan 24 15:14:50 1998 Masatake Yamato - - * src/include/NSMethodSignature.h(-methodType): - Declare new category NSMethodSignature(GNU). - - * src/Invocation.m ([MethodInvocation -setSelector:]): - Add code to handle a case that sel_pointer is pointing NULL - SEL value. This is far from perfect. Type checking is needed. - - * src/NSMethodSignature.m - Add cpp directives to use `strrchr'. - (rtn_type_is_oneway): New function - for [NSMethodSignature -isOneway]. - ([NSMethodSignature +signatureWithObjCTypes:]): Fix length of - memory allocation for strings. - Do not copy all the encoding string T to returnTypes. - ([NSMethodSignature -isOneway]): Method implemented. - ([NSMethodSignature(GNU) -methodType]): New category and method. - This is not part of OpenStep spec. This method is used in - NSInvocation.m. - - * src/NSInvocation.m ([NSInvocation +initialize]): Add - MethodInvocation class instead of Invocation. - ([NSInvocation -methodSignature]): Method implemented. - ([NSInvocation +invocationWithMethodSignature:]): Invoke - [NSMethodSignature -methodType] instead of - [NSMethodSignature -methodReturnType]. - -Wed Jan 21 17:37:00 1998 Richard Frith-Macdonald - - * Tools/defaults.m: Fixed bug in handling 'write' operations reading - info from stdin - now puts all values into the database correctly. - - * src/TcpPort.m: ([+newForReceivingFromPortNumber:]) added code to - perform retries if the kernel freaks out when asked to select the - port to bind to - this has happened to me on linux! - -Wed Jan 21 11:45:00 1998 Richard Frith-Macdonald - - * src/GetDefEncoding.m: Modified GetDefEncoding() to us the NSString - method - ([+availableStringEncodings]) so we can make the - _availableEncodings array local to NSString.m - - * src/NSString.m: Moved _availableEncodings here from NSString.h - Added methods as specified in Rhapsody documentation - - ([+pathWithComponents:]), ([-isAbsolutePath]), ([-pathComponents]), - ([-stringsByAppendingPaths:]) - - * src/include/NSString.h: Moved _availableEncodings from here to - NSString.m and added declarations for new methods - - ([+pathWithComponents:]), ([-isAbsolutePath]), ([-pathComponents]), - ([-stringsByAppendingPaths:]) - -Wed Jan 21 09:41:46 1998 Adam Fedor - - * src/Makefile.postamble: Change $(LEX) to $(FLEX) and $(YACC) to - $(BISON). Add $(GNUSTEP_OBJC_DIR) to targets with ${OEXT}. - -Tue Jan 20 19:05:00 1998 Richard Frith-Macdonald - - * Tools/GNUmakefile: Added defaults.m - - * Tools/defaults.m: New file defaults.m - command line tool like the - OPENSTEP defaults command. Renders dread, dwrite and dremove obsolete. - - * Tools/dread.m: Added -u flag and made numerous bug fixes. - - * Tools/dremove.m: Added -u flag and made numerous bug fixes. - - * Tools/dwrite.m: Added -u flag and made numerous bug fixes. - - * checks/GNUmakefile (TEST_TOOL_NAME): Add nstask. - * checks/nsdate.m: Added some year-2000 tests. - * checks/nstask.m: New file. - - * src/Dictionary.m: Removed ([-descriptionWithIndent:]) and the - ([-description]) methods - no longer needed for property lists. - - * src/GNUmakefile: Added NSTask - - * src/GetDefEncoding.m: Fixed so that the encoding that is read from - the environment is accepted. - - * src/Heap.m: Added implementation of ([-minObject]) to take - advantage of the known ordering of a heap - fixes performance - problem with large numbers of timers in NSRunLoop. - - * src/NSArray.m: Implemented many new methods for OPENSTEP - - ([+arrayWithArray:]), ([+arrayWithContentsOfFile:]), - ([+arrayWithObjects:count:]), ([-getObjects:]), - ([-getObjects:range:]), ([-indexOfObjectIdenticalto:inRange:]), - ([-indexOfObject:inRange:]), ([-makeObjectsPerformSelector:]), - ([-makeObjectsPerformSelector:withObject:]), ([-sortedArrayHint]), - ([-sortedArrayUsingFunction:context:hint:]), - ([-pathsMatchingExtensions:]), ([-descriptionWithLocale:]), - ([-descriptionWithLocale:indent:), - ([-replaceObjectsInRange:withObjectsFromArray:]), - ([-initWithContentsOfFile:]), ([-removeObject:inRange:]), - ([-removeObjectIdenticalTo:inRange:]), ([-removeObjectsInRange:]) - Modified ([-makeObjectsPerform:]) and - ([-makeObjectsPerform:wihtObject:]) to iterate through array in - reverse as specified in OPENSTEP docs. - Removed obsolete method - ([-descriptionWithIndent:]) - - * src/NSArray.m: Implemented new methods for OPENSTEP - - ([+dataWithData:]), ([-setData:]) - Modified ([-description]) to give tidier output. - - * src/NSCalendarDate.m: Changed initialisation and creation methods to - return type id as in the Rhapsody docs, also changed default format for - description to use numeric timezone values as per Rhapsody docs. - - * src/NSData.m: Implemented new methods for OPENSTEP - - ([+dataWithData:]), ([-setData:]) - Modified ([-description]) to give tidier output. - - * NSDate.m: Changed initialisation and creation methods to return type - id as in the Rhapsody docs. - - * src/NSDictionary.m: Implemented new methods for OPENSTEP - - ([-keysSortedByValueUsingSelector:]), - ([-objectsForKeys:notFoundMarker:]), ([-description]), - ([-descriptionInStringsFileFormat]), ([-descriptionWithLocale:]), - ([-descriptionWithLocale:indent:]), ([-setDictionary:]), - - * src/NSFileHandle.m: Added extensions for getting information - about sockets used in file handles. - - * src/NSString.m: Removed ([-quotedCString]) and added new method - ([-descriptionForPropertyList]) to do things more neatly. - Fixed ([-initWithContentsOfFile:]) to avoid crash when given a bad - file name. - - * src/NSTask.m: Added this OPENSTEP/Rhapsody class. - - * src/TcpPort.m: Added check for bad data arriving on descriptor - in ([-_tryToGetPacketFromReadableFD:]) - - * src/UnixFileHandle.m: Added stuff for getting information - about sockets used in file handles. - - * src/include/IndexedCollecting.h: Made 'IndexRange' a synonym for - NSRange. - - * src/include/NSArray.h: Changes to reflect the changes in methods - implemented in NSArray.m - - * src/include/NSData.h: Changes to reflect the changes in methods - implemented in NSData.m - - * src/include/NSDate.h: Changed return tpes of initialisation methods - to be (id) as in Rhapsody documentation. - - * src/include/NSDictionary.h: Changes to reflect the changes in methods - implemented in NSData.m - - * src/include/NSFileHandle.h: Changes to reflect the changes in methods - implemented in NSFileHandle.m - - * src/include/NSString.h: Changes to reflect the changes in methods - implemented in NSString.m - - * src/NSTask.h: Added this OPENSTEP/Rhapsody class. - - * src/include/UnixFileHandle.h: Changes to reflect the changes in - methods implemented in UnixFileHandle.m - - * src/proplist.y: Make parsing less strict - permit dictionaries - with or without a semicolon after the last key-value pair. - - * src/stringsfile.y: Fixed bug in parser - it is legitimate to have - a key-value pair without a value - in which case the '=' is omitted. - -Fri Jan 9 10:04:09 1998 Adam Fedor - - * Version: Release 0.4.0. - -Thu Jan 8 09:42:39 1998 Adam Fedor - - * doc/announce.tmpl.texi: Fixup variable definitions. - * doc/news.tmpl.texi: Likewise. - * doc/todo.tmpl.texi: Update. - -Sun Jan 4 13:26:03 1997 Stevo Crvenkovski - - * doc/news.tmpl.texi: Replace my old e-mail. - - * src/GNUmakefile : add GetDefEncoding.m and GetDefEncoding.h. - * src/GetDefEncoding.m : new file. - - * src/NSGCString.m ([NSGCString - -initWithCStringNoCopy:length:freeWhenDone:]): Move - [super init] to the begining of code. - * src/NSGCString.m ([NSGMutableCString initWithCapacity:]): - Likewise. - * src/NSGCString.m ([NSGMutableCString - - initWithCStringNoCopy:length:freeWhenDone:]): Likewise. - * src/NSGString.m ([NSGString - - initWithCharactersNoCopy:length:freeWhenDone:]): Likewise. - * src/NSGString.m ([NSGMutableString initWithCapacity:]): - Likewise. - - * src/NSGSequence.m ([NSGSequence decompose]): Check for lenght>1: - - * src/NSString.m ([NSGString initialize]): Set - _DefaultStringEncoding variable using GetDefEncoding(). - * src/NSString.m initWithData:encoding:]) : Number of bug fixes. - * src/NSString.m ([NSString initWithContentsOfFile:]) : Method - rewriten. - * src/NSString.m ([NSString hash]) : Method rewriten. - * src/NSString.m ([NSString lineRangeForRange:]) : New OPENSTEP - method implemented. - * src/NSString.m ([NSString - getLineStart:end:contentsEnd:forRange:]) : New OPENSTEP method - implemented. - * src/NSString.m ([NSString capitalizedString]) : Take care of - white space characters properly. - * src/NSString.m ([NSString defaultCStringEncoding]) : Changed to - read new _DefaultStringEncoding variable. - * src/NSString.m ([NSString availableStringEncodings]) : New - OPENSTEP method implemented. - * src/NSString.m ([NSString localizedNameOfStringEncoding]) : New - OPENSTEP method implemented. - * src/NSString.m ([NSString - dataUsingEncoding:allowLossyConversion:}) : Number of bug fixes. - * src/NSString.m ([NSString writeToFile:atomically:]) : Attempt to - write in default c string encoding, if failed write in Unicode. - - * src/include/GetDefEncoding.h : New file. - * src/include/NSString.h typedef enum _NSStringEncoding - Changed to OPENSTEP spec. - * src/include/NSString.h declare new OPENSTEP methods. - -Sat Jan 3 14:05:32 1998 Scott Christley - - * confdefs.h: Delete transient file. - - * src/include/Foundation.h: New file. - * src/include/NSEnumerator.h: New file. - * src/GNUmakefile: Install new header files. - * src/include/NSUtilities.h: Move NSEnumerator interface - to NSEnumerator.h file. - - * src/NSObject.m (-copyWithZone:): Eliminate semicolon. - - * Fix memory allocation function usage. (As reported by - Matthias Klose ). - * src/Connection.m (-_service_forwardForProxy:): Use - function instead of function pointer. - * src/Decoder.m (-decodeClass, -decodeSelectorWithName:): Likewise. - * src/Invocation.m (-initWithReturnType:): Likewise. - (-_initArgframeFrom:withType:retainArgs:): Likewise. - (-_deallocArgFrame): Likewise. - * src/NSAutoreleasePool.m (-reallyDealloc): Likewise. - * src/NSConnection.m (-_service_forwardForProxy:): Likewise. - * src/TextCStream.m (-decodeValueOfCType:at:withName:): Likewise. - * src/include/objc-gnu2next.h (list_cons): Likewise. - (list_remove_head, list_free): Likewise. - * src/include/preface.h.in (OBJC_FREE): Likewise. - -Fri Jan 2 13:04:53 1998 Adam Fedor - - * doc/Makefile.postamble: Generate html,texi from tmpl.texi files. - * doc/announce.tmpl.texi: Renamed from announce.texi - * doc/faq.tmpl.texi: Likewise. - * doc/gnustep-base.tmpl.texi: Likewise. - * doc/gnustep-howto.tmpl.texi: Likewise. - * doc/gnustep-zones.tmpl.texi: Likewise. - * doc/coding-standards.tmpl.texi: Likewise. - * doc/install.tmpl.texi: Likewise. - * doc/manual.tmpl.texi: Likewise. - * doc/news.tmpl.texi: Likewise. - * doc/readme.tmpl.texi: Likewise. - * doc/todo.tmpl.texi: Likewise. - * NSZone.texi: Removed. - - * STATUS: removed. - * MACHINES: removed. - * doc/status.tmpl.texi: New file. - -Wed Dec 31 13:58:51 1997 Adam Fedor - - * STATUS: Updated status on a few classes. - - * doc/GNUmakefile (TOP_DOC_FILES): Add GNUstep-HOWTO. - * doc/gnustep-howto.texi: Update documentation. - * doc/gnustep-faq.texi: Likewise. - * doc/install.texi: Likewise. - * doc/readme.texi: Likewise. - -Mon Dec 29 09:16:34 1997 Adam Fedor - - * src/Random.m ([Random -randomFloatBetween:and:]): Add lowBound - (Fix suggested by Masatake Yamato ). - -Fri Dec 26 10:25:00 1997 Richard Frith-Macdonald - - * src/NSCalendarDate.m: - ([-dateByAddingYears:months:days:hours:minutes:seconds:]) Fixed - bug in wrapping months when adding date to december. - - * src/NSUserDefaults.m: ([-__createArgumentDictionary]) Fixed to - use command line args beginning with a dash as defaults keys. - Retained old behaviour for -GS and --GS prefixes for backward - compatibility. - -Fri Dec 19 13:09:28 1997 Adam Fedor - - * src/NSGeometry.m (NSPointFromString, NSSizeFromString, - NSRectFromString): New functions. - * src/include/NSGeometry.h: New function defs. - * NSCTemplateValue.m (-description): Use them. - -Tue Dec 16 22:35:00 1997 Richard Frith-Macdonald - - * src/Decoder.m: Modified to use a single, class-wide dummy object - as a placeholder in cross-reference tables. This gives a slight - speed and memory usage improvement. - - * src/MemoryStream.m: Avoid using autorelease where possible in order - to improve efficiency. - - * src/NSConnection.m: ([+rootProxyAtPort:]) modified to refrain from - creating a new connection when we already have one for the given - output port. - - * src/Random.m: ([-randomDie:]) Fixed to confirm to description in - comments. - - * src/TcpPort.m: Changed size field in packets to be 4 bytes long - rather than 2. This allows messages to be more than 64K bytes long - and is essential for things like pasteboard operations. - -Thu Dec 18 16:17:22 1997 Yoo C. Chung - - * src/NSProcessInfo.m (_gnu_process_noobjc_args): Use malloc(). - (_gnu_noobjc_free_vars): Use free(). - -Thu Dec 11 13:58:39 1997 Adam Fedor - - * configure.in: Remove unneeded tests. - * GNUmakefile (SUBPROJECTS): Remove checks and examples. - -Tue Dec 9 17:47:21 1997 Yoo C. Chung - - * src/include/behavior.h: Include . - * src/NSProcessInfo.m: Include . - * src/NSPipe.m: Include . - * src/NSPage.m: Include . - * src/NSLog.m: Include . - * src/NSHost.m: Include . - * src/NSDistributedLock.m: Include . - * src/NSDictionary.m: Include . - - * src/NSBundle.m ([NSBundle - +_bundleResourcePathsWithRootPath:subPath:]): Removed unused - variables. - - * src/NSArray.m: Include - ([NSArrayNonCore -descriptionWithIndent:]): Changed argument to - unsigned. - - * src/UnixFileHandle.m: Include and . - * src/UdpPort.m: Include . - * src/StdioStream.m: Include . - * src/Coder.m: Include . - - * src/NSUser.m (NSHomeDirectoryForUser): Use objc_malloc(). - - * src/NSData.m ([NSDataMalloc -initWithCoder:]): Check malloc. - ([NSMutableDataMalloc -initWithCoder:]): Likewise. - - * src/List.m: Removed unused macros. - -Sun Dec 7 23:22:07 1997 Stevo Crvenkovski - - * src/NSGCString.m ([NSGMutableCString - -initWithCharactersNoCopy:length:freeWhenDone:]): Changed to - invoke instance of NSGMutableString. - * src/NSGString.m ([NSGMutableString - -initWithCStringNoCopy:length:freeWhenDone:]): Changed to invoke - instance of NSGMutableCString. - - * src/NSGString.m ([NSGMutableString - -initWithCharactersNoCopy:length:freeWhenDone:]): Method - implemented. Based on code by Richard Frith-Macdonald - - - * src/NSGCString.m ([NSGMutableCString - -initWithCStringNoCopy:length:freeWhenDone:]): Changed to fix - memory leak in this method. Code by Richard Frith-Macdonald - - - * src/NSGCString.m ([NSGCString -dealoc]): Changed to avoid - compiler warning. - * src/NSGCString.m ([NSGCString -initWithCStringNoCopy: length: - freeWhenDone:]): Changed to conform with class cluster definition. - * src/NSGString.m ([NSGString -initWithCharactersNoCopy: length: - freeWhenDone:]): Idem. - * src/NSGCString.m ([NSGMutableCString -initWithCapacity]): Idem. - * src/NSString.m ([NSString -init]): Idem. - * src/NSGCString.m ([NSGCString -init]): Method implemented to - conform with class cluster definition. - * src/NSGCString.m ([NSGMutableCString -init]): Idem. - * src/NSGString.m ([NSGString -init]): Idem. - * src/NSGString.m ([NSGMutableString -init]): Idem. - - * src/NSString.m ([NSString -replaceCharactersInRange: - withString:]): Change to be subclass responsibillty. This should - be pimitive method. - - * src/NSGString.m ([NSGString -replaceCharactersInRange: - withString:]): Move implementation from NSString here. - * src/NSGCString.m ([NSGCString -replaceCharactersInRange: - withString:]): Idem. - - * src/NSString.m ([NSString +stringWithString]): New OPENSTEP - method implemented. - * src/NSString.m ([NSString -substringFromRange]): Method - implemented - * src/NSString.m ([NSString -substringWithRange]): New OPENSTEP - method implemented. - * src/NSString.m ([NSString -hash]): Remove C String - implementation as Unicode implementation now works. - * src/NSString.m ([NSString -getFileSystemRepresentation]) Correct - name of method. - * src/NSString.m ([NSString -_normalizedString]):Bug fixed. - * src/NSString.m ([NSString -mutableCopy]): Implemented to avoid - compiler warning. Why is this warning anyway? Method should be - inherited from NSObject. - * src/NSString.m ([NSString -deleteCharactersInRange:]): Method - implemented. - * src/NSString.m ([NSString -insertString: atIndex:]): Method - implemented. - * src/NSString.m ([NSString -setString:]): Method implemented. - * src/NSString.h ([NSString +stringWithString:]): Method declared. - * src/NSString.h ([NSString -substringWithRange:]): Method - declared. - -Fri Nov 28 12:52:06 1997 Scott Christley - - * Tools/GNUmakefile (OBJC_PROGRAM_NAME): Reverse prior change. - * Tools/Makefile.postamble (after-install): Install gdomap - from the proper directory. - * checks/nsattributesstring.m (NSFontAttributeName): New variable. - (NSForegroundColorAttributeName): New variable. - (NSBackgroundColorAttributeName): New variable. - - * src/GNUmakefile: Install headers in gnustep not gnustep/base. - * src/Makefile.preamble (ADDITIONAL_INSTALL_DIRS): Likewise. - - * src/NSTimeZone.m (LOCALDBKEY, ZONES_DIR): Make NSStrings. - (+getTimeZoneFile:): ZONES_DIR is NSString. - - * src/o_map.m (INLINE): Use macro so its easy to un-inline - functions if debugging. - -Wed Nov 26 16:08:20 1997 Adam Fedor - - * Tools/GNUmakefile (OBJC-PROGRAM_NAME): Change from underscore. - * checks/GNUmakefile: include new test-tool.make. - * examples/GNUmakefile: Likewise. - * src/Makefile.postamble (FORCE): New target. - - * src/ostream.m (_ostream_new_stream_struct): Use "r+" for append - or read/write mode. - -Wed Nov 26 11:30:00 1997 Richard Frith-Macdonald - - * Tools/dwrite.m: Fix problem with uninitialised variable. - - * src/NSConnection.m: Added [+connectionByOutPort:] and - [+connectionByInPort:OutPort:] methods to lookup connections for - use by other barts of the DO system. - Added [-_service_retain:] and [-retainTraget:] methods to handle - special case of retaining of proxies. - - * src/NSDistantObject.m: ([+newWithCoder:]) modified to fix two - problems to do with proxies passed in a triangle - - 1. if passed a proxy to an object in a third server, use any - existing connection to that third server if possible rather - than creating a new connection. - 2. if passed a proxy to an object in a third server, tell the - third server to retain it's local object for us. - - * src/NSUserDefaults.m: various modifications to fix for getting - the defaults for a user other than the logged in user - eg when a - server process runs setuid to a particular user ID and wants to - read the defaults for that user rather than the user who actually - launched it. Also - added code to break the lock on the defaults - database if it is more than five minutes old. - - * src/include/DistributedObjects.h: modifications for retaining - objects. - - * src/include/NSPortCoder.h: removed unneccessary include. - - * src/include/NSUserDefaults.h: minor changes for coping with - tasks runnning setuid to a user other than the person who launched - them. - -Fri Nov 21 13:14:31 1997 Adam Fedor - - * src/NSAttributedString.m (-initWIthString:attributes:): Make - designated initializer. - * src/NSGAttributedString.m: (_initWithString): Save value of - textChars. - * src/include/NSAttributedString.h: Update comments, Remove - attribute strings. - Fixes submitted by . - -Tue Nov 18 14:13:13 1997 Adam Fedor - - * src/include/NSNotification.h: Correct placeholder size (bug - submitted by Ville-Pertti Keinonen . - -Wed Nov 12 10:10:33 1997 Adam Fedor - - * src/NSString.m (-initWithFormat:args:): Print a "null string" - when string in format is nil. - * src/objc-load.c: Remove ifdef HAVE_CONFIG_H. - - * doc/gnustep-howto.texi: Update for new gdb patch file. - -Wed Nov 12 12:30:00 1997 Richard Frith-Macdonald - - * src/Collection.m: ([Enumerator -dealloc]) added call dealloction - method in super class to fix memory leak. - - * src/KeyedCollection.m: Removed initialisation and deallocation - methods for KeyEnumerator as these are done in its super class. - - * src/NSCharacterSet.m: ([-invertedSet:]) added autorelease for data - object (created by mutableCopy) in order to fix memory leak. - - * src/NSData.m: Replaced line accidentally deleted in section only - compiled in for systems without shared memory. - -Thu Nov 6 19:00:00 1997 Richard Frith-Macdonald - - * Tools/Makefile.postamble: Modified to install gdomap in cpu/os - specific location. - - * src/Dictionary.m: ([-descriptionWithIndent:]) Modified to encode - empty strings as "" so that ascii property lists work when a - dictionary entry is empty. - - * src/NSArray.m: ([-descriptionWithIndent:]) Modified to encode empty - strings as "" so that ascii property lists work when a string in the - array is empty. - - * src/TcpPort.m: Modified in various places so that we look in the - correct location for gdomap. - -Thu Nov 6 10:14:39 1997 Adam Fedor - - * src/GNUmakefile (DEFS): Remove PLATFORM_OS. - * src/NSBundle.m: Change platform to gnustep_target_os. - - * src/ostream.m (ostream_getc, ostream_read, ostream_vscanf): - Return EOF if stream_obj returned 0. - - * doc/gnustep-howto.texi: Use today's date. - -Wed Nov 5 16:10:32 1997 Scott Christley - - * src/Invocation.m (-setArgument:atIndex:): Add OpenStep method. - * src/NSGSet.m (-member:): Delete method. - * src/Set.m (-member:): New method. - * src/NSMethodSignature.m (-methodReturnType): Return value. - - * configure.in: Remove check for threads library. - - * checks/heap.m: Don't prototype random. - - * Remove dependency upon config.h by headers files and include - directly in source files because the config.h file is system - dependent and should not be installed. - * src/Archiver.m: Include config.h. - * src/Array.m: Likewise. - * src/Bag.m: Likewise. - * src/BinaryCStream.m: Likewise. - * src/BinaryTree.m: Likewise. - * src/BinaryTreeNode.m: Likewise. - * src/CStream.m: Likewise. - * src/CircularArray.m: Likewise. - * src/Coder.m: Likewise. - * src/Collection.m: Likewise. - * src/ConnectedCoder.m: Likewise. - * src/Connection.m: Likewise. - * src/Decoder.m: Likewise. - * src/DelegatePool.m: Likewise. - * src/Dictionary.m: Likewise. - * src/Encoder.m: Likewise. - * src/GapArray.m: Likewise. - * src/HashTable.m: Likewise. - * src/Heap.m: Likewise. - * src/IndexedCollection.m: Likewise. - * src/Invocation.m: Likewise. - * src/KeyedCollection.m: Likewise. - * src/LinkedList.m: Likewise. - * src/LinkedListNode.m: Likewise. - * src/List.m: Likewise. - * src/Lock.m: Likewise. - * src/MachPort.m: Likewise. - * src/Magnitude.m: Likewise. - * src/MallocAddress.m: Likewise. - * src/MappedCollector.m: Likewise. - * src/MemoryStream.m: Likewise. - * src/NSAllocateObject.m: Likewise. - * src/NSArchiver.m: Likewise. - * src/NSArray.m: Likewise. - * src/NSAssertionHandler.m: Likewise. - * src/NSAttributedString.m: Likewise. - * src/NSAutoreleasePool.m: Likewise. - * src/NSBitmapCharSet.m: Likewise. - * src/NSBundle.m: Likewise. - * src/NSCTemplateValue.m: Likewise. - * src/NSCalendarDate.m: Likewise. - * src/NSCallBacks.m: Likewise. - * src/NSCharacterSet.m: Likewise. - * src/NSCoder.m: Likewise. - * src/NSConcreteNumber.m: Likewise. - * src/NSConcreteValue.m: Likewise. - * src/NSConnection.m: Likewise. - * src/NSCopyObject.m: Likewise. - * src/NSCountedSet.m: Likewise. - * src/NSData.m: Likewise. - * src/NSDate.m: Likewise. - * src/NSDeallocateObject.m: Likewise. - * src/NSDebug.m: Likewise. - * src/NSDictionary.m: Likewise. - * src/NSDistantObject.m: Likewise. - * src/NSDistributedLock.m: Likewise. - * src/NSEnumerator.m: Likewise. - * src/NSException.m: Likewise. - * src/NSFileHandle.m: Likewise. - * src/NSFileManager.m: Likewise. - * src/NSGArchiver.m: Likewise. - * src/NSGArray.m: Likewise. - * src/NSGAttributedString.m: Likewise. - * src/NSGCString.m: Likewise. - * src/NSGCountedSet.m: Likewise. - * src/NSGDictionary.m: Likewise. - * src/NSGSequence.m: Likewise. - * src/NSGSet.m: Likewise. - * src/NSGString.m: Likewise. - * src/NSGeometry.m: Likewise. - * src/NSHashTable.m: Likewise. - * src/NSHost.m: Likewise. - * src/NSInvocation.m: Likewise. - * src/NSLock.m: Likewise. - * src/NSLog.m: Likewise. - * src/NSMapTable.m: Likewise. - * src/NSMethodSignature.m: Likewise. - * src/NSNotification.m: Likewise. - * src/NSNotificationCenter.m: Likewise. - * src/NSNotificationQueue.m: Likewise. - * src/NSNumber.m: Likewise. - * src/NSObjCRuntime.m: Likewise. - * src/NSObject.m: Likewise. - * src/NSPage.m: Likewise. - * src/NSPipe.m: Likewise. - * src/NSPort.m: Likewise. - * src/NSPortCoder.m: Likewise. - * src/NSProcessInfo.m: Likewise. - * src/NSProxy.m: Likewise. - * src/NSRange.m: Likewise. - * src/NSRunLoop.m: Likewise. - * src/NSScanner.m: Likewise. - * src/NSSerializer.m: Likewise. - * src/NSSet.m: Likewise. - * src/NSString.m: Likewise. - * src/NSThread.m: Likewise. - * src/NSTimeZone.m: Likewise. - * src/NSTimer.m: Likewise. - * src/NSUser.m: Likewise. - * src/NSUserDefaults.m: Likewise. - * src/NSValue.m: Likewise. - * src/NSZone.m: Likewise. - * src/NXStringTable.m: Likewise. - * src/Notification.m: Likewise. - * src/NotificationDispatcher.m: Likewise. - * src/OrderedCollection.m: Likewise. - * src/Port.m: Likewise. - * src/Proxy.m: Likewise. - * src/Queue.m: Likewise. - * src/RBTree.m: Likewise. - * src/RBTreeNode.m: Likewise. - * src/RNGAdditiveCongruential.m: Likewise. - * src/RNGBerkeley.m: Likewise. - * src/Random.m: Likewise. - * src/RawCStream.m: Likewise. - * src/Set.m: Likewise. - * src/SplayTree.m: Likewise. - * src/Stack.m: Likewise. - * src/StdioStream.m: Likewise. - * src/Storage.m: Likewise. - * src/Stream.m: Likewise. - * src/TcpPort.m: Likewise. - * src/TextCStream.m: Likewise. - * src/Time.m: Likewise. - * src/UdpPort.m: Likewise. - * src/Unicode.m: Likewise. - * src/UnixFileHandle.m: Likewise. - * src/behavior.m: Likewise. - * src/externs.m: Likewise. - * src/find_exec.c: Likewise. - * src/md5.c: Likewise. - * src/mframe.m: Likewise. - * src/o_array.m: Likewise. - * src/o_cbs.m: Likewise. - * src/o_hash.m: Likewise. - * src/o_list.m: Likewise. - * src/o_map.m: Likewise. - * src/o_x_bas.m.in: Likewise. - * src/o_x_cbs.m.in: Likewise. - * src/objc-gnu2next.m: Likewise. - * src/ostream.m: Likewise. - * src/preface.m: Likewise. - * src/win32-entry.m: Likewise. - * src/include/preface.h.in: Do not include config.h - - * src/GNUmakefile: Don't install config.h; add target so that - config.h gets moved to target cpu/os dependent directory. - * src/Makefile.postamble: Move config.h to target directory. - * src/Makefile.preamble: Add target directory to include dirs. - - * src/NSCalendarDate.m (-initWithString:calendarFormat:locale:): - Parse the time zone abbreviation and am/pm indicator. - - * src/md5.c: Correct license comment. - -Wed Nov 5 13:36:45 1997 Adam Fedor - - * doc/GNUmakefile (TEXT_FILES): Add GNUstep-HOWTO - * doc/Makefile.postamble (GNUstep-HOWTO): New target. - * doc/gnustep-howto.texi: New file. - -Sun Nov 2 15:47:10 1997 Yoo C. Chung - - * src/NSTimeZone.m: More effecient implementation of [NSTimeZone - -abbreviationDictionary] object enumerator. - More robust error logging. Description method changes. - -Sat Nov 1 06:45:00 1997 Richard Frith-Macdonald - - * src/NSDistributedLock: New OPENSTEP class implementation. - * src/GNUmakefile: Add new class to list. - - * src/NSFileManager: implemented method ([-removeFileAtPath:handler:]) - - * src/NSString.m: Added two new (OPENSTEP) methods - - ([-fileSystemRepresentation]) and - ([-fileSystemRepresentation:maxLength:]) - - * src/NSUserDefaults.m: ([-synchronize]) modified to do locking - using NSDistributedLock - - * src/Foundation/NSDistributedLock.h: New OPENSTEP class definition. - - * src/Foundation/NSString.h: Added two new (OPENSTEP) methods. - -Fri Oct 31 17:00:29 1997 Adam Fedor - - * GNUmakefile (DIST_FILES): Update files. - * src/GNUmakefile: Likewise. - * checks/GNUmakefile: Likewise. - * examples/GNUmakefile: Likewise. - * doc/GNUmakefile: Likewise. - * admin/GNUmakefile: Likewise. - * NSCharacterSets/GNUmakefile: Likewise. - * NSTimeZones/GNUmakefile: Likewise. - * Tools/GNUmakefile: Likewise. - * Tools/Makefile.postamble (copy-dist): New target. - -Fri Oct 31 15:16:46 1997 Adam Fedor - - * NSBundle.README: Removed obsolete file. - * README.threads: Likewise. - * RELEASE-NOTES: Likewise. - * GNUmakefile: Remove obsolete files from DIST. Make Tools the - second build target. - - * Tools/GNUmakefile: Include tool.make and make dread, etc as - tools. - * Tools/Makefile.preamble: Add uninstalled includes and libraries - from ../src. - - * Tools/dremove.m: Add errno.h. - - * doc/GNUmakefile: Remove unneeded top-level text files. - * doc/announce.texi: Update. - * doc/install.texi: Likewise. - * doc/news.texi: Likewise. - * doc/readme.texi: Likewise. - * doc/todo.texi: Likewise. - -Fri Oct 31 10:26:16 1997 Adam Fedor - - * GNUmakefile: Renamed from Makefile. - * src/GNUmakefile: Likewise. - * checks/GNUmakefile: Likewise. - * examples/GNUmakefile: Likewise. - * doc/GNUmakefile: Likewise. - * admin/GNUmakefile: Likewise. - * NSCharacterSets/GNUmakefile: Likewise. - * NSTimeZones/GNUmakefile: Likewise. - * Makefile: Dummy make, tells user to use GNU make. - - * doc/GNUMakefile: Make more text files. - * doc/Makefile.postamble: Clean up to make text files. - - * NSBundle.README: Update. - * examples/Makefile.example.in: Remove obsolete file. - * examples/configure.example.in: Likewise. - -Thu Oct 30 15:20:00 1997 Richard Frith-Macdonald - - * Tools/GNUmakefile: New format make file with the addition of three - new tools - dread, dwrite, dremove - - * Tools/dread.m: New command line tool to read user defaults database. - * Tools/dremove.m: New command line tool to remove defaults from - database. - * Tools/dwrite.m: New command line tool to modify user defaults. - - * src/Dictionary.m: ([-descriptionWithIndent:]) modified to produce - better property-list type description with escaped special chars. - - * src/NSArray.m: ([-description]) modified to produce better - property-list type description with escaped special chars. - - * src/NSData.m: ([-writeToFile:atomically:]) changed code for handling - temporary file to avoid failure due to cross-device links. - - * src/NSDictionary.m: ([-writeToFile:atomically:]) implemented this - method using NSString. - - * src/NSString.m: ([-stringByAppendingString:]) fixed memory leak. - Added new method ([-quotedCString]) for use in writing property lists. - Modified ([-appendFormat:]) so that it doesn't leave temporary strings - to be autoreleased - small efficiency gain. - - * src/NSUserDefaults.m: Various minor fixes to get saving to the - defaults database to work. - - * src/Foundation/NSString.h: Added (GNUstep specific) method - - [-quotedCString]. - - * src/Foundation/NSUserDefaults.h: Added (OPENSTEP specific) method - - [-setSearchList:]. - -Thu Oct 30 13:38:51 1997 Scott Christley - - * Makefile (GNUSTEP_INSTALLATION_DIR): Make default be system. - * NSCharacterSets/Makefile: Likewise. - * NSTimeZones/Makefile: Likewise. - * Tools/Makefile: Likewise. Use objc.make instead of tool.make - as the file does not require the foundation library. - * admin/Makefile: Likewise. - * checks/Makefile: Likewise. Use test.make so that - the programs do not get installed. - * doc/Makefile: Likewise. - * examples/Makefile: Likewise. Use test.make so that the - programs do not get installed. - * src/Makefile: Likewise. Alter names to correspond with - the new recursive library.make. - * src/Makefile.postamble: Uninstall header files. - - * src/NSBundle.m (+mainBundle): Strip off library combo, target - os and target cpu is they are part of the directory list to - the executable so that the bundle path is the top level dir. - - * src/externs.m (NSNonRetainedObjectHashCallbacks): Correct name. - -Thu Oct 30 14:32:28 1997 Adam Fedor - - * Makefile (GNUSTEP_INSTALLATION_DIR): New variable. - * checks/Makefile (TOOL_NAME): Remove duplicate nsattributedstring. - * src/Makefile: Add libgnustep-base_ prefix to appropriate - variables. - - * src/NSProxy.m: Add limits.h for Solaris. - -Tue Oct 28 10:05:00 1997 Richard Frith-Macdonald - - * src/NSData.m: Added [-replacementObjectForPortCoder:] method to - ensure that NSData objects are always sent bycopy. - - * src/mframe.m: Modified mframe_do_call() and mframe_build_return() - to encode/decode a dummy integer value where a method returns void - but is NOT declared as being oneway. - -Mon Oct 27 16:15:00 1997 Richard Frith-Macdonald - - * Makefile: Added Tools subproject - - * NSTimeZones/Makefile.postamble: Added distclean code to remove - time-zone files leaving only the tar image. - - * Tools/Makefile: New make file added. - - * Tools/Makefile.postamble: New file. - - * Tools/Makefile.preamble: New file. - - * Tools/gdomap.c: Moved from the src directory with some minor - bug fixes and easing of restrictions on deregistering a name. - - * Tools/gdomap.h: Moved from the src directory with some minor - changes and improvements to comments. - - * checks/Makefile.postamble: Added some stuff for distclean to - remove some fo the temporary data files. - - * checks/Makefile.preamble: Modified to compile with -g flag - even if being linked with non-debug libraries. - - * checks/nsdate.m: Added checks for new NSCalendarDate features. - - * src/Coder.m: ([-initForReadingWithData:]) modified use of the - [-retainCount] method for newly corrected version. - - * src/Makefile: Removed references to gdomap.[hc] - - * src/Makefile.postamble: distclean now removes some automatically - generated source files. - - * src/NSBundle.m: Removed own reference counting support in favour - of using the standard mechanism but intercepting [-release] to - change deallocation behaviour. - - * src/NSCalendarDate.m: Implemented [-dayOfWeek], added support for - week day names (and abbreviations) in descriptions. Implemented - some missing formatting directives in descriptions, Fixed the - [-initWithYears:months:days:hours:minutes:seconds:timeZone:] method - to use the supplied time zone correctly. - Implemented [-dateByAddingYears:months:days:hours:minutes:seconds]. - Implemented [-years:months:days:hours:minutes:seconds:sinceDate:]. - - * src/NSData.m: Fixed shared memory to only remove shared-memory IDs - from the system when the last object having mapped the memory is - deallocated. - - * src/NSObject.m: ([-retainCount]) corrected to return the number of - times the object has been retained. - ([-autorelease]) use [-retainCount] so that this works with classes - that have implemented their own retain./release/retainCount. - - * src/NSProxy.m: Fixed retain counting scheme so that [-retainCount] - returns the correct value. - - * src/NSRunLoop.m: ([-runMode:beforeDate:]) fixed possible problem - with passing a date obejct which might have been released unexpectedly. - - * src/NotificationDispatcher.m: Fixed retain counting scheme so that - [-retainCount] returns the correct value. - - * src/Proxy.m: Fixed retain counting scheme so that [-retainCount] - returns the correct value. - - * src/TcpPort.m: Modified to expect to find gdomap in the Tools - directory of the new GNUstep directory standard. - - * src/include/NSBundle.h: Removed unneeded retsain count variable. - - * src/include/NSData.h: Conform to NSCoding protocol. - - * src/include/NSDate.h: Added two OPENSTEP methods. - -Fri Oct 24 14:36:23 1997 Adam Fedor - - * Removed unused files. - * checks/beh.m, checks/float.c: Removed - * examples/nx-client.m, examples/nx-server.m, - examples/port-client.m, examples/port-server.m: Likewise. - * src/AutoreleasePool.m, src/AutoreleaseStack.m, - src/BinaryTreeEltNode.m, src/ConstantString.m, - src/EltNodeCollector.m, src/LinkedListEltNode.m, - src/Makefile.sed.nt, src/MethodSignature.m, src/NXConnection.m, - src/NXProtocolChecker.m, src/NXProxy.m, src/NotificationQueue.m, - src/ObjectRetaining.m, src/ProtocolEnforcer.m, src/RBTreeEltNode.m, - src/ReleasePool.m, src/RetainingNotifier.m, src/Ring.m, - src/RunLoop.m, src/SocketPort.m, src/SunRpcPort.m, src/Thread.m, - src/Tree.m, src/TreeNode.m, src/argframe.m, src/data.m, - src/eltfuncs.m, src/gnu4next.m, src/gnu4nextrt.m, - src/o_vprintf.c, src/vfscanf.c: Likewise. - * src/include/AutoreleasePool.h, src/include/AutoreleaseStack.h, - src/include/BinaryTreeEltNode.h, src/include/LinkedListEltNode.h, - src/include/RBTreeEltNode.h, src/include/SmallInt.h, - src/include/SocketPort.h, src/include/abort.h, - src/include/allocs.h, src/include/atoz.h, src/include/bitops.h, - src/include/data.h, src/include/magic.h, src/include/minmax.h, - src/include/number.h: Likewise. - -Fri Oct 24 20:16:14 1997 Yoo C. Chung - - * src/StdioStream.m ([StdioStream -dealloc]): Check fp before - closing. - -Wed Oct 22 19:54:07 1997 Yoo C. Chung - - * src/NSTimeZone.m ([NSTimeZone +initialize]): Fallback time zone - now only set to UTC. - (NSConcreteTimeZoneDetail): Changed method. - ([NSConcreteTimeZoneDetail -timeZoneDetailForDate:]): New method. - ([NSConcreteTimeZoneDetail -timeZoneName]): Likewise. - ([NSConcreteTimeZoneDetail -timeZoneDetailArray]): Likewise. - ([NSTimeZone +timeZoneWithName:]): Updated for changed methods in - NSTimeZoneDetail. - ([NSInternalTimeTransition -description]): Print class name. - ([NSConcreteTimeZone -description]): Likewise. - ([NSConcreteAbsoluteTimeZone -description]): Likewise. - ([NSConcreteTimeZoneDetail -description]): Likewise. - -Mon Oct 20 09:51:53 1997 Adam Fedor - - * Version: Update ftp sites. - * checks/Philosopher.h: Removed. - * checks/Philosopher.m: Likewise. - * checks/basic-old.m: Likewise. - * checks/nsarchiving.m: Likewise. - * src/Foundation/NSUser.h: Likewise. - * src/Foundation/x-basics.h.in: Likewise. - * src/Foundation/x-callbacks.h.in: Likewise. - * checks/Makefile (HDRS): Add oldserver.h. - * doc/Makefile: Add other texi files. - * NSCharacterSets/Makefile (DIST_FILES): Remove Makefile.preamble. - * NSTimeZones/Makefile (DIST_FILES): Likewise. - * NSCharacterSets/Makefile.postamble (copy-dist): Correct copy. - * NSTimeZones/Makefile.postamble (copy-dist): Correct dist files. - -Sat Oct 18 12:27:56 1997 Scott Christley - - * Get NSTimeZone to work in GNUstep directory structure. - * src/NSTimeZone.m (+getAbbreviationFile): New method. - (+getRegionsFiles, +getLocalTimeFile): New methods. - (+getTimeZoneFile:): New method. - (TIME_ZONE_DIR, ABBREV_DICT, REGIONS_FILE, LOCAL_TIME_FILE, ZONES_DIR): - Correct paths. - (+initialize): Use private method to get resource file name. - (+timeZoneWithName:, +abbreviationMap, +timeZoneArray): Likewise. - * checks/create-abbrevs.m: New file. - * checks/create-regions.m: New file. - * checks/nstimezone.m: New file. - * checks/Makefile: Add new checks. - - * src/NSBundle.m - (+pathForResource:ofType:inRootPath:inDirectory:withVersion:): - If no extension then look for file without extension before - calling _bundle_path_for_name() which does not handle the case - where the resource name contains a directory path within it. - - * src/NSBundle.m - (+pathForGNUstepResource:ofType:InDirectory:): New method. - * src/include/NSBundle.h - (+pathForGNUstepResource:ofType:InDirectory:): New method. - -Fri Oct 17 12:44:18 1997 Scott Christley - - * src/NotificationDispatcher.m (-init): Make the key callbacks - be NSObject for the notification name map table so that - isEqual: is used for comparison. - -Fri Oct 17 09:16:36 1997 Adam Fedor - - * checks/Makefile.postamble: Add English.lproj dir to copy-dist. - - * src/NSCalendarDate.m (-descriptionWithCalendarFormat:locale): - Use VSPRINTF_LENGTH macro to return string length. - * src/NSData.m ([NSMutableDataMalloc -setCapacity:): Use realloc - instead of objc_realloc. - * src/NSHost.m (-_initWithHostEntry:): Use memcpy instead of - memmove. - * src/UnixFileHandle.m (getAddr): Remove uneeded htonl. - Changes from Richard Frith-Macdonald . - - * src/NSTimeZone.m: Reformat with better spacing. - ([NSTimeZone +initialize]): Find local time zone. - Changes from Yoo C. Chung . - -Thu Oct 16 16:14:31 1997 Scott Christley - - * checks/Makefile: Add variables to create bundle example. - * checks/NXStringTable.example: Move to English.lproj subdir. - - * checks/nsarray.m: Turn off behaviour debugging. - - * checks/nsdictionary.m: Add isEqual check. - - * checks/values.m: Add isEqual check. - - * src/Collection.m (isEqual:): Don't require that the classes - be the same. - - * src/NSDictionary.m: Fix implementation by creating - NSDictionaryNonCore and NSMutableDictionaryNonCore classes; move - implemented methods to non-core classes. - * src/include/NSDictionary.h: Likewise. - * src/NSGDictionary.m: Add behaviour from non-core classes. - - * src/ObjCRuntime.m (NSClassFromString): Use objc_lookup_class - instead of objc_get_class so that the program will not abort - if the class is not found. - - * src/NSTimeZone.M (TIME_ZONE_DIR): Eliminate reference to - obsolete GNUSTEP_INSTALL_DIR macro. - - * src/NSZone.m: Use default zone if zone is NULL. - * src/include/NSZone.h: Likewise. - - * src/behavior.m (behavior_class_add_class): Add debug message. - - * src/Makefile: Define macros for the target directory and - library combo that the library is compiled for. - * src/NSBundle.m (gnustep_target_dir, library_combo): New variables. - (bundle_object_name): Use the target directory and library - combo when determine where the executable file is located. - (+_bundleResourcePathsWithRootPath:subPath:): Don't search - directory specified by GNUSTEP_LIBRARY_PATH environment variable. - - * src/NSCharacterSet.m (+_bitmapForSet:number:): Rewrite to search - the user, local, and system directories based upon environment - variable values. - - * src/NSData.m (getBytes:range:): Fix range check. - (subdataWithRange:, replaceBytesInRange:withBytes:): Likewise. - (resetBytesInRange:): Likewise. - -Wed Oct 1 14:44:17 1997 Adam Fedor - - * src/NSConnection.m ([-registerName:]): Remove - duplicate method. - * src/NSDistantObject.m ([-encodeWithCoder:]): Likewise. - * src/Proxy.m: ([NSObject -selectorTypeForProxy]): Likewise. - - * Makefile: Add new subproject. - * NSTimeZones: New directory. - * NSTimeZones/Makefile: New file. - * NSTimeZones/Makefile.postamble: Likewise. - * NSTimeZones/NSTimeZones.tar: Likewise. - -Tue Sep 30 08:57:44 1997 Adam Fedor - - * src/NSData.m: Remove obsolete includes. - * src/NSMutableData.m: Remove file. - * src/NSSerializer.m: Remove references to obsolete data classes. - -Sun Sep 28 21:15:00 1997 Richard Frith-Macdonald - - * checks/nsdata.m: Added a whole lot of trivial checks. - - * checks/oldserver.h: Added include file for oldserver.m, oldclient.m - - * src/Coder.m: ([-initForWritingWithMutableData:]) added code to - wrap the NSMutableData object inside a MemoryStream since - NSMutableData no longer conforms to the MemoryStreaming protocol. - ([-initForReadingWithData:]) added code to wrap the NSData object - inside a MemoryStream. - ([+unarchiveObjectWithData:]) added code to wrap the NSData object - inside a MemoryStream. - ([-classForPortCoder:]) changed to [-classForPortCoder] to conform - to OpenStep spec. - - * src/Makefile.in: Removed NSGData.[hm] and NSHData.[hm] - - * src/MemoryStream.m: Rewritten to use NSData and NSMutableData - objects to hold the memory. - - * src/NSAttributedString.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/NSData.m: Extensively rewritten to have the OPENSTEP class - cluster architecture. Should support the full OPENSTEP api and - have shared memory support and static buffer support as extensions. - - * src/NSDate.m: ([-classForPortCoder:]) changed to [-classForPortCoder] - to conform to OpenStep spec. - - * src/NSDistantObject.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/NSGArchiver.m: ([-archiverData]) modified to cope with changes - to NSData and NSMutableData. - - * src/NSGAttributedString.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/NSGCString.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/NSGString.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/NSPortCoder.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - ([-isByCopy]) changed to [-isBycopy] to conform to OpenStep. - - * src/NSString.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/Port.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/StdioStream.m: ([-initWithFilename:fmode:]) fixed excessive - releases of string. ([-initWithFileDescriptor:fmode:]) fixed - excessive releases of string. ([-close]) clear file pointer when - it is closed to prevent attempted operations on bad pointer. - - * src/TcpPort.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. Also multiple - changes to deal with the rewrite of MemoryStream. - - * src/UdpPort.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/UnixFileHandle.m: Numerous changes improving logging and - tidying stuff. failed initialisers should now all return nil - rather than raising exceptions. - - * src/include/MemoryStream.h: Changed this class to use NSData and - NSMutableData to hold its contents. Added methods to initialise - with a data object so we can wrap an NSData or NSMutableData inside - a MemoryStream to give it Streaming behaviour. - - * src/include/NSData.h: Added some extension methods for creating - data objects with static buffers or shared memory buffers. - - * src/include/NSDistantObject.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/include/NSObject.m: ([-classForPortCoder:]) changed to - [-classForPortCoder] to conform to OpenStep spec. - - * src/include/NSPortCoder.m: ([-classForPortCoder:]) changed to - [-classForPortCoder], and ([-isByCopy]) changed to [-isBycopy] to - conform to OpenStep spec. - -Fri Sep 26 20:43:12 1997 Adam Fedor - - * Fix Makefiles so snapshots and releases work again - * Makefile: Include missing DIST_FILES - * Makefile.postamble: Correct csnap projects. - * NSCharacterSets/Makefile: Include missing DIST_FILES. - * admin/Makefile: Likewise. - * admin/Makefile: Correct snap target. - * checks/Makefile: Include missing DIST_FILES. - * checks/Makefile.postamble: New file. - * examples/Makefile: Include missing DIST_FILES. - * examples/Makefile.postamble: New file. - * doc/Makefile.postamble: New file. - * src/Makefile: Include missing DIST_FILES. - * ssrc/Makefile.postamble: Fix AUTHORS depend, copy-dist. - - * STATUS: Update. - * README.foundation: Remove obsolete file. - -Sat Sep 23 10:18:41 2017 Scott Christley - - * Convert to GNUstep makefile package. - * Makefile: New file. - * Makefile.postamble: New file. - * config.mak.in: New file. - * Makefile.in: Delete. - * Makefile.sed.nt: Delete. - * Makeconf: Delete. - * configure.in (AC_OUTPUT): No longer create the makefiles. - * NSCharacterSets/Makefile: New file. - * NSCharacterSets/Makefile.postamble: New file. - * NSCharacterSets/Makefile.in: Delete. - * admin/Makefile: New file. - * admin/Makefile.postamble: New file. - * admin/Makefile.in: Delete - * checks/Makefile: New file. - * checks/Makefile.preamble: New file. - * checks/Makefile.in: Delete. - * checks/Makefile.sed.nt: Delete. - * examples/Makefile: New file. - * examples/Makefile.preamble: New file. - * examples/Makefile.in: Delete. - * src/Makefile: New file. - * src/Makefile.preamble: New file. - * src/Makefile.postamble: New file. - * src/Makefile.in: Delete - - * The installation of the header files was modified slightly - to correspond with the GNUstep makefile package. All OpenStep - headers go into Foundation while the gnustep-base specific - headers go into gnustep/base. - * checks/coder.m: Correct header directory. - * checks/cstream.m: Likewise. - * checks/oldserver.m: Likewise. - * checks/string.m: Likewise. - * src/include/Connection.h: Likewise. - * src/include/NSConnection.h: Likewise. - * src/include/NSPortCoder.h: Likewise. - * src/include/Notification.h: Likewise. - * src/include/NotificationDispatcher.h: Likewise. - -Mon Sep 22 17:14:32 1997 Adam Fedor - - * checks/NSData-test.m: Change main to return int. - * checks/coder.m: Check for nil names -- Solaris can't print NULL - strings. - * checks/nsattributedstring.m: Add test to main. - * checks/values.m: Remove exception handlers. - - * doc/coding-standards.texi: New file. - * doc/Makefile.in: Add new texi file, CODING-STANDARDS target.. - - * src/Collection.m ([ConstantCollection - -_collectionReleaseContents]): Release only if count > 0. - * src/Set.m ([Set dealoc]): Set contents_hash to 0 and call super. - * src/Set.m ([Set count]): If !contents_hash return 0; - - * src/Makefile.in: remove extra Collection.m. - - * src/NSArray.m ([NSArray -initWithObjects:rest:]): REALLOC before - overflow of array. - - * src/NSConcreteValue.m ([NSConcreteValue -initValue:withObjCType:]): - Change exceptions to NSLog and return nil. - -Fri Sep 22 09:50:52 2017 Scott Christley - - * src/NSArray (initWithObjects:rest:): Fix count. - -Tue Sep 16 15:50:39 1997 Adam Fedor - - * src/Dictionary.m ([Dictionary -descriptionWithIndent:]): Rewrite - to pretty-print description. - * src/NSDictionary.m ([NSDictionary -description]): Remove - redundant method implementation. - ([NSDictionary -descriptionWithIndent:]): Likewise. - * src/NSArray.m ([NSArray -descriptionWithIndent:]): Implement. - - * src/NSCTemplateValue ([NSCTemplateValue description]): Add - semicolon to last value. - * src/NSValue: ([NSValue valueFromString:]): New method. - * src/NSNumber: ([NSValue valueFromString:]): Likewise. - * src/include/NSValue.h: Define new method. - - * src/NSCharacterSet.m ([NSCharacterSet -_bitmapForSet:]): Fix - test path name. - - * src/NSString ([NSString initWithFormat:arguments:]): Take care - of formatted string case "%*s". - ([NSString -stringByAppendingPathComponent:]): Exception only if - string starts with '/'. - ([NSString -stringByAppendingPathExtension:]): Likewise. - -Mon Sep 15 21:27:00 1997 Richard Frith-Macdonald - - * src/NSHData.m: Fixed a couple of bugs occurring when allocation of - shared memory segments failed. Also added class methods to query - and set the size of the blocks in which shared memory is allocated. - - * src/include/NSHData.h: Added class methods for query and set of size - of shared memory allocation blocks. - -Sat Sep 13 10:05:57 1997 Scott Christley - - * The GNU tools for building a DLL on Windows only allow functions - and not data to be exported; therefore, all global variables were - moved into a separate file, externs.m, and added to the import - library for the DLL so that those variables would be accessible - outside of the DLL. - * configure.in (PIPE): Make the -pipe a configure option. - (DLLTOOL): Add support for building DLLs. - (disable-static): New configure option to disable the building - of the static library when building a shared library. - (pcthread, pthread, m): Add checks for pcthread and math libraries. - (sys/stat.h, sys/vfs.h, sys/statfs.h, statvfs): Add checks - for filesystem related headers and functions. - (getcwd): Remove duplicate check. - * src/win32-entry.c: Rename to win32-entry.m - * src/externs.m: New file. - * src/libgnustep-base.def: New file. - * src/Connection.m: Move all global variables to externs.m. - * src/NSArchive.m: Likewise. - * src/NSBundle.m: Likewise. - Comment out code that would not compile on WIN32. - * src/NSException.m: Likewise. - (dealloc): Release instance variables. - * src/NSFileManager.m: Likewise. - Add WIN32 specific code. - * src/NSHashTable.m: Likewise. - * src/NSMapTable.m: Likewise. - * src/NSThread.m: Likewise. - (-init): Set the thread data first. - * src/NSUserDefaults.m: Likewise. - * src/Stream.m: Likewise. - * src/TcpPort.m: Likewise. - * src/o_cbs_char_p.m: Likewise. - * src/o_cbs_id.m: Likewise. - * src/o_cbs_int.m: Likewise. - * src/o_cbs_int_p.m: Likewise. - * src/o_cbs_void_p.m: Likewise. - - * checks/Makefile.in: Do not link with math library. - * checks/NSData-test.m: Correct directory for include files. - * checks/diningPhilosophers.m (WIN32): Check different macro. - * checks/nsattributedstring.m (main): New function. - * checks/nsbundle.m: Do not include for MINGW32. - - * src/Makefile.in: Add support for building a DLL. Break - out the single install target into multiple targets. - - * src/NSCalendarDate.m (-descriptionWithCalendarFormat:locale:): - Add character string month names. - (short_month, long_month): New static arrays. - * src/NSDate.m (+timeIntervalSinceReferenceDate): Also test _WIN32. - - * src/NSCharacterSet.m (NSCharacterSet_PATH): Don't specify - full path, just bundle directory. - - * src/NSDictionary.m (-initWithContentsOfFile:): Make sure - the returned object is an NSDictionary. - - * src/NSObject.m (initialize): Create global lock. - (-performSelector:, -performSelector:WithObject:) - (-performSelector:withObject:withObject:): New methods. - * src/include/NSObject.h: Add prototype for global lock. - (-performSelector:, -performSelector:WithObject:) - (-performSelector:withObject:withObject:): New methods. - - * src/NSProcessInfo.m (_gnu_process_args): Check if NULL. - For MINGW32, have NSProcessInfo access the global variables directly. - - * src/NSString.m: Add support for different path components - that are supported on WIN32. - (rangeOfCharacterFromSet:options:mask:): Correct assert. - (-componentsSeparatedByString:): Correct calculation of search range. - - * src/NSUser.m: Check _WIN32 macro as well. - * src/Time.m: Likewise. - - * src/RunLoop.m (_AIX): Include header file. - UNIX is vastly different from WIN32 so separate the functionality - into different methods. Move all global variables to externs.m. - (-acceptWIN32InputForMode:beforeDate:): New method. - (-acceptUNIXInputForMode:beforeDate:): New method. - (-acceptInputForMode:beforeDate:): Call the appropriate method - depending upon whether a UNIX or WIN32 system. - - * src/StdioStream.m: Comment out code that would not compile on WIN32. - * src/include/StdioStream.h (-rewindStream): Add prototype. - - * src/find_exec.c: Handle the different path separator in the - PATH environment variable and the different path component - which is supported on WIN32. Also add common WIN32 extensions to - the filename when searching for the executed file. - - * src/include/NSDate.h (-initWithTimeIntervalSince1970:): ADd - missing method prototype. - - * src/include/NSHashTable.h: Move typedefs that were in NSHashTable.m - to here so that externs.m has access to them. - * src/include/NSMapTable.h: Move typedefs that were in NSMapTable.m - to here so that externs.m has access to them. - - * src/include/UdpPort.h (WIN32): Use __WIN32__ macro instead. - - * src/include/fake-main.h: Do not redefine main on MINGW32. - - * src/include/preface.h.in: Add WIN32 specific definition. - -Fri Sep 12 12:27:00 1997 Richard Frith-Macdonald - - * src/NSString.m: Added [-classForPortCoder:]) method for - NXConstantString to prevent minor DO memory leak. - -Fri Sep 12 6:15:00 1997 Richard Frith-Macdonald - - * src/NSAttributedString.m: Added the [-classForPortCoder:] and - [-replacementObjectForPortCoder:] methods to ensure that strings - are always sent over DO bycopy. - - * src/NSDistantObject.m: Fixed the types of the parameters to a few - methods to avoid compiler warnings. - - * src/NSGAttributedString.m: Added the [-classForPortCoder:] and - [-replacementObjectForPortCoder:] methods to ensure that strings - are always sent over DO bycopy. - - * src/NSGCString.m: Added the [-classForPortCoder:] and - [-replacementObjectForPortCoder:] methods to ensure that strings - are always sent over DO bycopy. - - * src/NSGString.m: Added the [-classForPortCoder:] and - [-replacementObjectForPortCoder:] methods to ensure that strings - are always sent over DO bycopy. - - * src/NSHData.m: Added the [-classForPortCoder:] and - [-replacementObjectForPortCoder:] methods to ensure that data - objects are always sent over DO bycopy. - - * src/NSProxy.m: Commented out a couple of methods whose OPENSTEP - style implementation was incomplete so that the old (working) - GNUstep implementation is used. - - * src/NSRunLoop.m: Moved some code around to fix problems with - earlier patch being applied in wrong place. - -Wed Sep 10 18:03:22 1997 Scott Christley - - * config.guess: Update. - * config.sub: Add mingw32. - - * src/NSArray.m (-initWithObjects:rest:): The first object is - allowed to be nil and the count needs to be reduced by one before - calling -initWithObjects:count: - -Tue Sep 9 10:15:00 1997 Richard Frith-Macdonald - - * src/NSConnection.m: Made numerous changes to fix memory leak with - ports never being released and to fix problems in port invalidation - associated with that. Also added code to cope with odd cases like - when a remote application dires while we are waiting for a response - from it. - - * src/NSPort.m: Added [-release] method which ensures that ports - are invlidated before they are finally deallocated. - - * src/NSPortCoder.m: Catch exceptions during attempt to write data. - - * src/NSRunLoop.m: Fixed this so that a count is kept of the - number of times a port has been added to the run loop as per the - OPENSTEP documentation. - - * src/TcpPort.m: Fixed a minor retain/release problem. - - * src/UnixFileHandle.m: Added loads of checks so that attempts to - use a file handle which has been closed will fail/generate an - exception rather than crashing things! Also modified for changes - to NSRunLoop. - - * src/include/NSRunLoop.h: Modified the interface for adding watchers - for events with a count of the number of times they have been added. - - * src/include/Port.h: Removed [-isValid] - now in NSPort. - -Tue Aug 26 15:47:54 1997 Adam Fedor - - * src/NSCTemplateValue.m ([NSCTemplateValue -description]): New - method. - * src/NSConcreteValue.m ([NSConcreteValue -description]): - Likewise. - * src/NSNumber.m ([NSNumber -description]): use -stringValue. - -Fri Aug 29 13:25:51 1997 Adam Fedor - - * src/Makefile.in: Add LIBS macro. - * src/UnixFileHandle.m: Add include for Solaris. - * src/NSHData.m: Include errno.h - -Thu Aug 28 16:15:00 1997 Richard Frith-Macdonald - - * configure.in: Added check for presence of inet_aton(). - - * src/Array.m: Added NSSerializer.m - - * src/NSConnection.m: ([-_initCollectionWithCoder:]): Removed redundant - OBJC_MALLOC() which was causing a memory leak. - - * src/Collection.m: ([-_decodeContentsWithCoder:]): Added code to - release newly decoded contents to avoid massive memory leak. - - * src/Dictionary.m: Restructured deallocation process so that the - dictionary gets deallocated properly rather than just it's contents - being released. - - * src/Makefile.in: Added NSDebug.m and NSDebug.h - - * src/NSAllocateObject.m: Minor modification to permit counting of - the number of instances of any object allocated. - - * src/NSDeallocateObject.m: Minor modification to permit counting of - the number of instances of any object deallocated. - - * src/Debug.m: Added functions for monitoring allocation and - deallocation of objects. Also an implementation of strerror() - for systems which don't have it. - - * src/NSHost.m: minor portability fixes. - - * src/NSPort.m: ([-isValid]): implemented this method. - - * src/NSSerializer.m: Misc tidying up and minor fixes. - - * src/Port.m: Removed retain/release methods - these are handled - by NSObject. - - * src/StdioStream.m: Moved implementation of strerror() to NSDebug.m. - - * src/TcpPort.m: Various alterations to try to ensure that ports - are automatically retained and released correctly. - - * src/UnixFileHandle.m: Various alterations to try to ensure that things - are always released correctly. - - * src/include/NSDebug.h: Interface for debugging facilities. - - * src/include/NSPort.h: Added variable to handle invalidation. - - * src/include/NSSerialization.h: Fixed some errors introduced in last - change. - - * src/include/Port.h: Avoid use of bitfields - some compiler versions - seem to mess up. - - * src/include/config.h.in: Added some constants for NSHData and - UnixFileHandle. - -Tue Aug 19 09:45:00 1997 Richard Frith-Macdonald - - * src/Dictionary.m: Added [-description] to perform OpenStep style - description of dictionary contents (for property-list strings). - - * src/Makefile.in: Added NSSerializer.m - - * src/NSConnection.m: Implemented [+defaultConnection] method. - - * src/NSHData.m: Fixed bug in resizing buffer - when going from - malloced-memory to shared-memory the buffer contents were not being - copied! - - * src/NSSerializer.m: Implementation of the NSSerializer and - NSDeserializer classes for handling property-lists. - - * src/include/NSConnection.h: Added [-makeNewConnection:sender:]. - - * src/include/NSDictionary.h: Added [+dictionaryWithObjectsAndKeys:]. - - * src/include/NSSerialisation.h: Added interface definitions for the - NSSerializer and NSDeserializer clases. - - * src/proplist.l: Fixed pattern definition for matching NSData items - and relaxed rules a little to permit newlines. Also fixed severe - memory leaks. - - * src/proplist.y: Fixed excessive number of autoreleases and - restructured slightly so that temporary objects are released - immediately rather than being autoreleased at the end of the - parse - should avoid out-of-memory problems when parsing huge - property-lists. - -Thu Aug 14 14:00:00 1997 Richard Frith-Macdonald - - * checks/Makefile.in: Renamed client and server to oldclient and - oldserver. Created new versions for OpenStep D.O. Added nsdata and - nshost. - - * checks/NSData-test.m: Updated in line with current NSRange code. - - * checks/client.m: Revised version for OPENSTEP D.O. - - * checks/nsarchiver.m: Added a couple of checks to do with allocation. - - * checks/nsarray.m: Added some retain count checks. - - * checks/nsdata.m: Test memory mapped file initialisation. - - * checks/nshost.m: Basic tests for nshost class. - - * checks/nstimer.m: Changed to use NSRunLoop. - - * checks/oldclient.m: Old version for GNU D.O. - - * checks/oldserver.h: Old version for GNU D.O. - - * checks/oldserver.m: Old version for GNU D.O. - - * checks/server.h: Revised version for OPENSTEP D.O. - - * checks/server.m: Revised version for OPENSTEP D.O. - - * checks/tcpport-client.m: Modified for changed tcpport. - - * checks/tcpport-server.m: Modified for changed tcpport. - - * configure.in: Added checks for mapped file and shared memory support. - - * examples/first-server.m: Include NSRunLoop.h rather than RunLoop.h. - - * examples/second-client.m: Include NSRunLoop.h rather than RunLoop.h. - - * src/ConnectedCoder.m: ([ConnectedEncoder -dismiss]): Changed the - method used to send an encoded packet. - - * src/Connection.m: ([Connection -_service_forwardForProxy:]): Fixed - another memory leak. - - * src/Dictionary.m: Added [-allKeys] and [-allValues] - - * src/Invocation.m: Added methods to encode bycopy over OPENSTEP D.O. - - * src/Makefile.in: Updated for new OPENSTEP D.O. classes etc. - - * src/NSConnection.m: New implementation for OPENSTEP D.O. - - * src/NSData.m: Altered to use NSHData as default concrete class and - added serialization stuff from libFoundation. - - * src/NSDate.m: Added methods to ensure that NSDate objects are sent - over the wire bycopy. - - * src/NSDistantObject: New implementation of this OPENSTEP class based - on code from Proxy.m - - * src/NSFileHandle.m: Changed notification names for GNUstep extensions - to have a GS prefix rather than an NS prefix. - - * src/NSGArchiver.m: Changed to work using NSHData objects. - - * src/NSHData.m: New version of NSData which supports memory mapped - files and shared memory for large objects. - - * src/NSHost.m: A few minor changes to get this to compile without - warnings under Linux. - - * src/NSPort.m: Implementation of this OPENSTEP class as a base class - for real port objects. - - * src/NSPortCoder.m: New implementation of this OPENSTEP class based on - the code from ConnectedCoder.m - - * src/NSProxy.m: New implementation of this class. - - * src/NSRange.m: (NSMakeRange()): added check for possible integer - overflow. - - * src/NSRunLoop.m: Complete implementation of OPENSTEP API based on - the code from RunLoop.m with some rewriting and lots of additions. - - * src/NSTimer.m: Altered to use NSRunLoop instead of RunLoop - - * src/Port.m: Changed to use timeouts when sending packets, use the - OpenStep notification names, and be encoded bycopy with NSConnection. - - * src/RunLoop.m: removed this file - NSRunLoop does everything. - - * src/TcpPort.m: Alterations for revised version of nameserver - protocol and to perform timeouts when sending data. - - * src/UnixFileHandle.m: Updated for changes in notification names and - NSRunLoop class. - - * src/gdomap.c: Improved startup time, changed nameserver protocol to - permit 4-byte port IDs (eg mach ports) and to permit the nameserver - to be used by non-Distributed-Objects applications. - - * src/gdomap.c: Imroved nameserver protocol. - - * src/include/DistributedObjects.h: New header file to contain - interface information which is only for internal used by the - distributed objects system. - - * src/include/NSConnection.h: New interface definition file. - - * src/include/NSData.h: Corrected a few methods to conform to OpenStep. - - * src/include/NSDictionary.h: Changed methods to require NSObject keys - rather than NSStrings. - - * src/include/NSDistantObject.h: New interface definition file. - - * src/include/NSFileHandle.h: Changed notification names for extensions. - - * src/include/NSHData.h: New interface definition file. - - * src/include/NSPort.h: New interface definition file. - - * src/include/NSPortCoder.h: New interface definition file. - - * src/include/NSProxy.h: New interface definition file. - - * src/include/NSRunLoop.h: Complete interface for NSRunLoop class. - - * src/include/NSSerialization.h: Fixed typos in method names. - - * src/include/Port.h: Changed Port to inherit from NSPort and added - a timeout to the method for sending data. - - * src/include/RunLoop.h: Removed RunLoop stuff and changed it to use - NSRunLoop instead. - - * src/include/UnixFileHandle.h: Changed gnustep extension notification - names and altered class to work with new NSRunLoop. - - * src/include/byte_order.h: Incorporated this file from libFoundation. - - * src/mframe.m: (mframe_do_call()): modified this to tell the decoder - function when it has finished so that the decoder can cleanup safely. - -Thu Aug 28 16:36:03 1997 Adam Fedor - - * src/NSUser.m (NSUserName): Check for login_name in other places - (bug submitted by Manuel Guesdon . - -Tue Jul 15 13:55:19 1997 Gregor Hoffleit - - * configure.in: Check for getcwd and pthread library. - - * src/find_exec.c: Use getcwd if available. - -Fri Jul 11 13:55:19 1997 Richard Frith-Macdonald - - * checks/Makefile.in: Added nsfilehandle.m and improved 'clean' - - * checks/nsfilehandle.m: Rudimentary tests for NSFileHandle class. - - * src/LinkedList.m ([LinkedList -removeObject:]): Clear the pointer - to the list in the removed list element so it know it is no longer - in a list. - - * src/Makefile.in: Added NSFileHandle, UnixFileHandle and - NSNotificationQueue. Fixed link libraries for gdomap. - - * src/NSDate.m: Added code to ensure that NSDate objects are always - sent over the wire bycopy. - - * src/NSFileHandle.m: Implemented this OPENSTEP class in full. - - * src/NSFileManager.m ([NSFileManager -fileAttributesAtPath:traverseLink:): - Fixed to return full list of attributes. - ([NSFileManager -findNextFile): Fixed retain/release problem. - - * src/NSNotificationQueue.m: Imported class from libFoundation and - modified for gstep-base with a few bug fixes and thread stuff. - - * src/NSPipe.m: Implemented this OPENSTEP class in full. - - * src/NSThread.m: Modified to ensure that a threads dictionary - persists until the end of the thread! - - * src/NSNotificationDispatcher.m: Modified to avoid multiple identical - notification observer requests and fixed posting of notifications so - that observer requests can be safely removed by notification handlers. - - * src/RunLoop.m: Modifications for NSNotificationQueue, per-thread - default run-loops, and safer file descriptor watching. - - * src/TcpPort.m: Added include for solaris. - - * src/UnixFileHandle.m: Wrote this class as a concrete implementation - of NSFileHandle. - - * src/gdomap.c: Modified to make autolaunch of this daemon work - more reliably. Also modified to make probes for other servers - take place asynchronously. - - * src/gdomap.h: Tidied comments up a bit. - - * src/include/NSFileHandle.h: Added this OPENSTEP include file. - - * src/include/NSNotificationQueue.h: Added this from libFoundation. - - * src/include/UnixFileHandle.h: Added header file for UnixFileHandle. - - * src/mframe.m: Hacked this about to get all return types working for - DO under linux on i386 family. Requires more work and compiler or - Objective-C runtime support for a more general solution. - -Mon Jul 7 02:40:45 1997 Geoffrey Berry - - * src/NSString.m ([NSString -componentsSeparatedByString:]): - Fixed calculation of new search range. - -Mon Jun 9 16:05:26 1997 ANOQ of the sun - - * src/NSAttributedString.m: New file. - * src/NSGAttributedString.m: New file. - * src/include/NSAttributedString.m: New file. - * src/include/NSGAttributedString.m: New file. - * src/Makefile.in: Add new files into lists. - - * checks/nsattributedstring.m: New file. - * checks/Makefile.in: Add new file into list. - -Wed Jun 4 01:04:50 1997 Yoo C. Chung - - * src/include/preface.h.in: Include . - - * src/include/NSDate.h (NSTimeZone): Added new method - -abbreviationMap. - - * src/NSCalendarDate.m: Adjust for time zone detail. - ([NSCalendarDate - -initWithYear:month:day:hour:minute:second:timeZone:]): Set time - zone detail properly. - ([NSCalendarDate -descriptionWithCalendarFormat:locale:]): Add - case for '%Z'. - ([NSCalendarDate -initWithString:calendarFormat:locale:]): Use - local time zone, not default time zone detail. - ([NSCalendarDate -initWithTimeIntervalSinceReferenceDate:]): - Adjust for time zone detail. - - * src/tzfile.h: New file. - - * configure.in: Add check for endianness and int size. - - * src/NSTimeZone.m: New implementation. - - * src/include/NSDate.h (NSTimeZone): Remove unnecessary method - declarations. - (NSTimeZoneDetail): Likewise. - -Sun June 02 22:14:21 1997 Stevo Crvenkovski - - * src/NSGCString.m ([NSGCString -isEqualToString]): - C string implementation from old NSString.m moved here - and changed to check for class. - * src/NSGCString.m ([NSGCString -setString]): - Changed to avoid compiler warning. - * src/NSGSequence.m ([NSGSequence -compare]): - Changed for speed. - * src/NSString.m ([NSString -isEqualToString]): - New implementation, mutch faster. - * src/NSString.m ([NSString -commonPrefixWithString]): - Implemented recognition of composed characters. - * src/NSString.m ([NXConstantString -characterAtIndex]): - Method implemented. - -Thu May 15 08:59:13 1997 Yoo C. Chung - - * configure.in: Add check for getcwd(). - - * src/NSString.m ([NSString +initialize]): Removed casts for - register_printf_function. - (handle_printf_atsign): Set argument types for GNU libc. - -Sun May 21 23:12:24 1997 Stevo Crvenkovski - - * src/NSGSequence.m ([NSGSequence -decompose]): - Reorganized code and changed to handle empty strings. - * src/NSGSequence.m ([NSGSequence -order]): - Added code to handle case when consecutive nonspacing - characters have same canonical ordering priority. - * src/NSString.m ([NSString - -rangeOfComposedCharacterSequenceAtIndex:]): - Changed to recognize end of string when last character - is nonspacing. - * src/NSString.m ([NSString -compare:options:range:]): - Handle empty strings. - * src/NSString.m ([NSString -hash]): Unicode version - implemented and commented out for more testing. - * src/NSString.m ([NSString -_normalizedString]): - New private method for Unicode. - * src/NSString.h ([NSString -_normalizedString]): - New private method for Unicode declared. - -Tue May 20 09:29:47 1997 Adam Fedor - - * configure.in (VSPRINTF_RETURNS_LENGTH): Define as actual value - of variable.. - - * checks/Makefile.in (LDFLAGS): Include DYNAMIC_LDFLAGS - (BUNDLE_NAME.bundle): Add new Resources directory. - * checks/nsbundle.m: Remove obsolete NSArgv. - - * src/MemoryStream.m ([MemoryStream -writeFormat:arguments]): Make - sure buffer has at least 128 bytes free space. - - * src/NSBundle.m ([NSBundle -load]): New method. - ([NSBundle -principalClass]): Use it. - ([NSBundle +_bundleResourcePathsWithRootPath:subPath:]): New class - method (was an instance method). Add search in GNUSTEP_LIBRARY_PATH. - ([NSBundle - +pathForResource:ofType:inRootPath:inDirectory:withVersion:]): New - generalized search method. - ([NSBundle +pathForResource:ofType:inDirectory:withVersion:]): Use it. - ([NSBundle +pathForResource:ofType:inDirectory:]): Likewise. - ([NSBundle -pathForResource:ofType:]): Likewise. - ([NSBundle -pathForResource:ofType:inDirectory:]): Likewise. - - * src/include/NSBundle.h: New method definitions. - - * src/BinaryCStream.m: Include sys/types.h for SunOS4 definitions. - * src/NSData.m: Include unistd.h for SunOS4 definitions. - * src/StdioStream.m: Likewise. - * src/Time.m: Likewise. - -Wen May 14 01:07:16 1997 Stevo Crvenkovski - - * src/NSGCString.m ([NSGCString - -initWithCharactersNoCopy:length:freeWhenDone:]): - Changed to invoke instance of NSGString. - * src/NSGString.m ([NSGString - -initWithCStringNoCopy:length:freeWhenDone:]): - Changed to invoke instance of NSGCString. - * src/NSGString.m ([NSGString - -initWithCStringNoCopy:length:]): - Method removed - it is in NSString. - -Sun May 11 10:12:11 1997 Stevo Crvenkovski - - * src/NSGCString.m ([NSGCString -fastestEncoding:]): Method - implemented. - * src/NSGCString.m ([NSGCString -smallestEncoding:]): Method - implemented. - * src/NSGCString.m ([NSGMutableCString -setString:]): C string - implementation moved here from old version of NSString. - - * src/NSGString.m ([NSGString -fastestEncoding:]): Method implemented. - * src/NSGString.m ([NSGString -smallestEncoding:]): Method implemented. - - * src/NSString.m ([NSString -initWithData:encoding:]): Method - implemented. - * src/NSString.m ([NSString -canBeConvertedToEncoding:]): Method - implemented. - * src/NSString.m ([NSString -dataUsingEncoding:]): Method implemented. - * src/NSString.m ([NSString -dataUsingEncoding: - allowLossyConversion]): partial implementation of method. - * src/NSString.m ([NSString -fastestEncoding:]): Method implemented. - * src/NSString.m ([NSString -smallestEncoding:]): Method implemented. - * src/NSString.m ([NSString -stringByExpandingTildeInPath:]): - changed for Unicode. - * src/NSString.m ([NSString -writeToFile: - atomically:useAuxiliaryFile:]): Method implemented. - * src/NSString.m ([NXConstantString -fastestEncoding:]): Method - implemented. - * src/NSString.m ([NXConstantString -smallestEncoding:]): Method - implemented. - - * src/Unicode.m (ustrtostr): changed to detect end of string. - * src/Unicode.m (encode_strtoustr): New function. - * src/Unicode.m (encode_ustrtostr): New function. - -Tue May 13 23:36:59 1997 Yoo C. Chung - - * src/NSString.m ([NSString -initWithFormat:arguments:]): Skip - arguments dealt with in vsprintf(). - -Sun May 11 10:12:11 1997 Stevo Crvenkovski - - * src/NSString.m ([NSString -stringByAppendingString]): Changed to - avoid calling wrong subclass. - ([NSString -capitalizedString]): Likewise. - ([NSString -lowercaseString]): Likewise. - ([NSString -uppercaseString]): Likewise. - -Mon May 12 11:15:00 1997 Richard Frith-Macdonald - - * src/Collection.m ([Collection -copyAs:]): Modified so that copied - objects are released once the new collection has retained them. This - ensures that when the new collection is deallocated, the copied - objects it contains are deallocated as well. - - * src/NSArray.m ([NSArray -initWithArray:]): Free temporary C - array opf objects when we are done with it - fixes memory leak. - ([NSArray -copy:]) Added method to ensure copyWithZone: is called. - ([NSArray -sortUsingSelector:]) Added method. - - * src/NSDate.m ([NSDate -copyWithZone:]): Sometimes just retain - a date. - - * src/NSObject.m ([NSObject -retainCount]): Take autorelease stuff - into account in determining retain count for an object. - Added new function 'extraRefCount()' to do what -retainCount used to. - Modified -release and -autorelease to use extraRefCount(). - - * src/include/NSArray.h: Added -sortUsingSelector: - -Thu May 8 02:10:35 1997 Yoo C. Chung - - * src/NSString.m: Removed the redefinition of - HAVE_REGISTER_PRINTF_FUNCTION. - - * src/NSZone.m (BUFFER): Reduced buffer size to 4. - - * src/NSAssertionHandler.m: Include "NSObjCRuntime.h". - Use NSLog() to log errors. - Reason for exception now identical to log messages. - - * configure.in: AC_TYPE_SIZE_T, AC_C_INLINE added. - - * src/include/NSZone.h: Removed inline keywords for functions that - are potentially fluid. - - * src/NSThread.m ([NSThread - +detachNewThreadSelector:toTarget:withObject:]): Post - NSBecomingMultiThreaded. - - * src/StdioStream.m: Define _REENTRANT. - ([StdioStream -initWithFilename:fmode:]): Use NSLog() to log - errors. - ([StdioStream -initWithFileDescriptor:fmode:]): Likewise. - - * src/NSThread.m: Removed [-exceptionHandler] and - [-setExceptionHandler]. - * src/include/NSThread.h: Likewise. - - * src/NSException.m: Use member variables directly to obtain and - set exception handlers. - - * src/Makefile.in (FILE_AUTHORS): Added new person. - - * src/include/NSPage.h: Changed e-mail address. - -Thu May 8 15:45:00 1997 Richard Frith-Macdonald - - * src/Proxy.m: (+newForRemoteTarget:connection:) - When an existing proxy is substituted for a newly allocated one - we must retain it. - - * src/Proxy.m: (+newWithCoder:) - When an object is substituted for a local proxy we must retain it. - - * src/Connection.m: (forwardForProxy:selector:argframe:) - Ensure that objects created by the decoder are autoreleased. - - * src/Connection.m: (_service_forwardForProxy:) - Ensure that objects created by the decoder are autoreleased. - - * src/Connection.m: (_getReceivedReplyRmcWithSequenceNumber:) - Ensure that a newly allocated NSdate objects is released on return - from this method. Fixes a memory leak. - - * src/NSGCString.m: - Added an implementation of dealloc which will cause the string - contents to be released correctly - fixing a major memory leak. - - * src/NSString.m (handle_printf_atsign()) - Modified so that the '%@' format prints an objects description as it - should according to the OpenStep spec. - - * src/NSString.m (- initWithFormat:arguments:) - Modified so that the '%@' format prints an objects description as it - should according to the OpenStep spec. - - * src/NSString.m (- componentsSeparatedByString:) - Fixed to produce the final component of the string. - - * src/NSString.m (- rangeOfString:options:range:) - Return a range of length 0 if passed an empty string. - - * src/NSString.m (- lastPathComponent) - Do autorelease for newly created substrings. - - * src/NSString.m (- pathExtention) - Do autorelease for newly created substrings. - - * src/NSString.m (- stringByAppendingPathComponent:) - Added code to handle empty or illegal path components. - - * src/NSString.m (- stringByAppendingPathExtension:) - Added code to handle empty or illegal path extensions. - - * src/NSString.m (- stringByDeletingLastPathComponent:) - Fixed some special cases - autorelease for newly created substrings. - - * src/NSString.m (- stringByExpandingTildeInPath:) - Do autorelease for newly created substrings. - - * src/NSString.m (- stringByAbbreviatingWithTildeInPath:) - Do autorelease for newly created substrings. - -Wed May 7 15:45:00 1997 Richard Frith-Macdonald - - * checks/server.m: Removed line which released object which should - already have been autoreleased by D.O. mechanism. - - * src/Coder.m: ([Coder -init]): Modified so that subclasses can be - initialised using 'init'. - ([Coder -initForReadingWithData:]) Check to see if 'self' has been - autoreleased. If it has - be graceful and don't release self again - but autorelease the newly created object. I know that this should - not be necessary, but it's defensive programming. - - * src/Makefile: Changed 'make distclean' to remove links to the - header files directory so that it's easy to make a clean setup - for generating patches. - - * src/NSArchiver.m: ([NSArchiver -init]): Modified to say that the - subclass should handle this. - ([NSArchiver +archivedDataWithRootObject:]): Added a release to fix - memory leak. - - * src/NSGArchiver.m: Added implementation of init method. - ([NSGArchiver -archiverData]): Addep partial implementation of this - method - only works if the archiver was initialised with an - NSMutableData object, returns nul otherwise. This probably covers - pretty much all the cases where you would want to use this method. - - * src/NSObject.m: ([NSObject -returnCount]): Fixed this to return - zero for the cases where the object is not in the retain count map. - - * src/include/NSRunLoop.h: Added protocol declarations etc so that - you don't need to include RunLoop.h - -Tue May 6 14:50:35 1997 John Stevens - - * src/Array.m ([Array -appendObject:]): Check for nil object. - ([Array -insetObject:atIndex:]): Likewise. - - * src/NSArray.m ([NSArray -initWithObjects:rest:]): Good varargs - implementation. - - * src/NSData.m: ([NSData -getBytes:range:]): Check range. - ([NData -replaceBytesInRange:withByte:]): Likewise. - ([NSData -resetBytesInTange:]): Likewise. - -Mon May 5 16:00:00 1997 Richard Frith-Macdonald - - * src/Connection.m: ([Connection -forwardForProxy:selector:argFrame:]): - Added code to autorelease newly created objects to avoid memory leak. - ([Connection -_service_forwardForProxy:]): Added code to autorelease - newly created objects to avoid memory leak. - ([Connection -_getReceivedReplyRmcWithSequenceNumber:]): Release - locally created NSDate object before returning from method. - - * src/NSGString.m: ([NSGCString -dealloc:]): Added implementation so - that allocated memory can be freed. - ([NSGCString -initWithCoder:]): Set flag to say that contents should - be freed when object is deallocated. - - * src/NSGSequence.m: - Added +sequenceWithCharactersNoCopy:length:freeWhenDone:. - Added -dealloc so that Sequence contents can be freed. - ([NSGSequence -initWithCharactersNoCopy:length:freeWhenDone:]): - Modified to release sequence contents if necessary (when the - designated initialiser is called more than once). - ([NSGSequence -decompose]): Fixed memory leak in this method. - ([NSGSequence -lowercase]): Fixed memory leak in this method. - ([NSGSequence -uppercase]): Fixed memory leak in this method. - - * src/NSGString.m: Added -dealloc so that string contents can be freed. - ([NSGString -encodeWithCoder]): Fixed to encode array of unichar. - ([NSGString -initWithCoder]): Fixed to expect encoded array of unichar. - - * src/NSGMutableString.m: ([NSGMutableString -insertString:atIndex:]): - Fixed memory leak. - ([NSGMutableString -encodeWithCoder:]): Encode array of unichar. - ([NSGMutableString -initWithCoder]): Expect encoded array of unichar. - - * src/NSString.m: ([NSString -compare:options:range]): Fixed a memory - leak. - ([NSString -commonPrefixWithString:options:]): Fixed a memory leak. - - * src/Proxy.m: ([Proxy +newForRemoteTarget:connection:]): When we - return an existing Proxy, retain it. - ([Proxy +newWithCoder:connection:]): When we return a local object, - retain it. - - * src/RunLoop.m: ([RunLoop -removeReadDescriptor:forMode:]): free - enumeration state on return. - ([RunLoop -removeWriteDescriptor:forMode:]): free enumeration state - on return. - ([RunLoop -acceptInputForMode:beforeDate:]): free enumeration states - when done with them. - - * src/include/NSGSequence.h: Added class method - +sequenceWithCharactersNoCopy:length:freeWhenDone:. - - * src/NSDate.m: Added implementations for methods - - -copyWithZone:, -encodeWithCoder: -initWithCoder:. - - * src/include/NSDate.h: Added protocol conformance for NScopying - and NSCoding. - -Sat May 3 12:28:48 1997 Andrew McCallum - - * src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Add gdomap.c and - gdomap.h. - - * checks/NSData-test.m: New file from John Stevens - . - - * src/Makefile.in (GNUSTEP_HEADERS): Add include/NSConnection.h. - - * doc/news.texi: Fix typo. - * doc/install.texi: Fix typo. - - * Makefile.in (DIST_FILES): Add config.sub. - - * src/NSBundle.m: Temporarily comment out some code with #if 0/1 - so it will compile. Get Adam Fedor or someone to fix it. - * src/NSCharacterSet.m: Likewise. - - * src/include/NSConnection.h: Include some files. - - * src/Makefile.in (GNUSTEP_HEADERS): Add NSDistantObject.h. - * src/include/NSDistantObject.h: New file. - - * src/gdomap.c: Delete duplicate copy inside file. - - * src/TcpPort.m: #include . Define GDOMAP to be 0 for - now; have Richard Frith-Macdonald verify that it works for me. - (tryWrite): Change type of IFUN to match declaration of signal(). - Cast second argument to signal() to avoid warning. - ([TcpInPort +newForReceivingFromPortNumber:]): Use P->_PORT_SOCKET not - P->_SOCKET, which doesn't exist. Likewise in several other - methods. - - * src/NSString.m: Remove some duplicate methods. - - * src/NSHost.m: Don't include . Include - . - - * src/Connection.m: Include for delegate - method declaration. - ([Connection +newForInPort:outPort:ancestorConnection:]): Cast - NEWCONN to avoid warning. - - * src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Move NSHost.m - temporarily here until its debugged. - (GNUSTEP_MFILES): Temporarily remove NSHost.m. - - * src/NSDate.m ([NSDate -timeIntervalSince1970]): Remove duplicate - method definition. - - * src/NSArchiver.m ([NSArchiver -init]): New method. (Need for it - reported by Richard Frith-Macdonald .) - - * src/NSArchiver.m ([NSArchiver -encodeClassName:intoClassName:]): - Fix typo in method name. - * src/include/NSArchiver.h: Fix typo in method name. - - * src/TcpPort.m (nameServer): Remove the ntohs() conversion of - NUM. (Reported by Richard Frith-Macdonald - >) - - * src/NSCharacterSet.m ([NSCharacterSet_PATH]): Value of global - variable changed to absolute path. (Reported by Richard - Frith-Macdonald .) - - * checks/Makefile.in (SRCS): Added NSData-test.m. - - * src/Decoder.m ([Decoder -decodeObjectAt:anObjPtr:name]) - [CODER_OBJECT_REPEATED]: Retain the object before returning it by - reference. (Reported by Richard Frith-Macdonald - .) - - * src/NSHashTable.m (NSNonRetainedObjectHashCallBacks): Renamed - from NSNonRetainedObjectsHashCallBacks to conform to spec. - * src/include/NSHashTable.h: Likewise. - - * src/Makefile.in (UNICODE_HEADERS): New variable. - (DIST_FILES): Add UNICODE_HEADERS. - (copy-dist): Create directory for unicode. - - * examples/Makefile.in (RCS_FILES): Added custom-zone.m. - * examples/custom-zone.m: New file. - - * src/NSBundle.m ([NSBundle - +pathForResource:ofType:inDirectory:]): Change it from an instance - method to a class method, in order to conform to spec. - * src/include/NSBundle.h ([NSBundle - +pathForResource:ofType:inDirectory:]): Likewise. - * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): - Revert last change. - - * src/Makefile.in (GNUSTEP_HEADERS): Added include/NSHost.h. - (GNUSTEP_MFILES): Added NSHost.m. - - * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): - Use NSBundle's pathForResource:ofType:inDirectory method properly. - (Reported by Stevo Crvenkovski .) - -Fri Apr 25 01:30:00 1997 Richard Frith-Macdonald - - * src/NSBundle.m: - Added missing methods to conform to OpenStep spec, also added - [+ pathForResource:ofType:inDirectory:] - - * src/include/NSBundle.h: - Added missing methods to conform to OpenStep spec. - -Thu Apr 24 10:30:00 1997 Richard Frith-Macdonald - - * src/Makefile.in: Added stuff to build and install the name - server (gdomap). - - * src/RunLoop.m: Minor change to ensure that repeated timers are - not lost. - - * src/TcpPort.m: Major changes to support use of a name server for - handling TCP port numbers and fix a few bugs. - - * src/gdomap.c: This is the name server source. - - * src/gdomap.h: This is the name server header file. - - * src/include/NSRunLoop.h: Added methods for monitoring file - descriptors. - -Sat Mar 29 00:43:18 1997 Yoo C. Chung - - * src/NSZone.m: New e-mail address. Default default zone - alignment problems fixed. - -Sun Mar 23 19:55:19 1997 Mark Kettenis - - * src/Makefile.in: Update config.h.in in $(srcdir)/src/include. - * configure.in: Look for config.guess in $(srcdir). - -Sat Mar 22 18:25:43 1997 Mark Kettenis - - * src/NSDate.m ([NSDate +timeIntervalSinceReferenceDate]): Don't - use struct timezone. - ([NSDate -timeIntervalSince1970]): New method. - ([NSDate -isEqual:]): Correct bug if other specifies a later date. - -Sun Mar 23 22:14:21 1997 Stevo Crvenkovski - - * src/NSGString.m: New file Initial implementation of Unicode - * src/include/NSGString.h : New file Interface for NSGString - * src/NSGSequence.m: New file - class that deals with Unicode - composite character sequences - * src/include/NSGSequence.h : New file Interface for NSGSequence - * src/Unicode.m: New file - functions for Unicode - * src/include/Unicode.h : New file - - * src/Makefile.in: Added NSGString.m, NSGString.h, NSGSequence.m, - NSGSequence.h, Unicode.m, Unicode.h - - * src/NSGCString.m ([NSGCString -length]): Method implemented. - ([NSGCString -characterAtIndex]): Changed to work - with encodings - ([NSGCString -_baseLength]): private method for - composite character sequences. - ([NSGCString -initWithString:]): CString implementation - moved here from NSString.m - - * src/NSString.m : Changed NSString_concrete_class to NSGString - and NSMutableString_concrete_class to NSGMutableCString - ([NSString +stringWithCharacters]): Method implemented. - ([NSString -initWithCharacters:length:]): Method implemented. - ([NSString -stringByAppendingString]): changed for Unicode. - ([NSString -rangeOfString]): split method into 8 private _search* - methods and implemented full Unicode - ([NSString -compare:options:range:]): changed for Unicode. - ([NSString -isEqualToString]): changed for Unicode - ([NSString -description]): changed. - ([NSString -commonPrefixWithString]): changed for Unicode - ([NSString -capitalizedString]): changed for Unicode - ([NSString -lowercaseString]): changed for Unicode - ([NSString -uppercaseString]): changed for Unicode - ([NSString -getCString]): changed for Unicode - ([NSString -defaultCStringEncoding]): method implemented - ([NSString -_baseLength]): private method for composite - sequences. - ([NSString -stringWithFormat:]): null terminate buffer. - - *src/unicode : New directory - temporary holds data for unicode - functions. - *src/unicode/caseconv.h : New file - *src/unicode/cop.h : New file - *src/unicode/cyrillic.h : New file - *src/unicode/decomp.h : New file - *src/unicode/nextstep.h : New file - -Fri Feb 14 08:51:39 1997 Yoo C. Chung - - * src/NSZone.m: Use [NSString -cStringNoCopy]. - -Wed Feb 12 13:51:42 1997 Yoo C. Chung - - * src/NSZone.m (frealloc): memcpy() with proper size. - - * examples/custom-zone.m (custom_recycle): Release zone name. - - * src/NSZone.m (frealloc): Moved assignment out of a critical - block. - -Tue Feb 11 22:55:05 1997 Yoo C. Chung - - * examples/custom-zone.m: New file. - -Sun Feb 9 20:28:00 1997 Yoo C. Chung - - * src/NSZone.m (NSZoneRegisterRegion): New function. - (NSDeregisterZone): New function. - - * src/include/NSZone.h: Added 'NSZoneRegisterRegion' and - 'NSDeregisterZone'. - -Thu Mar 6 08:57:29 1997 Scott Christley - - * src/NSString.m (-substringToIndex:): Should return - characters upto but not including the one at index. - (lastPathComponent, stringByDeletingLastPathComponent): Modify - for -substringToIndex: change. - (stringByDeletingPathExtension): Likewise. - -Tue Mar 4 10:47:18 1997 Scott Christley - - * src/NSBundle.m: Don't look in gnustep installation library - directory; remove previous patch. - * src/NSCharacter.m: Create bundle with path instead of using - main bundle. - * src/NSString.m (-stringByAppendingPathComponent:): Don't - even check the length; only care if we found the string at - the very last position. - (-stringByAppendingPathExtension:): Likewise. - * src/include/preface.h.in: Include NSObjCRuntime so that - NSLog() is declared. - * src/include/NSString.h (+stringWithContentsOfFile:): Add - missing declaration. - -Thu Feb 27 13:46:10 1997 Scott Christley - - * configure.in: Fill out description of parameter. - * src/Makefile.in (GNUSTEP_INSTALL_LIBDIR): Use quotes. - * src/NSBundle.m: Add gnustep installation library directory - to the directories searched. - * src/NSCharacterSet.m (NSCharacterSet_PATH): Don't specify - full path, just bundle directory. - * src/NSRange.m (NSMakeRange): Correct prototype. - * src/include/NSRange.h (NSMakeRange): Likewise. - * src/NSString.m (stringByAppendingExtension:): The length - will actually be zero if the period isn't found. - (stringByAppendingPathComponent:): Likewise. - -Tue Jan 21 17:09:09 CST 1997 Jeremy Bettis - - * src/NSGCString.m: Add -appendString:. - - * src/include/NSString.h: Add +string. - - * src/NSString.m: (handle_printf_atsign) Take the description of - the object before the cStringNoCopy. - ([NSString +allocWithZone:],[NSMutableString +allocWithZone:]) - Only return the concrete class if [self class] == NSString to - allow subclassing. - -Tue Mar 4 10:51:22 1997 Andrew McCallum - - * src/NSConnection.m: New file. - * src/include/NSConnection.h: Add copyright and fix method - declaration. - - * src/Connection.m ([Connection -registerName:]): New method. - ([Connection +newForInPort:outPort:ancestorConnection:]): Ask the - delegate for permission to create the new connection. We were - already doing it GNUstep-style. Do it OpenStep-style also. - - * src/NSGArchiver.m ([NSGArchiver -archiverData]): New method. No - implementation. - - The above was actually checked in May 3 1997. - - * src/Connection.m ([Connection - -forwardForProxy:selector:argFrame:]): In nested function - decoder(), always set IP to -1 after sending it -dismiss, i.e. in - both cases. Fix the assertion at the bottom so that IP is allowed - to be nil, which will be the case when mframe_build_return() never - calls decoder(), which will happen when we are returning void. - - * src/Decoder.m ([Decoder -finishDecodingInterconnectedObjects]): - Comment fixes. - - * src/Proxy.m ([Proxy -awakeAfterUsingCoder:]): New method. - Needed otherwise we get an infinite loop with Decoder trying to - send this message to a Proxy. - -Mon Mar 3 14:41:01 1997 Andrew McCallum - - * doc/install.texi: Describe what happens when libieee.a isn't - available. - - * configure.in: Remove obsolete AC_C_CROSS. - - * doc/Makefile.in (TEXI_FILES): Added gnustep-zones.texi. - - * src/NSHost.m, src/include/NSHost.h: New files from Luke Howard - . - -Tue Feb 25 17:12:52 1997 Scott Christley - - * configure.in: Add macro to determine host, build, and target. - (whole_archive, no_whole_archive): Optional linker variables - for specifying when the linker should include the whole archive. - * configure: Regenerate for configure.in changes. - * Makefile.in: Force targets. - * config.sub: New file. - * NSCharacterSets/Makefile.in: Use configure datadir variable. - Install character set files in NSCharacterSets subdirectory - within GNUstep library install dir. - * checks/heap.m: random is rand on _WIN32. - * checks/nscharacterset.m: New file - * checks/Makefile.in: Add nscharacterset.m. - Surround gnustep-base library with new linker variables. - * checks/release.m: No malloc.h on _WIN32. - * examples/Makefile.in: Surround gnustep-base library with - new linker variables. - * doc/Makefile.in: Use configure infodir variable. - - * src/NSFileManager.m: New file. - * src/include/NSFileManager.h: New file. - * src/Makefile.in: Add NSFileManager files. - (GNUSTEP_INSTALL_LIBDIR): New definition. - Use configure libdir and includedir variables. - Use the LN_S variable for soft links. Slightly modify creation - of gnustep/base for platforms which don't support soft links. - (install:): Install only the NEXTSTEP_HEADERS into objc directory - and eliminate out-dated README file link. - (uninstall:): Remove only NEXTSTEP_HEADERS out of objc directory. - * src/NSCharacterSets.m (NSCharacterSet_PATH): Search for - character set files in NSCharacterSets subdirectory within - GNUstep library installation directory. - - * src/NSDate.m (-initWithTimeIntervalSince1970:): New method. - (-timeIntervalSince1970): New method. - * src/include/NSDate.h (-initWithTimeIntervalSince1970:): New method. - (-timeIntervalSince1970): New method. - - * src/NSDictionary.m: Changed key datatype from NSString to - NSObject to correspond with OpenStep specification. - * src/NSGDictionary.m: Likewise. - * src/include/NSDictionary.h: Likewise. - (+dictionaryWithObjectsAndKeys:,...): Define method. - - * src/NSNumber.m (+numberWithLong:): Use correct class. - - * src/NSString.m (-description:): Just return self. - (+stringWithContentsOfFile:): New method. - (-componentsSeparatedByString:): Fix range calculation and - make sure last component is added. - (-appendString:): Don't attempt append if nil string. - - * src/NSUserDefaults.m (__changePersitentDomain:) Corrected - spelling of method. - - * src/TcpPort.m (_socket): Rename to _port_socket to avoid conflict - with hidden system variables. - * src/include/TcpPort.h (_socket): Likewise. - * src/UdpPort.m (_socket): Likewise. - * src/include/UdpPort.h (_socket): Likewise. - - * src/include/NSObject.h: Include fake-main.h. - -Thu Feb 6 09:20:05 1997 Yoo C. Chung - - * src/NSZone.m (fcheck): Implemented. - (fstats): Likewise. - (ncheck): Likewise. - (nstats): Likewise. - - * src/include/NSZone.h: New declarations of 'NSZoneRegisterChunk' - and 'NSZoneChunkOverhead'. - Include instead of . - - * src/NSZone.m: Removed 'outmemstr'. Better reasons given when - raising exceptions. - (frecycle): Use objc_free(). - (nrecycle): Likewise. - (NSCreateZone): Check allocation of 'zone'. - (default_check): New function. - (default_stats): Likewise. - (fcheck): Likewise. - (fstats): Likewise. - (ncheck): Likewise. - (nstats): Likewise. - (NSZoneChunkOverhead): Likewise. - (NSZoneRegisterChunk): Likewise. - (NSZoneCheck): Likewise. - (NSZoneStats): Likewise. - (default_zone): Set the zone name to "default". - -Wed Feb 5 21:29:23 1997 Yoo C. Chung - - * src/include/NSZone.h (struct _NSZoneStats): New structure. - (struct _NSZone): Added 'check' and 'stats'. - (NSZoneCheck): New declaration. - (NSZoneStats): Likewise. - -Tue Feb 4 22:39:50 1997 Yoo C. Chung - - * src/NSZone.m (nmalloc): Return NULL when size is 0. - -Tue Feb 4 09:16:05 1997 Yoo C. Chung - - * src/NSZone.m (NSSetDefaultMallocZone): New function. - (get_chunk): Use objc_malloc() to get more memory. - (nmalloc): Likewise. - (NSCreateZone): Likewise. - (NSSetZoneName): Removed locks. - - * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Don't - check whether we're releasing an already deallocated object. - - * src/include/NSZone.h (struct _NSZone): Removed mutex. - Removed NSZoneMemInUse(). - Added NSSetDefaultMallocZone(). - - * src/NSZone.m: Changed comments. - Uses objc_malloc() and friends for default zone. - Moved mutex out of NSZone structure. - Use mutex functions even in single threaded case. - (NSZoneMemInUse): Removed. - -Fri Jan 24 19:12:18 1997 Yoo C. Chung - - * src/NSZone.m: Spell checked comments. - -Tue Jan 21 13:31:11 1997 Yoo C. Chung - - * src/NSZone.m (default_recycle): New function. - (nrealloc): Likewise. - (nfree): Likewise. - (default_zone): Set common.recycle to default_recycle. - (NSCreateZone): Set realloc and free for nonfreeable zone. - - * src/include/NSThread.h: Add comments. - - * src/NSThread.m ([NSThread -setExceptionHandler:]): Add comments. - ([NSThread -exceptionHandler]): Likewise. - ([NSThread +detachNewThreadSelector:toTarget:withObject:]): Set - entered_multi_threaded_state to YES. - -Tue Jan 21 11:18:32 1997 Yoo C. Chung - - * checks/thread-except.m: New file. - - * checks/Makefile.in (SRCS): Added thread-except.m. - - * src/NSAssertionHandler.m ([NSAssertionHandler +currentHandler]): - Handle multiple threads. - - * src/NSException.m: Removed e_handlers. - ([NSException -raise]): Support multiple threads. - (_NSAddHandler): Likewise. - (_NSRemoveHandler): Likewise. - - * src/NSThread.m ([NSThread -init]): Init _exception_handler. - ([NSThread -exceptionHandler]): New method. - ([NSThread -setExceptionHandler:]): Likewise. - - * src/include/NSThread.h (NSThread): Added _exception_handler and - new methods exceptionHandler and setExceptionHandler. - -Mon Jan 20 09:46:00 1997 Yoo C. Chung - - * src/NSException.m: Use linked list instead of NSArray. Fit - lines within 80 columns. - - * src/NSZone.m (nmalloc): Use CHUNKSIZE to get new block size - instead of SIZE. - -Mon Jan 20 00:15:39 1997 Yoo C. Chung - - * src/NSAllocateObject.m: Include NSZone.h. - - * src/NSZone.m: Changed ffree_NSZone and nfree_NSZone to ffree_zone - and nfree_zone. Changed lock functions return types to ints. - (become_threaded): Set mutex functions. - (NSZoneMemInUse): Properly check buffer. - (nmalloc): Removed unnecessary declaration of block. - (NSCreateZone): Moved assignment of block out of exception handled - area. - (NSCreateZone): Fixed typo (objc_mutex_deallocate instead of - objc_mutex_dealloc). - (NSZoneMemInUse): Consider cases when memory is in buffer. - - * src/NSData.m ([NSData -description]): Frees malloced memory. - - * src/NSPage.m (NSAllocateMemoryPages): Return NULL if we fail to - allocate memory. - - * src/NSObject.m (NSShouldRetainWithZone): Check match for - NSDefaultMallocZone(). - -Fri Jan 17 20:08:00 1997 Yoo C. Chung - - * src/o_x_bas.m.in (o_@XX@_zone): Use NSZoneFromPointer(). - (_o_@XX@_alloc_with_zone): Remove unnecessary assignment. - - * src/o_array.m (o_array_alloc): Use NSDefaultMallocZone(). - * src/o_hash.m (o_hash_alloc): Likewise. - (o_hash_copy): Likewise. - * src/o_list.m (o_list_alloc): Likewise. - (o_list_copy): Likewise. - - * src/include/o_array.h (_o_array): Remove zone. It's just a - waste of space when we have a very fast NSZoneFromPointer(). - * src/include/o_hash.h (_o_hash): Likewise. - * src/include/o_list.h (_o_list): Likewise. - * src/include/o_map.h (_o_map): Likewise. - - * src/include/NSZone.h: New implementation. - - * src/include/NSPage.h: New file. - - * src/include/NSException.h (NS_HANDLER): Separate declaration and - assignment of localException. This is to shut up gcc when we - don't use localException. - - * src/StdioStream.m ([StdioStream -dealloc]): Removed call to - fclose(). - - * src/NSZone.m: New implementation. - - * src/NSDeallocateObject.m: Simplified. - - * src/NSAutoreleasePool.m: - Included NSZone.h. - ([NSAutoreleasePool -dealloc]): Use NSZoneMemInUse(). - - * src/Makefile.in (GNUSTEP_HEADERS): Added NSPage.h. - -Sun Jan 12 13:46:38 1997 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.12. There seems to be - a problem with Richard's and my patches to distributed objects, but - many other bug fixes have been added, NSZone has a complete - re-write, -awakeAfterUsingCoder: is now called, and NSString is - all cleaned up and ready to go. Richard and I will work on fixing - D.O. for the next release. - - * examples/second-client.m: Include - instead of . - * examples/second-server.m: Likewise. - * examples/first-client.m: Likewise. - * examples/first-server.m: Likewise. - - Finish code necessary for versioning in CStreams and Coders. - Test this code by actually making a new format for BinaryCStream; - files created with the new format should be, on average, 4/5 the - size of the previous ones, and it should be faster. This is now - the default format, but files created with the old format should - still be readable. - - * src/BinaryCStream.m (PRE_SIZEOF_PREFIX_FORMAT_VERSION): New - macro for old version number. - (CURRENT_FORMAT_VERSION): New macro. - (DEFAULT_FORMAT_VERSION): Changed from 0 to 1. - ([BinaryCStream -_initForReadingFromPostSignatureStream: - withFormatVersion:]): New method. - ([BinaryCStream -initForWritingToStream:swithFormatVersion:]): New - method. - (WRITE_SIGNED_TYPE0): Renamed from WRITE_SIGNED_TYPE. - (WRITE_SIGNED_TYPE1): New macro. - (WRITE_SIGNED_TYPE): New macro for choosing between them. - (READ_SIGNED_TYPE0): Renamed from READ_SIGNED_TYPE. - (READ_SIGNED_TYPE1): New macro. - (READ_SIGNED_TYPE): New macro for choosing between them. - (WRITE_UNSIGNED_TYPE0, WRITE_UNSIGNED_TYPE1, WRITE_SIGNED_UNTYPE, - READ_UNSIGNED_TYPE0, READ_UNSIGNED_TYPE1, READ_UNSIGNED_TYPE): - Likewise. - ([BinaryCStream -encodeValueOfCType:at:withName:name]): Don't use - `unsigned' as part of the argument to the *_UNSIGNED_TYPE macros, - because the macros now include that themselves. - - * src/CStream.m ([CStream -_initForReadingFromPostSignatureStream: - withFormatVersion:]): New method. - ([CStream +cStreamReadingFromStream:s]): Use it. - ([CStream -initForReadingFromStream:swithFormatVersion:]): Likewise. - - * src/include/BinaryCStream.h (BinaryCStream): Declare new ivars - for holding sizeof C types. - - * src/include/CStream.h: Declare designated method for reading. - - * src/include/NSProcessInfo.h: Include - -Sat Jan 11 16:34:57 1997 Andrew McCallum - - * src/NSZone.m (NSCreateZone): Call initialize(), so that we won't - crash if someone tries to create an object before main() and - before initialize() gets called as a constructor. - (NSDefaultMallocZone): Likewise. - (initialize): Use a static variable to return immediately if we've - been run already. - - * checks/string.m (main): Use NSDefaultMallocZone() instead of - NS_NO_ZONE. - -Thu Jan 9 10:45:10 1997 Andrew McCallum - - * checks/client.m: Include instead of - . - (main): Use class NSString instead of String. - - * checks/server.m: Include instead of - . - - * src/objc/NXStringTable.h (STRVAL): Make it a macro instead of an - inline function to avoid warning. - - * src/NSPage.m (NSLogPageSize): Use NSPageSize() instead of - ns_page_size(). - (NSRoundDownToMultipleOfPageSize): Likewise. - (NSRoundUpToMultipleOfPageSize): Likewise. - - * src/NSString.m ([NSString -copy]): Use NSDefaultMallocZone() - instead of NS_NO_ZONE. - - * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): - Remove last parameter from calls to [NSBundle pathForResource...]. - The method doesn't exist. - - * src/NSBundle.m: Rearrange #include's a little. - - * src/Connection.m ([Connection - -_getReceivedReplyRmcWithSequenceNumber:]): Break if the RunLoop - returns NO. (Reported by Richard Frith-Macdonald - .) - - * src/NSDictionary.m ([NSDictionary - +dictionaryWithContentsOfFile:]): Method implemented. - (From Scott Christley.) - - * src/NSString.m ([NSString -initWithFormat:arguments:]): Increase - BUFFER_EXTRA by a factor of 500. - - * src/Foundation/NSZone.h (ZoneLock): Don't prepend OBJC_MUTEX_T - with an underscore. - - * src/mframe.m (mframe_build_return): Change the way values of - type smaller than int are returned---don't offset into the int. - (Recommended by Richard Frith-Macdonald .) - -Thu Jan 9 17:06:00 1996 Richard frith-Macdonald - - * src/NSTimer.m ([NSTimer -compare:]): Added an implementation of - 'compare:' which compares timers by fire date. This is required - for the timers to be kept in the correct order by the Heap in - Runloop. Fixes a problem where a timer could be delayed - indefinately. - -Wed Dec 04 12:39:24 1996 Scott Christley - - * src/Makefile.sed.nt: remove Foundation directory if it exists - before installing header files. Don't regenerate lex.sf.m. - * src/NSSet.m (-unionSet:): Implement method. - (-intersectSet:, -minusSet:): Implement methods. - * src/NSString.m (-initWithContentsOfFile:): Use Win32 specific - functions for file operations. - * src/md5.c: Include config header file. - * src/include/config-win32.h: vsprintf returns length on Win32. - * src/NSUser.m (NSHomeDirectoryForUser, NSUserName): Implement - Win32 specific versions. - -Thu Nov 21 12:00:44 1996 Scott Christley - - * src/include/NSDictionary.h (+dictionaryWithContentsOfFile:): New - method. - * src/proplist.l (COMMENT, LINE_COMMENT): Added lexical rules for - traditional C comments and ObjC line comments. Add carriage - return '\r' as part of whitespace rules. - * src/lex.pl.m: Regenerated with proplist.l changes. - * src/proplist.tab.m: Likewise. - * src/NSArray.m (-sortedArrayUsingSelector:): Implemented. - (-sortedArrayUsingFunction:context:): Implemented. - (-sortUsingFunction:context:): Implemented. - * checks/nsarray.m: Add tests for sorting methods. - -Tue Nov 19 09:06:00 1996 Richard Frith-Macdonald - - * src/ConnectedCoder.m: Release packet after invoking - initialisation method of super which retains it. To fix memory - leaks. - - * src/Connection.m (+rootProxyAtName:onHost:): Return nil if we - can't create port. - (-forwardForProxy:selector:argFrame:): Modified to cooperate - better with mframe_build_return() so that the created decoder is - released reliably. Fixes a memory leak. - (-_getReceivedReplyRmcWithSequenceNumber:): Added code to release - allocated NSDate object on exit - fixes a memory leak. - - * src/Decoder.m (-_coderCreateReferenceForObject:): Changed code - to release dummy object after insertion in array (which retains - it). fixes memory leak. - - * src/Encoder.m (-initForWritingToStream:withFormatVersion: - cStreamClass:cStreamFormatVersion:): Release stream after invoking - initialisation method of super which retains it. To fix memory - leaks. - - * src/KeyedCollection.m (-dealloc): Added call to - NSDeallocateObject() to ensure that the memory used by the - enumerator is released. - - * src/RunLoop.m: Changed code to get timers to work correctly and - enabled timer support by default. Fixed all the cases I could - spot where the '_current_mode' could be left in the wrong state. - Modified so that the object listening on a file descriptor need - not be the same as the object speaking on it. Added code to - release the enumerator state information for Bags after use - - fixes memory leak. - - * src/mframe.m (mframe_build_return): Modified to cooperate better - with [Connection -forwardForProxy:selector:argFrame:]. - -Mon Jan 6 16:06:21 1997 Andrew McCallum - - * src/NSDictionary.m ([NSDictionary -initWithContentsOfFile:]): - Implemented. (By David Wetzel .) - - * src/NSAssertionHandler.m [NSAssertionHandler - -handleFailureInMethod:object:file: lineNumber:description:]: Use - the FORMAT argument! (Reported by Wolfgang Baron - .) - - * src/NSString.m ([NSString -hasPrefix:]): Fix logic to return - correct value. - (Reported by David Wetzel .) - - * src/NSString.m ([NSString -description]): Free DEST to prevent - memory leak! - (Reported by Wolfgang Baron .) - - * src/NSException.m (_NSUncaughtExceptionHandler): Don't declare - it static. (Reported by John Hethcox .) - - * src/BinaryCStream.m (BITSPERBYTE): If it hasn't been defined - after #include's guess that it's 8. - - * checks/nsscanner.m: Removed RCS keyword. - -Sat Nov 16 23:39:11 1996 Yoo C. Chung - - * src/NSPage.m (NSLogPageSize): Fix logic to return correct value. - -Wed Nov 13 16:27:39 1996 Adam Fedor - - * aclocal.m4 (OBJC_SYS_DYNAMIC_FLAGS): Check if executable needs - dynamic ldflags. - * checks/Makefile.in (LDFLAGS): Include dynamic ldflags. - (BUNDLE_NAME.bundle): Add new Resources directory. - - * configure.in: Provide platform definition. Check DIR - definitions. - * src/Makefile.in (DEFS): Use platform definition. - - * src/NSBundle.m: Rewrite of NSBundle class to cache bundles and - update searching of resources. _bundles and _releasedBundles are - static NSMapTables for caching bundles. - (bundle_object_name): Use executable name, if provided. - (_bundle_resource_path): Use NSString methods. - (_bundle_path_for_name): New function. - ([NSBundle -_bundleClasses]): New private method. - ([NSBundle +mainBundle]): Use NSString methods. - ([NSBundle +bundleForClass]): New search process using map - tables. - ([NSBundle -initWithPath]): Likewise. - ([NSBundle -release]): New method. - ([NSBundle -retain]): New method. - ([NSBundle -retainCount]): New method. - ([NSBundle -dealloc]): Release new ivars. - ([NSBundle -classNamed:]): Search from new _bundleClasses ivar. - ([NSBundle -principalClass:]): New loading protocol. - ([NSBundle -_bundleResourcePathsWithDirectory:]): New method. - ([NSBundle -pathForResource:ofType:inDirectory:]): New search - protocol. - ([NSBundle -pathsForResourcesOfType:inDirectory:]): New method. - ([NSBundle -localizedStringForKey:value:table:]): Implement. - ([NSBundle -resourcePath]): New method. - ([NSBundle -infoDictionary]): New method. - ([NSBundle -bundleVersion]): Removed. - ([NSBundle -setBundleVersion:]): Removed. - * NSBundle.h: Add new ivars. Add new OpenStep methods, remove - obsolete methods. New localization macros. - -Wed Nov 13 14:10:00 1996 Richard Frith-Macdonald - - * src/Connection.m ([Connection +rootProxyAtName:onHost:]): - Return nil if we fail to create a port for talking to a remote server. - ([Connection forwardForProxy:selector:argFrame:]): - Changes to ensure that ConnectedDecoder is correctly dismissed in the - case where a DO method returns an object but does not have any - parameter values returned. - - * src/mframe.m (mframe_build_return()): - Cooperate with [Connection forwardForProxy:selector:argFrame:] so - that it's callback function is called to tell it dismiss the - ConnectedDecoder. - - * src/RunLoop.m ([RunLoop -limitDateForMode:]): - Various changes to get timeouts working reliably. - Ensure that _current_mode is restored correctly on exit. - - * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): - Ensure that _current_mode is restored correctly on exit. - -Wed Nov 6 11:59:08 1996 Adam Fedor - - * src/NSLog.m: New file - * src/Makefile.in (GNUSTEP_MFILES): Add NSLog.m - * src/include/NSObjCRuntime.h: Add NSLog definitions. - -Mon Nov 4 12:30:05 1996 Adam Fedor - - * src/objc-load.c: Include . - -Sat Sep 21 15:18:47 1996 Yoo C. Chung - - * src/NSZone.m: Use constructor attribute with initialize(). - -Thu Sep 19 22:09:08 1996 Yoo C. Chung - - * src/DelegatePool.m: - Use NSDefaultMallocZone() instead of NS_NOZONE. - * src/NSProcessInfo.m: Likewise. - - * src/NSObject.m: - Use NSDefaultMallocZone() instead of NS_NOZONE. - Use NSZoneFromPointer() instead of NSZoneFromPtr(). - - * src/NSProcessInfo.m: Use NSDefaultMallocZone() instead of 0. - And cosmetic changes. - - * src/NSHashTable.m: Use NSDefaultMallocZone() instead of 0. - * src/NSMapTable.m: Likewise. - * src/o_map.m: Likewise. - - * src/NSPage.m: - Use valloc() in NSAllocateMemoryPages(). - Cosmetic style changes. - - * src/NSZone.m: Complete rewrite. - * src/include/NSZone.h: Extensive modifications. - -Thu Dec 5 17:20:58 1996 Nick Christopher - - * NSString.m [NSString -componentsSeparatedByString]: Didn't - handle strings with separators longer than a single character - and in other cases. - - * stringsfile.l: The definition of LABEL needed expanding. - -Sun Jan 5 17:41:37 1997 Andrew McCallum - - Further changes for the NSString implementation. - - * src/NSGCString.m ([NSGMutableCString -insertString:atIndex:]): - Use -cStringNoCopy instead of the removed method - -_cStringContents. - - * src/include/Stream.h (StreamException): Change type to NSString - from id . - - * src/include/NSUser.h (NSUserName, NSHomeDirectory, - NSDirectoryForUser): Change the return types from (char*) to - (NSString*). - - * src/include/NSUserDefaults.h (NSUserName, NSHomeDirectory, - NSDirectoryForUser): Declare them unconditionally; before it was - conditioned on NEXT_FOUNDATION. - - * src/include/NSArray.h: Don't include - * src/include/Streaming.h: Likewise. - * src/include/Port.h: Likewise. - * src/include/Coder.h: Likewise. - - Changes to send -awakeAfterUsingDecoder, and to do the proper - object substitution if necessary. - - * src/Decoder.m ([Decoder - +readSignatureFromCStream:csgetClassname: - nameformatVersion:version]): Better commented. - ([Decoder -_coderSubstituteObject:atReference:]): New method. - ([Decoder -_coderPushRootObjectTable]): Better commented. - ([Decoder -finishDecodingInterconnectedObjects]): Implement an - approach to root-object-based -awakeAfterUsingCoder. - ([Decoder -decodeObjectAt:anObjPtr:name]): Send -awakeAfterUsingCoder: - here. First see if the object actually responds to it, then send - it and make the object substitution if necessary. Also make the - appropriate substitution in Decoder's internal tables matching - references numbers to objects. - - * src/Encoder.m (DEFAULT_DEFAULT_FORMAT_VERSION): Renamed from - DEFAULT_FORMAT_VERSION, for clarity with variable by the same old - name. - - * checks/fref.m: Add comment and move around headers for easier - reading. - - * src/include/NSAutoreleasePool.h (init_autorelease_thread_vars): - Make it a macro instead of a static inline function. This avoids - the warning with not optimizing. - - * checks/Makefile.in (CFLAGS): Remove -O, for easier debugging. - (SRCS): Added awake.m. - * checks/awake.m: New file, testing -awakeAfterUsingCoder:. - -Sun Nov 24 09:20:47 1996 Andrew McCallum - - * src/NSString.m: Fixed `Caveats' comment. - ([NSString -commonPrefixWithString:options:]): Method implemeneted. - ([NSString -capitalizedString]): Method implemented. - ([NSString -lowercaseString]): Method implemented. - ([NSString -uppercaseString]): Method implemented. - ([NSString -stringByExpandingTildeInPath]): Method implemented. - ([NSString -stringByAbbreviatingWithTildeInPath]): Method implemented. - ([NSString -stringByStandardizingPath]): Method implemented. - ([NSString -_cStringContents]): Method removed. All callers changed - to use -cStringNoCopy. - ([NSString -objectAtIndex:]): Method removed. - - * src/include/NSString.h: Moved non-OpenStep methods aside, put - some under STRICT_OPENSTEP, others under NO_GNUSTEP. Reordered - declarations to match. - [NSString -_cStringContents]: Method removed. - - * src/ostream.m: Don't use old String methods; use NSString - methods. - - * src/include/NSString.h: Don't include - and . - [!NO_GNUSTEP]: Declare -cStringNoCopy. - - * src/UdpPort.m: Don't include - - * src/TextCStream.m ([TextCStream -decodeName:name]): Don't use - the non-existant +stringWithCStringNoCopy:. - * src/Stream.m ([Stream -readLine]): Likewise. - * src/MemoryStream.m ([MemoryStream -readLine]): Likewise. - - * src/NSString.m ([NSString -cStringNoCopy]): New method. - - * src/NSGCString.m ([NSGCString -emptyCopy]): Method removed. It - was part of the Collecting protocol. - ([NSGMutableCString -emptyCopy:]): Likewise. - - * src/*.m, src/include/*.h: Substitute (NSString*) for (id - ). - - * src/Makefile.in (GNU_MFILES): Remove CString.m, - ConstantString.m, MutableString.m, MutableCString.m, String.m. - (GNU_HEADERS): Remove include/String.h. - - * src/NSString.m: Don't include . - ([NSString +initialize]): Don't use static variable to prevent getting - run twice. - -Mon Nov 18 11:30:39 1996 Andrew McCallum - - * STATUS: Removed classes NSBTreeBlock, NSBTreeCursor, - NSByteStore, and NSByteStoreFile since they are no longer part of - the OpenStep standard. - -Sat Nov 2 15:39:56 1996 Andrew McCallum - - * src/Decoder.m ([Decoder - -_coderCreateReferenceForInterconnectedObject:]): Autorelease the - placeholder object to prevent memory leak. - - * src/Connection.m ([Connection - -forwardForProxy:selector:argFrame:]): Add an assertion that we - processed all arguments and dismissed the ConnectedCoder. - -Thu Oct 31 11:54:42 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.11. - - * src/Makefile.in (DIST_FILES): Remove include/config-win32.sed. - - * src/NSString.m (HAVE_REGISTER_PRINTF_FUNCTION): Move definition - below #include's. - - * checks/nsnotification.m ([Observer -gotNotificationFoo:]): Don't - use %@ inside printf(). - ([Observer -gotNotificationFooNoObject:]): Likewise. - - * checks/nshashtable.m (main): Avoid adding 0 to the hashtable, - because that is currently the o_hash_not_an_element_marker. - - * src/BinaryCStream.m ([BinaryCStream - -encodeValueOfCType:at:withName:name]): Use intermediate float - value. - ([BinaryCStream -decodeValueOfCType:at:withName:]): Likewise. - - * src/stringsfile.y: Remove duplicated content. - * src/stringsfile.l: Likewise. - - * src/StdioStream.m: Fix typo. That's HAVE_STRERROR, not - HAS_STRERROR. - - * src/BinaryCStream.m ([BinaryCStream - -decodeValueOfCType:at:withName:]): Don't make float and double - `volatile'. It conflicts with memcpy. - ([BinaryCStream -encodeValueOfCType:at:withName:name]): Likewise. - - * src/Makefile.in (DEFS): Add comment. - - * src/NSDictionary.m: Include Foundation/NSException.h to get - NSInvalidArgumentException. - - * src/NSCalendarDate.m ([NSCalendarDate - -descriptionWithCalendarFormat:locale:]): Remove unused variables - MS and DS. Avoid warning by not trying to sprintf() a zero-length - string. - - * src/include/NSZone.h: Include gnustep/base/config.h instead of - preface.h; otherwise we get a dependancy loop on the definition on - NSZone. - * src/o_array.m: Include gnustep/base/preface.h first. - - * src/Makefile.in (HEADERS_INSTALL): Added include/config.h. - (install): Don't install include/config.h specially, it's now done - with the rest of the HEADERS_INSTALL files. - (ALL_CPPFLAGS): Don't pass `-include include/config.h' since - include/preface.h now does that. - * src/include/preface.h.in: Include , and - do it first. - - * src/NSUser.m (NSUserName): Make is work for SOLARIS. (Reported - by M. Decugis .) - - * src/NSUserDefaults.m ([NSUserDefaults -initWithUser:]): Don't - try to append to a immutable string! - ([NSUserDefautls +standardUserDefaults]): When creating a new - defaults, return it, not nil! (Reported by M. Decugis - .) - - * src/BinaryCStream.m ([BinaryCStream - -encodeValueOfCType:at:withName:name]): Use memcpy() instead of - assignment to get the floats and doubles from the `at:' argument. - ([BinaryCStream -decodeValueOfCType:at:withName:]): Likewise, for - setting the values. (Reported by M. Decugis - .) - - * src/NSPage.m (getpagesize) [__SOLARIS__]: Define as macro making - proper sysconf call. (Reported by M. Decugis - .) - (NSPageSize): Remove the dependancy on __mach__ to a #define above. - - * configure.in: Use config/config.vsprintf.c to define - VSPRINTF_RETURNS_LENGTH. Deal with different systems for which - vsprintf() returns either the length or the char*. - * Makefile.in (DIST_FILES): Added config/config.vsprintf.c. - * config/config.vsprintf.c: New file. - * src/include/preface.h.in (VSPRINTF_LENGTH): New macro; - definition depends on VSPRINTF_RETURNS_LENGTH. - * src/MemoryStream.m ([MemoryStream -writeFormat:arguments:]): Use - VSPRINTF_LENGTH. - * src/NSString.m ([NSString -initWithFormat:arguments:]): Likewise. - * src/String.m ([String -initWithFormat:arguments:]): Likewise. - ([String -initWithCFormat:arguments:]): Likewise. - * acconfig.h: Add VS_PRINTF_RETURNS_LENGTH. - - * src/RunLoop.m ([RunLoop -limitDateForMode:]): Bracket timer - firing with a retain/release of the MIN_TIMER. (Reported by - Richard Frith-Macdonald .) - - * Heap.m: Fix index comparisons. (From Richard Frith-Macdonald - .) - - * src/include/RunLoop.h (RunLoop _mode_2_fd_speakers): New ivar. - ([RunLoop]): Added new methods for notification of readiness of file - descriptors for reading and writing. Done by Richard - Frith-Macdonald . - * src/RunLoop.m: Added implementation of new methods for - notification of readiness of file descriptors for reading and - writing. Done by Richard Frith-Macdonald - . - * examples/first-server.m: Added test of RunLoop FD listening. - Done by Richard Frith-Macdonald . - - * src/mframe.m (method_types_get_next_argument): Do weird argframe - workaround not just on m68k, but on all NeXT systems. (Reported - by Richard Frith-Macdonald .) - - * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Fix - assignment of TIMEOUT.TV_USEC. (Reported by Richard - Frith-Macdonald .) - -Wed Oct 23 11:19:05 1996 Scott Christley - - * src/Makefile.sed.nt: Link with ObjC runtime DLL library - when making gnustep-base a DLL. - * src/NSProcessInfo.m (main): Initialize network library for Win32. - * src/RunLoop.m (-acceptInputForMode:beforeDate:): When determining - which ports are ready for reading, don't assume that file - descriptor for FD_ISSET is an integer. Maintain list of ports - we are listening to so that we check those exact ports when - determining which are ready for reading. - * src/TcpPort.m (invalidate): Use closesocket function on Win32. - (_getPacketSize:andReplyPort:fromSocket:inPort:): Use recv instead - of read for Win32 as read doesn't work for sockets. - (_fillFromSocket:): Likewise. - (_writeToSocket:withReplySockaddr:): Use send instead of write - for Win32 as write doesn't work for sockets. - * src/behavior.m: Don't directly access the ObjC runtime uninstalled - dtable variable, use the public function instead. - * src/objc-load.m: Likewise. - * checks/Makefile.sed.nt: Add specific targets for tcpport-server - and tcpport-client. Remove unneeded definitions. - -Tue Oct 15 15:29:07 1996 Adam Fedor - - * src/objc-load.c: Use gnu names for objc_load_modules and - objc_unload_modules functions as defined in header. - * src/include/objc-load.h (objc_load_modules, objc_unload_modules): - Use Class not Class*. - -Fri Oct 18 10:45:10 1996 Scott Christley - - * Makefile.sed.nt: Always force gnustep/base target. - * src/NSDate.m (+timeIntervalSinceReferenceDate): Use native - Win32 functions to obtain current time. - * src/Time.m (gettimeofday): Win32 implementation, not year - 2000 compliant so don't use it. - * src/include/NSZone.h: Include preface.c so that NSZone gets - configuration settings. - -Wed Oct 16 10:01:23 1996 Scott Christley - - * checks/nsdate.m: New file. - * src/NSCalendarDate.m: New file. - * checks/Makefile.in: Add test program for NSDate classes. - * src/Makefile.in (GNUSTEP_MFILES: Add NSCalendarDate.m. - * src/NSDate.m: Eliminate use of NSConcreteDate. Utilize the - NSCalendarDate class for implementing some methods. - * src/include/NSDate.h: Add NSCalendarDate interface. - -Tue Oct 1 12:56:09 1996 Nicholas Christopher - - * NSString.m: Implemented -initWithContentsOfFile: and - -propertyListFromStringsFileFormat:. - * stringsfile.l, stringsfile.y: New files. - -Fri Oct 25 20:22:37 1996 Andrew McCallum - - * src/StdioStream.m (strerror) [!HAS_STRERROR]: New function from - Richard Frith-Macdonald . - * configure.in: Check for strerror(). - -Fri Sep 27 10:33:07 1996 Adam Fedor - - * aclocal.m4 (OBJC_CON_AUTOLOAD): New macro. Explicit check for - constructor loading. - (OBJC_SYS_AUTOLOAD): Insert '_cv' in cache variable name to get it - to cache correctly. - (OBJC_SYS_DYNAMIC_LINKER): Use headers to determine linker. Check - for libraries separately. - (OBJC_SYS_DYNAMIC_FLAGS): Check to see if '-shared' load flag - works (for DEC Alpha). - -Thu Sep 26 12:39:18 1996 Adam Fedor - - * src/ostream.m (ostream_close_memory): Change to - OSTREAM_SAVEBUFFER constant. - -Wed Sep 25 18:32:14 1996 Scott Christley - - * src/include/config-win32.sed: Delete file. - * src/include/config-win32.h: Changes for new config.h.in. - * configure.bat: Changes for new config.h.in. - * src/Makefile.sed.nt: Changes for new config.h.in. Make sure - preface.h is created before creating gnustep/base directory. - * src/NSUserDefaults.m: Don't include header file for Win32. - * src/Time.m: Specialized time routines for Win32. - - * src/Makefile.in (distclean): Remove generated files. - * admin/example.patch: Remove CVS keywords. - * src/NXStringTable.m: Likewise. - * src/dld-load.h: Likewise. - * src/hpux-load.h: Likewise. - * src/include/objc-load.h: Likewise. - * src/null-load.h: Likewise. - * src/objc/NXStringTable.h: Likewise. - * src/simple-load.h: Likewise. - -Fri Oct 25 18:42:45 1996 Andrew McCallum - - * src/NSSet.m ([NSSet -anyObject]): Implemented. - - * src/NSDictionary.m ([NSDictionary - +dictionaryWithObjectsAndKeys:]): New method. - -Wed Sep 25 08:47:33 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.10. - - * src/NSString.m ([NSString -initWithFormat:arguments:]): Fix bug - whereby multiple %@'s in the same format string created incorrect - output. - - * examples/second-client.m: Don't pass %@ directives to printf(); - use %s and -cStringNoCopy instead. - * examples/second-server.m: Likewise. - - * doc/install.texi: Add the installation step. - -Tue Sep 24 11:20:06 1996 Andrew McCallum - - * Makefile.in (mostlyclean, clean, distclean, maintainer-clean): - Reverse order of subdir-cleaning and topdir-cleaning so that we - don't force the Makefile to automatically run ./configure for us, - (which sometimes happens in the wrong way). - - * src/NSString.m ([NSString -copy]): New method. Now -copy sent - to strings should work. (Added temporarily until this problem is - fixed by me overhaul of the string classes to separate Core and - NonCore methods.) - * checks/string.m (main): Add tests for -copy and -mutableCopy. - - * src/ostream.m (ostream_open_memory): Cast (const char*) to - (char*) when passing to MemoryStream -init... method. - - * examples/second-client.m (main): Rename `exception' to - `localException'. (Reported by Erich Stefan Boleyn - .) - - * admin/HOWTO-patches: Update from libobjects terminology to - gstep-base terminology. - - * doc/install.texi: Mention specification of the GNU runtime in - the GNUstep-specific instructions. - - * configure.in: Warn the user that GNUstep doesn't work with the - NeXT Objective C runtime. - - * src/BinaryCStream.m: Check HAVE_VALUES_H before trying to - include ; use if we don't. - * configure.in: Add check for needed by - BinaryCStream.m. - (Reported by Gregor Hoffleit .) - - * src/NSUserDefaults.m: Don't try to include NeXT's headers; just - include GNUstep headers. - * src/include/NSUserDefaults.h: Likewise. - (Reported by Gregor Hoffleit .) - - * src/ostream.m (ostream_close_memory): Send -setFreeWhenDone:NO to - the MemoryStream, not -release. - * src/MemoryStream.m ([MemoryStream -setFreeWhenDone:]): New - method. - * src/include/MemoryStream.h: Declare new method. - (Reported by Adam Fedor .) - - * aclocal.m4: Do forgotten renames of ac_cv_sys_dld and - ac_cv_sys_autoload to objc_cv_sys_dld and objc_cv_sys_autoload. - (Reported by Nick Christopher .) - - * src/include/objc-gnu2next.h: Don't include - gnustep/base/objc-malloc.h. - - * src/NSSet.m ([NSMutableSet -addObjectsFromArray:]): Implemented. - -Wed Sep 18 09:11:44 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.9. - - * src/NSString.m (HAVE_REGISTER_PRINTF_FUNCTION): Temporarily set - this to 0 until I figure out when register_printf_function's - output handler function takes `va_list' and when it takes - `void**'. - - * src/TcpPort.m: Use new ivar name eof_position, not old - eofPosition. - - * src/include/NSZone.h: Don't include gnustep/base/config.h. - -Tue Sep 17 16:44:15 1996 Andrew McCallum - - * src/ostream.m (ostream_open_memory): Use new MemoryStream method - to specify that buffer should not be deallocated when MemoryStream - is deallocated. Don't do the extra retain that was the previous - workaround. - * src/MemoryStream.m: Rename all uses of ivar eof_position. - ([MemoryStream -_initOnMallocBuffer:freeWhenDone:size: - eofPosition:prefix:position:]): Method name changed to include - freeWhenDone:. Set new ivar. - ([MemoryStream -_initOnMallocBuffer:size: - eofPosition:prefix:position:]): New method (with old name) that - calls above method with `YES' for freeWhenDone:. - * src/include/MemoryStream.h: Declare new method. - (MemoryStream free_when_done): New ivar. - (MemoryStream eof_position): Ivar renamed from eofPosition, to - conform to GNU coding standards. - - * src/Makefile.in (GNU_MFILES): Rename objc_streams.m to - ostream.h. - (GNU_HEADERS): Rename objc_streams.h to ostream.h. - * src/ostream.m: File renamed from src/objc_streams.m. Fix - copyright date, and make minor formatting changes. - * src/ostream.h: File renamed from src/objc_streams.h. Fix - copyright date, and make minor formatting changes. - - * src/MemoryStream.m (MEMORY_CHECK): Macro deleted. objc_malloc() - and friends take care of raising the correct exception. All calls - removed. - -Tue Sep 17 11:43:23 1996 Adam Fedor - - * src/Makefile.in (GNU_MFILES): Add new file. - (GNU_HEADERS): Likewise. - - * src/MemoryStream.m ([MemoryStream - -initWithSize:prefix:position:]): Add error checking. - ([MemoryStream -writeBytes:length:]): Likewise. - ([MemoryStream -setStreamBufferCapacity:]): Likewise. - * src/StdioStream.m ([StdioStream -initWithFilename:fmode]): Add - error checking. - ([StdioStream -initWithFileDescriptor:fmode]): Likewise. - ([StdioStream -writeBytes:length:]): Likewise. - ([StdioStream -readBytes:length:]): Likewise. - - * src/Stream.m ([Stream -writeFormat:]): Implement. - ([Stream -setStreamPosition:]): Likewise. - * src/MemoryStream.m ([MemoryStream -writeFormat:arguments:]): - Implement instead of writeFormat:. ([MemoryStream - -setStreamPosition:seekMode:]): Implement instead of - -setStreamPostion:. - * src/StdioStream.m ([StdioStream -writeFormat:arguments:]): - Implement instead of writeFormat:. ([StdioStream - -setStreamPosition:seekMode:]): Implement instead of - -setStreamPostion:. - - * src/objc_streams.m: New file. - * src/base/objc_streams.h: New file. - - * src/base/Stream.h: Declare new exception. - * src/Stream.m: Define it. - - * src/base/Streaming.h: Add new enum type. Add - -setStreamPostion:seeMode: to protocol. - -Tue Sep 17 10:33:31 1996 Andrew McCallum - - * doc/install.texi: Fix typo in use of @code{}. - - * src/md5.c: Don't include config.h. - - * Makefile.in (DIST_FILES): Added contents of RCS_FILES. Added - acconfig.h. - (RCS_FILES): Variable removed. - - * doc/gnustep-faq.texi: Cause the time stamp to be updated - automatically by Emacs. - - * src/NSScanner.m ([NSScanner -scanRadixUnsignedInt:]): New - method. - ([NSScanner -_scanInt:]): Deal with overflow better. (?) - ([NSScanner -scanLongLong:]): Likewise. - * src/include/NSScanner.h: Declare new method. - * checks/nsscanner.m: Test new method, -scanRadixUnsignedInt:. - Changes from Eric Norum . - - * src/NSObject.m ([NSObject -doesNotRecognizeSelector:]): Raise - NSInvalidArgumentException, not NSGenericException. (Reported by - Jeremy Bettis .) - -Mon Sep 16 20:11:54 CDT 1996 Jeremy Bettis - - * src/HashTable.m ([HashTable -isKey]): Updated isKey to use the new - hash_value_for_key function in the runtime, and thereby allow for - nulls in HashTables. - -Mon Sep 16 15:08:42 1996 Andrew McCallum - - * aclocal.m4 (DYNAMIC_LINKER): Put double quotes around some - $-variable dereferences. (Reported by Richard Frith-Macdonald - .) - - * src/o_vscanf.c: Include . (Reported by Richard - Frith-Macdonald .) - - * src/include/preface.h.in: Don't include gnustep/base/config.h. - Note, this file used to define NeXT_runtime and NeXT_cc. These - macros will no longer be available to library users. - - * src/include/config.h.in: File removed. It is not automatically - generated by autoheader in src/Makefile. - - * src/o_vscanf.c: Don't include no-longer-existant - gnustep/base/objc-malloc.h. (Reported by Adam Fedor.) - - * src/Makefile.in (include/config.h.in): New dependancy. - (include/config.h): New dependancy. - (ALL_CPPFLAGS): Added -include argument to have gcc look at - include/config.h. It is no longer included in include/preface.h - because other packages that use the installed Base Library may - have their own ideas about these macro values. - - * acconfig.h: New file, needed for autoheader. - - * configure.in: Use AC_CONFIG_HEADER to put config macros in a - file instead of on gcc's command line. Use AC_DEFINE_UNQUOTED to - set NeXT_runtime and NeXT_cc instead of using AC_SUBST. - - * make-dist-diff (diff): Add -N flag so new files will get - created. - -Sat Sep 7 13:37:32 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.8. - - Beginning of changes related to use of new Objective C runtime. - - * Makefile.in (DIST_FILES): Remove gcc-objc.patch. Add - gcc-2.7.2-objc.diff and gcc-2.7.2.1-objc.diff. - - * configure.in: Insert -lobjc before rest of LIBS, not after. - - * src/include/NSThread.h: Remove underscore from front of - objc_thread type. - - * src/NSObject.m: Remove underscores from front of objc_mutex - types. - ([NSObject -error:]): Use objc_verror(), not _objc_error. - - * doc/install.texi: Refine instructions for installing pthreads. - Wow, is it yucky. - - * configure.in: Remove check for sel_types_match. That patch was - added long ago. - - * src/include/preface.h.in (OBJC_STRINGIFY): New macro. - - * src/include/preface.h.in: Don't include objc-malloc.h. - - * src/Foundation/NSLock.h: Remove underscore from before - objc_mutex_t. - - * src/include/preface.h.in (OBJC_MALLOC): Macro moved here from - src/include/objc-malloc.h. - (OBJC_VALLOC): Likewise. - (OBJC_ATOMIC_MALLOC): Likewise. - (OBJC_REALLOC): Likewise. - (OBJC_CALLOC): Likewise. - (OBJC_FREE): Likewise. - - * src/mframe.m: Don't include objc-malloc.h. - * src/RNGAdditiveCongruential.m: Likewise. - * src/NSAutoreleasePool.m: Likewise. - * src/MemoryStream.m: Likewise. - * src/AutoreleasePool.m: Likewise. - - * src/Makefile.in (GNU_MFILES): Remove objc-malloc.m. - (GNU_HEADERS): Remove include/objc-malloc.h. - - * src/mframe.m (mframe_build_return): In accordance with Objective - C runtime change, use objc_malloc as a function, not a function - pointer. - * src/behavior.m (behavior_class_add_methods): Likewise. - * src/Storage.m ([Storage -initCount:elementSize:description:]): - Likewise. - ([Storage -shallowCopy]): Likewise. - ([Storage -read:]): Likewise. - * src/Storage.m ([Storage -initCount:elementSize:description:]): - Likewise. - * src/NSMutableData.m ([NSMutableData -initWithCapacity:]): Likewise. - * src/NSGData.m ([NSGMutableData -initWithCapacity:]): Likewise. - * src/NSData.m ([NSMutableData -initWithCapacity:]): Likewise. - * src/NSAutoreleasePool.m ([NSAutoreleasePool -init]): Likewise. - ([NSAutoreleasePool -addObject:]): Likewise. - * src/MemoryStream.m ([MemoryStream -readLine]): Likewise. - * src/Invocation.m ([Invocation -initWithCoder:]): Likewise. - * src/o_vscanf.c (STRING_ARG): Likewise. - (STRING_ADD_CHAR): Likewise, with objc_realloc. - * src/NSZone.m: Likewise. - * src/Storage.m: Likewise. - * src/MemoryStream.m ([MemoryStream -writeBytes:length:]): Likewise. - - * doc/install.texi: Update instructions for new Objective C - runtime patches and for new pthreads. - - * RELEASE-NOTES: Talk about need for new Objective C runtime to - compile this release. - - End of changes related to use of new Objective C runtime. - - * config.guess: New version from FSF. - - * doc/Makefile.in: Added some pattern rules, but commented them - out for now. - - * src/NSGCString.m ([NSGCString -substringFromRange:]): Don't - always return a mutable string class; return the same - mutable/immutable string class as self. This also simplies the - code. - - * src/NSGCString.m ([NSGCString -substringFromRange:]): New - method, overrides superclass method with more efficient - implementation. (From Eric Norum.) - - * src/NSScanner.m: Now that NSCharacterSet's does its own caching, - simplify this code. - (Changes from Eric Norum .) - - * src/NSCharacterSet.m (NSCharacterSet_PATH): New macro, replacing - BITMAP_PATH. Value partially determined by - GNUSTEP_INSTALL_PREFIX. - - * configure.in: Use AC_CHECKING instead of `echo', so ./configure - obeys --quiet and --silent. - - * src/Makefile.in (DEFS): Add definition of - GNUSTEP_INSTALL_PREFIX, equal to $(prefix). This is needed by - NSCharacterSet, so it knows where to find the char set data files. - -Thu Aug 1 10:42:19 1996 Adam Fedor - - * src/NSCharacterSet.m ([NSCharacterSet -_bitmapForSet:number:]): - Retain cached set. - -Wed Sep 4 11:29:31 1996 Andrew McCallum - - * doc/gnustep-faq.texi (Why don't we separate the OpenStep - standard classes from the GNU-specific classes?): New Q/A pair. - (Where can I get a copy?): Removed reference to Rochester's FTP site, - which will no longer be used, now that I'm at CMU. - -Mon Sep 2 10:00:05 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.7. - - * checks/nsbundle.m: Use new exception variable name. - * checks/values.m: Likewise. - - * src/NSString.m ([NSString -substringFromRange:]): Implement it - using CString's for now so we can get it working; (we'll fix - everything for Unichar's in the next release). - - * checks/nsscanner.m: New file from Eric Norum. - - * Version: Remove spaces around `=' so file can be - read by sh. - (VERSION): Use curly braces for sh. - - * src/NSString.m ([NSString -substringFromRange:]): Fix bug in - references to string length. - - * src/NSGArray.m: Declare NonCore classes. - - * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): - Add an abort() after raising the exception, to avoid gcc warning. - - * Makefile.in (clean): Fix dependancies so we actually clean-top, - not mostlyclean-top. - (distclean): Analogously. - (maintainer-clean): Analogously. - -Tue Aug 27 13:38:14 1996 Adam Fedor - - * src/Connection.m ([Connection -_service_forwardForProxy]): Use - new exception variable name. - * src/NSCharacterSet.m: ([NSCharacterSet -_bitmapForSet:number:]): - Likewise - -Sat Aug 24 16:41:01 1996 Adam Fedor - - * src/include/NSException.h (NS_HANDLER): Change local exception - variable name. - -Wed Jul 17 16:04:29 1996 Adam Fedor - - * NSCharacterSet.m: Cache standard character - sets. ([NSCharacterSet +initialize]): New method. - ([NSCharacterSet _bitmapForSet:number:]): Return set from cache if - available, otherwise find bitmap file and add to cache. All - callers changed. - -Mon Sep 2 09:23:46 1996 Andrew McCallum - - * src/NSString.m ([NSString -substringFromRange:]): Raise correct - exceptions. - - * src/Makefile.in (install): Make a soft link from - `$(includedir)/gnustep/base' to `$(includedir)/objc' the same way - we do for `$(includedir)/Foundation'. - - * src/NSString.m ([NSString -getCharacters:range:]): Fix bug in - buffer index. - (Reported by Eric Norum .) - ([NSString -rangeOfString:aStringoptions:maskrange:aRange]): - Implemented. (By Eric Norum.) - - * src/NSUser.m: Include . - -Sun Aug 25 16:12:49 1996 Andrew McCallum - - * checks/Makefile.in (SRCS): Added nsscanner.m from Eric Norum. - - * src/NSScanner.m: Fix indentation. - ([NSScanner +scannerWithString:]): Rewrite to avoid unnecessary - local variable. - ([NSScanner -initWithString:]): Call [super init]. - ([NSScanner -_scanCharactersFromSet:intoString:]): Method renamed to - put underscore at the beginning, not in the middle of the method - name. All callers changed. - ([NSScanner -_skipToNextField]): Likewise. - ([NSScanner +localizedScannerWithString:]): New method, unimplemented. - ([NSScanner -scanDouble:]): Initialize `unichar c' to avoid warning. - ([NSScanner -scanLongLong:]): Don't compare with -(LONG_LONG_MIN), - this number is out of range since, in two-complement arithmetic, - we have one more negative number than positive numbers. - * src/include/NSScanner.h: Include . Fix - indentation. Standarize #define wrapper symbol. - - * src/NSScanner.m, src/include/NSScanner.h: New files from Eric - Norum. - -Sun Aug 11 10:54:49 1996 Andrew McCallum - - * src/NSUser.m (NSHomeDirectory): Use NSHomeDirectoryForUser - instead of the HOME environment variable. - - * src/NSUserDefaults.m: #include to - get declarations for NSUser* functions. - (NSUserName): Function removed; it can already be found in - NSUser.m. - (NSHomeDirectory): Likewise. - (NSHomeDirectoryForUser): Likewise. - - * doc/Makefile.in: Fix typo: properly comment out section. - - * doc/gnustep-faq.texi: English fixes, and move NSScanner to - `implemented' list. - - * doc/install.texi: English fixes, and mention --enable-shared - with Base Library configure directions. - - * README.foundation: Add note about making a soft link, instead of - adding #ifdef's to the code. - - * NSBundle.README: Change name from libobjects to GNUstep Base - Library. - * README.first: Likewise. - -Wed Aug 7 09:06:10 1996 Andrew McCallum - - * src/mframe.m (mframe_build_return): Remove comment about users - responsibility to free returned char*'s; it's no longer true. - -Mon Aug 5 11:25:30 1996 Andrew McCallum - - * src/include/NSArray.h: Remove declaration of NonCore classes; - just the category is sufficient. - -Mon Sep 2 09:11:34 1996 Andrew McCallum - - * src/mframe.m: Use gcc's __builtin_return smarts to find location - of `char' and `short' return values; don't use my (possibly wrong) - guesses. - (retframe_char): New nested function. - (retframe_short): New nested function. - (mframe_do_call) [_C_CHR, _C_UCHR]: Use retframe_char. - [_C_SHT, _C_USHT]: Use retframe_short. - - * src/NSObject.m ([NSObject -isKindOfClass:]): Fix formatting. - -Fri Aug 30 17:00:29 1996 Andrew McCallum - - * src/Dictionary.m ([Dictionary -removeObject:]): Implemented - method. (Needs testing!) - -Thu Jul 11 21:12:41 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.6. - -Tue Jun 25 12:56:01 1996 Scott Christley - - * NSCharacterSets/Makefile.in: Remove Makefile when distclean. - * admin/Makefile.in: Likewise. - * checks/Makefile.in: Change realclean target to maintainer-clean. - * doc/Makefile.in: Likewise. - * examples/Makefile.in: Likewise. - - * Makefile.in: Clean the subdirectories first before the top - level directory to avoid configuration loop. - - * checks/Makefile.sed.nt: Change name of runtime initialization - routine to use standard "_init_runtime" suffix. - * checks/nsarchiver.m: Likewise. - * checks/nsarray.m: Likewise. - * src/win32-entry.c: Likewise. - * src/Makefile.in: Likewise. Clean additional files. - - * src/NSDate.m: Use __WIN32__ macro instead of WIN32. - - * src/NSTime.m: Implement Win32 specific time routines. - * src/include/config-win32.h: Likewise. - -Fri Jun 21 16:45:31 1996 Scott Christley - - * configure.bat: New filenames for Win32 configuration. - * src/Makefile.in: (DIST_FILES): Add Win32 configuration files: - src/include/config-win32.sed, src/include/config-win32.h. - * src/BinaryCStream.m: Rename WIN32 to __WIN32__ to conform - to ANSI specifications. Perform any WIN32 customization. - * src/NSBundle.m: Likewise. - * src/NSPage.m: Likewise. - * src/NSProcessInfo.m: Likewise. - * src/NSUser.m: Likewise. - * src/NSRunLoop.m: Likewise. - * src/TcpPort.m: Likewise. - * src/UdpPort.m: Likewise. - * src/find_exec.c: Likewise. - * src/include/TcpPort.h: Likewise. - * src/include/Time.h: Likewise. - * src/include/config-nt.sed: Renamed to config-win32.sed. - * src/include/config-nt.h: Renamed to config-win32.h - -Thu Jul 11 08:20:34 1996 Andrew McCallum - - * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Remove - untrue assertion that SELF be this thread's current pool. - (Reported by Adam Fedor.) - - * checks/Makefile.in (LIBS): Remove -lmcheck. - - * Version (SUBMINOR_VERSION): Version 0.2.5. - - * doc/news.texi: Fix typo, replace @ with @@ in email address. - - * Version (SUBMINOR_VERSION): Version 0.2.4. - - * src/NSString.m (PRINTF_ATSIGN_VA_LIST): Reverse sense of test. - This macro should be defined if libc version is *less than* 5.2. - - * examples/dictionary.m: Long-overdue update for new collection - heirarchy. - * examples/textcoding.m (main): Fix typo in comment. - * examples/second-server.m: Add comments. - * examples/second-client.m (main): To avoid warnings: make SERVER - static; get rid of unused variable. - * examples/Makefile.in (CFLAGS): Added -Wno-format so we don't get - complains about the %@ printf directive. - - * doc/news.texi: Add news about NSUserDefaults, thread-safety, @%, - and NSPage. - * doc/readme.texi: Update description of classes, although the - list is still incomplete. - -Wed Jul 10 16:28:14 1996 Andrew McCallum - - * doc/gnustep-faq.texi: New Q/A about mixing Objective C and C++. - Include base-desc.texi for description of Base Library. Update - "state of development for Base Library. Correct description of - NeXT's archiving. Add ocbi.com ftp site. - * doc/base-desc.texi: Improve list of example classes. - * doc/announce.texi: Fix comments about NeXT's cc. - * doc/machines.texi: Label as out-of-date. - * doc/advertisement.texi: Comment out inclusion of machines.texi. - - * src/NSUserDefaults.m: Fix source to avoid warnings. - - * src/NSUserDefaults.m: New file from Georg Tuparev. - * src/include/NSUserDefaults.h: Likewise. - * src/NSUserDefaults.m, src/include/NSUserDefaults.h: Fix - formatting to conform to GNU standards. - * src/Makefile.in (GNUSTEP_MFILES): Added NSUserDefaults.m. - (GNUSTEP_HEADERS): Added include/NSUserDefaults.h. - -Tue Jul 9 20:05:16 1996 Andrew McCallum - - * doc/install.texi: Enumerate the steps, and various other - corrections. - - * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Free - fd_2_object before returning in case where select() returned 0. - (Reported by Marc Decugis .) - -Mon Jul 8 21:55:11 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): Version 0.2.3. - - * src/Invocation.m ([ArgframeInvocation -dealloc]): Release - arguments depending on ARGS_RETAINED, not RETURN_RETAINED. - - * checks/release.m: New file. - * checks/Makefile.in (SRCS): Added release.m. - - * src/o_map.m (o_map_remove_node): Function renamed from - o_map_remove_node_from_its_map(). Free the node after removing - it! Otherwise, memory leaks and leaks! - * src/NSObject.m (NSDecrementExtraRefCountWasZero): Call renamed - function for removing node. - - * src/NSAutoreleasePool.m (push_pool_to_cache): Avoid unnecessary - test. - (pop_pool_from_cache): Don't bother conditionally initializing the - cache; it will always be initialized when we are here. - ([NSAutoreleasePool -dealloc]): Add assertion. - ([NSAutoreleasePool -reallyDealloc]): New method. - -Tue May 28 15:39:36 1996 Adam Fedor - - * checks/nsmaptable.m: Check for nil map element. - - * src/Invocation [Invocation -dealloc]: Release return_value - only if return_retained. - [ArgframeInvocation -dealloc]: Likewise. - -Sat Jul 6 09:03:25 1996 Andrew McCallum - - * Version (SUBMINOR_VERSION): gnustep-base version 0.2.2. - - * doc/install.texi: Describe installation of pthreads. - - * src/NSObject.m ([NSObject +initialize]): Use - o_map_with_callbacks(), instead of the short-cut function - o_map_of_non_owned_void_p_to_int(). - - * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Add - comment about arbitrary fd port limit. Fix this eventually. - - * checks/tcpport-client.m (main): When argc == 1, pass nil for - hostname instead of @"localhost". - - * checks/string.m (main): Add test of copyWithZone. - - * src/TcpPort.m ([TcpOutPacket - -_writeToSocket:withReplySockaddr:]): Use memcpy() instead of - cast; some systems have trouble with the cast due to alignment - issues. (Reported by Marc Decugis .) - ([TcpInPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): - Likewise. - - * configure.in: Clean up echo'ed message for shared library flags. - - * gcc-objc.patch: New objc runtime patch from Scott Christley. - * Makefile.in (DIST_FILES): Include gcc-objc.patch instead of - objc.patch. - * doc/install.texi: Update instructions for new objc runtime - patch. - - * src/Foundation/NSAutoreleasePool.h: Include for - memset(). - - A first attempt at making NotificationDispatcher thread-safe. - * src/NotificationDispatcher.m ([NotificationDispatcher -init]): - - Create _LOCK. - ([NotificationDispatcher -dealloc]): New method. - ([NotificationDispatcher - -_addObserver:notificationRequest:name:object:]): Use _LOCK to - provide thread-safety. Lock around all access to ivars. - ([NotificationDispatcher -removeObserver:]): Likewise. - ([NotificationDispatcher -removeObserver:name:object:]): Likewise. - ([NotificationDispatcher -postNotification:]): Likewise. All - Notification postings are serialized. If this weren't true, the - user would have to worry about all kinds of thread-safety issues - in unpredictable ways, because there is no way to tell what other - objects have asked for notification postings. - * src/include/NotificationDispatcher.h (NotificationDispatcher - _lock): New ivar. - - Fix error that occurs when using a TcpOutPort that was created - with a default hostname. - - * src/TcpPort.m ([TcpInPort +newForReceivingFromPortNumber:]): - Terminate the hostname at the first dot before looking up with - gethostbyname(). If gethostbyname() fails, don't try again with - "localhost"; signal an error instead. - ([TcpOutPort +newForSendingToPortNumber:onHost:]): When HOSTNAME is - empty or nil, don't use "localhost", look up the name of the local - machine, and use that. Before this change we could easily get - "Can't change reply port of an out port once set" errors. - -Fri Jul 5 08:59:26 1996 Andrew McCallum - - Use more-efficient o_map instead NSMapTable for retain counts. - - * src/NSObject.m (retain_counts): Make it an o_map instead of - NSMapTable; (o_map is more efficient). - (NSIncrementExtraRefCount): Use o_map interface. - (NSDecrementExtraRefCountWasZero): Likewise. - ([NSObject +initialize]): Likewise. - ([NSObject -retainCount]): Likewise. - - * src/o_map.m (o_map_node_for_key): New function, non-static, for - efficient implementation of NSObject retain count management. - (o_map_remove_node_from_its_map): Likewise. - -Thu Jul 4 21:00:42 1996 Andrew McCallum - - Make -retain/-release counts thread-safe. - - * src/NSObject.m (retain_counts_gate): New static variable, mutex - for protecting RETAIN_COUNTS. - (NSIncrementExtraRefCount): Use it. - (NSDecrementExtraRefCountWasZero): Likewise. - ([NSObject -retainCount]): Likewise. - ([NSObject +initialize]): Allocate RETAIN_COUNTS_GATE. - -Tue Jun 11 14:50:20 1996 Andrew McCallum - - Make NSAutoreleasePool thread-safe. - - * src/include/NSAutoreleasePool.h (struct - autorelease_thread_vars): New structure declared. - (struct autorelease_cache): Structure declaration removed. - (init_autorelease_thread_vars): New static inline function. - - * src/NSAutoreleasePool.m (ARP_THREAD_VARS): New macro for - accessing NSAutoreleasePool's per-thread variables. - (current_pool): Static variable removed. - (total_autoreleased_objects_count): Likewise. - (autorelease_pool_cache): Likewise. - (autorelease_pool_size): Likewise. - (autorelease_pool_count): Likewise. - (push_pool_to_cache): Add (struct autorelease_thread_vars*) argument. - All callers changed. - (pop_pool_from_cache): Likewise. - (push_pool_to_cache): Likewise. - (init_pool_cache): New function. - ([NSAutoreleasePool +initialize]): Don't initialize the - autorelease_pool_cache here. - ([NSAutoreleasePool +init]): Use per-thread variables. - ([NSAutoreleasePool -autoreleaseCountForObject:]): Likewise. - ([NSAutoreleasePool -currentPool:]): Likewise. - ([NSAutoreleasePool +currentPool:]): Likewise. - ([NSAutoreleasePool -addObject:]): Likewise. - ([NSAutoreleasePool +addObject:]): Likewise. - ([NSAutoreleasePool -dealloc:]): Likewise. - ([NSAutoreleasePool +totalAutoreleasedObjects:]): Likewise. This - return value is now only a per-thread count. - ([NSAutoreleasePool +resetTotalAutoreleasedObjects:]): Likewise. - - * src/include/NSThread.h: Make the ivars @public, not @private, so - NSAutoreleasePool can efficiently access the _autorelease_vars - ivar. - (_autorelease_vars): New ivar. - - * src/NSThread.m ([NSThread -init]): Instead of creating an - NSMutableDictionary here, just set the ivar `_thread_dictionary' to - nil, and create it later, only on demand. Use - `init_autorelease_thread_vars()' to initialize `_autorelease_vars'. - ([NSThread -threadDictionary]): If `_thread_dictionary' is nil, - create it. - - * checks/string.m (print_string): Use -cStringNoCopy instead of - -cString. - (main): Test the use of the `%@' printf format directive. - - Implement handling of `%@' for non-GNU libc systems. - * src/NSString.m: Include . - (PRINTF_ATSIGN_VA_LIST): Make it an expression that depends on the - libc version, not a boolean constant. - ([NSString -initWithFormat:arguments:]): Implement the `%@' printf - directive in the case where the available libc doesn't have - `register_printf_function()'. It does not currently handle format - width specifiers, etc. - -Mon Jun 10 23:22:58 1996 Andrew McCallum - - * src/gnustep/base/preface.h.in: Fix comment. - -Mon Jun 3 12:07:16 1996 Andrew McCallum - - * src/Makefile.in (gnustep/base): Remove `gnustep' and `base' - before trying to recreate them. - -Fri May 31 10:06:05 1996 Andrew McCallum - - * src/Makefile.in (gnustep/base): Make a link for `Foundation' - when building in a separate directory. - - * doc/install.texi: Mention making a link from thread.h to thr.h. - - * src/StdioStream.m ([StdioStream -readBytes:length:]): Don't - assert that we get as many bytes as we asked for. - - * checks/Makefile.in (ALL_CPPFLAGS): Look in ../src/srcdir-include. - * examples/Makefile.in (ALL_CPPFLAGS): Likewise. - - * src/NSLock.m: Include . Fix typo. - - * src/proplist.l (unescstr): Bug fix from Nathan Urban - . - - This is a feeble attempt to use the correct flags for making a - shared library. Other than the GNU-standard flags, so far I've - just taken care of the Solaris case. - * src/Makefile.in (CFLAGS_SHAREDLIB_GNU): New variable. - (CFLAGS_SHAREDLIB_SOLARIS): New variable. - (CFLAGS_SHAREDLIB): New variable set from configure. - (lib$(LIBRARY_NAME).so.$(VERSION)): Use it. - * configure.in (CFLAGS_SHAREDLIB): Figure this out, and AC_SUBST it. - - * src/Makefile.in (maintainer-clean): Remove *_bas and *_cbs files. - (GNU_MFILES): Fix typo. - - * src/NSProcessInfo.m (__gnustep_base_subinit_args__): No longer - declared static; (avoids warning). - - * src/Makefile.in: Rename all `o-*' files to `o_*', and prepend - `o_' to some related files. - * src/o-*, src/include/o-*: Rename to `o_'. - - * src/NSString.m ([NSString -initWithFormat:arguments:]): Increase - bsprintf buffer size, and assert that we haven't overrun the - buffer. - - * src/Makefile.in (GNU_OTHER_SRCFILES): Added win32-entry.c and - win32-def.top. - - * src/NSObject.m: Don't declare `errno'. - - * src/NSAutoreleasePool.m: Don't include . - - * src/BinaryCStream.m (WRITE_SIGNED_TYPE): Avoid alignment errors - by using memcpy() instead of trying to assign to (_TYPE*)(BUFFER+1). - (WRITE_UNSIGNED_TYPE): Likewise. - -Fri May 31 08:20:09 1996 Adam Fedor - - * src/NSProcessInfo.m (main): Pass `env' variable to - gnustep_base_user_main. - -Tue May 28 09:37:19 1996 Andrew McCallum - - * src/include/NSPathUtilities.h: New file. - * src/Makefile.in (GNUSTEP_HEADERS): Added - include/NSPathUtilities.h. - - * src/NSUser.m: New file. - * src/Makefile.in (GNUSTEP_MFILES): Added NSUser.m. - - * src/NSPage.m: New file. - * src/include/NSZone.h (NSPageSize, NSLogPageSize, - NSRoundUpToMultipleOfPageSize, NSRoundDownToMultipleOfPageSize, - NSRealMemoryAvailable, NSAllocateMemoryPages, - NSDeallocateMemoryPages, NSCopyMemoryPages): New functions - declared; they are implemented in NSPage.m. - - * src/Makefile.in (ALL_INCLUDE_FLAGS): Undo last change, except - use name `srcdir-include' instead of `include'. This should allow - building is a separate directory than the source, yet still avoid - confusion between and on win32 systems. - (gnustep/base:): Use `srcdir-include' instead of `include' for extra - links needed when building in a separate directory than the - source. - - * src/NSException.m (_NSAddHandler): When creating E_QUEUE, don't - autorelease and then retain; instead just allocate it - un-autoreleased. - - * checks/Makefile.in (SRCS): Added basic.m. - * checks/basic.m: New file. - - * src/NSLock.m: Include first! Fix - indentation. - ([NSLock +initialize]): Method removed. - ([NSLock -init]): Assert return value from objc_mutex_allocate(), - don't just return nil. - ([NSConditionLock -initWithCondition:]): Likewise. - ([NSRecursiveLock -init]): Likewise. - ([NSConditionLock +initialize]): Method removed. - ([NSRecursiveLock +initialize]): Method removed. - -Mon May 27 09:57:34 1996 Andrew McCallum - - * Makefile.in (DIST_FILES): Added README.ucblib. - - * src/include/objc-gnu2next.h: Remove "Object (GNUExtentions)" - Category. We no longer use Object; we use NSObject. - - Do our best to use "%@" (Objective-C String object printf-format - tag) as little as possible, because, for now, it is not - implemented on non-GNU-libc systems. - * src/KeyedCollection.m ([ConstantKeyedCollection -description]): - Instead of @%, use %s and [s cStringNoCopy]. - * src/NSHashTable.m (NSStringFromHashTable): Likewise. - (NSHashInsertKnownAbsent): Likewise. - * src/NSMapTable.m (NSStringFromMapTable): Likewise. - (NSMapInsertKnownAbsent): Likewise. - * src/TextCStream.m ([TextCStream - -encodeValueOfCType:at:withName:]): Likewise. - ([TextCStream -encodeName:n]): Likewise. - * src/o-hash.m (o_hash_description): Likewise. - * src/x-bas.m.in (_o_@XX@_description): Likewise. - * src/NSDictionary.m ([NSDictionary -descriptionWithIndent:]): Use - -cStringNoCopy instead of -cString. - - * src/x-cbs.m.in: Prepend missing `o-' in #include. - * src/x-bas.m.in: Likewise. - -Mon May 20 16:53:57 1996 Adam Fedor - - * src/include/NSGeometry.h: Include NSString functions only if - compiling in Objective-C mode (using "#ifdef __OBJC__"). - -Tue May 14 20:03:55 1996 Scott Christley - - * INSTALL.WIN32: Correct grammatical errors. - * Makefile.sed.nt: Sed script now handles install and all - targets for top level Makefile. - * checks/Makefile.sed.nt: Corrections to handle changes - to checks/Makefile.in. - * configure.bat: Corrections to handle the different - directory structure for the header files. - * src/BinaryCStream: Eliminate header files not needed on WIN32. - * src/Makefile.in (ALL_INCLUDE_FLAGS): Eliminate -I./include flag. - (FORCE): New Target. - * src/Makefile.sed.nt: New file; somehow got lost. - * src/RunLoop.m: Eliminate header files not needed on WIN32. - * src/TcpPort.m: Likewise. - * src/UdpPort.m: Likewise. - * src/include/TcpPort.h: Likewise. - * src/include/config-nt.h: New file, got lost during restructuring. - * src/include/config-nt.sed: New file, got lost during restructuring. - * src/libgnustep-base-entry.c: New file. - * src/libgnustep-base.top: New file. - -Wed May 22 06:56:49 1996 Andrew McCallum - - * doc/install.texi: Say that the objc patch will be part of gcc - 2.8.0. - -Mon May 13 09:03:55 1996 Andrew McCallum - - * src/Makefile.in (FILE_AUTHORS): Added "Scott Christley". - - * src/NSString.m ([NSString -description]): Fix warnings. - * src/NSDictionary.m ([NSDictionary -description]): Fix warnings. - - * src/Makefile.in (GNU_OTHER_SRCFILES): Added proplist.l and - proplist.y. - (GNU_MFILES): Added lex.pl.m and proplist.tab.m. - (YACC): New variable. - (GNU_OTHER_SRCFILES): Added proplist., proplist.tab.h and proplist.y. - (proplist.tab.m proplist.tab.h): New target. - (lex.pl.m): New target. - * proplist.y, proplist.l: New files from Nathan Urban. - - * src/NSData.m ([NSData -description]): Implemented by Nathan Urban. - * src/NSArray.m ([NSArrayNonCore -description]): Likewise. - * src/NSDictionary.m ([NSDictionary -description]): Likewise. - * src/NSString.m ([NSString -description]): Likewise. - ([NSString -propertyList]): Likewise. - - * src/NSThread.m (NSBecomingMultiThreaded, NSThreadExiting): - Initialize the notification strings as static strings, not in - +initialize. - (thread_id_2_nsthread): Renamed from THREAD_LIST. Keep the collection - of NSThread's as a maptable, not a NSArray that takes linear time - to search! - (thread_lock): Renamed from THREAD_LIST_LOCK. - (entered_multi_threaded_state): Renamed from - ENTERED_MULTI-THREADED_STATE. - ([NSThread +initialize]): Don't initialize notification strings here. - Don't autorelease the lock! - ([NSThread -init]): Initialize _thread_autorelease_pool. Set our - thread data to self, for easy, efficient access to this NSThread - object later. Put ourselves in the thread collection here, not in - +detach... - ([NSThread +currentThread]): This will be called often and needs to be - fast. Reimplemented so we don't have to acquire a lock and step - through an NSArray of threads; instead, just look ourselves up - with the objc_thread_get_data(), and furthermore, no lock - required. - ([NSThread +detachNewThreadSelector:toTarget:withObject:]): Avoid race - condition, don't create new NSThread object here. - ([NSThread +sleepUntilDate:]): Call -notImplemented:. - ([NSThread +exit]): Properly post NSThreadExiting notification, making - sure not to hold the lock while we do so. Get the NSThread object - efficiently. - ([NSThread -threadId]): Removed unnecessary private method. - ([NSThread -setThreadId]): Likewise. - - * src/include/NSLock.h: Include renamed , not - . - - * src/include/NSThread.h: Include renamed , not - . Prepend ivars with underscore. Formatting - cleanups. - - * src/Makefile.in (gnustep/base): Use -r test for file existance, - not -e. (Reported by Adam Fedor .) - - * src/BinaryCStream.m: Include for byte-conversion; - needed on Solaris. (Reported by Adam Fedor - .) - - * src/Makefile.in (AUTHORS): Also search for "Rewritten by" - string. - -Sun May 12 19:57:53 1996 Andrew McCallum - - * src/Coder.m ([Coder -encodeConditionalObject:]): Comment - additions. - ([Coder -decodeObject]): Likewise. - - * src/Coder.m: Remove many methods from (Coder - NSCoderCompatibility), they are now included by adding the - behavior from NSCoderNonCore. - ([Coder +initialize]): Add behavior from NSCoderNonCore. - ([Coder -encodeArrayOfObjCType:count:at:]): Method removed. - ([Coder -decodeArrayOfObjCType:count:at:]): Method removed. - ([Coder -encodeProperyList:]): Method removed. - ([Coder -decodeProperyList:]): Method removed. - ([Coder -encodePoint:]): Method removed. - ([Coder -decodePoint:]): Method removed. - ([Coder -encodeSize:]): Method removed. - ([Coder -decodeSize:]): Method removed. - ([Coder -encodeRect:]): Method removed. - ([Coder -decodeRect:]): Method removed. - ([Coder -encodeValuesOfObjCTypes:]): Method removed. - ([Coder -decodeValuesOfObjCTypes:]): Method removed. - -Sat May 11 20:38:10 1996 Andrew McCallum - - * After consulting other developers, change "Gnustep" to "GNUstep" - everywhere. - - * src/include/NSAutoreleasePool.h (struct autorelease_cache): New - data type. - * src/include/NSThread.h (NSThread _thread_autorelease_pool): New - ivar. - * src/NSThread.m: Preparation for thread-safety. - ([NSThread -init]): Initialize new ivar. - * src/NSAutoreleasePool.m: Comment changes, and preparation for - thread-safety. - -Fri May 10 09:55:40 1996 Andrew McCallum - - * src/BinaryCStream.m: #include to get BITSPERBYTE on - Solaris. (Reported by M. Decugis .) - -Wed May 8 10:53:07 1996 Andrew McCallum - - * src/objc-load.c (objc_load_module): Uncomment local vars when - needed. (Provided by Bill Bumgarner .) - - * src/BinaryCStream.m (BITSPERBYTE): Define if not defined and on - NeXT. (Provided by Bill Bumgarner .) - -Tue May 7 10:55:11 1996 Andrew McCallum - - * src/include/o-map.h: Prepend `o-' in #include. - * src/include/o-list.h: Likewise. - * src/include/o-hash.h: Likewise. - * src/include/o-array.h: Likewise. - * src/include/x-cbs.h.in: Likewise. - - * src/NSCoder.m: Separate implemented, non-core methods into - separate class, in preparation for avoiding the duplication of - these methods in Coder.m. - ([NSCoder +initialize]): New method. - (NSCoderNonCore): New class. - * src/include/NSCoder.h: Declare new NSCoderNonCore class. - - * Makefile.in (snapshot-rtag): New target. - (dist-rtag): New target. - (rdiff): New target. - -Mon May 6 14:59:03 1996 Andrew McCallum - - * src/NSGArchiver.m ([NSGArchiver -encodeObjectReference:]): New - method. - * src/Decoder.m ([Decoder -decodeObjectAt:anObjPtr:name]): Move - CREATE_REF_BEFORE_INIT assertion to inside conditional for FREF - being true. - - * src/NSString.m (PRINTF_ATSIGN_VA_LIST): New macro, when 1, - undoes previous changes. Previous changes cause crashes with my - libc. - - * configure.in (shared): Prepend missing `lib'. (Reported by - Randy Chapman .) - - * src/Makefile.in: It should now work again to build in a separate - directory. Use ${OEXT}, not $(OEXT). - (ALL_INCLUDE_FLAGS): Look in ./include, not $(srcdir). - (GNU_HEADERS): Remove duplicate NS*.h files. - (gnustep/base): Make soft links to the $(srcdir) include files inside - ./include. - (include/preface.h): Get preface.h.in from the $(srcdir)! - * examples/Makefile.in (ALL_CPPFLAGS): Look for source include - files in new place. - * checks/Makefile.in (ALL_CPPFLAGS): Look for source include files - in new place. - - * src/include/NSZone.h: use #include instead of #import. - - * doc/gnustep-faq.texi: Added "On what platforms will it run?" - - * src/NSArray.m ([NSMutableArray +initialize]): Add the - NSArrayNonCore methods also. (Reported by Scott Christley.) - - * src/Makefile.in: Add `o-' prefix to object collection function - files. - * src/o-array.m, src/o-list.m, src/o-hash.m, src/o-map.m: Renamed - from versions without `o-' prefix. This prevents aliasing with - Array.m, etc, on systems without case-sensitive filenames. - * src/include/o-array.h, src/include/o-hash.h, - src/include/o-list.h, src/include/o-map.h: Likewise. - - * src/NSString.m: All uses of @"" were crashing in Linux - libc-5.3.9. - (arginfo_func): New function. - (handle_printf_atsign): Get the string object without va_arg(). - ([NSString +initialize]): Use new function. - (Reported and fixed by Kai-Uwe Sattler - .) - -Tue Apr 30 10:19:40 1996 Andrew McCallum - - * src/NSArray.m ([NSMutableArrayNonCore -removeObject:]): Replace - with version that removes all objects equal to argument. - ([NSMutableArrayNonCore -removeObjectIdenticalTo:]): Likewise. - - * checks/nsarray.m (main): Patched from Scott Christley. - -Fri Apr 19 18:11:30 1996 Andrew McCallum - - Make NSArchiver do object forward references the same way OpenStep - does, so that -encodeConditionalObject: and -decodeObject will - work as users expect. The OpenStep-style of forward referencing - is actually broken in that it cannot handle cases in which - -initWithCoder: deallocates self and substitutes another object - for self---this is supposed to be allowed. The GNU-style of - forward references robustly handles this case, as well as all the - cases that OpenStep handles; the GNU code works through alternate - methods: -encodeObjectReference: and -decodeObjectAt:withName:. - It is recommended that programmers use the GNU archiving methods. - - Before these changes, the gnustep-base code that tried to handle - the OpenStep-style `-encodeConditionalObject:' and `-decodeObject' - did not have the same behavior as NeXT's implementation---in fact - it did not do forward references at all. Users' OpenStep code - that used the OpenStep methods would have failed badly. These - changes implement the OpenStep-style forward references. Now - NSArchiver implements OpenStep-style forward references, and - Archiver implements GNU-style forward references. Be warned: by - necessity, because of limitations of the OpenStep method - interface, NSArchiver has the same bug as NeXT's NSArchiver. - - * src/NSGArchiver.m (USE_OPENSTEP_STYLE_FORWARD_REFERENCES): New - macro. - (NSGArchiverNullCStream): New class, interface and implementation. - ([NSGArchiverNullCStream -encodeValueOfCType:at:withName:]): New - method. - ([NSGArchiverNullCStream -decodeValueOfCType:at:withName:]): New - method. - ([NSGArchiver -encodeRootObject:withName:]): New method. - ([NSGArchiver -encodeConditionalObject:]): New method. - ([NSGArchiver -_coderCreateReferenceForObject:]): New method. - ([NSGArchiver -_coderCreateForwardReferenceForObject:]): New method. - ([NSGArchiver -_coderForwardReferenceForObject:]): New method. - ([NSGArchiver -_objectWillBeInProgress:]): New method. - ([NSGArchiver -_objectNoLongerInProgress:]): New method. - ([NSGArchiver -defaultDecoderClassname]): New method. - ([NSGUnarchiver -_createReferenceBeforeInit]): New method. - - * src/NSArchiver.m ([NSUnarchiver +initialize]): Test self against - NSUnarchiver class. - - * src/Encoder.m (debug_coder): Make it a static var instead of a - #define. - ([Encoder -_objectWillBeInProgress:]): New method. - ([Encoder -_objectNoLongerInProgress:]): New method. Depending on - whether we are doing GNU or OpenStep style forward references one - of these two methods will create a backward reference to the - object by calling -_coderInternalCreateReferenceForObject:. This - will effect whether encoding make forward or backward references - to objects in progress. GNU uses forward references, which is - robust even when the object's -initWithCoder substitutes another - object for self. - ([Encoder -_encodeObject:withName:isBycopy:isForwardReference:]): Use - new methods. Don't call -_coderInternalCreateReferenceForObject - here, let one of the ...InProgress methods do it. - - * src/Decoder.m (debug_coder): Make it a static var instead of a - #define. - ([Decoder -_coderCreateReferenceForObject:]): Add a debugging message. - ([Decoder -_coderCreateReferenceForInterconnectedObject:]): - Autorelease the placeholder object. - ([Decoder -_createReferenceBeforeInit]): New method. By default - return NO, for the GNU-style forward references. - ([Decoder -decodeObjectAt:anObjPtr:name]): [CODER_OBJECT]: Use new - method; if it returns true, then we are using non-GNU, - OpenStep-style forward references. In this case: (1) don't try to - decode the object by sending +newWithCoder:, in fact, raise an - error if the object wanted to be decoded that way; (2) call - _coderInternalCreateReferenceForObject before sending - -initWithCoder, not after; unfortunately this means that - -initWithCoder methods cannot substitute another object for self. - If it returns false, use the more robust GNU style forward - references. The NSGUnarchiver overrides this method to use the - OpenStep style. - - * src/include/Coder.h (Coder): Make ivars public, so NSGArchiver - can get at them. - (Encoder): Likewise. - - * src/TextCStream.m ([TextCStream - -encodeValueOfCType:at:withName:]): If name is nil or zero-length, - make it "Anonymous". - (DECODE_ERROR): Add next stream contents to error message. - - * src/Coder.m: Include gnustep/base/Archiver.h. - ([Coder +archivedDataWithRootObject:]): Use Archiver class, not - NSArchiver, it matters because now the two classes handle forward - references differently. - - * src/include/NSGArchiver.h: NSGUnarchiver inherits from - NSUnarchiver, not NSArchiver! - - * checks/fref.m: Use Archiver, not NSArchiver, if GNU_ARCHIVING is - true. - (SELF_REF_DECODE_SUBSTITUTES): New macro. - -Thu Apr 18 08:31:53 1996 Andrew McCallum - - * checks/fref.m: Updated to work on NS3.3. - - * src/Makefile.in (Foundation): Fix dependancy to force proper - handling after a cvs checkout. - -Wed Apr 17 08:56:09 1996 Andrew McCallum - - Major renaming! - "GNU Objective C Class Library" -> "Gnustep Base Library" - libobjects.a -> libgnustep-base.a - libobjects.tar.gz -> gstep-base.tar.gz - -> - OBJECTS_* -> GNUSTEP_BASE_* - objects_*() -> o_*() - R. Andrew McCallum -> Andrew Kachites McCallum - (my pre-marriage name) (my post-marriage name) - ...and more... - - * examples/Makefile.in (EXEEXT): New variable. - (OEXT): New variable. - (LIBEXT): New variable. - (SRCS): Remove port-{server,client}.m. - - * examples/dictionary.m: Warn user that the file hasn't been - converted to new collection scheme, and comment out old code. - - * examples/second-server.m ([SecondServer -addRemoteObject:]): - Don't free the string returned; mframe already does it! - - * examples/stdio-stream.m: Include Foundation/NSString.h. - - * Makefile.in: Include Makeconf. - - * checks/server.m: Include TcpPort.h, not SocketPort.h. - * checks/client.m: Likewise. - - * checks/Makefile.in (../src/lib$(LIBRARY_NAME)$(LIBEXT)): New - target. - - * doc/Makefile.in (TEXI_FILES): Rename libobjects.texi to - gnustep-base.texi. Add base-desc.texi. - * doc/base-desc.texi: New file. - - * src/include/*.h: Rename all #ifndef macro names to - ...GNUSTEP_BASE_INCLUDE. - - * Rename all `objects_' to `o_'. This mostly affects Albin Jones' - map tables, hash table, etc. - - * src/NSGSet.m ([NSGSet -isEqual:]): Call isEqualToSet: (in - superclass). - - * checks/pipes.m: Include - - * src/objc/HashTable.h: Use preface.h instead of stdobjects.h. - - * src/CStream.m ([CStream -writeSignature]): Use new version macro - names. - - * src/include/fake-main.h (main): Define as - gnustep_base_user_main, not LibobjectsMain. - * src/NSProcessInfo.m (__gnustep_base_subinit_args__): Renamed - from libobjects... - (main): Use gnustep_base_user_main, not LibobjectsMain. - - * checks/fref.m (test_fref): Make ARRAY a NSMutableArray, not a - NSArray. - ([SubFoo -encodeWithCoder:]): Add printf. - ([Foo -encodeWithCoder:]): Likewise. - - * src/o_vscanf.c: Include objc-malloc.h from gnustep/base. - - * src/Makefile.in (Foundation): Add step to get rid of old - Foundation directory that would come from a CVS checkout. - - * src/include/String.h: Don't include . - Don't have String protocol inherit NSString protocol. We were - having trouble with circular dependancies. - * src/include/Streaming.h: Include String.h, not NSString.h. - - * src/include/preface.h.in: Use __preface_h_... instead of - __stdobjects_h... for wrapper. Include files from gnustep/base. - Include fake-main.h, instead of LibobjectsMain.h. - - * src/Makefile.in (include/preface.h): Make substitutions for - macro name, as well as value. - - * Makeconf (LIBRARY_VAR): New variable. - - * src/Makefile.in (all): Add dependancy on `Foundation'. - (Foundation): New target. - - * Change all #include to #include . - - * src/include/preface.h.in: All Makefile-maintained #defines, now - have the macro name inserted by Makefile, not just the value. - Comment out objects_version global variable and friends. - (LAMBDA): Macro removed. - (LAMBDA_VOID_PERFORM): Macro removed. - (LAMBDA_ID_PERFORM): Macro removed. - (LAMBDA_BOOL_PERFORM): Macro removed. - * src/preface.m: Update names of global const char's. - - * Makefile.in: Remove/rename all mention of `objects'. - * configure.in: Likewise. - * examples/Makefile.in: Likewise. - * checks/Makefile.in: Likewise. - - * Makeconf (LIBRARY_NAME): Remove `lib' prefix. - * src/Makefile.in: Don't assume the `lib' prefix is included in - $(LIBRARY_NAME). - - * Makeconf (PACKAGE_NAME): New variable. - (LIBRARY_NAME): New variable. - (rcs-list-locked): Target removed. - - * Version: Removed `OBJECTS_' prefix. - - * src/Makefile.in: Rename all occurrences of `objects/' to - `include/'. Rename all occurrences of `Foundation/' to - `include/'. Rename all occurrences of `libobjects' to - `$(LIBRARY_NAME)'. Rename all occurrences of `OBJECTS_*VERSION' - to `*VERSION'. - (GNU_NEXT_INCLUDES): Renamed from OBJECTS_NEXT_INCLUDES. - (gnustep/base): New target; make symbolic link to `include'. - (all): Added dependancy on gnustep/base. - (install): Put the include files in gnustep/base. Make a link from - $(includedir)/Foundation to $(includedir)/gnustep/base. - (installdirs): Make $(includedir)/gnustep/base, not objects and - Foundation include directories. - (GNU_MFILES): stdobjects.m renamed to preface.m. - (GNU_HEADERS): LibobjectsMain.h renamed to fake-main.h. objects.h - renamed to all.h. - (HEADERS_INSTALL): stdobjects.h renamed to preface.h. - (maintainer-clean): Likewise. - (DIST_FILES): stdobjects.h.in renamed to preface.h.in. - (RCS_FILES): Likewise. - (include/preface.h): Target renamed from stdobjects.h. - (preface$(OEXT)): Likewise. - * src/preface.m: File renamed from stdobjects.m. - * src/include/preface.h: File renamed from stdobjects.h. - * src/include/fake-main.h: File renamed from LibobjectsMain.h. - * src/include/all.h: File renamed from objects.h. - - * configure.in (AC_OUTPUT): do src/include/config.h, not - src/objects/config.h. - - * src/objects/*, src/Foundation/*: Files moved to src/include. - - * src/Foundation/NSString.h: Insert contents of - - * src/Foundation/NSSet.h: Insert contents of - * src/Foundation/NSDictionary.h: Insert contents of - - * src/Foundation/NSCoder.h: Insert contents of - * src/Foundation/NSArray.h: Insert contents of - - Fix error in Decoder, that only affected TextCStream. - - * src/Decoder.m ([Decoder -decodeObjectAt:anObjPtr:name]): Decode - the Unindent *before* decoding the fref; as does Encoder! - -Tue Apr 16 17:29:02 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): Version 0.2.1. Last version - before renaming from libobjects to gnustep-base. - - * checks/Makefile.in (CFLAGS): Add -Wno-format. - (SRCS): Use new, more descriptive file names. - - * checks/prepend.m: Include NSValue.h - - * src/NotificationDispatcher.m ([NotificationDispatcher - -_addObserver:notificationRequest:name:object:]): Don't release NR - here. - ([NotificationDispatcher -addInvocation:name:object:]): Release it - here. - ([NotificationDispatcher -addObserver:selector:name:object:]): - Likewise. - - * src/TcpPort.m (debug_tcpport): Changed from 1 to 0; don't print - debugging messages. - * src/Proxy.m (debug_proxy): Likewise. - * src/Connection.m (debug_connection): Likewise. - - * src/NSArray.m ([NSArrayNonCore -arrayByAddingObject:]): - Autorelease the returned array. - ([NSArrayNonCore -arrayByAddingObjectsFromArray:]): Likewise. - ([NSArrayNonCore -subarrayWithRange:]): Likewise. - - * checks/nsarray.m (main): Removed several -autorelease calls that - are repetative, now that NSArray autoreleases properly. The test - still does not complete successfully. It tries to send -cString - to an NSMutableArray. - - * src/objects/objc-malloc.h: Only declare "id - MemoryExchaustedException" #ifdef __OBJC__. This allows - to be included in non-ObjC files, i.e. C - files. - - * src/NSZone.m: Include first. - - * checks/*.m: Many test??.m files renamed with descriptive names. - - * checks/nsarchiver.m (main): Add extra parens around assignment - in while(). - - * checks/string.m (main): Comment out use of obsolete - -withElementsCall:. - - * checks/nsbundle.m (main): Use object_get_class_name(), not - -name. - - * src/Makefile.in (GNU_MFILES): Re-added Time.m. - (o_vscanf$(OEXT), o_vscanf_pic$(OEXT)): New rules that turn off - warnings for o_vscanf.c; it generates a bunch of unimportant ones. - - * src/Time.m ([Time +initialize]): Comment out day/month name - handling that depends on old Collection heirarchy. - ([Time +indexOfDayName:]): un-implemented. - ([Time +nameOfDayIndex:]): Likewise. - ([Time +indexOfMonthName:]): Likewise. - ([Time +nameOfMonthIndex:]): Likewise. - - * checks/prepend.m: New file from test13.m. - * checks/nxst.m: New file from test11.m. - * checks/heap.m: New file from test04.m. - - * src/Heap.m ([Heap -heapifyFromIndex:]): Swap -compare: receiver - and argument, so firstObject is minimum instead of maximum object. - ([Heap -addObject:]): Likewise. - -Mon Apr 15 21:41:17 1996 Andrew McCallum - - * src/NSGDictionary.m ([NSGDictionaryObjectEnumerator - -nextObject]): Return the key, not the object. - ([NSGDictionary -objectForKey:]): Method moved from - NSGMutableDictionary. - ([NSGMutableDictionary +initialize]): Don't use static variable in - test. - - * src/KeyedCollection.m ([KeyEnumerator -initWithCollection:]): - New method. - ([KeyEnumerator -nextObject]): New method. - ([KeyEnumerator -dealloc]): New method. - - * doc/install.texi: Mention possible need for GNU make. - -Sun Apr 14 11:58:04 1996 Andrew McCallum - - Old archiving scheme didn't properly deal with the - LinkedListNode's _linked_list ivar. - * src/LinkedList.m ([LinkedList -encodeWithCoder:]): New method. - ([LinkedList -initWithCoder:]): New method. - ([LinkedList -_initCollectionWithCoder:]): Method removed. - ([LinkedList -_encodeContentsWithCoder:]): Method removed. - ([LinkedList -_decodeContentsWithCoder:]): Method removed. - - * src/Coder.m ([Coder -encodeConditionalObject:]): Don't use old, - removed method name to see if object has already been encoded. - -Sat Apr 13 13:49:23 1996 Andrew McCallum - - * src/BinaryCStream.m (debug_binary_coder): Explicitly set to - zero. - - * src/objects/CoderPrivate.h ([Coder (Private) - -_coderReferenceForObject:): Renamed from old-xref-scheme - "_coderHasObjectReference:. - - * checks/Makefile.in (SRCS): Added fref.m. - - Fix a bug with encoding an object whose encoding generates forward - references to the object itself. - - * src/Encoder.m ([Encoder - -_encodeObject:withName:isBycopy:isForwardReference:]): See if the - object satisfies a forward reference *after* encoding it, not - before. This is necessary because the encoding of subobjects may - generate forward references to the object. (In a sense, this - undoes the last change to this method, but it is significantly - different in that we test whether the object is in the - object_2_fref table *after* encoding the object; earlier we looked - in the table before encoding the object.) As a consequence, the - CODER_OBJECT_FORWARD_SATISFIER tag is no longer necessary; this - was used to tag an object before it was encoded, but now we - understand that we cannot know whether this object satisfies a - forward reference until after it has been encoded. Thus, for all - objects we encode an unsigned int after encoding the object - itself. This unsigned int is either the forward reference number - of zero, depending on whether this object satisfies any forward - references. - - * src/Decoder.m ([Decoder -decodeObjectAt:withName:]): Allow for - the case in which ANOBJPTR is NULL, and deal with it using a - DUMMY_OBJECT local variable. Remove - CODER_OBJECT_FORWARD_SATISFIER case. In the CODER_OBJECT case, - decode the forward reference number, and deal with it - appropriately. See the ChangeLog comments for the Encoder - changes. * src/objects/CoderPrivate.h - (CODER_OBJECT_FORWARD_SATISFIER): Enum constant removed; it is no - longer needed. Note: decoders built after this change will not be - able to read data files encoded before this change. - - * src/Encoder.m ([Encode - -_encodeObject:withName:isBycopy:isForwardReference:]): If this - object satisfies a forward reference, remove it from the - object_2_fref table before encoding the object, since, in the - process of encoding the object, we may generate more references to - this object, and we don't want to interpret this as another - forward reference satisfier; previously an object could get - encoded as a forward reference satisfier more than once. - - Plug a memory leak in decoding. - - * src/Collection.m ([ConstantCollection - -_decodeContentsWithCoder:]): Use alloca(), not objc_malloc(), - plugging memory leak. - -Fri Apr 12 17:08:08 1996 Andrew McCallum - - * src/objects/Coder.h (Encoder fref_counter): New ivar for - guaranteeing that forward references have unique names. Previous - use of the MapTable count for this purpose didn't work because we - occasionally removed elements from the table, and thus had aliased - forward reference numbers. - * src/Encoder.m ([Encoder - -initForWritingToStream:withFormatVersion:cStreamClass - :cStreamFormatVersion:]): Initialize new ivar. - ([Encoder -_coderCreateForwardReferenceForObject:]): Use new ivar to - `gensym' a new forward reference. - * src/Decoder.m ([Decoder - -_coderSatisfyForwardReference:withObject:]): Create fref_2_object - with NSNonOwnedPointerMapValueCallBacks, not - NSObjectMapValueCallBacks. - - * src/StdioStream.m ([StdioStream -writeBytes:length:]): Check for - error condition, and report. Reporting scheme needs fixing. - ([StdioStream -readBytes:length:]): Likewise. - - * src/LinkedList.m ([LinkedList -_decodeContentsWithCoder:]): Step - through the new list, and send -setLinkedList:, otherwise the - links don't properly know about their parent LinkedList. - -Wed Apr 10 12:37:35 1996 Andrew McCallum - - * src/Encoder.m ([Encoder - -_coderCreateForwardReferenceForObject:]): Initialize the - OBJECT_2_FREF ivar, if it hasn't been already. - - * configure.in: Init some emacs variables. - - * src/objc-malloc.m: New file, changed from objc-malloc.c. Raise - a MemoryExhaustedException with NSException instead of calling - objc_fatal. - * src/Makefile.in (GNU_CFILES): Removed objc-malloc.c. - (GNU_MFILES): Added objc-malloc.m. - * src/objects/objc-malloc.h (MemoryExhaustedException): Declare - this global variable; note that now objc-malloc.h cannot be - included in .c files, only .m files. - - * src/NSRunLoop.m: New file. - * src/Foundation/NSRunLoop.h: Declare classes NSDate and NSTimer. - * src/Makefile.in (GNUSTEP_MFILES): Added NSRunLoop.m. - (GNUSTEP_HEADERS): Added Foundation/NSRunLoop.h. - - * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): When - unintalling ourselves at the current pool, and setting our parent - to be the current pool, be sure to set our parent's _CHILD ivar to - nil. - - * src/mframe.m (mframe_do_call): Use sel_get_type() instead of - class_get_instance_method() to get the selector type. For some - reason the old scheme wasn't getting class methods properly; I - should look at this again, though. - -Tue Apr 9 19:55:44 1996 Andrew McCallum - - * src/mframe.m (mframe_do_call): When getting the instance method, - just use object->class_pointer, not object_get_class(),... because - object_get_class() of a class will return the argument, not the - metaclass---we want the metaclass. - -Mon Apr 8 13:19:17 1996 Andrew McCallum - - * src/TcpPort.m ([TcpInPort +newForReceivingFromPortNumber:]): - Bind the socket with INADDR_ANY, (not the host's address), so that - others can connect using any of the host's interfaces, including - localhost. Add the host's address to _LISTENING_ADDRESS after the - bind(). - - * src/NSDictionary.m ([NSDictionary -allKeysForObject:]): Ask SELF - for objectForKey:, not K. (Reported by Robert Quillen - ). - -Sun Mar 31 16:43:42 1996 Andrew McCallum - - Several small bug fixes. - - * src/Foundation/NSArray.h: Declare @class NSMutableArrayNonCore, - not NSMutableArray. - - * checks/test02.m (main): Updated for new collection scheme. - - * src/MappedCollector.m ([MappedCollector -newEnumState]): New - method. - ([MappedCollector -freeEnumState:]): New method. - - * src/Random.m (ABS): Remove macro; now defined in - objects/stdobjects.h. - - Separate the core and non-core methods of NSArray implementations - to take advantage of the new behavior mechanisms, and to better - make use of the non-core methods in the concrete implementation. - - * src/NSGArray.m ([NSGArray +initialize]): Add the NSArrayNonCore - behavior, so we can, once and for all, avoid the need for those - odd [super ...] calls, and can remove many methods. - ([NSGArray -initWithObjects:count:]): Method removed. - ([NSGArray -indexOfObject:]): Method removed. - ([NSGArray -objectAtIndex:]): Method removed. - ([NSGMutableArray +initialize]): Add the NSMutableArrayNonCore - behavior, as above. - ([NSGMutableArray -replaceObjectAtIndex:withObject:]): Method removed. - * src/Foundation/NSGArray.h (NSGArray, NSGMutableArray): Add - placeholder ivars so our instance size matches that of the - behavior class that will be added. - - * src/NSArray.m: Divide methods between NSArray and NSArrayNonCore - classes. Add NSArrayNonCore behavior to NSArray. Divide methods - between NSMutableArray and NSMutableArrayNonCore classes. Add - NSArrayNonCore behavior to NSArray. - * src/Foundation/NSArray.h: Separate core and non-core methods. - Declare with @class the new classes NSArrayNonCore and - NSMutableArrayNonCore. - - Use the new behavior mechanisms to make it safe to subclass - NSNotification. - - * src/Foundation/NSNotification.h: Include - - (NSNotification): Add placeholder ivars so our instance size matches - that of the behavior class that will be added. - * src/objects/Notification.h: Add #ifndef/#endif wrapper around - header file. - - New behavior mechanisms for safe subclassing. - - * src/behavior.m (behavior_class_add_class): Function renamed from - class_add_behavior. Add more explanation to NSCAssert(). - (class_add_behavior): New function, calling above function. - (behavior_class_add_category): New function. - (behavior_class_add_methods): Function renamed from - class_add_methods_if_not_there. - * src/objects/behavior.h: Declare new function names. - - * src/behavior.m: Include . - (class_add_behavior): Use NSCAssert() to make sure that we don't try - to increase the instance size of a class that has been subclassed; - (hopeless ivar layout confusion would result). - * behavior.m: File renamed from behavior.c. - * src/Makefile.in (GNU_CFILES): Removed behavior.c. - (GNU_MFILES): Added behavior.m. - -Sat Mar 30 10:05:17 1996 Andrew McCallum - - * checks/nsdictionary.m (main): Use renamed method - behavior_set_debug. - * checks/nsarray.m (main): Use renamed method behavior_set_debug. - - * src/NSArray.m ([NSArray -lastObject]): Don't assert count; just - return nil if it's empty. - ([NSMutableArray -removeLastObject]): Don't assert count; raise - NSRangeError if it's empty. - - Make NSAutoreleasePools co-exist with exceptions, safely and - without leaks. (Also improve efficiency by using a linked list of - arrays instead of realloc when more space is needed, and by using - a cache of pools that helps avoid the allocation/deallocation of - pools.) - - * src/NSAutoreleasePool.m: (push_pool_to_cache): New function. - (pop_pool_from_cache): New function. - ([NSAutoreleasePool +initialize]): New method. - ([NSAutoreleasePool +allocWithZone:]): New method. - ([NSAutoreleasePool -init]): Method overhauled to initialize new ivar - for handling exceptions, _child; also use pool cache. - (total_autoreleased_objects_count): New static variable. - (BEGINNING_POOL_SIZE): Macro renamed from DEFAULT_SIZE. - (autorelease_pool_cache, autorelease_pool_cache_size, - autorelease_pool_cache_count): New static variables. - ([NSAutoreleasePool -_setChildPool:]): New method, handling stack and - dealing with exceptions. - ([NSAutoreleasePool -addObject:]): Deal with linked list of arrays. - ([NSAutoreleasePool -dealloc]): Deal with exceptions by releasing - child pools. Place self into the pool cache instead of - deallocating. - ([NSAutoreleasePool +resetTotalAutoreleasedObjects]): New method. - ([NSAutoreleasePool +totalAutoreleasedObjects]): New method. - * src/Foundation/NSAutoreleasePool.h: Declare new ivars and - methods. - - * src/NSArray.m ([NSArray -isEqualToArray:]): Fix typo; reverse - test for returning NO. - ([NSArray -arrayByAddingObject:]): New function, from Scott - Christley. - ([NSArray -arrayByAddingObjectsFromArray:]): Likewise. - ([NSArray -subarrayWithRange:]): Implemented by Scott Christely. - ([NSMutableArray -removeObjectIdenticalTo:]): Don't fail if the object - is not present. Initial implementation by Scott Christley - overhauled by McCallum. - ([NSMutableArray -removeObject:]): Likewise. - ([NSMutableArray -removeAllObjects]): Implemented by Scott Christley. - ([NSMutableArray -setArray:]): New function, from Scott Christley. - * src/Foundation/NSArray.h: Declare new methods. - - * src/objects/ArrayPrivate.h: Add new semantic to ivar - _grow_factor: if it is less than 0, the array capacity grows by - -_grow_factor, but never shrinks. - (incrementCount): Use the ABS() of _grow_factor. - (decrementCount): Only shrink the array capacity if _grow_factor - is greater than 0. - * src/objects/Array.h (Array _grow_factor): Change type of ivar - from unsigned to int. - * src/Array.m ([Array +defaultGrowFactor]): Return type changed to - int. - ([Array -growFactor]): Likewise. - * src/objects/stdobjects.h.in (ABS): New macro, defined if not - already defined. - * src/objects/Array.h: Change return types of "grow factor" - methods from unsigned to int. - - * src/IndexedCollection.m ([IndexedCollection -removeObject:]): - Now removes *all* instances of ANOBJECT, not just one. - ([IndexedCollection -replaceObject:withObject:]): Now replaces *all* - instances of OLDOBJECT, not just one. - * src/objects/IndexedCollecting.h (NO_INDEX): Change from UINT_MAX - to NSNotFound, so that Array and NSArray can coexist. - - * checks/test01.m ([ConstantCollection -printCount]): Use - object_get_class_name() instead of sending -name. - -Fri Mar 29 09:47:39 1996 Andrew McCallum - - Overhaul mframe functions. - - * src/mframe.m: Overhauled for memory management changes to fix - leaks, various other fixes. - (MFRAME_STRUCTURES_PASSED_BY_REFERENCE): Renamed from - CONNECTION_STRUCTURES_PASSED_BY_REFERENCE. - (mframe_dissect_call): Function renamed from dissect_method_call. - Remove some redundant if()-else clauses. Clarify case in which - OUT_PARAMETERS is true. Use switch statement instead of - if-else's. - (mframe_do_call): Function renamed from make_method_call. Get the - local selector type from the target's Method, not from the - selector type; this will more reliably give the correct type - string. Don't bother to set OBJECT twice. Remove some redundant - if()-else clauses. Use NSParameterAssert, not assert, so we can - catch problems, (and not crash the D.O. server). Change the way - memory management for decoded arguments is handled to remove - memory leaks; use new scheme for DECODER functions that are - responsonsible for making sure allocated memory is eventually - freed. Use alloca() to allocate space for _C_PTR values, struct's - and arrays. Overhaul the way floats and doubles are extracted - from the RETFRAME; use functions with __builtin_return, instead of - fishing around the RETFRAME. Use switch statement intead of - if-else's. Separate cases for char's and short's. Change some - local variable names for clarity. - (mframe_build_return): Function renamed from dissect_method_return. - Remove some redundant if()-else clauses. Use NSParameterAssert, - not assert. Change the way memory management for decoded - arguments is handled to remove memory leaks; use new scheme for - DECODER functions that are responsonsible for making sure - allocated memory is eventually freed. Use alloca() to allocate - space for _C_PTR values, struct's and arrays. - * src/objects/mframe.h: Declare new method names, and comment. - - * src/Connection.m ([Connection - -forwardForProxy:selector:argFrame:]): Use new mframe interface. - In the nested function DECODER, autorelease any char*'s that we - decode, as required by the new memory reference scheme. - ([Connection -_service_forwardForProxy:]): Likewise, for both. - - * src/Collection.m ([ConstantCollection - -_collectionReleaseContents]): Use alloca() instead of malloc() - and free(). - - Fixes to checks for testing new coding of float and double. - * checks/server.m ([Server -returnFloat]): Append float const with - `f'. Include for -connectionForProxy. - * checks/client.m (main): Print the float and double before - sending it. - * checks/cstream.m (main): Decode the float and double. - - * src/BinaryCStream.m ([BinaryCStream - -encodeValueOfCType:at:withName:]): Encode the exponent as a - short, not an int. - ([BinaryCStream -decodeValueOfCType:at:withName:]): Likewise, decoding. - * src/BinaryCStream.m ([BinaryCStream - -encodeValueOfCType:at:withName:]): [_C_CHARPTR]: Don't - autorelease the malloc'ed pointer here; thus the behavior is - analogous to decoding an object: it gives you a reference, it is - the callers responsibility to free it. - ([BinaryCStream -decodeValueOfCType:at:withName:]): [_C_DBL]: Fix - typo. Use mantissa1, not mantissa2 twice. - - Fix the scheme for encoding and decoding floats and doubles. The - old scheme sometimes lost precision, and it was also very - inefficient. - * src/BinaryCStream.m: Include - (FLOAT_FACTOR): New macro. - (WRITE_SIGNED_TYPE): Take new first argument, the pointer for the - data. - (READ_SIGNED_TYPE): Likewise. - (WRITE_UNSIGNED_TYPE): Likewise. - (READ_UNSIGNED_TYPE): Likewise. - ([BinaryCStream -encodeValueOfCType:at:withName:]): [_C_FLT]: Use new - scheme, based on frexp() to turn a float into a series of ints. - [_C_DBL]: Likewise. - ([BinaryCStream -decodeValueOfCType:at:withName:]): [_C_FLT]: Likewise - to match. - [_C_DBL]: Likewise. - - * src/RunLoop.m (debug_run_loop): Changed from 1 to 0; turn off - debugging messages. - -Thu Mar 28 22:59:35 1996 Andrew McCallum - - * src/MallocAddress.m ([MallocAddress - +autoreleaseMallocAddress:]): Fix typo in method name. - * src/objects/MallocAddress.h: Fix typo. - -Tue Mar 26 14:23:13 1996 Andrew McCallum - - * src/MallocAddress.m ([MallocAddress +initialize]): Use - NSNonRetainedObjectMapValueCallBacks, not - NSObjectMapValueCallBacks, because otherwise the object will never - get dealloc'ed. - - Send exceptions in the D.O. server back to the client. This is - not finished. We still need to address some potential memory leaks. - - * examples/second-client.m (main): Add a call that causes an - exception in the server, and catch the returned exception. - - * src/Connection.m: In all methods, use NSParameterAssert() - instead of assert(), so that it raises an NSException, and doesn't - abort(). - ([Connection -forwardForProxy:selector:argFrame:]): Decode the flag - that indicates whether the return packet hold an exception or the - return values. If it holds an exception, decode it and raise it. - ([Connection -_service_forwardForProxy:]): Surround the processing of - the method request packet with NS_DURING...NS_ENDHANDLER. If an - exception is raised, catch it, encode in in a specially flagged - packet, and send the packet back to the client. - - * src/BinaryCStream.m ([BinaryCStream - -decodeValueOfCType:at:withName:]): [_C_CHARPTR]: Autorelease the - malloc'ed char pointer. Before memory was leaking. - - * src/Connection.m: Use NSException instead of sending -error: in - all methods. - * src/Proxy.m: Likewise. - * src/NSString.m: Likewise. - * src/NSObject.m: Likewise. - * src/NSAutoreleasePool.m: Likewise. - * src/Encoder.m: Likewise. - * src/Decoder.m: Likewise. - * src/BinaryCStream.m: Likewise. - - * src/OrderedCollection.m ([OrderedCollection - -putObject:atIndex:]): Return type changed from id to void. Use - NSException, not error:. - -Mon Mar 25 19:27:06 1996 Andrew McCallum - - Fixing miscellaneous bugs that showed up with -Wall. - - * src/NXStringTable_scan.l (string_buf_ptr): Init local variable. - - * src/NSBundle.m ([NSBundle +setSystemLanguages:]): Comment out - unused variables. - - * src/NSData.m ([NSMutableData -resetBytesInRange:]): Cast to - avoid warning. - ([NSMutableData -initWithLength:]): Likewise. - - * src/NSValue.m ([NSValueDecoder -initValue:withObjCType:]): - Return self. - - * src/objc-load.c (objc_load_module): Comment out unused - variables. - - * src/UdpPort.m: Include for MAXHOSTNAMELEN. - ([UdpInPort -newPacketReceivedBeforeDate:]): Return nil. - -Sun Mar 24 17:04:24 1996 Andrew McCallum - - Just a little futzing. - - * src/UdpPort.m (name_2_port_number): Function renamed from - name_to_port_number, and changed to better use - IPPORT_USERRESERVED. - ([UdpInPort +newForReceivingFromPortNumber:]): Overhauled and - commented. - -Fri Mar 22 08:39:03 1996 Andrew McCallum - - * src/NSObject.m ([NSObject +initialize]): Use - NSNonOwnedPointerOrNullMapKeyCallBacks, not - NSNonRetainedObjectsMapKeyCallBacks; keying on addresses, and - avoiding a call to -isEqual, is better. - -Thu Mar 21 20:17:05 1996 Andrew McCallum - - * src/BinaryCStream.m ([BinaryCStream - -encodeValueOfCType:at:withName:name]): [_C_CHARPTR]: Write the - string with the host LENGTH, not the network LENGTH! - - * src/NSGSet.m ([NSGSet -isEqual:]): Make this just compare the - id's, not call [super isEqual:]. I did this to prevent an - infinite loop while running checks/nsarchiver.m, but I have a - feeling that the bug might be in map.c, not here. Look at this - again! - - * src/Set.m ([Set -nextObjectWithEnumState:]): Dereference - ENUMSTATE; this change mirrors the earlier change to [NSGSet - -nextObject]. - - * src/KeyedCollection.m ([ConstantKeyedCollection - -_decodeContentsWithCoder:]): Reverse order of objects and keys, - to match _encodeContentsWithCoder:. - - * src/Makefile.in (GNUSTEP_CFILES): Removed NSZone.c. - (GNUSTEP_MFILES): Added NSZone.m. - * NSZone.m: Renamed from NSZone.c. - (NSZoneSetName, NSZoneName): New functions; unimplemented. - * src/Foundation/NSZone.h: Declare new functions. - - * src/Makefile.in (objects/stdobjects.h): Create it in the build - directory, not $(srcdir). (Reported by Albin Jones.) - -Thu Mar 21 13:13:35 EST 1996 Albin L. Jones - - * src/Foundation/NSGeometry.h: Added documentation commentary - and reformatted things a little. Also separated the typedef's - from the struct declarations in the definitions of NSPoint, - NSSize, and NSRect. (This is for conformity to the GNU coding - standards.) - * src/NSGeometry.m: Added documentation commentary and - reformatted things a little. Also added bits of code to - guarantee that functions which return BOOL do so. - * src/Foundation/NSHashTable.h: Added full documentation. - * src/Foundation/NSMapTable.h: Ditto. - * src/Foundation/NSRange.h: Separated the typedef from the - struct declaration for NSRange. (This is for conformity to the - GNU coding standards.) - * src/Makefile.in: Added new files to GNU_MFILES, GNU_HEADERS; - removed old files from GNU_CFILES, GNU_OTHER_SRCFILES, - GNUSTEP_HEADERS, GNUSTEP_MFILES. Removed GNU_BASICS_CFILES, - GNU_BASICS_HFILES, GNU_CALLBACKS_CFILES, GNU_CALLBACKS_HFILES; - they are no longer needed. - * src/Makefile.in (libobjects.so): Replaced dependency - objects/stdobjects.h with $(HEADERS_INSTALL). - * src/Makefile.in (libobjects.a): Ditto. - * src/NSHashTable.m (_NSHT_extra_retain): Fixed annoying "Bus - error" bug. - * src/NSHashTable.m: Removed the usage of "allocs". Now uses - zones only. - * src/NSHashTable.m: Many other changes, none fundamental. More - comments. - * src/NSMapTable.m: Removed the usage of "allocs". Now uses - zones only. - * src/NSMapTable.m: Many other changes, none fundamental. More - comments. - * src/abort.c, src/allocs.c., src/atoz.m, src/objects/abort.h - src/objects/allocs.h, src/objects/bitops.h, - src/objects/minmax.h: Got rid of these, as they were no longer - needed. - * src/array.c: Became src/array.m. - * src/data.c: Became src/data.m. - * src/hash.c: Became src/hash.m. - * src/list.c: Became src/list.m. - * src/map.c: Became src/map.m. - * src/callbacks-char_p.c: Became src/cbs-char-p.m. - * src/callbacks-id.m: Became src/cbs-id.m. - * src/callbacks-int_p.c: Became src/cbs-int-p.m. - * src/callbacks-int.c: Became src/cbs-int.m. - * src/callbacks-void_p.c: Became src/cbs-void-p.m. - * src/callbacks.c: Became src/callbacks.m. - * src/number.c: Became src/numbers.c. - * src/x-basics.c.in: Became src/x-bas.m.in. - * src/x-callbacks.c.in: Became src/x-cbs.m.in. - * src/objects/magic.h, src/objects/number.h: Merged to form - src/objects/numbers.h. - * src/objects/x-basics.h.in: Became src/objects/x-bas.h.in. - * src/objects/x-callbacks.h.in: Became src/objects/x-cbs.h.in. - * src/array.m, hash.m, list.m, map.m: Removed usage of "allocs", - changed to using zones only. - -Thu Mar 21 19:27:56 1996 Andrew McCallum - - * src/Makefile.in (CFLAGS): Added -Wno-implicit. - - * src/BinaryCStream.m: Overhauled to use htonl() and friends. New - format is incompatible with the old. - - * checks/Makefile.in (SRCS): Add coder.m and cstream.m. - -Wed Mar 20 13:21:16 1996 Andrew McCallum - - * src/Makefile.in (CC): Added -pipe. - -Tue Mar 19 12:10:44 1996 Andrew McCallum - - * checks/server.m: Use new RunLoop mechanism, and new Array method - names. - ([Server -connection:didConnect:]): Clean up search for invalidated - proxies. - * checks/client.m: Use new RunLoop mechanism. - - * src/TcpPort.m (debug_tcp_port): Set to 1. - ([TcpInPort -encodeWithCoder:]): Use encodeBytes:.., not - encodeValue..; the data is already in network byte-order. - ([TcpOutPort -encodeWithCoder:]): Likewise. - ([TcpOutPort +newWithCoder:]): Likewise. - ([TcpOutPort - +newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]): Set - entirety of _REMOTE_IN_PORT_ADDRESS to zero. - - * src/Encoder.m ([Encoder -encodeBytes:count:withName:]): Update - for new argument types. - * src/Decoder.m ([Decoder -decodeBytes:count:withName:name]): - Update for new argument types, and verify read count. - * src/objects/Coding.h (Coding -encodeBytes:count:withName:): Use - void*, not char* for bytes. - (Coding -decodeBytes:count:withName:): Likewise, and pass COUNT, not - pointer to COUNT. - - * src/Encoder.m ([Encoder -encodeBytes:count:withName:]): Method - implemented; although it may need to change later. - * src/Decoder.m ([Decoder -decodeBytes:count:withName:name]): - Likewise. - - * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): If - LIMIT_DATE is nil, poll the inputs, but don't wait if there is - nothing available immediately. Check to make sure that the - LIMIT_DATE hasn't already past; if it has, return immediately, - before polling input sources. - -Mon Mar 18 13:31:38 1996 Andrew McCallum - - Miscellaneous small fixes, found with -Wall. - * src/NSThread.m: Fix indentation. - ([NSThread +currentThread]): Add parenthesis around assignment inside - while. - * src/NSString.m: Include . - ([NSString -componentsSeparatedByString:]): Initialize ARRAY! - * src/List.m: Include Use OBJC_MALLOC and - friends, instead of NX_MALLOC. - * src/Decoder.m ([Decoder -finishDecodingInterconnectedObjects]): - Comment out temporarily unused AWAKE_SEL local variable. - * src/Proxy.m: Raise NSExceptions instead of using -error:. - - Debug bug the occurs when a client disconnects from the server, - and other clients have references to Proxy's of the disconnected - client. - * examples/second-server.m ([SecondServer - -connectionBecameInvalid:]): Correctly detect proxies that should - be removed from the array. - * examples/second-client.m (main): Run RunLoop properly according - to new style. - * src/Proxy.m ([Proxy -encodeWithCoder:]): Add a more explanatory - error message for the use of invalid Connections. - ([Proxy +encodeObject:withConnectedCoder:]): Likewise. - ([Proxy -forward::]): Likewise. - * src/Connection.m ([Connection -_handleRmc:]): [METHOD_REQUEST]: - Fix conditional for which we handle a request immediately. Before - it inappropriately queued call backs from the server on which we - were waiting, causing us to wait forever. - * src/TcpPort.m ([TcpOutPort -encodeWithCoder:]): Add debugging - message. - ([TcpOutPort +newWithCoder:]): Add debugging message. - * src/Proxy.m ([Proxy +encodeObject:withConnectedCoder:]): Assert - that triangle connection proxy out port's are valid. - - Fix tricky autorelease bugs. - * examples/second-server.m ([SecondServer - -connectionBecameInvalid:]): Don't release REMOTES; it was already - autoreleased. - (main): Enable double release check with NSObject. - * src/NSMapTable.m (NSAllMapTableKeys): Don't autorelease the - return value; it was already autoreleased. Too many autoreleases - were causing crashes. - (NSAllMapTableValues): Likewise. - * src/NSObject.m ([NSObject -autorelease]): Print retain and - release counts in more helpful error message. - * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Set - CURRENT_POOL to PARENT, even if PARENT is nil. This is correct - behavior. Old behavior could cause infinite loops in the PARENT - pointers. - - Remove old vestiges of nil mode used when RunLoop modes were - ignored. - * src/RunLoop.m ([RunLoop -limitDateForMode:]): Assert mode. - ([RunLoop -acceptInputForMode:beforeDate:]): Likewise. - * src/NSTimer.m ([NSTimer - +scheduledTimerWithTimeInterval:invocation:repeats:]): Add to - RunLoopDefaultMode, not nil. - ([NSTimer - +scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]): - Likewise. - * src/Connection.m ([Connection - -_getReceivedReplyRmcWithSequenceNumber:]): Run the RunLoop in - RunLoopConnectionReplyMode, not nil mode. - - Update Connection for new RunLoop/Port interaction/interface. - * src/Connection.m ([Connection - +newForInPort:outPort:ancestorConnection:]): Add the in port to - the RunLoop in new RunLoop style. - ([Connection -addToRunLoop:forMode:]): Method removed. - ([Connection -removeFromRunLoop:forMode:]): Method removed. - ([Connection -_getReceivedReplyRmcWithSequenceNumber:]): Use new class - method for RunLoop. - ([Connection -invalidate]): Remove comment about removing from - RunLoop. RunLoop's now automatically remove invalid ports. - (RunLoopConnectionReplyMode): New run loop mode string. - * src/objects/Connection.h: Remove old methods. Add declaration - of new RunLoop mode. - - Fix the relationship between RunLoop's and Port's. Maintain the - fd_set, and information about which Port's are registered with - which RunLoop's entirely in the RunLoop. Also implement multiple - MODE's with RunLoop's---previously the MODE was ignored: - - * checks/tcpport-server.m (main): Add port to run loop using new - scheme. - * checks/tcpport-client.m (main): Likewise. - - * src/TcpPort.m: Removed methods for dealing remembering locally - which RunLoop we've been added to; now the RunLoop manages this. - ([TcpInPort +newForReceivingFromPortNumber:]): Don't initialize the - the removed ivar ACTIVE_FD_SET. Likewise with _RUN_LOOPS. - ([TcpInPort -newPacketReceivedBeforeDate:]): Don't use removed - _RUN_LOOPS. - ([TcpInPort -old_receivePacketWithTimeout:]): Remove old deprecated - method. - ([TcpInPort -invokeWithObject:]): Method removed. - ([TcpInPort -newPacketReceivedBeforeDate:]): Overhauled to use new - RunLoop mechanism. - ([TcpInPort -getFds:count:]): New method, called by RunLoop. - ([TcpInPort -readyForReadingOnFileDescriptor:]): Likewise. - ([TcpInPort -_addClientOutPort:]): Updated for new scheme. - ([TcpInPort -_connectedOutPortInvalidated:]): Likewise. - ([TcpInPort -addToRunLoop:forMode:]): Method removed. - ([TcpInPort -removeFromRunLoop:forMode:]): Method removed. - ([TcpInPort -dealloc]): Don't release deleted ivar _RUN_LOOPS. - * src/objects/TcpPort.h (TcpInPort _run_loops): Removed ivars. - (TcpInPort _client_sock_2_out_port, _client_sock_2_packet): Prepended - ivars with underscores. - - * src/RunLoop.m: Add new explanatory comment at beginning. - ([RunLoop -init]): Initialize new ivars. - ([RunLoop -currentMode]): New method. - ([RunLoop -addFileDescriptor:object:forMode:]): Method replaces - -addFileDescriptor:invocation:forMode:, and re-implemented. Not - yet functional. - ([RunLoop -removeFileDescriptor:forMode:]): Likewise. - ([RunLoop -addPort:forMode:]): New method. - ([RunLoop -removePort:forMode:]): New method. - ([RunLoop -addTimer:forMode:]): Overhauled to do the right thing with - the MODE argument. - ([RunLoop -acceptInputForMode:beforeDate:]): Method overhauled to ask - port objects for their FD's, create FD_2_OBJECT map table on the - fly, and initialize FDS on the fly. Now properly removed - invalidated ports from the MODE. - ([RunLoop -runOnceBeforeDate:forMode:]): New method. - ([RunLoop -runOnceBeforeDate:]): New method. - ([RunLoop -runUntilDate:forMode:]): New method. - ([RunLoop -runUntilDate:]): New method. - ([RunLoop +runUntilDate:forMode:]): New method. - ([RunLoop +runOnceBeforeDate:]): New method. - ([RunLoop +runOnceBeforeDate:forMode:]): New method. - ([RunLoop +currentMode]): New method. - (RunLoopDefaultMode): New global variable. - ([NSObject -performSelector:afterDelay:]): Not implemented. - * src/objects/RunLoop.h: Many new methods declared. - (RunLoop _mode_2_timers): New ivar. - (RunLoop _mode_2_in_ports): New ivar. - (RunLoop _mode_2_fd_listeners): New ivar. - (RunLoopDefaultMode): New extern variable. - - * src/objects/RandomGenerating.h (RandomGenerating): Inherit from - NSObject protocol. Remove methods +alloc and -init. - - * src/NSDate.m ([NSDate +distantFuture]): Increase efficiency by - caching a single instance in a static variable. - ([NSDate +distantPast]): Likewise. - -Fri Mar 15 19:13:57 1996 Scott Christley - - * checks/nsarray.m (main): Filled out tests for NSArray and - NSMutableArray classes. - -Sun Mar 17 18:20:17 1996 Andrew McCallum - - Many miscellaneous small bug fixes, found with -Wall: - - * src/objects/objects.h: Don't include - - * src/mframe.m (dissect_method_return): Initialize RETFRAME to - NULL to prevent warning. - - * src/UdpPort.m: Change references to non-existant UdpPacket class - to UdpInPacket. - * src/objects/UdpPort.h: Declare classes UdpInPacket and - UdpOutPacket. - - * src/TcpPort.m (bzero): New macro, to memset(); for FD_ZERO(). - - * src/RunLoop.m: Remove references to NAN. Include for - memset. - (bzero): New macro, to memset(); for FD_ZERO(). - * src/NSTimer.m: Remove references to NAN. - - * src/Proxy.m ([Proxy +newWithCoder:]): Remove unused variable. - - * src/NotificationDispatcher.m ([NotificationDispatcher - -removeObserver:name:object:]): Remove unused variables. - * src/NSNotificationCenter.m: Include - * src/NSNotification.m: Include - - * src/NSInvocation.m ([NSInvocation -methodSignature]): Return - nil. - - * src/NSDate.m ([NSDate -initWithString:]): Initialize theTime to - 0, to prevent warning. - - * src/NSData.m ([NSData +_setConcreteClass:]): Include - for memset(). - - * src/NSCountedSet.m ([NSCountedSet -countForObject:]): Return 0. - - * src/NSBundle.m: Minor comment format fix. - - * src/Invocation.m: Remove several unused local variables. - ([MethodInvocation -invokeWithObject:]): Revert last change: call - -invokeWithTarget:, not -subclassResponsibility. - - * src/NSAllocateObject.m: Include for memset(). - - * src/NSAutoreleasePool.m ([NSAutoreleasePool - -parentAutoreleasePool]): Remove inclusion of eltfuncs.h and - collhash.h. - - Miscellaneous archiving fixes. - * src/NSArchiver.m ([NSArchiver +initialize]): Use ==, not = in if - test. - * src/Encoder.m ([Encoder -_coderCreateReferenceForObject:]): - Return the xref! - ([Encoder -_coderCreateReferenceForConstPtr:]): Likewise. - * src/Coder.m: Return nil for several -notImplemented methods that - are to return objects. - * src/CStream.m ([CStream -initForWritingToStream:s]): Return the - result. - * src/TextCStream.m ([TextCStream -decodeName:name]): Pass correct - value to debug message. - * src/RawCStream.m ([RawCStream - -encodeValueOfCType:at:withName:name]): Remove unused variable. - ([RawCStream -decodeValueOfCType:at:withName:]): Likewise. Switch on - *type, not unused variable. - - Miscellaneous fixes to collection classes. - * src/MutableCString.m ([MutableCString -initWithCoder:]): Remove - unused variable n. Return self, not n. - * src/OrderedCollection.m ([OrderedCollection - -replaceRange:withCollection:]): Return void. - ([OrderedCollection -replaceRange:usingCollection:]): Likewise. - * src/MappedCollector.m ([MappedCollector - -initWithObjects:forKeys:count:]): Return self. - * src/LinkedList.m ([LinkedList -initWithObjects:count:]): Return - self. - * src/KeyedCollection.m ([ConstantKeyedCollection - -initWithObjects:forKeys:count:]): Return nil. - ([ConstantKeyedCollection -objectAtKey:]): Likewise. - ([ConstantKeyedCollection -keyOfObject:]): Likewise. - ([ConstantKeyedCollection -withKeysInvoke:]): Return void. - ([ConstantKeyedCollection -withKeysInvoke:whileTrue:]): Likewise. - ([ConstantKeyedCollection -nextObjectAndKey:withEnumState:]): - Return nil. - ([ConstantKeyedCollection -copyValuesAs:]): Likewise. - ([ConstantKeyedCollection -nextObjectAndKey:withEnumState:]): - Likewise. - * src/IndexedCollection.m ([ConstantIndexedCollection - -prevObjectWithEnumState:]): Use assignment, not equality test for - setting enumState to -1. - * src/GapArray.m ([GapArray -empty]): Renamed from - _collectionEmpty, and implemented to do entire job of emptying. - * src/Dictionary.m ([Dictionary -newEnumState]): Removed useless - cruft. - * src/Collection.m ([ConstantCollection - -detectObjectByInvoking:]): Set detectedObject to nil to avoid - warning. - ([ConstantCollection -maxObject]): Initialize MAX to nil. - ([ConstantCollection -minObject]): Initialize MIN to nil. - ([Collection -uniqueContents]): Iterate over CP, not SELF. - * src/CircularArray.m ([CircularArray -empty]): Renamed from - _collectionEmpty, and implemented to do entire job of emptying. - * src/Array.m ([Array -empty]): Renamed from _empty, and - implemented to do entire job of emptying. - -Fri Mar 15 13:10:34 1996 Andrew McCallum - - * doc/Makefile.in (GNUstep-FAQ.html): New target. - (GNUstep-FAQ): Rules modified to handle @email{} and @url{}. - -Tue Mar 12 09:43:32 1996 Andrew McCallum - - * checks/tcpport-server.m, checks/tcpport-client.m: Method name - changes. - - * checks/Makefile.in (SRCS): Add nstimer.m. - - * src/TcpPort.m ([TcpInPort +newForReceivingFromPortNumber:]): - Initialize _run_loops. - ([TcpInPort -addToRunLoop:forMode:]): Use new _run_loops Bag. - ([TcpInPort -removeFromRunLoop:forMode:]): Likewise. - ([TcpInPort -_connectedOutPortInvalidated:]): Likewise. - ([TcpInPort -_addClientOutPort:]): Likewise. - ([TcpInPort -dealloc]): Release _run_loops. - ([TcpOutPort -outPacketClass]): Method renamed from -packetClass. - ([TcpOutPort +outPacketClass]): Likewise. - * src/objects/TcpPort.h (TcpInPort _run_loops): Make it a Bag. - (TcpInPort _run_loop_modes): Remove ivar. - - * src/Port.m ([InPort -setReceivedPacketInvocation:]): Assert that - _packet_invocation isn't already set. - - * src/RunLoop.m ([RunLoop -removeFileDescriptor:forMode:]): Add - debugging message. - - * src/NSGSet.m ([NSGSet -member:]): Return value. - - * src/IndexedCollection.m ([ConstantIndexedCollection - -firstObject]): Return nil if empty. - ([ConstantIndexedCollection -lastObject]): Likewise. - ([ConstantIndexedCollection -prevObjectWithEnumState:]): Use -1 to - deal with reversals at extremes. - ([ConstantIndexedCollection -nextObjectWithEnumState:]): Use [self - count] to deal with reversals at extremes. - - * src/Connection.m (in_port_2_ancestor): New static variable. - ([Connection +initialize]): Initialize it. - ([Connection +newForInPort:outPort:ancestorConnection:]): Use new - static variable to handle ancestor; (ignore ancestor argument; the - method name will be changed later). Set the in-port's packet - invocation to the Connection class. Don't call - -addToRunLoop.. here, the mechanics of it were already done above. - ([Connection -addToRunLoop:forMode:]): Mark it as not implemented, - for now. - ([Connection -runConnectionUntilDate:]): Don't add to run loop here. - ([Connection +invokeWithObject:]): Make it a class method instead of - an instance method; alter contents appropriately for this. - ([Connection -portIsInvalid:]): Look at in_port_2_ancestor and remove - ourselves if necessary. - ([Connection -invalidate]): Don't remove ourselves from the run loop - here, because we may not be the only one listening. This still - needs fixing. - - * src/ConnectedCoder.m ([ConnectedEncoder -dismiss]): Fix typo in - sendPacket: call. - - * src/IndexedCollection.m: Several minor fixes to return types and - return values. Also: - ([ReverseEnumerator -nextObject]): Pass pointer to enum_state. - ([ConstantIndexedCollection -prevObjectWithEnumState:]): Method - overhauled. - ([ConstantIndexedCollection -nextObjectWithEnumState:]): Likewise. - ([ConstantIndexedCollection -newEnumState]): New method. - - * src/Foundation/NSGSet.h: Remove #include of objects/elt.h. - * src/Foundation/NSGDictionary.h: Likewise. - * src/Foundation/NSGArray.h: Likewise. - * src/NSGSet.m: Remove #include of objects/eltfuncs.h. - * src/NSGDictionary.m: Likewise. - * src/NSGCountedSet.m: Likewise. - * src/AutoreleasePool.m: Remove #include of objects/collhash.h. - - * src/TcpPort.m: Updated to conform to new Port class. TcpPacket - class split into TcpInPacket and TcpOutPacket. - * src/objects/TcpPort.h: Declare new methods and classes. - - * src/RunLoop.m: Debugging messages conditioned on debug_run_loop. - ([RunLoop -runOnceBeforeDate:forMode:]): New method. - * src/objects/RunLoop.h: Declare new method. - - * src/Port.m ([Port +outPacketClass]): Method renamed from - packetClass. - ([Port -outPacketClass]): Likewise. - ([InPort -setReceivedPacketInvocation:]): Method renamed from - setPacketInvocation. - ([OutPort -sendPacket:]): Method renamed from -sendPacket:withTimeout:. - (OutPacket, InPacket): New classes, replacing Packet class. - * src/objects/Port.h: Declare new methods and classes. - - * src/MemoryStream.m ([MemoryStream -initWithCapacity:prefix:]): - New method. - * src/objects/MemoryStream.h: Declare new method. - - * src/Connection.m: Remove old-style methods for getting incoming - ConnectedCoders. Add new methods that use RunLoop. All callers - changed. - ([Connection -addToRunLoop:forMode:]): New method. - ([Connection -removeFromRunLoop:forMode:]): New method. - ([Connection -runConnectionUntilDate:]): New method. - ([Connection -runConnection]): Method changed to call above method. - ([Connection -_handleRmc:]): New method. - ([Connection -_handleQueuedRmcRequests]): New method. - ([Connection -_getReceivedReplyRmcFromQueueWithSequenceNumber:]): New - method. - ([Connection -_getReceivedReplyRmcWithSequenceNumber:]): New method. - ([Connection -invokeWithObject:]): New method. - ([Connection +newForInPort:outPort:ancestorConnection:]): Set - reply_depth ivar. - ([Connection -_encoderCreateReferenceForConstPtr:]): Return the xref! - * src/objects/Connection.h: Declare new methods. Type arguments - with InPort and OutPort, not just Port. - (Connection reply_depth): New ivar. - - * src/ConnectedCoder.m ([ConnectedDecoder - +newDecodingWithPacket:connection:]): New method. Old method - +newDecodingWithConnection:timeout: is deprecated. - * src/objects/ConnectedCoder.h: Declare new method. - -Mon Mar 11 12:02:04 1996 Andrew McCallum - - * checks/tcpport-server.m: Updated for RunLoop. - * checks/tcpport-client.m: Likewise. - - * src/RunLoop.m: New file. - * src/objects/RunLoop.h: New file. - * src/NSTimer.m: New file. - * src/Makefile.in (CFLAGS): Add -Wall. - (GNU_MFILES): Add RunLoop.m. - (GNU_HEADERS): Add objects/RunLoop.h. - (GNUSTEP_MFILES): Add NSTimer.m. - (GNUSTEP_HEADERS): Add Foundation/NSTimer.h. - - * src/TcpPort.m ([TcpInPort -receivePacketWithTimeout:]): - Completely new implementation that uses the RunLoop. - ([TcpInPort -old_receivePacketWithTimeout:]): New method, holding old - implementation. - ([TcpInPort -invokeWithObject:]): New method, called by RunLoop. - ([TcpInPort -_tryToGetPacketFromReadableFD:]): New private method. - ([TcpInPort -_addClientOutPort:toRunLoop:forMode:]): New method. - ([TcpInPort -addToRunLoop:forMode:]): New method. - ([TcpInPort -_removeClientOutPort:fromRunLoop:forMode:]): New method. - ([TcpInPort -removeFromRunLoop:forMode:]): New method. - ([TcpInPort -_addClientOutPort:]): Add it to the RunLoop. - ([TcpInPort -_connectedOutPortInvalidated:]): Remove it from the - RunLoop. - ([TcpInPort -_addClientOutPort:]): Method renamed from _addOutPort:. - * src/objects/TcpPort.h (TcpInPort _run_loop, _run_loop_mode): New - ivars. - - * src/Port.m ([InPort -init]): Set _packet_invocation. - ([InPort -setPacketInvocation:]): New method. - ([InPort -addToRunLoop:forMode:]): New method. - ([InPort -removeFromRunLoop:forMode:]): New method. - * src/objects/Port.h: Declare new methods. - (Port _packet_invocation): New ivar. - - * src/NotificationDispatcher.m ([NotificationDispatcher - +defaultInstance]): New method. - ([NotificationDispatcher -removeObserver:name:object:]): Remove - handling of non-existance _nil_observer_array. - - * src/NSDate.m: Many small formatting changes. - (UNIX_REFERENCE_INTERVAL): Macro renamed from UNIX_OFFSET. - ([NSConcreteDate -timeIntervalSinceNow]): New method. - - * src/Invocation.m (return_retained): Change macro from 1 to 0. - - * src/Foundation/NSTimer.h: Declare NSTimer class interface. - - * src/Connection.m ([Connection -isValid]): New method. - - * src/objects/NotificationDispatcher.h ([NotificationDispatcher - +defaultInstance]): Declare new method. - - * src/objects/Notification.h (Notifying): New protocol. - (NotificationPosting): New protocol. - - * src/objects/Connection.h: Declare new method. - - * src/objects/Array.h (ConstantArray): Inherit from - ConstantIndexedCollection, not IndexedCollection. - - * src/IndexedCollection.m ([IndexedCollection +initialize]): - Compare self with IndexedCollection, not KeyedCollection. - - * doc/gnustep-faq.texi: Changes by Scott Christley. - -Thu Mar 7 15:51:51 1996 Andrew McCallum - - * src/TcpPort.m ([TcpInPort -receivePacketWithTimeout:]): Move - initialization of select_timeout to inside loop since Linux - select() modifies *select_timeout. - -Wed Mar 6 11:40:02 1996 Andrew McCallum - - * src/TcpPort.m: Assert is_valid in many places. - ([TcpInPort +newForReceivingFromPortNumber:]): Get the address of the - host, not localhost=127.0.0.1. - ([TcpInPort -invalidate]): Remove ourselves from socket_2_port and - port_number_2_port here instead of in -dealloc. - ([TcpInPort -description]): Indicate whether we are valid or not in + * src/NSGString.m: ([-cString]) fixed crash when called on empty string. - ([TcpOutPort -description]): Likewise. - ([TcpOutPort -invalidate]): Assert is_valid, don't just conditionally - execute body. Remove ourselves from out_port_bag and - socket_2_port here, not in -dealloc. - ([TcpPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): If we - don't read() full prefix, don't abort(), just return EOF. - * src/Proxy.m: Assert that the connection is valid in several - places. - - * src/Connection.m: Assert is_valid in many places. - ([Connection +newForInPort:outPort:ancestorConnection:]): Set is_valid - to 1. Only ask for notification of out port death if out port is - non-nil. - ([Connection -portIsInvalid:]): Properly get the port from the - notification object. - - * src/Port.m ([Port -invalidate]): Insist that is_valid is true at - the beginning of this method, don't test it and skip the body of - this method. Force users to be careful about calling -invalidate - more than once. - - * src/NSMapTable.m (NSAllMapTableValues): Get rid of unused - variable ARRAY. Return VALUEARRAY, not unused variable. - - * examples/second-server.m (announce_new_port): New function. - (announce_broken_port): New function. - (main): Register them for notifications; let user choose registered - name on command line. - - * examples/second-client.m (main): Use new notification interface. - - * checks/nsnotification.m (main): Wrap it with an - NSAutoreleasePool. - - * checks/tcpport-server.m (main): Use new notification interface - for invocations. - - * src/NotificationDispatcher.m (NotificationRequest): Ivar names - prepended with `_'. - (NotificationInvocation): Likewise. - (NotificationPerformer): Likewise. - ([NotificationDispatcher - -_addObserver:notificationRequest:name:object:]): Insist that - observer be non-nil; (in the case of Invocation's, the invocation - is now the observer). - ([NotificationDispatcher -addInvocation:name:object:]): Method renamed - from -addObserver:invocation:... Pass the invocation as the - observer. Release the NR after it has been added. - ([NotificationDispatcher -addObserver:selector:name:object:]): Release - the NR after it has been added. - ([NotificationDispatcher -_removeFromLinkedListNotificationRequest:]): - New method. - ([NotificationDispatcher -removeInvocation:]): New method. - ([NotificationDispatcher -removeInvocation:name:object:]): New method. - ([NotificationDispatcher -removeObserver:]): Use - _removeFromLinkedListNotificationRequest:. - ([NotificationDispatcher -removeObserver:name:object:]): Likewise. - ([NotificationDispatcher +addInvocation:name:object:]): New method. - ([NotificationDispatcher +removeInvocation:]): New method. - ([NotificationDispatcher +removeInvocation:name:object:]): New method. - * src/objects/NotificationDispatcher.h: Declare new methods. - - * src/Connection.m ([Connection +initialize]): Initialize - all_connections_local_targets. - ([Connection -addLocalObject:]): Put it in - all_connections_local_targets also. - ([Connection -removeLocalObject:]): Remove it from - all_connections_local_targets also. - -Tue Mar 5 10:32:51 1996 Andrew McCallum - - * examples/second-server.m: Use notifications instead of old - scheme for invalidation listening. - * examples/second-server.h: Don't conform to no-longer-used - InvalidationListening protocol. - * examples/second-client.m (announce_new_connection): New function. - (main): Register it for notifications. Run the connection forever, - instead of on a 15 second timeout. - * examples/first-client.m (main): Before exit, invalidate the - connection, not the proxy. - * examples/textcoding.m: Send -close to Archiver, not old - -closeCoder. - * examples/Makefile.in (first): Force check for re-compilation of - libobjects. - (second): Likewise. - - * checks/tcpport-server.m (announce_new_connection): New function. - (announce_broken_connection): New function. - (main): Register new functions for notifications. Send messages back - to clients to test reply port mechanism. - * checks/tcpport-client.m: Test the reply port mechanism; look for - messages coming back from the server. - * checks/server.m: Use Array instead of List. Use - NotificationDispatcher to hear about invalid and new connections. - Let the user set the registerd name from the command line. - * checks/server.h: Update for new server interface. - * checks/client.m (main): Let user set registered name from - command line. - * checks/Makefile.in (SRCS): Added nsnotification.m. - (tcpport, remote): Force check of libobjects re-compilation. - - * doc/Makefile.in (TEXI_FILES): Add gnustep-faq.texi. - (GNUstep-FAQ): New target. - - * src/TcpPort.m: Many ivar names changed for clarity. Some new - ivars added; see changes to TcpPort.h. Overhaul of how - TcpOutPort's track their remote address. Previously they used the - address of their local peer; this is no good when encoding a - TcpOutPort on the wire for D.O.; the D.O. reciever needs a way to - contact the listen'ing socket of the TcpInPort in order to form a - new connection. _remote_in_port_address is now the address of the - remote listen'ing socket. Added many comments throughout. All - perror() calls changes to be more informative. - (debug_tcp_port): Make this a static variable instead of a macro. - (init_socket_2_port): Check pre-existance of socket_2_port here - instead of callers. - ([TcpInPort +newForReceivingFromPortNumber:]): Method overhauled. - Don't bind socket to INADDR_ANY because we need to be able to - encode our unique host address on the wire for D.O. - ([TcpInPort -_listeningSockaddr]): New method. - ([TcpInPort -receivePacketWithTimeout:]): Method overhauled. Get the - reply port for an incoming packet from the packet prefix. - ([TcpInPort -_connectedOutPortInvalidated:]): Add debugging message. - ([TcpInPort -classForConnectedCoder:]): Return the TcpOutPort class, - not [self class] because we always encode a "send right" (ala - Mach), not a "recieve right". - ([TcpOutPort - +newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]): - Method renamed, and majorly overhauled. Now many different - combinations of NULL argument do different things. This is now - the single designated initializer. We now check both the SOCKADDR - and the SOCK argument to find previously-created TcpOutPort's. - This method is also used to set the remote_in_port_address of an - already-created TcpOutPort. There is more error checking. - ([TcpOutPort +newForSendingToPortNumber:onHost:]): Overhauled. - ([TcpOutPort +_newWithAcceptedSocket:peeraddr:inPort:]): Overhauled to - work with new designated initalizer. - ([TcpOutPort -sendPacket:withTimeout:]): Use new low-level Packet - interface that deals with reply ports. - ([TcpOutPort +packetClass]): New method. - (PREFIX_LENGTH_TYPE): New macro. - (PREFIX_LENGTH_SIZE): New macro. - (PREFIX_ADDRESS_TYPE): New macro. - (PREFIX_ADDRESS_SIZE): New macro. - (PREFIX_SIZE): New macro. - ([TcpPacket -_initForReceivingWithSize:replyPort:]): Use 0 prefix, - because the separate +_getPacketSize... method reads those bytes. - ([TcpPacket -_writeToSocket:withReplySockaddr:]): Now the prefix - includes the sockaddr of the reply port. If ADDR is non-null, set - the reply port address portion of the prefix. - ([TcpPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): New - method, replacing +readPacketSizeFromSocket:. - ([TcpPacket -_fillFromSocket:]): Set Stream's eofPosition properly. - Leave Stream's position at zero. - (InPortAcceptedClientNotification): New notification string. - * src/objects/TcpPort.h: Declare new ivars and notfication - strings. - - * src/Proxy.m: Change many ivar names. - (debug_proxy): Temporarily set to 1. - ([Proxy +newForRemoteTarget:connection:]): Set new ivar names. - Embellish debugging message to include connection. - ([Proxy -invalidateProxy]): Return void instead of self. - ([Proxy +encodeObject:withConnectedCoder:]): Overhauled, encode tag, - and change order of encoding for more efficient encoding. Added - many comments. - ([Proxy +newWithCoder:]): Likewise, to match. Also added a check to - make sure we don't return a bogus pointer for a local object; do - this by checking with connection's +includesLocalObject; if it's - not there, raise an exception. - ([Proxy -forward::]): Call the new forwarding method name in - Connection. - * src/objects/Proxy.h: Several ivar name changes. Method types - fixed. - - * src/Connection.m (default_in_port_class, - default_out_port_class): New static variables, replacing - default_port_class. - (all_connections_local_targets): New map table; not used yet, though. - (debug_connection): Temporarily set to 1. - ([Connection +initialize]): Set new static vars. - ([Connection +setDefaultInPortClass:]): New method. - ([Connection +defaultInPortClass]): New method. - ([Connection +setDefaultOutPortClass:]): New method. - ([Connection +defaultOutPortClass]): New method. - ([Connection -init]): Use new default_in_port_class. - ([Connection +new]): Likewise. - ([Connection +newWithRootObject:]): Likewise. - ([Connection +newRegisteringAtName:withRootObject:]): Likewise. - ([Connection +rootProxyAtName:onHost:]): Likewise. - ([Connection +rootProxyAtPort:]): Likewise. - ([Connection +newForInPort:outPort:ancestorConnection:]): Assert the - in port. Embellish the debugging message to print the in port and - out port. Set the new connection's in port and out port ivars. - Register ourselves as observers of port invalidation with the - NotificationDispatcher. Post a notification that a new connection - was created. - ([Connection -runConnectionWithTimeout:]): Use - _serviceReceivedRequestsWithTimeout:. - ([Connection -_newReceivedRmcWithTimeout:]): Use decodingClass, not - encodingClass. - ([Connection -_serviceReceivedRequestsWithTimeout:]): Method name - changed from -newReceivedReplyRmcWithSequenceNumber:. - ([Connection +includesLocalObject:]): New method; still needs more - infrastructure to work, though. - ([Connection -inPortClass]): New method. - ([Connection -outPortClass]): New method. - ([Connection -setInPortClass:aPortClass]): New method. - ([Connection -setOutPortClass:aPortClass]): New method. - ([Connection -_encoderCreateReferenceForConstPtr:]): Add 1 to map - table count to get xref. - ([Connection -_decoderCreateReferenceForConstPtr:]): Likewise. - ([Connection -dealloc]): Remove ourselves from the - NotificationDispatcher. - (ConnectionWasCreatedNotification): New notification string. - * src/objects/Connection.h (in_port_class, out_port_class): New - ivars replacing port_class. Declare methods to get and set them. - - * src/ConnectedCoder.m (CONNECTED_CODER_FORMAT_VERSION): New - macro. - ([ConnectedEncoder - -_initForWritingWithConnection:sequenceNumber:identifier:]): Get - packetClass from the connection's outPort, not the outPortClass. - Return self. - ([ConnectedDecoder - +readSignatureFromCStream:getClassname:formatVersion:]): Fill in - name and version. - - * src/LinkedList.m ([LinkedList -prependObject:]): Fix return type. - ([LinkedList -insertObject:atIndex:]): Likewise. - - * src/Encoder.m ([Encoder -_coderCreateReferenceForObject:]): - Insert it in object_2_xref, not const_ptr_2_xref. - ([Encoder -_encodeObject:withName:isBycopy:isForwardReference:]): - Create the in_progress_table with - NSNonOwnedPointerMapKeyCallBacks, not NSObject..; needed by - distributed objects so we don't get infinite loop with proxy - objects. - - * src/Decoder.m ([Decoder - +readSignatureFromCStream:getClassname:formatVersion:]): Compare - got with 6, not 2. - ([Decoder -_coderCreateReferenceForObject:]): Add warning comment - about a -retain we don't want. Fix this eventually! - - * src/objects/CoderPrivate.h (SIGNATURE_FORMAT_STRING): Remove - "version" from between class name and format version. - - * src/CStream.m: Use new SIGNATURE_FORMAT_STRING, as defined in - objects/CoderPrivate.h. - -Sat Mar 2 19:33:26 1996 Andrew McCallum - - Wrote implementation of GNU Notification and - NotificationDispatcher classes. Used these as the engines for new - versions of the NSNotification* classes. The previous versions of - NSNotification and NSNotificationCenter were buggy and slow. The - new GNU implementations have some dramatic improvements speed, due - to extra use of hash tables, and the use of LinkedList's; they - also have some better features. - - * src/Notification.m: New file. - * src/NotificationDispatcher.m: New file. - * src/objects/Notification.h: New file. - * src/objects/NotificationDispatcher.h: New file. - - * src/NSNotificationCenter.m: Completely new implementation based - on GNU NotificationDispatcher. This version is much faster, and - has some better features. - * src/NSNotification.m: Completely new implementation based on GNU - Notification. - * src/Foundation/NSNotification.h: New interface based on GNU - Notification and NotificationDispatcher. - - * src/Makefile.in (GNU_MFILES): Added Notification.m and - NotificationDispatcher.m. Removed SocketPort.m. - (GNU_HEADERS): Added objects/Notification.h and - objects/NotificationDispatcher.h. Removed objects/SocketPort.h. - * src/Foundation/NSConnection.h (NSConnectionDeath): New macro. - - * src/objects/TcpPort.h: Declare new methods and new Notification - String. - - * src/Proxy.m ([Proxy +initialize]): Don't return self. - - * src/objects/Magnitude.h: Don't include - - * src/LinkedList.m ([LinkedList -insertObject:after:]): When - inserting first object, set _count to 1. - ([LinkedList -insertObject:before:]): Likewise. - ([LinkedList -appendObject:]): Don't claim ownership here if we're - going to call -insertObject:after: later. - ([LinkedList -prependObject:]): Likewise. And renamed from - prependElement. - ([LinkedList -insertObject:atIndex:]): Likewise. - ([LinkedList -newEnumState]): New method. - ([LinkedList -nextObjectWithEnumState:]): Overhauled. - ([LinkedList -prevObjectWithEnumState:]): Likewise. - * src/LinkedListNode.m ([LinkedListNode -initialize]): Method - removed. - ([LinkedListNode -init]): Set _linked_list. - - * src/Connection.m ([Connection +connectionsCountWithInPort:]): - Fix use of END_FOR_ARRAY. - ([Connection -invalidate]): Post ConnectionBecameInvalidNotification. - (ConnectionBecameInvalidNotification): New extern String. - - * src/objects/Connection.h (ConnectionBecameInvalidNotification): - Declare extern new String. - - * src/objects/String.h (String): Make the protocol inherit from - the NSObject protocol. - - * src/objects/Collecting.h (ConstantCollecting): Make is inherit - from the NSObject protocol. - - * src/TcpPort.m ([TcpInPort -numberOfConnectedOutPorts]): New - method. - ([TcpInPort -_connectedOutPortInvalidated:]): Post an - InPortClientBecameInvalidNotification. - ([TcpInPort -portNumber]): New method. - ([TcpInPort -description]): New method. - ([TcpOutPort +newWithAcceptedSocket:inPort:]): Fill in the - _address ivar. - ([TcpOutPort -portNumber]): New method. - ([TcpOutPort -description]): New method. - - * src/Invocation.m ([MethodInvocation -invokeWithObject:]): Make - it a -subclassResponsibililty. - ([MethodInvocation -initWithArgframe:selector:]): Raise an exception - if we are unable to get a non-null selector type string. - - * src/Port.m ([Port -invalidate]): Post - PortBecameInvalidNotification. - (PortBecameInvalidNotification): New String object. - - * src/NSGDictionary.m ([NSGMutableDictionary -objectForKey:]): New - method. - - * src/KeyedCollection.m ([ConstantKeyedCollection -description]): - Use object_get_class_name instead of -name. - - * src/Foundation/NSObject.h (NSObject (NEXSTEP)): Comment out - -name method because NSNotification.h declares it with a different - type. Eventually we'll have to come up with a more permanent - solution. - - * src/DelegatePool.m ([DelegatePool -forward::]): Fix use of - END_FOR_ARRAY. - - * src/Collection.m ([Enumerator -nextObject]): Pass pointer to - ENUM_STATE. - ([Enumerator -dealloc]): Likewise. - ([ConstantCollection -detectObjectByInvoking:]): Use -returnValueIsTrue. - ([ConstantCollection -printForDebugger]): Use object_get_class_name - instead of -name because -name is now ambiguously typed. - -Fri Mar 1 09:53:31 1996 Andrew McCallum - - * checks/Makefile.in: Removed all invdividual targets for - executables. Use general rule that works for GNU make, but may - not work for others. - (SRCS): Add tcpport-server.m and tcpport-client.m. - (tcpport): New target. - - * src/MachPort.m: Surrounded by #if for mach. - - * src/Port.m: Overhauled for new Port heirarchy. More changes - than I want to list individually. - * src/objects/Port.h: Likewise. - * src/TcpPort.m, src/objects/TcpPort.h: New files. - * src/UdpPort.m, src/objects/UdpPort.h: New files. - * src/MachPort.m,src/objects/MachPort.h: New files. - * src/Makefile.in (GNU_MFILES): Added UdpPort.m. - (GNU_HEADERS): Added objects/UdpPort.h. - * src/Makefile.in (GNU_MFILES): Add MachPort.m. - (GNU_HEADERS): Add objects/MachPort.h. - - * src/Encoder.m ([Encoder -_coderCreateReferenceForConstPtr:]): - Get xref before asserting it. - - * src/objects/CoderPrivate.h (WRITE_SIGNATURE_FORMAT_ARGS): Use - STRINGIFY() for OBJECTS_PACKAGE_NAME. - * src/objects/stdobjects.h.in (STRINGIFY): New macro defined, if - not defined already. - (XSTRINGIFY): Likewise. - - * src/objects/Array.h (END_FOR_ARRAY): Macro renamed from - FOR_ARRAY_END, and given argument. - - * src/Connection.m: Overhauled for new collections, coders and - ports. More changes than I want to list individually. - * src/ConnectedCoder.m: Likewise. - * src/objects/ConnectedCoder.h: Likewise. - * src/objects/Connection.h: Likewise. - * src/Proxy.m: Likewise. - * src/objects/Proxy.h: Likewise. - All this overhaul work not yet finished. - -Thu Feb 29 21:49:33 1996 Andrew McCallum - - * src/Makefile.in (GNUSTEP_MFILES): Re-added Connection.m and - ConnectedCoder.m. - (GNUSTEP_HEADERS): Removed duplicate Foundation/NSHashTable.h. - -Wed Feb 28 20:37:27 1996 Andrew McCallum - - * checks/invocation.m: Test many new features. - - * src/objects/CoderPrivate.h (SIGNATURE_FORMAT_STRING): Change to - include package name and version. - (WRITE_SIGNATURE_FORMAT_ARGS): New macro. - * src/objects/stdobjects.h.in: New macro. - * src/Decoder.m - ([Decoder +readSignatureFromCStream:getClassname:formatVersion:]): - Get new values. - * src/Encoder.m ([Encoder -writeSignature]): Use new macro. - - * src/Makefile.in (GNU_MFILES): Add TcpPort.m. - (GNU_HEADERS): Add objects/TcpPort.h. - -Sun Feb 25 13:01:50 1996 Andrew McCallum - - * src/Makefile.in (FILE_AUTHORS): Added "Albin L. Jones". - -Sat Feb 24 13:47:40 1996 Andrew McCallum - - * src/Makefile.in (GNUSTEP_MFILES): Add NSInvocation.m. - - * src/NSInvocation.m: Class implemented using Invocation as - behavior. - * src/Foundation/NSInvocation.h: Remove ivars. Define so that - behavior can be used. - - * src/Invocation.m (return_retained): New macro. - ([Invocation -setReturnValue:]): Retain return value if necessary. - ([ArgframeInvocation -_retainArguments]): Add missing local var. - ([MethodInvocation -initWithArgframe:type:]): New method. - ([MethodInvocation -initWithArgframe:selector:]): Use new method. Set - selector using sel_pointer. - ([ObjectFunctionInvocation -invokeWithObject:]): Use return_retained, - not args_retained. - -Fri Feb 23 14:35:05 1996 Andrew McCallum - - * src/Invocation.m ([Invocation -initWithReturnType:]): Use new - ivar names. Use calloc instead of malloc. - ([Invocation -encodeWithCoder:]): New method. - ([Invocation -initWithCoder:]): New method. - ([Invocation -classForConnectedCoder:]): New method. - ([Invocation -returnType]): Use new ivar name. - ([Invocation -setReturnValue:]): New method. - ([Invocation -objectReturnValue]): Method implemented. - ([Invocation -intReturnValue]): Method implemented. - ([Invocation -returnValueIsTrue]): Method implementation finished. - ([Invocation -dealloc]): Use new ivar name. Release return type if - necessary. - ([ArgframeInvocation -_retainArguments]): New method. - ([ArgframeInvocation -_initArgframeFrom:withType:retainArgs:]): Method - overhauled. - ([ArgframeInvocation -initWithArgframe:type:]): Use new method. - ([ArgframeInvocation -encodeWithCoder:]): New method. - ([ArgframeInvocation -initWithCoder:]): New method. - ([ArgframeInvocation -argumentTypeAtIndex:]): Use new ivar name. - ([ArgframeInvocation -retainArguments]): New method. - ([ArgframeInvocation -argumentsRetained]): New method. - ([ArgframeInvocation -_deallocArgframe]): New method. - ([ArgframeInvocation -dealloc]): Use new method. Release args if - necessary. - ([MethodInvocation -_initTargetAndSelPointers]): New method. - ([MethodInvocation -initWithArgframe:selector:]): Use new method. - ([MethodInvocation -initWithCoder:]): New method. - ([MethodInvocation -initWithTarget:selector:...]): Retain args if - necessary. - ([MethodInvocation -invoke]): Use new ivars. - ([MethodInvocation -invokeWithTarget:]): Use -setTarget:. - ([MethodInvocation -selector]): Use new ivar. - ([MethodInvocation -setSelector:]): Likewise. - ([MethodInvocation -target]): Likewise. - ([MethodInvocation -setTarget:]): Likewise. - ([ObjectMethodInvocation -_initArgObjectPointer]): New method. - ([ObjectMethodInvocation -initWithArgframe:selector:]): Use new method. - ([ObjectMethodInvocation -initWithCoder:]): New method. - ([ObjectMethodInvocation -invokeWithObject:]): New method. - (VoidFunctionInvocation): New class implementation. - (ObjectFunctionInvocation): New class implementation. - - * src/objects/Invocation.h: Make -invoke methods return void. - Include objects/Invoking.h. - (return_type): ivar renamed from encoding. - (ArgframeInvocation args_retained): new ivar. - (MethodInvocation target_pointer): new ivar. - (MethodInvocation sel_pointer): new ivar. - (VoidFunctionInvocation): New class. - (ObjectFunctionInvocation): New class. - - * src/objects/Invoking.h: Make -invoke methods return void. - - * src/Encoder.m ([Encoder +initialize]): Compare self with - Encoder, not Coder. - ([Encoder +encodeRootObject:withName:toStream:]): Rename method to - -close. - ([Encoder -encodeSelector:withName:name]): Use sel_get_any_typed_uid - instead of sel_get_any_uid. - - * src/Stream.m ([Stream -close]): Method renamed from - -closeStream. - * src/objects/Streaming.h: Likewise. - * src/StdioStream.m ([Stream -close]): Likewise. - * src/MemoryStream.m ([Stream -close]): Likewise. - - * src/objects/Coder.h ([Coder +setDefaultCStreamClass:]): Declare - method. - ([Coder +defaultCStreamClass]): Declare method. - - * src/Coder.m ([Coder -close]): Method renamed from -closeCoding. - * src/objects/Coding.h: Likewise. - -Thu Feb 22 10:03:01 1996 Andrew McCallum - - * src/NSObject.m (retain_counts): Make it a NSMapTable instead of - a coll_hash. - (NSIncrementExtraRefCount): Update for new retain_counts type. - (NSDecrementExtraRefCountWasZero): Likewise. - ([NSObject +initialize]): Likewise. - ([NSObject -retainCount]): Likewise. - - * src/Makefile.in (GNU_HEADERS): Add objects/bitops.h, - objects/minmax.h. - (GNU_OTHER_SRCFILES): Add md5.h. - * src/Makefile.in (GNU_HEADERS): Add objects/Enumerating.h, - objects/Invoking.h. - * src/Makefile.in (GNU_HEADERS): Add objects/array.h. - - * Makefile.in (DIST_FILES): Add RELEASE-NOTES. - - * src/NSString.m ([NSString -hash]): Don't use elt_* function, and - use NSHashStringLength. - * src/String.m ([String -hash]): Likewise. - - * src/simple-load.h (__objc_dynamic_find_symbol): Cast to drop - const type, and avoid warning. - - * src/Makefile.in (GNU_MFILES): Remove eltfuncs.m. - (GNU_HEADERS): Remove objects/elt.h, objects/eltfuncs.h. - * src/Makefile.in (GNU_CFILES): Remove collhash.c. - (GNU_HEADERS): Remove objects/collhash.h. - - * src/CString.m ([CString -initWithCString:range:]): Don't make - super call. Fix infinite loop in _collectionDealloc. - - * src/BinaryCStream.m ([BinaryCStream - -decodeValueOfCType:at:withName:]): Make save_type const. - - * src/AutoreleasePool.m: Don't include . - * src/AutoreleaseStack.m: Likewise. - - * examples/textcoding.m: Overhaul for new collection class scheme - to improve distributed objects and NeXT-compatibility. - - * checks/Makefile.in (SRCS): Add nsmaptable.m and nshashtable.m. - * checks/nsarchiver.m: Update for new Archiver classes. - * checks/test01.m: Update for new collection classes. - - * doc/Makefile.in (TEXI_FILES): Add faq.texi. - * doc/faq.texi: New file. - - * src/Foundation/NSGSet.h: Remove ivars, the behavior code now - handles this. - * src/Foundation/NSGDictionary.h: Likewise. - - * src/objects/Coder.h: Declare classes Encoder and Decoder; - extensive rearrangement of ivars, method names and protocols. - - * src/objects/RetainingNotifier.h: Don't include - - * src/objects/Archiver.h: Subclass from Encoder and Decoder, not - Coder. - - * src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Add NSCallBacks.h. - (GNUSTEP_HEADERS): Remove Foundation/NSCallBacks.h. - - * src/Makefile.in (CFLAGS): Remove -Wno-implicit. - (GNU_MFILES): Remove BinaryTreeEltNode.m, LinkedListEltNode.m, - RNTreeEltNode.m. Add Decoder.m, Encoder.m. Temporarily remove - ConnectedCoder.m, Connection.m, RetainingNotifier.m, Time.m. - (GNU_CFILES): Add allocs.c. - (GNU_OBJS): Change order to create BASICS and CALLBACKS first. - (GNU_HEADERS): Remove BinaryTreeEltNode.h, EltNode-h, EltNode-m, - LinkedListEltNode.h, RBTreeEltNode.h. - (GNUSTEP_MFILES): NSCallBacks.m. - (GNUSTEP_HEADERS): Foundation/NSCallBacks.h. - - * Encoder.m, Decoder.m, NSCallBacks.m: New files. - * objects/OrderedCollecting.h, objects/Enumerating.h, - objects/Invoking.h, objects/CoderPrivate.h, - objects/OrderedCollection.h: New files. - - * src/Coder.m: Move much of functionality to Encoder.m, Decoder.m, - and objects/CoderPrivate.h. - - * src/Invocation.m ([Invocation -objectReturnValue]): New method. - ([Invocation -intReturnValue]): New method. - ([Invocation -returnValueIsTrue]): New method. - ([Invocation -initWithTarget:selector:...]): Use switch statement to - handle value arguments, instead of pointer-to-value arguments. - - * src/NSConcreteNumber.m ([NumberTemplate -hash]): New method. - ([NumberTemplate -isEqual:]): New method. - ([NumberTemplate -encodeWithCoder:]): Make this self-contained. - ([NumberTemplate -initWithCoder:]): Likewise. - - * src/NSData.m: Fix typos. - - * src/Port.m ([Port -encodeWithCoder:]): Fix argument type. - - * src/OrderedCollection.m: Many fixes, continuing conversion from - old IndexedCollection.m - - * src/NSValue.m ([NSValueDecoder +newWithCoder:]): Comment out for - now; I think it needs fixes. - ([NSValueDecoder -initWithCoder:]): Likewise. - - * src/NSNumber.m ([NSNumber -description]): New method. - - * src/callbacks-char_p.c, src/callbacks-id.m, src/callbacks-int.c, - src/callbacks-int_p.c, src/callbacks-void_p.c, src/callbacks.c, - src/hash.c, src/list.c, src/map.c, src/objects/allocs.h, - src/objects/array.h, src/objects/callbacks.h, src/objects/data.h, - src/objects/hash.h, src/objects/list.h, src/objects/map.h, - src/objects/objects.h, src/x-basics.c.in, src/x-callbacks.c.in, - src/NSHashTable .m, src/NSMapTable.m, src/Foundation/atoz.h, - src/Foundation/NSMapTable.h, src/Foundation/NSHashTable.h: New - version from Albin Jones, plus fixes by McCallum. - - Major overhaul of collection class heirarchy to improve - distributed objects and NeXT-compatibility. Many classes - entirely-reworked. More changes than I want to list here. - - * src/KeyedCollection.m, src/IndexedCollection.m, src/Heap.m, - src/GapArray.m, src/Dictionary.m, src/Bag.m, src/Array.m, - src/CircularArray.m, src/Collection.m, src/ConstantString.m, - src/DelegatePool.m, src/MappedCollector.m, src/MutableString.m, - src/MutableCString.m, src/Queue.m, src/RBTree.m, src/Set.m, - src/SplayTree.m, src/Stack.m, src/objects/Array.h, - src/objects/Bag.h, src/objects/BinaryTree.h, - src/objects/BinaryTreeNode.h, src/objects/Collecting.h, - src/objects/Collection.h, src/objects/CollectionPrivate.h, - src/objects/Dictionary.h, src/objects/Heap.h, - src/objects/IndexedCollecting.h, src/objects/IndexedCollection.h, - src/objects/KeyedCollecting.h, src/objects/KeyedCollection.h, - src/objects/LinkedList.h, src/objects/LinkedListNode.h, - src/MallocAddress.m, src/objects/MappedCollector.h, - src/MutableString.m, src/MutableCString.m, src/NSString.m, - src/NSGSet.m, src/NSGCString.m, src/NSGDictionary.m, - src/NSGCountedSet.m, src/NSGArray.m, src/NSGArchiver.m, - src/objects/Queue.h, src/objects/Set.h, src/objects/SplayTree.h, - src/objects/Stack.h, src/String.m: Overhaul for new collection - class scheme to improve distributed objects and - NeXT-compatibility. - - * src/DelegatePool.m: Overhaul for new collection class scheme to - improve distributed objects and NeXT-compatibility. Change - several methods to return void. - * src/objects/DelegatePool.h: Change many method return types to - void. - -Thu Feb 15 11:18:33 1996 Andrew McCallum - - * src/Makefile.in (GNU_MFILES): Removed EltNodeCollector.m. - (GNU_HEADERS): Removed objects/EltNodeCollector.h. - -Wed Feb 14 12:23:12 1996 Andrew McCallum - - * Makefile.in (RCS_FILES): Add INSTALL.WIN32. - - * src/Makefile.in (RCS_FILES): Add Makefile.sed.nt. - * checks/Makefile.in (RCS_FILES): Undo last change. - * Makefile.in (RCS_FILES): Undo last change. - -Tue Feb 13 11:00:51 1996 Andrew McCallum - - * src/Makefile.in (GNU_MFILES): Added OrderedCollection.m. - (GNU_HEADERS): Added objects/OrderedCollection.h and - objects/OrderedCollecting.h. - - * checks/Makefile.in (RCS_FILES): Remove Makefile.sed.nt, (which, - as I understand, is supposed to be automatically generated from - Makefile.in by configure.bat). - (SRCS): Fix typo. - - * Makefile.in (RCS_FILES): Remove Makefile.sed.nt, (which, as I - understand, is supposed to be automatically generated from - Makefile.in by configure.bat). - - * doc/install.texi: Mention objc.patch. - * Makefile.in (DIST_FILES): Add objc.patch for thread-safe - runtime. - - * src/RawCStream.m, objects/RawCStream.h: New files. - * src/Makefile.in (GNU_MFILES): Added RawCStream.m. - (GNU_HEADERS): Added objects/RawCStream.h. - - * checks/diningPhilosophers.m (main): Cast (int) to (id) in - detachNewThread... call. - - * src/NSNotification.m, src/NSNotificationCenter.m, - src/Foundation/NSNotification.h: New files from Georg Tuparev. - * src/Makefile.in (GNUSTEP_MFILES): Added NSNotification.m and - NSNotificationCenter.m from Georg Tuparev. - (GNUSTEP_HEADERS): Added Foundation/NSNotification.h from Georg - Tuparev. - -Mon Feb 5 10:08:56 1996 Scott Christley (scottc@net-community.com) - - * checks/diningPhilosophers.m: New file - * checks/Makefile.in: add diningPhilosophers.m - * src/Foundation/NSGeometry.h: Add NSZeroPoint, NSZeroSize, - and NSZeroRect constants. - -Sun Feb 4 18:43:41 1996 Scott Christley (scottc@net-community.com) - - * checks/Makefile.sed.nt: New file - * configure.bat: Added configuration of checks makefile - * checks/Makefile.in (RCS_FILES): Add file Makefile.sed.nt - Add $(EXEEXT), $(OEXT), $(LIBEXT) extensions - * test01.m: Different random() for WIN32 - * src/Foundation/NSZone.h: include - -Sat Feb 3 22:28:52 1996 Scott Christley (scottc@net-community.com) - - * src/NSLock.m: New file - * src/Foundation/NSLock.h: New file - * src/NSThread.m: New file - * src/Foundation/NSThread.h: New file - * src/Makefile.in (GNUSTEP_MFILES): Add NSLock.m, NSThread.m - (GNUSTEP_HEADERS): Add Foundation/NSLock.h, Foundation/NSThread.h - -Fri Feb 2 15:44:20 1996 Scott Christley (scottc@net-community.com) - - * src/Makefile.in (uninstall): Only uninstall NEXTSTEP_HEADERS - -Thu Feb 1 19:42:09 1996 Scott Christley (scottc@net-community.com) - - * src/objects/SocketPort.h: Exclude non-existent headers for WIN32 - * src/objects/Time.h: Likewise - * src/SocketPort.m: Likewise - * src/NSBundle.m: Likewise - * src/objects/NSCoder.h: fixed mispelled file name - * src/NSCoder.m: remove inclusion of non-existent file - * src/Date.m: Exclude non-existent headers for WIN32 - * src/NSProcessInfo.m: Likewise - * src/find_exec.c: Likewise - - * Makefile.in (RCS_FILES): Add file configure.bat, Makefile.sed.nt - Add $(EXEEXT), $(OEXT), $(LIBEXT) extensions - * configure.bat: New file - * Makefile.sed.nt: New file - * src/Makefile.sed.nt: New file - * src/objects/config-nt.h: New file - * src/objects/config-nt.sed: New file - * src/objc-load.c: Runtime include file changed "objc/list.h" - to "objc/objc-list.h" - * src/objects/stdobject.h.in: Likewise - -Mon Feb 12 22:03:05 1996 Andrew McCallum - - * src/Makefile.in: Fix patch rejects. - (GNUSTEP_MFILES): Added NSHashTable.m and NSMapTable.m. - (GNUSTEP_HEADERS): Added Foundation/NSHashTable.h and - Foundation/NSMapTable.h. - -Mon Feb 12 21:14:58 1996 Albin L. Jones - - * src/Makefile.in (GNU_MFILES, GNU_CFILES, GNU_HEADERS): Added - the above to the appropriate lists. (GNU_BASICS_CFILES): Created - this variable to hold a list of `...-basics.c' files to be made. - (GNU_BASICS_HFILES): Similarly. (GNU_CALLBACKS_CFILES): Created - this variable to hold a list of `...-callbacks.c' files to be - make. (GNU_CALLBACKS_HFILES): Similarly. (GNU_OTHER_SRCFILES): - Needed to add `x-basics.c.in', `x-callbacks.c.in', - `objects/x-basics.h.in' and `objects/x-callbacks.h.in' to this - list. (GNUSTEP_HEADERS): Added `Foundation/atoz.h'. (%-basics.c, - %-callbacks.c, objects/%-basics.h, objects/%-callbacks.h): Added - these make targets. (array.o, data.o, hash.o, list.o, map.o, - objects/array.h, objects/data.h, objects/hash.h, objects/list.h, - objects/map.h): Added these make targets. - - * src/NSHashTable.m, src/NSMapTable.m, - src/Foundation/NSHashTable.h, - src/Foundation/NSMapTable.h, - src/Foundation/atoz.h: Added these. - - * src/objects/abort.h, src/objects/allocs.h, - src/objects/array.h, src/objects/bitops.h, - src/objects/callbacks.h, src/objects/data.h, - src/objects/hash.h, src/objects/list.h, src/objects/magic.h, - src/objects/magic.h, src/objects/minmax.h, - src/objects/number.h: Added these. - - * src/abort.c, src/allocs.c, src/array.c, src/atoz.m, - src/callbacks-char_p.c, src/callbacks-id.m, src/callbacks-int.c, - src/callbacks-int_p.c, src/callbacks-void_p.c, src/callbacks.c, - src/hash.c, src/list.c, src/map.c, src/md5.c, src/md5.h, - src/number.c: Added these. - -Mon Feb 12 20:50:05 1996 Andrew McCallum - - * checks/invocation.m: New file. - * checks/Makefile.in (SRCS): Add invocation.m. - - * checks/nsarchiver.m: Add test case from Scott Christley. - - * src/Collection.m ([Collection -withObjectsInvoke:]): New method. - * src/objects/Collection.h: Declare new method. - - * src/Invocation.m ([Invocation -invoke]): Terminate copy of - encoding string. Deal with void return type. - ([Invocation -invokeWithElement:]): Method removed. - ([Invocation -invokeWithObject:]): Make is -subclassResponsibility. - ([Invocation -getReturnValue:]): Make sure return_value is non-NULL. - ([ArgframeInvocation -initWithArgframe:type:]): Use objc_calloc. - ([MethodInvocation -initWithArgframe:selector:]): Try hard to get a - selector with a type string. - ([MethodInvocation -initWithTarget:selector:...]): New method. - ([MethodInvocation -invoke]): Get the target and selector properly. - ([MethodInvocation -invokeWithObject:]): New method. - * src/objects/Invocation.h: Declare new methods. - - * src/NSArchiver.m ([NSUnarchiver +allocWithZone:]): New method. - - * src/Coder.m ([Coder -decodeObject]): Return the object. - ([Coder -initForReadingWithData:]): New method. - -Thu Feb 1 17:04:17 1996 Andrew McCallum - - * NSData.m, NSDictionary.m, NSEnumerator.m, NSMutableData.m, - Port.m, MutableString.m, NSArray.m: - Use -subclassResponsibility instead of -notImplemented - where appropriate. - -Wed Jan 31 22:29:57 1996 Andrew McCallum - - * Makefile.in (DIST_FILES): Add file STATUS. - - * src/Coder.m ([Coder -_coderCreateReferenceForObject:]): - Beginning with this method, put in, but comment out, initial notes - for ideas about "tag-less" coder streams; this will allow for - smaller archives. - -Sat Jan 27 20:58:23 1996 Andrew McCallum - - * examples/textcoding.m (main): Use new Archiver and Unarchiver - classes, use new method names. - - * src/objects/Coding.h (CommonCoding -closeCoding): Renamed from - -coderCoder, so it is not so exclusively associated with the - Coding class, but also all subclasses that implement a *Coding - protocol. - * src/Coder.m ([Coder -closeCoding]): Method renamed from - -closeCoder. - ([Coder +encodeRootObject:withName:toStream:]): Make -closeCoding name - change. - - * src/Coder.m ([Coder +newReadingFromStream:]): Renamed from - coderReadingFromStream:, because, for subclasses of Coder, it's - silly to have different names for this method. Don't autorelease - returned object (I also find this more helpful). All callers - changed. - ([Coder +newReadingFromFile:]): Likewise. - * src/objects/Coder.h: Rename methods. - * src/ConnectedCoder.m ([ConnectedCoder - +newDecodingWithConnection:timeout:]): Rename - coderReadingFromStream to newReadingFromStream, and don't retain. - - * src/Archiver.m: New file. - * src/objects/Archiver.h: New file. - * src/Makefile.in (GNU_MFILES): Add Archiver.m. - (GNU_HEADERS): Add objects/Archiver.h. - -Fri Jan 26 10:48:30 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.2.0. - (OBJECTS_MINOR_VERSION): Version 2. - - * src/Makefile.in (GNU_HEADERS): Added CStreaming.h. - - * src/objects/objects.h: Include BinaryCStream.h and - TextCStream.h, not the old *Coder.h versions. - - * src/objects/ConnectedCoder.h (Coder): Make subclass of Coder, - not BinaryCoder. - - * src/TextCStream.m ([TextCStream - -encodeValueOfCType:at:withName:]): Remove the asserts that - prohibited structs and arrays. - ([TextCStream -decodeValueOfCType:at:withName:]): Likewise. - * src/BinaryCStream.m: Include the code for handling structs and - arrays. - - * src/objects/Streaming.h: Include instead of - . - - Update checks and examples - * checks/server.m: Make it work with the new coding scheme. - * checks/client.m: Likewise. - * checks/pipes.m (main): Use NSString in -initWithPipeFrom - argument. - * checks/Makefile.in (SRCS): Remove test08.m, it was for old-style - archiving. - * examples/textcoding.m (main): Use new coding scheme and @"" - strings properly. - * examples/stdio-stream.m (main): Likewise. - - * src/ConnectedCoder.m ([ConnectedCoder - +newDecodingWithConnection:timeout:]): Use - +coderReadingFromStream, not the deprecated - -initReadingFromStream. - - * src/BinaryCStream.m ([BinaryCStream -decodeName:]): Check for - NULL name. - - * src/Connection.m: encodeObjectBycopy -> encodeBycopyObject (to - better match NeXT). - * src/Proxy.m: Likewise. - - * src/Coder.m ([Coder +initialize]): Make BinaryCStream the - default, not TextCStream. - - * src/Coder.m ([Coder -encodeTag:]): Let the cstream handle it, - if it can. - ([Coder -decodeTag]): Likewise. - ([Coder -encodeClass:]): Perform classname mapping ala - encodeClassName:intoClassName. - ([Coder -_doEncodeBycopyObject:]): Perform callbacks - -replacementObjectForCoder, -replacementObjectForArchiver, - -classForCoder, -classForArchiver. - ([Coder -encodeClassName:intoClassName:]): Fix typos. - ([Coder -encodeConditionalObject:]): Don't encode *forward* - references, only backward references; apparently NeXT-style - decoding - (with -decodeObject, instead of GNU's decodeObjectAt:) can't - handle them. - - * src/Foundation/NSArchiver.h: Move NSUnarchiver declaration here - from NSUnarchiver.h. - * src/NSGArchiver.m: Move implementation of NSGUnarchiver here - from NSGUnarchiver.m. - * src/Foundation/NSGArchiver.h: Remove ivars; behavior code now - handles instance_size. Move NSGUnarchiver here from - NSGUnarchiver.h. - * src/NSArchiver.m: Move NSUnarchiver implementation here from - NSUnarchiver.m. Use subclassResponsibility where correct. - ([NSArchiver +initialize]): Make NSGArchiver the concrete class. - * src/Makefile.in (GNUSTEP_MFILES): NSUnarchiver.m and - NSGUnarchiver.m removed. - (GNUSTEP_HEADERS): Foundation/NSUnarchiver.h and - Foundation/NSGUnarchiver.h removed. - - * src/Foundation/NSObject.h ([NSObject -classForArchiver]): Method - removed; it's now in NSArchiver.m. - ([NSObject -replacementObjectForArchiver:]): Likewise. - - * src/ConnectedCoder.m (Object (ConnectedCoderCallbacks)): - Category methods moved here from Coder.m. - - * checks/nsarchiver.m (main): Use NSUnarchiver properly. - - * src/NSException.m (NSInconsistentArchiveException): String - removed; it's in NSArchiver.m. - - * src/NSGArchiver.m ([NSGArchiver +initialize]): Add the behavior - of the Coder class. All other methods deleted. - - * src/NSObject.m: Some minor formatting changes. - ([NSObject -classForArchiver]): Method removed; it's in NSArchiver.m. - ([NSObject -replacementObjectForArchiver:]): Likewise. - - * src/Makefile.in (GNUSTEP_MFILES): Remove NSGCoder.m. - (GNUSTEP_HEADERS): Remove Foundation/NSGCoder.h. - - Make use of new behavior size matching to avoid ugliness of - forcing ivar layout match when adding behaviors---more robust. - * src/NSGArray.m (self): New macro, cast to (Array*) to reflect - behavior addition. - ([NSGArray -initWithObjects:count:]): Call Array designated initalizer - instead of accessing ivars directly. - ([NSGMutableArray -initWithCapacity:]): Likewise. - ([NSGArray -count]): Method removed, Array behavior will take care - of it. - ([NSGArray -objectAtIndex:]): Use self to access ivars. - * src/Foundation/NSGArray.h: Remove ivars; class_add_behavior now - handles instance_size match. - - * src/behavior.c (class_add_behavior): If necessary, increase - instance_size of class to which behavior is being added. - -Thu Jan 25 10:11:41 1996 Andrew McCallum - - * src/NSArchiver.m ([NSArchiver +initialize]): Set concrete class - to Coder. - ([NSArchiver +allocWithZone:]): New method. - ([NSArchiver -initForWritingWithMutableData:]): Make this a subclass - responsibility. - ([NSArchiver -versionForClassName:]): New method. - ([NSArchiver +unarchiveObjectWithData:data]): New method. - ([NSArchiver +unarchiveObjectWithFile:path]): Call concrete class. - ([NSArchiver +classNameEncodedForTrueClassName:]): Likewise. - - * src/Foundation/NSArchiver.h: Declare new methods. - - * src/Foundation/NSCoder.h: Fix spelling of argument names. - - * src/Foundation/NSSet.h: Fix typo, initWithObjects: takes - objects, not NSArray's. - - * src/NSGData.m ([NSGData -writeToFile:atomically:]): Use - cStringNoCopy for efficiency. - - * src/MemoryStream.m ([MemoryStream -init]): New method, otherwise - naive creation dies with NULL buffer. - - * src/objects/Coding.h (Coding -cStream): New method. - (Coder -encodeArrayOfObjCType:count:at:withName:): Renamed from - -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. - (Coder -decodeArrayOfObjCType:count:at:withName:): Likewise. - - * src/objects/Coder.h (zone): New ivar. - - * src/Coder.m ([Coder -_initWithCStream:formatVersion:isDecoding:]): - Initialize new zone ivar. - ([Coder -encodeBycopyObject:withName:]): Renamed from - -encodeObjectBycopy, to better match NeXT. - ([Coder -decodeObjectAt::name]): Use zone ivar in creating - decoded objects. - ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from - -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. - ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. - ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for - NSCoder compatibility. - ([Coder -encodeClassName:trueNameintoClassName:]): - Likewise. - ([Coder -objectZone]): Likewise. - ([Coder -setObjectZone:]): Likewise. - ([Coder -encodeValueOfObjCType:at:]): Likewise. - ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. - ([Coder -encodeBycopyObject:]): Likewise. - ([Coder -encodeConditionalObject:]): Likewise. - ([Coder -encodeDataObject:]): Likewise. - ([Coder -encodeObject:]): Likewise. - ([Coder -encodePoint:]): Likewise. - ([Coder -encodeRect:]): Likewise. - ([Coder -encodeRootObject:]): Likewise. - ([Coder -encodeSize:]): Likewise. - ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. - ([Coder -decodeValueOfObjCType:at:]): Likewise. - ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. - ([Coder -decodeDataObject]): Likewise. - ([Coder -decodeObject]): Likewise. - ([Coder -decodePropertyList]): Likewise. - ([Coder -decodePoint]): Likewise. - ([Coder -decodeRect]): Likewise. - ([Coder -decodeSize]): Likewise. - ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. - ([Coder -systemVersion]): Likewise. - ([Coder -versionForClassName:]): Likewise. - ([Coder -initForWritingWithMutableData:]): New method, for - NSArchiver compatibility. - ([Coder +archivedDataWithRootObject:]): Likewise. - ([Coder +archiveRootObject:toFile:]): Likewise. - ([Coder +unarchiveObjectWithData:data]): Likewise. - ([Coder +unarchiveObjectWithFile:path]): Likewise. - ([Coder -archiverData]): Likewise. - ([Coder -cStream]): New method. - - * checks/Makefile.in (SRCS): Added nsarchiver.m. - - * checks/nsarchiver.m: New file. - - * examples/textcoding.m (main): Use new [Coder -closeCoder] - method. - - * src/StdioStream.m ([StdioStream -isClosed]): Remove bad - implementation; currently not implemented. - - * src/Coder.m ([Coder - -initForWritingToStream:withFormatVersion:cStreamClass: - cStreamFormatVersion:]): New method. - ([Coder -initForWritingToFile:withFormatVersion:cStreamClass: - cStreamFormatVersion:]): New method. - ([Coder -initForWritingToFile:filenamewithCStreamClass:cStreamClass]): - New method. - ([Coder +encodeRootObject:withName:nametoStream:]): New method. - ([Coder +encodeRootObject:withName:nametoFile:filename]): New method. - ([Coder +decodeObjectWithName:namefromStream:]): New method. - ([Coder +decodeObjectWithName:namefromFile:filename]): New method. - * src/objects/Coder.h: Declare new methods. - - * src/CStream.m: Use "..withFormatVersion" instead of - "formatVersion" in several method names. - * src/objects/CStream.h: Declare new method. - - * src/objects/Coding.h (Coding -closeCoder): New protocol method. - (Coding -isClosed): New protocol method. - * src/Coder.m ([Coder -initForReadingFromFile:filename]): New method. - ([Coder -initForWritingToFile:filename]): New method. - ([Coder -closeCoder]): New method. - ([Coder -isClosed]): New method. - - * src/objects/Streaming.h (Streaming -isClosed): New protocol method. - * src/Stream.m ([Stream -flushStream]): Do nothing, instead of - calling -subclassResponsibility. - ([Stream -closeStream]): Likewise. - ([Stream -isClosed]): New method, return NO. - * src/MemoryStream.m ([MemoryStream -flushStream]): Method removed. - * src/StdioStream.m ([StdioStream -isClosed]): New method. - * src/MemoryStream.m ([MemoryStream -closeStream]): New method, - just flush the stream. - -Wed Jan 24 09:02:02 1996 Andrew McCallum - - * src/objects/Streaming.h (Streaming -closeStream): New method; we - must separate the idea of "closing" a stream and "deallocating" a - stream because of delays in deallocation due to -autorelease. - * src/Stream.m ([Stream -closeStream]): New method. - * src/StdioStream.m ([StdioStream -closeStream]): New method. - - * src/CStream.m ([CStream -encodeWithName:valuesOfCTypes:...]): - New method. - ([CStream -decodeWithName:valuesOfCTypes:...]): New method. - * src/objects/CStreaming.h: Declare new methods. - - * src/String.m ([String -initWithCStringNoCopy:freeWhenDone:]): - New method, needed for protocol. - - * src/Stream.m ([Stream -writeFormat:arguments:]): New method. - ([Stream -readFormat:arguments:]): New method. - - * src/Coder.m (SIGNATURE_FORMAT_STRING): New macro. - ([Coder -writeSignature]): Use it. - ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): - Likewise, and receive (char*) instead of (char**). All callers - changed. - - * src/objects/EltNode-m: Include for @"" in - encoding withName:. Use constant string objects instead of C - strings where appropriate. - - * src/Connection.m: Use constant string objects instead of C - strings where appropriate. - - * src/RBTreeNode.m: Include for @"" in - encoding withName:. - * src/DelegatePool.m: Likewise. - * src/BinaryTreeNode.m: Likewise. - -Tue Jan 23 11:54:54 1996 Andrew McCallum - - * Set.m, SocketPort.m, TreeNode.m, EltNodeCollector.m, - LinkedListNode.m, MutableCString.m, NSGCString.m, Proxy.m, - RBTreeNode.m, BinaryCoder.m, BinaryTreeNode.m, Collection.m, - Connection.m, DelegatePool.m: - Use string objects instead of C strings - for name arguments to encoding methods. - - * src/.cvsignore: Add errs*. - - * examples/textcoding.m: Update for new Coder organization. - - * src/objects/Streaming.h (Streaming -writeFormat:arguments:): New - method. - (Streaming -readFormat:arguments:): New method. - - * src/objects/Coding.h: Don't include - (Coding -encodeValueOfCType:at:withName:): New method. - (Coding -decodeValueOfCType:at:withName:): New method. - * src/objects/Coder.h: Declare new methods. - - * src/objects/CStreaming.h: New file. - * src/CStream.m: New file. - * src/objects/CStream.h: New file. - * src/TextCStream.m: New file. - * src/objects/TextCStream.h: New file. - * src/BinaryCStream.m: New file. - * src/objects/BinaryCStream.h: New file. - * src/Makefile.in (GNU_MFILES): Add BinaryCStream.m, TextCStream.m - and CStream.m. - (GNU_HEADERS): Add objects/BinaryCStream.h, objects/TextCStream.h - and objects/CStream.h. - - * src/NSString.m (handle_printf_atsign): Fix type for va_arg (). - - * src/ConnectedCoder.m ([ConnectedCoder - +newEncodingWithConnection:sequenceNumber:identifier:]): Use new - Coder initializer. - ([ConnectedCoder +newDecodingWithConnection:timeout:]): Likewise. - ([ConnectedCoder -dismiss]): Fix typo: use cstream ivar. - - * src/Coder.m ([Coder -writeSignature]): Write directly to stream - ivar. - ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): - Likewise. - ([Coder -initForReadingFromStream:s]): New method. - ([Coder -initForWritingToStream:s]): New method. - ([Coder +coderWritingToStream:]): New method. - ([Coder +coderWritingToFile:]): New method. - - * src/KeyedCollection.m: Use and protocols - in argument types. - * src/IndexedCollection.m: Likewise. - * src/BinaryTree.m: Likewise. - * src/Array.m: Likewise. - - * src/Makefile.in (GNU_MFILES): Remove BinaryCoder.m. and - TextCoder.m - (GNU_HEADERS): Remove objects/BinaryCoder.h and objects/TextCoder.h. - - * src/Proxy.m, src/RBTreeNode.m, src/Set.m, src/SocketPort.m, - src/TextCoder.m, src/argframe.m, src/IndexedCollection.m, - src/KeyedCollection.m, src/MutableCString.m, src/NSGCString.m, - src/NSGCoder.m, src/NXConnection.m, src/Collection.m, - src/ConnectedCoder.m, src/Connection.m, src/DelegatePool.m, - src/EltNodeCollector.m, src/Array.m, src/BinaryCoder.m: - Use new-style method name "..ValueOfObjCType" - and "..ValueOfCType", instead of "..ValueOfType" and - "..ValueOfSimpleType". - - * src/NSString.m: This new code, #if - HAVE_REGISTER_PRINTF_FUNCTION, a function defined by GNU libc. - (handle_printf_atsign): New function to handle %@ in printf strings. - ([NSString +initialize]): Register the new printf-handler function. - * configure.in (register_printf_function): Check for this - function. - - * src/objects/Coding.h: Use new-style method name - "..ValueOfObjCType", instead of "..ValueOfType". Use (id - ) instead of (char *) where appropriate. - (Encoding -initEncodingOnStream:): Method removed. - (Encoding -initEncoding): Method removed. - (Encoding -encodeValueOfSimpleType:at:withName:): Method removed. - (Decoding -initDecodingOnStream:): Method removed. - (Decoding -initDecoding): Method removed. - (Decoding -decodeValueOfSimpleType:at:withName:): Method removed. - (CommonCoding +defaultFormatVersion): New method. - - * src/Stream.m ([Stream -rewindStream]): Move method lower in - file, to avoid undeclared error. (This is related to creation of - SeekableStream protocol.) - - * src/objects/Streaming.h (Streaming): Include NSObject protocol - in Streaming protocol, so we can use NSObject methods on arguments - passed with type. - - * src/StdioStream.m: Use (id ) instead of (char *) where - appropriate. - ([StdioStream +streamWithFilename:fmode:]): New method. - * src/objects/StdioStream.h: Declare new methods. - - * src/NSCoder.m ([NSCoder -encodeObject:]): Base on - -encodeValueOfObjCType, not -encodeValuesOfObjCTypes. - - * src/Coder.m: Now uses a CStream instance for low-level encoding - of variables of C type. Include many more files. Use new-style - method name "..ValueOfObjCType", instead of "..ValueOfType". Use - (id ) instead of (char *) where appropriate. - (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. - (default_stream_class): Renamed from defaultStreamClass; - (default_cstream_class): New static variable. - ([Coder +initialize]): Initialize above two variables. - ([Coder +setDefaultCStreamClass:]): New method. - ([Coder +defaultCStreamClass]): New method. - ([Coder +setDefaultStreamClass:]): New method. - ([Coder +defaultStreamClass]): New method. - ([Coder +defaultFormatVersion]): New method. - ([Coder -writeSignature]): New method, replaces -encodeSignature. - ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): - New method, replaces decodeSignature. - ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, - replaces _initWithStream:isDecoding. - ([Coder +coderReadingFromStream:stream]): New method. - ([Coder +coderReadingFromFile:filename]): New method. - ([Coder -initForReadingFromStream:formatVersion:]): New method. - ([Coder -initForWritingToStream:sformatVersion:version]): New method. - ([Coder +decodeObjectFromStream:]): New method. - ([Coder +decodeObjectFromFile:filename]): New method. - ([Coder -initEncodingOnStream:]): Method removed. - ([Coder -initDecodingOnStream:]): Method removed. - ([Coder -initEncoding:]): Method removed. - ([Coder -initDecoding:]): Method removed. - ([Coder -encodeBytes:count:withName:]): Now unimplemented. - ([Coder -decodeBytes:count:withName:name]): Likewise. - ([Coder -decodeValueOfCType:at:withName:]): New method. - ([Coder -encodeValueOfCType:at:withName:]): New method. - ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles - arrays and structs; those are now handled in a CStream method. - ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. - ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. - ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. - ([Coder -encodeIndent]): Call cstream to handle this, instead of doing - nothing. - ([Coder -encodeUnindent]): Likewise. - ([Coder -decodeIndent]): Likewise. - ([Coder -decodeUnindent]): Likewise. - ([Coder -encodeName:]): Likewise. - ([Coder -decodeName:]): Likewise. - ([Coder -formatVersion]): Method renamed from coderFormatVersion. - - * src/objects/Coder.h: Declare new methods. - (cstream): New ivar, replacing "stream". - (classname_map): New ivar, but not yet used properly. - (concrete_format_version): ivar removed, this is now in the CStream - classes. - - * src/CString.m: Use new-style method name "..ValueOfObjCType", - instead of "..ValueOfType". - ([CString -initWithCStringNoCopy:freeWhenDone:]): Cast away const - type. - - * src/Stream.m ([Stream -writeLine:]): Replace with more efficient - implementation from MemoryStream class. - * src/MemoryStream.m: Use (id ) instead of (char *) where - appropriate. - ([MemoryStream -writeLine:]): Remove method. - - * src/objects/Collection.h: Don't include ; this - helps prevent circular dependances in include files. - - * src/NSGCString.m ([NSGCString -cStringNoCopy]): New method. - * src/CString.m ([CString -cStringNoCopy]): New method. - * src/String.m: Use -subclassReponsibility instead of - -notImplemented in proper places. - ([String -cStringNoCopy]): New method. - * src/objects/String.h: Declare new method. - - * src/Stream.m: Use string object types instead of C-string types - in method arguments. Use -subclassReponsibility instead of - -notImplemented. - * src/objects/Streaming.h (Streaming): Use string object types - instead of C-string types in method arguments. - - * src/CString.m ([CString -initWithCStringNoCopy:freeWhenDone:]): - New method. - * src/String.m ([String +stringWithCStringNoCopy:freeWhenDone:f]): - New method. - ([String +stringWithCStringNoCopy:]): New method. - * src/objects/String.h: Declare new methods. - - * src/Coder.m: Don't use ivar interconnected_stack_height. - (DOING_ROOT_OBJECT): New macro, defined based on - interconnected_stack_height. - * src/objects/Coder.h (Coder): Get rid of unnecessary ivar - doing_root_object; we can get the same information from ivar - interconnected_stack_height. - -Mon Jan 22 21:32:25 1996 Andrew McCallum - - * src/NSCoder.m ([NSCoder -encodeObject:]): Implemented. - ([NSCoder -decodeObject]): Implemented. - ([NSCoder -encodeValueOfObjCType:at:]): Use -subclassResponsibility, - not -notImplemented. - ([NSCoder -decodeValueOfObjCType:at:]): Likewise. - ([NSCoder -encodeDataObject:]): Likewise. - ([NSCoder -decodeDataObject]): Likewise. - ([NSCoder -versionForClassName:]): Likewise. - -Mon Jan 22 11:08:55 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.19. - -Sat Jan 20 14:27:57 1996 Andrew McCallum - - * doc/install.texi: Mention GNU/Linux and the need for -lieee. - - * aclocal.m4: Don't have the initializer-loading test program - print anything. - (OBJC_SYS_DYNAMIC_FLAGS): Use '' not "" to quote $(CC). - -Fri Jan 19 12:40:49 1996 Adam Fedor - - * src/NSBundle.m (objc_executable_location): New - function. ([NSBundle +mainBundle]): Get path from NSProcessInfo. - - * src/NSProcessInfo.m: Remove NSArgv - definition. (_gnu_process_args): Remove NSArgv code. - - * src/objc-load.c: Remove NSArgv - declaration. (objc_executable_location): Removed - function. (objc_initialize_loading): Make path const char*. - * src/Foundation/objc-load.h: Remove objc_executable_location - function declaration. - - * src/objc/HashTable.h: Include stdobjects.h header for - LibObjectsMain definition. - -Fri Jan 19 10:43:32 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.18. - - * configure.in (OBJS_INSTALL): Fix typo NeXT_OBJS -> NEXTSTEP_OBJS - in when running under NeXTSTEP, but not using NeXT runtime. - (Reported by Satoshi Adachi .) - - * src/NSString.m ([NSString -initWithCString:length:]): Handle - case of NULL cString. - ([NSString -initWithCString:]): Likewise. - (Reported by Adam Fedor .) - - * src/find_exec.c (objc_find_executable): Make NSBundle work even - when CWD isn't in PATH. (Fix provided by Matthias Klose - .) - - * src/Makefile.in (libobjects.so.$OBJECTS_VERSION)): Re-add the - -Wl,-soname,libobjects.so.$(OBJECTS_MAJOR_VERSION) argument. - Create a soft link named libobjects.so. - (install): Install a soft link named libobjects.so. - (Fixes sent by Jeremy Bettis .) - - * Makefile.in: Remove -$(MAKEFLAGS) as argument to recursive calls - of $(MAKE); this happens automatically. (Reported by Niels Mvller - .) - -Tue Jan 16 19:33:49 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.17. - -Tue Jan 16 13:57:51 1996 Adam Fedor - - * aclocal.m4 (OBJC_SYS_AUTOLOAD): Define CON_AUTOLOAD if - /usr/include/elf.h exists. Use yes/no rather than 1/0. - - * src/objc-load.c: Update copyright. - (objc_load_module): Use CON_AUTOLOAD instead of SYS_AUTOLOAD. - -Tue Jan 16 12:24:59 1996 Andrew McCallum - - * src/Makefile.in (HEADERS_INSTALL): Remove objects/config.h. - (install): Look for libobjects.so file, not just for configure - variable. Remove unwanted `;'. Install objects/config.h from - build directory. (Fixes provided by Matthias Klose - ). - -Mon Jan 15 17:07:38 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.16. - (OBJECTS_GCC_VERSION): Updated from 2.7.0 to 2.7.2. - (OBJECTS_FTP_MACHINE): Changed to prep. - (OBJECTS_FTP_DIRECTORY): Changed to pub/gnu. - - * NSCharacterSets/Makefile.in (install): Prefix data files with - $(srcdir). - (Makefile): New target. - - * src/Makefile.in ($(NSVALUE_MFILES)): Use sed instead of expr to - extract number. - ($(NSNUMBER_MFILES)): Likewise. - - * checks/Makefile.in (all): Remove target `bundles' for now; - linking them doesn't always work. If people want to test bundles, - they can type `make bundles'. - - * examples/Makefile.in (ALL_CPPFLAGS): -I../src, not -I. - (Makefile): Prefix dependancy with $(srcdir). - * checks/Makefile.in (ALL_CPPFLAGS): -I../src, not -I. - (Makefile): Prefix dependancy with $(srcdir). - - * Makefile.in (dist): Add -9 to gzip args. - (snapshot): Likewise. - - * doc/install.texi: Remove --enable-shared from first example of - installation commands; many people were just copying these - commands, ignorant of whether or not their system supported - dynamically-linked shared libraries. - - * checks/Makefile.in: Remove test09; it doesn't work, but it - doesn't matter. - (SRCS): Remove test09.m. - (test09): Remove target. - - * aclocal.m4: Test whether loading of contructor functions works - by actually compiling and running a program, not by looking for - /usr/include/elf.h. - -Tue Jan 16 00:31:19 1996 Gregor Hoffleit - - * src/NSDate.m ([NSDate -description]): replace strftime() with - sprintf() equivalent for NEXTSTEP. - -Mon Jan 15 15:11:18 1996 Adam Fedor - - * aclocal.m4 (OBJC_SYS_DYNAMIC_LINKER): Expand macro correctly in - dld/defs.h check. - -Fri Jan 12 11:38:58 1996 Andrew McCallum - - * examples/Makefile.in (LIBS): Added -lm. - - * src/NSProcessInfo.m ([NSProcessInfo -globallyUniqueString]): - Don't use the %@ printf format directive, since it isn't - implemented yet; use %s and -cString instead. (Reported by - Gregor Hoffleit .) - - * aclocal.m4 (OBJC_SYS_AUTOLOAD): Don't define SYS_AUTOLOAD #ifdef - mips, gcc doesn't support it, even though elf.h exists. (Perhaps - this should be "sgi" instead of "mips"?) - * src/NSProcessInfo.m: Don't test !(sgi), since SYS_AUTOLOAD is - fixed. - - * src/find_exec.c (objc_find_executable): #ifdef NeXT, use getwd() - instead of getcwd(). - (Reported by Gregor Hoffleit .) - - * src/NSDate.m ([NSDate -description]): Don't use strftime #ifdef - NeXT. (Reported by Gregor Hoffleit - .) - - * src/Makefile.in (objects/stdobjects.h): prepend - objects/stdobjects.h.in with $(srcdir). - - * checks/Makefile.in ($(DYNAMIC_OFILES)): Use $(srcdir). - ($(BUNDLE_NAMEJ)): Likewise. - (Reported by Matthias Klose .) - - * src/Makefile.in (NXStringTable_scan.o): Removed target; let - pattern rule take care of it. - ($(NSVALUE_MFILES)): Use $@ instead of $* in expr argument. - ($(NSNUMBER_MFILES)): Likewise. - (Reported by .) - - * src/NSMethodSignature.m ([NSMethodSignature - +signatureWithObjCTypes:]): Fix typo: change objc_size_of_type to - objc_sizeof_type. (Reported by Gregor Hoffleit - .) - - * src/Makefile.in (libobjects.so.$(OBJECTS_VERSION)): Removed - "-Wl,-soname,libobjects.so.$(OBJECTS_VERSION)"; gcc does this - automatically. (Reported by Matthias Klose - .) - - * src/NSProcessInfo.m: Include for MAXHOSTNAMELEN. - (Reported by Matthias Klose .) - - * src/Makefile.in (ALL_INCLUDE_FLAGS): Add -I. for - objects/config.h. (Reported by Matthias Klose - ) - * checks/Makefile.in (ALL_CPPFLAGS): Likewise. - * examples/Makefile.in (ALL_CPPFLAGS): Likewise. - -Wed Jan 10 10:51:26 1996 Andrew McCallum - - * src/NSProcessInfo.m: Remove #if NeXT and alternate #include's. - * src/Foundation/NSProcessInfo.h: Likewise. - (These caused problems reported by John Boller .) - - * src/Invocation.m ([MethodInvocation -initWithSelector:arguments:]): - New method, not implemented. - -Tue Jan 9 14:07:36 1996 Andrew McCallum - - * src/Storage.m ([Storage -insertElement:at:]): Increment - numElements. (Reported by Revuz Dominique ). - - * Makefile.in (RCS_FILES): Remove out-of-date MACHINES and CREDITS - files. - -Mon Jan 8 11:05:52 1996 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.15. - - * src/NSProcessInfo.m (_GNU_MAX_HOST_NAMELEN): Macro removed; - using MAXHOSTNAMELEN from instead. All users - changed. - (_gnu_process_args): Malloc and fill NSArgv; assignment of char** - from *char[] isn't right. - - * src/NSGCString.m ([NSGCString -emptyCopy]): Use [super - emptyCopy], not [super allocCopy]. - - * src/String.m ([String -emptyCopy]): Method removed; super class - implementation is fine. - ([String -initWithCString:range:]): Use -subclassResponsibility:, not - -notImplemented:. - ([String -empty]): Likewise. - - * configure.in: Remove double-quotes in help string of - --enable-shared handling. - -Sun Jan 7 16:05:04 1996 Andrew McCallum - - * src/Makefile.in: Changed rules for compiling concrete NSValue - and NSNumber classes; the old version no longer worked with shared - library compilation, and didn't use the common pattern rule for - making the object file. - (NSNUMBER_CLUSTER, NSVALUE_CLUSTER): Variables removed. - (NSVALUE_MFILES): New variable, replacing NSVALUE_OFILES. - (NSNUMBER_MFILES): New variable, replacing NSNUMBER_OFILES. - (GNUSTEP_OBJS): Use new vars. - -Fri Jan 5 17:01:35 1996 Andrew McCallum - - Clean up shared library building. Building from another - directory now works. - * configure.in: Add $srcdir where necessary. - (LIBOBJECTS_A_OR_SO): Variable removed. - (LIBOBJECTS_SO): Defined according to --enabled-shared flag. - * src/Makefile.in: (Makeconf): Include it after system - configuration section, and from $(srcdir). - (SHAREDLIB_CFLAGS, SHAREDLIB_ARFLAGS, USING_SHAREDLIB_CFLAGS, - USING_SHAREDLIB_ARFLAGS): Variables removed. - (ALL_CFLAGS, ALL_OBJCFLAGS): Don't use removed vars. - (%_pic.o: %.m): New pattern rule. - (%_pic.o: %.c): New pattern rule. - (all): Always build libobjects.a, optionally build .so version. - (libobjects.so): Use -shared. Link to ..$(OBJECTS_MAJOR_VERSION). - (install): Always install libobjects, optionally install .so version. - Install the headers from the $(srcdir). - (NSVALUE_OFILES, NSNUMBER_OFILES, NXStringTable_scan.c, - dynamic-load.h): Use $(srcdir) properly for these targets. - * checks/Makefile.in: Executables now depend on libobjects.a, not - @LIBOBJECTS_A_OR_SO@. - (LIBS): Don't look in $(srcdir) for library. - (copy-dist): Don't use $(srcdir). - (Makefile): Likewise. - * examples/Makefile.in: Executables now depend on libobjects.a, - not @LIBOBJECTS_A_OR_SO@. - (LIBS): Don't look in $(srcdir) for library. - (OBJECTS_NEXT_INCLUDES): Don't look in non-existant next-includes dir. - (copy-dist): Don't use $(srcdir). - (Makefile): Likewise. - * doc/Makefile.in (TEXT_FILES): New variable. - (info): Use it. - (MAKEINFO_FLAGS): New variable. Use it in TEXT_FILES targets. - (DIST_FILES): Remove version.texi. - (clean): rm version.texi and $(TEXT_FILES). - - * src/NSProcessInfo.m (_gnu_process_args): Use "char **argv" - instead of "char *argv[]". Remove cast in assignment of NSArgv. - -Thu Jan 4 23:12:11 1996 Andrew McCallum - - * src/Set.m ([Set -removeElement:ifAbsentCall:]): Fix typo; method - renamed from -removeElement:ifAbsent:. (Reported by Albert Mietus - .) - -Wed Dec 20 11:30:37 1995 Adam Fedor - - * src/NSGeometry.m (NSMouseInRect): Handle flipped y-axis. - - * src/Foundation/NSException.h: Include NSString interface. - -Fri Nov 24 15:09:22 1995 Andrew McCallum - - * src/NSArray.m ([NSMutableArray -addObject:]): Use - -subclassResponsibility:, not -notImplemented:. - ([NSMutableArray -replaceObjectAtIndex:withObject:]): Likewise. - ([NSMutableArray -insertObject:atIndex:]): Likewise. - ([NSMutableArray -removeObjectAtIndex:]): Likewise. - ([NSMutableArray -removeAllObjects]): Likewise. - -Sun Nov 19 15:29:41 1995 Andrew McCallum - - * src/NSString.m ([NSString +allocWithZone:]): New method. - ([NSString +stringWithCString:byteString]): Use it. - ([NSString +stringWithCString:length:]): Likewise. - ([NSString +stringWithFormat:]): Likewise. - ([NSString +stringWithFormat:arguments:]): Likewise. - ([NSMutableString +allocWithZone:]): New method. - ([NSMutableString +stringWithCapacity:]): Use it. - ([NSMutableString +stringWithCString:length:]): Likewise. - -Tue Nov 14 11:39:41 1995 Andrew McCallum - - Some improvement to shared lib support, but since I can't test it, - I still don't know if it works. - - * src/Makefile.in (CFLAGS): Added -O. - (SHAREDLIB_CFLAGS,SHAREDLIB_ARFLAGS): Set values here, not in - configure.in. - (USING_SHAREDLIB_CFLAGS,USING_SHAREDLIB_ARFLAGS): New vars, set by - configure. - (ALL_CFLAGS, ALL_OBJCFLAGS): Use them. - (libobjects.so.$(OBJECTS_VERSION): New target, replacing - libobjects.so. Use version numbers. - (install): Try to do the right thing with shared/non-shared libs. - * configure.in: Update shared library variable names. - - * checks/Makefile.in: Use configure var, not libobjects.a. - Include ../Version. - - * examples/Makefile.in: Use configure var, not non-existant - Makefile var. Include ../Version. - -Mon Nov 6 12:24:16 1995 Andrew McCallum - - Shared library support; I'm not sure it works, though. - - * configure.in: Look for --enabled-shared. - (LIBOBJECTS_A_OR_SO, SHAREDLIB_CFLAGS, SHAREDLIB_ARFLAGS): New - substitutions. - * src/Makefile.in (SHAREDLIB_CFLAGS): New variable. - (ALL_CFLAGS): Use it. - (ALL_OBJCFLAGS): Likewise. - (SHAREDLIB_ARFLAGS): New variable. - (libobjects.so): Use it; new target. - (all): Depend on configure variable. - (install): Changes to install shared library. - * examples/Makefile.in: Look for LIBOBJECTS_A_OR_SO, not - libobjects.a. - - * src/NSProcessInfo.m (NSArgv): New global. - (_gnu_process_args): Set it. - - * NSMethodSignature.m: New file; not finished, though. - * src/Makefile.in (GNUSTEP_MFILES): Added NSMethodSignature.m. - - * src/Foundation/NSMethodSignature.h (NSArgumentInfo): Declared. - ([NSMethodSignature -argumentInfoAtIndex:]): Uncommented. - - * doc/install.texi: Warn them that compiling in a different - directory than the source will not currently work. - -Fri Nov 3 11:12:11 1995 Andrew McCallum - - * src/NSDictionary.m ([NSDictionary +dictionary]): Use +alloc, not - _concreteClass. This makes [NSMutableDictionary +dictionary] and - friends do the right thing. - ([NSDictionary +dictionaryWithObjects:forKeys:count:]): Likewise. - ([NSMutableDictionary +dictionaryWithCapacity:]): Likewise. - (Problem reported by Kim Shrier .) - - * src/NSSet.m ([NSSet +set]): Use +alloc, not _concreteClass. - This makes [NSMutableSet +set] and friends do the right thing. - ([NSSet +setWithObjects:count:]): Likewise. - ([NSSet +setWithArray:]): Likewise. - ([NSSet +setWithObject:]): Likewise. - ([NSSet +setWithObjects:]): Likewise. - ([NSMutableSet +setWithCapacity:]): Likewise. - - * src/NSArray.m ([NSArray +array]): Use +alloc, not - _concreteClass. This makes [NSMutableArray +array] and friends do - the right thing. - ([NSArray +arrayWithObjects:]): Likewise. - ([NSMutableArray +arrayWithCapacity:]): Likewise. - ([NSArray +arrayWithObject:]): Likewise; and fix condition on - exception. - - * src/NSProcessInfo.m ([NSProcessInfo -hostName]): Remove - unnecessary inefficiency: use stack to hold temporary string, not - malloc/free; just return the string, not a copy. Conform to GNU - coding standards in use of braces. - ([NSProcessInfo -processName]): Likewise. Just return the string, not - a copy. - ([NSProcessInfo -environment]): Likewise. - ([NSProcessInfo -arguments]): Likewise. - (_gnu_arguments, _gnu_environment): Make them constant classes, not - mutable. - (_gnu_process_args): Alloc _gnu_processName NSString, don't get an - autoreleased string and then retain it. Initialize _gnu_arguments - as a constant NSArray, not NSMutableArray. Initialize - _gnu_environment as a constant NSDictionary, not - NSMutableDictionary. Conform to the GNU coding standards in use - of braces. - - * src/Foundation/NSDictionary.h ([NSDictionary - -initWithObjects:forKeys:]): Declare method. - - This is called dissertation-procrastination. - -Sun Oct 29 19:41:16 1995 Andrew McCallum - - * checks/nsset.m: New file. - * checks/Makefile.in (SRCS): Added nsset.m. - (nsset): New target. - - * src/NSGArray.m ([NSGArray -objectAtIndex:]): Fix condition on - exception. - - * src/objects/NSSet.h: Moved method declarations from NSMutableSet - to NSSet. - - * NSCountedSet.m, NSGCountedSet.m: New files. - * src/objects/NSSet.h: Added NSCountedSet interface. - * src/Foundation/NSSet.h: Likewise. - * src/Foundation/NSGSet.h: Added NSGCountedSet interface. - * src/NSGSet.m: Implemented many methods. - * src/Makefile.in (GNUSTEP_MFILES): Added NSCountedSet.m and - NSGCountedSet.m. - - * src/NSArray.m ([NSArray -objectEnumerator]): Autorelease it. - ([NSArray -reverseObjectEnumerator]): Likewise. - - * src/NSGDictionary.m ([NSGDictionary -keyEnumerator]): - Autorelease it. - ([NSGDictionary -objectEnumerator]): Likewise. - -Wed Oct 25 20:37:15 1995 Andrew McCallum - - * src/NSSet.m, src/Foundation/NSSet.h: New files. - * src/NSGSet.m, src/Foundation/NSGSet.h: New files. - * src/Makefile.in (GNU_HEADERS): Added objects/NSSet.h. - (GNUSTEP_MFILES): Added NSGSet.m and NSSet.m. - (GNUSTEP_HEADERS): Added Foundation/NSGSet.h and Foundation/NSSet.h. - - * src/Foundation/NSDictionary.h: Include objects/stdobjects.h, not - objects/Dictionary.h. - * src/Foundation/NSGDictionary.h: Include objects/Dictionary.h. - - * src/collhash.c (coll_hash_next): Set STATE to 0 before returning - when the list is exhausted. This interacts with [Dictionary - -freeEnumState:] and [Set -freeEnumState]. This will all be - cleaned up when we start using Albin Jones' tables. (This bug - found by Allan Clearwaters.) - - * src/NSGDictionary.m ([NSGDictionaryKeyEnumerator - -initWithDictionary:]): Retain dictionary after it is initialized. - - * src/NSString.m ([NSString -cString]): Use - -subclassResponsibility: instead of -notImplemented: - ([NSString -cStringLength]): Likewise. - -Sun Oct 22 13:53:39 1995 Andrew McCallum - - Start adding proper NSException's; not done yet. - * src/NSGArray.m ([NSGArray -initWithObjects:count:]): Raise - exception for nil objects. - ([NSGArray -objectAtIndex:]): Raise exception when index too high. - * src/NSArray.m ([NSArray +arrayWithObject:]): Raise - exception on nil argument. - -Wed Oct 18 09:48:24 1995 Adam Fedor - - * NSBundle.REAMDE: Rewrote documentation. - - * examples/Makefile.example.in: New file. - * examples/configure.example.in: Likewise. - * examples/Makefile.in: Add new files to RCS_FILES. - - * src/Foundation/NSGCString.h: New _free_contents ivar. - * src/Foundation/String.h: Likewise. - * src/CString.m ([CString -initWithCString:range:]): Set - _free_contents to YES. ([CString -initWithCoder:]): Likewise. - ([CString -dealloc]): Free contents if needed. - * src/MutableCString.m ([MutableCString -initWithCapacity:]): Set - _free_contents to YES. ([MutableCString -initWithCoder:]): - Likewise. ([MutableCString -dealloc]): Free contents if needed. - * src/NSGCString ([NSGCString - -initWithCStringNoCopy:length:freeWhenDone:]): set _free_contents. - ([NSGCString -initWithCoder:]): Set _free_contents to YES; - ([NSGCString -dealloc]): Free contents if needed. - ([NSGMutableCString -initWithCapacity:]): Set _free_contents to - YES. ([NSGMutableCString -initWithCoder:]): Likewise. - - * src/NSString.m ([NSString -initWithCString:length:]): Set free - string. ([NSString -compare:options:]): Range should be - maximum of both strings. - - * src/NSGArray.m ([NSGArray -replaceObjectAtIndex:withObject:]): - Implement. - - * src/NSGeometry.m (NSMouseInRect): Point should not touch sides. - -Sat Oct 14 14:16:04 1995 Andrew McCallum - - Remove remnants of "stack of dictionaries"; we only need one. - * src/objects/Coder.h (Coder): Renamed ivars from - root_object_tables to root_object_table, from - forward_object_tables to forward_object_table; changed classes - from Stack (of Dictionary's) to Dictionary. - * src/Coder.m ([Coder -doInitOnStream:isDecoding:]): Use new ivar - names. - ([Coder -_coderPushRootObjectTable]): Use new ivar names and don't use - Stack. - ([Coder -_coderPopRootObjectTable]): Likewise. - ([Coder -_coderTopRootObjectTable]): Likewise. - ([Coder -_coderPushForwardObjectTable]): Likewise. - ([Coder -_coderPopForwardObjectTable]): Likewise. - ([Coder -_coderTopForwardObjectTable]): Likewise. - ([Coder -_coderForwardObjectsAtReference:]): Don't access ivar - directly. - ([Coder -_coderPutForwardObjects:atReference:]): Likewise. - ([Coder -finishDecodingInterconnectedObjects]): Use new ivar name. - ([Coder -dealloc]): Likewise. - -Mon Oct 9 10:33:13 1995 Andrew McCallum - - * src/IndexedCollection.m ([IndexedCollection - -shallowCopyInReverseAs:]): Return newColl, not self. - ([IndexedCollection -withElementsInReverseCall:]): Set flag to YES. - ([IndexedCollection -safeWithElementsInReverseCall:]): Likewise. - Reported by MURATA, Shuuichirou . - - * doc/readme.texi (The Class Heirarchy): Fixes from Aleksey - Sudakov . - -Thu Oct 5 11:31:44 1995 Adam Fedor - - * src/objc-malloc.c (objc_malloc): Declare res before any - statements. - (__objc_valloc): Likewise. - (__objc_realloc): Likewise. - (__objc_calloc): Likewise. - -Sat Sep 30 18:00:22 1995 Andrew McCallum - - * src/objc-malloc.c (CHECK_ZERO_SIZE): New macro; for making sure - we don't pass 0 to malloc and its friends. (Needed on DEC Alpha; - problem reported by Adam Fedor.) - (__objc_malloc): Use it. - (__objc_valloc): Likewise. - (__objc_realloc): Likewise. - (__objc_calloc): Likewise. - -Wed Sep 27 18:45:46 1995 Andrew McCallum - - * Makefile.in (DIST_FILES): Removed DISCUSSION. - - * src/IndexedCollection.m ([IndexedCollection - -getNextElement:withEnumState:]): if isEmpty, return NO. - - * src/NSObject.m ([NSObject +initialize]): Set default - autorelease_class to NSAutoreleasePool. - - * src/NSProcessInfo.m: Don't try to use __attribute__ ((section - ..)) #if (sgi). It doesn't seem to be supported. This probably - means that aclocal.m4 needs to be fixed so that it doesn't define - SYS_AUTOLOAD in this case. No time now. Adam? - - * src/Collection.m: Avoid cache_flush when releasing contents. - (send_release): Remove function. - ([Collection -_releaseContents]): New method. - ([Collection -dealloc]): Use it. - ([Collection -empty]): Likewise. - ([Collection -_safeWithElementsCallNoRetain:]): Use - -getNextElement:withEnumState instead of -withElementsCall: to - avoid cache_flush. - -Thu Sep 21 11:07:38 1995 Adam Fedor - - * src/NSArray.m ([NSArray -indexOfObjectIdenticalTo: - -indexOfObject: -containsObject: -removeObjectIdenticalTo: - -removeObject:]): Use NSNotFound for non-existant objects. - - * src/NSBundle.m ([NSBundle -initWithPath:]): Check if bundle - for path already exists. - - * src/NSGArray.m ([NSGArray -indexOfObject:]): Force message to - go to super rather than behavior class. - - * src/NSGCString.m ([NSGCString -emptyCopy]): start with - allocCopy. - - * NSGData.m ([NSGData -copyWithZone: -mutableCopyWithZone:], - [NSGMutableData -copyWithZone:]): New methods. - -Tue Sep 12 18:33:25 1995 Andrew McCallum - - * Makefile.in (RCS_FILES): Add file aclocal.m4. - -Tue Sep 12 15:30:27 1995 Adam Fedor - - This should make dynamic loading work under Solaris. - - * aclocal.m4: New file. - - * configure.in: Remove dynamic linking checks. Use - OBJC_SYS_DYNAMIC_FLAGS macro from aclocal.m4. - - * src/NSBundle.m: Make sure index is defined. - - * src/NSProcessInfo.m: Check ifdef SYS_AUTOLOAD as well as __ELF__ - * src/objc-load.c: Likewise. - * src/objects/LibobjectsMain.h: Likewise. - -Sun Sep 10 18:17:56 1995 Andrew McCallum - - * src/TextCoder.m ([TextCoder - -decodeValueOfSimpleType:at:withName:]): Assert the data pointer. - - * src/Coder.m ([Coder -doInitOnStream:isDecoding:]): Temporarily - change in_progress_table from a Set to an Array. I need to fix - some problems with Set. - ([Coder -startEncodingInterconnectedObjects]): Deal with - interconnected_stack_height. - ([Coder -finishEncodingInterconnectedObjects]): Likewise. - ([Coder -startDecodingInterconnectedObjects]): Likewise. - ([Coder -finishDecodingInterconnectedObjects]): Likewise. - ([Coder -encodeRootObject:withName:]): Fix bug, whereby we weren't - giving what decodeObjectAt:withName: expected. - ([Coder -encodeArrayOfType:at:count:withName:]): Don't encode the - array count. - ([Coder -decodeArrayOfType:at:count:withName:]): Don't expect the - array count. Change type on 3rd argument. - * src/objects/Coder.h (interconnected_stack_height): New ivar for - Coder. - - * src/objects/Coding.h ([Coding - -decodeArrayOfType:at:count:withName:]): Change the 3rd argument - type; pass the count directly, not as a pointer. The encoding and - decoding of array's no longer records the array count; if - necessary, you must do that yourself ahead of time. - -Fri Sep 8 18:30:54 1995 Andrew McCallum - - * src/objects/Coder.h (in_progress_table): New ivar in Coder. - * src/Coder.m ([Coder -doInitOnStream:isDecoding:]): Init - in_progress_table. - ([Coder -dealloc]): Release in_progress_table. - ([Coder -_encodeObject:withName:isBycopy:isForwardReference:]): - If the object is in progress, treat it like a forward reference. - Add the object to the in_progess_table before really encoding the - object; remove it when done. (NOTE, this isn't an excuse not to - set up "encoding interconnected objects" mode; you still must do - this first.) - -Wed Sep 6 09:30:15 1995 Andrew McCallum - - * Makefile.in (snapshot): Remove the snapshot name so we don't get - nested snapshots on failure. - -Wed Aug 30 09:33:07 1995 Adam Fedor - - * src/NSCTemplateValue.m ([NSCTemplateValue -encodeWithCoder:]): - Code type as a char_ptr. ([NSCTemplateValue -initWithCoder:]): - Leave decoding to NSValueDecoder class. - * src/NSConcreteNumber.m: Likewise. - * src/NSConcreteValue.m: Likewise. - - * src/NSNumber.m: Clarify error message for abstract methods - with "subclassResponsibility". - - * src/NSValue.m: New NSValueDecoder class. Clarify error - message for abstract methods. - - * /src/TextCoder.m ([TextCoder encodeValueOfSimpleType:at:withName:]): - Write reals using "%g". - ([TextCoder decodeValueOfSimpleType:at:withName:]): Decode - double as "%lf". - -Mon Aug 28 16:27:03 1995 Andrew McCallum - - * src/Collection.m ([Collection -empty]): Check if already empty. - This avoids a previous malloc(0). - -Sat Aug 26 13:56:40 CDT 1995 Jeremy Bettis - - * src/NSProcessInfo.m: Added Linux/ELF support. Linux calls the - __libc_subinit functions before the global constructors, therefore - the subinit functions must be just vanilla C. - -Sat Aug 26 12:36:37 1995 Andrew McCallum - - * Makefile.in (snapshot): Put README.first in the snapshot - distribution. - * README.first: New file. - -Thu Aug 24 12:32:54 1995 Andrew McCallum - - * src/Makefile.in (GNUSTEP_MFILES): Added NSObjCRuntime.m. - * src/NSObjCRuntime.m: New file. - (NSStringFromSelector, NSSelectorFromString, NSClassFromString, - NSStringFromClass): New functions. - - * src/NSObject.m: Include - ([NSObject -description]): Implemented. - ([NSObject +description]): Implemented. - - * src/Makefile.in (FILE_AUTHORS): Added Peter Burka. - - * volunteers: No longer a soft link to the http file; now it is a - text file giving the http address and explaining task coordination. - - * Makefile.in (snap): New target. - (snapshot): New target. - (dist): Use new target snap. - -Wed Aug 23 10:39:21 1995 Andrew McCallum - - * src/NSTimeZone.m ([NSTimeZone -encodeWithCoder:]): Avoid warning - by removing type from argument. - ([NSTimeZone -initWithCoder:]): Likewise. - - * Makefile.in (DIST_FILES): Add file README.foundation. - - * src/String.m: Fix bug by which [NSString mutableCopy] returned a - String, not NSString. - ([String -copyWithZone:]): Renamed from -copy. - ([String -mutableCopyWithZone:]): Renamed from -mutableCopy. - - * src/behavior.c: Added comment about superclass methods being - overriden. - - * Makeconf (install, uninstall): New targets. - - * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Removed - question comment. - -Thu Aug 17 17:41:05 1995 Adam Fedor - - * src/NSData.m ([NSData +allocWithZone:]): New method. - ([NSMutableData +allocWithZone:]): Likewise. - ([NSData +data, +dataWithBytes:length:, - +dataWithBytesNoCopy:length:, +dataWithContentsOfFile:, - +dataWithContentsOfMappedFile:]): Allocate using designated - allocator. ([NSMutableData +dataWithCapacity:, - +dataWithLength:]): Likewise. - -Wed Aug 17 19:54:17 1995 Peter Burka - - * src/NSZone.c: malloc.h isn't included on NeXTStep - * src/Foundation/NSZone.h: use NeXT's zones only if we're using - their runtime, too - - * src/Foundation/NSDate.h (NSTimeZone, NSTimeZoneDetail): - interfaces declared - - * src/Makefile.in (GNUSTEP_MFILES): Added NSTimeZone.m. - * src/NSTimeZone.m: New file. - * src/NSTimeZone.m: (NSTimeZone, NSConcreteTimeZone, - NSTimeZoneDetail, NSConcreteTimeZoneDetail): implementations - defined - * src/Foundation/NSDate.h: Added declaration of NSTimeZone. - -Wed Aug 16 11:58:24 1995 Andrew McCallum - - * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.14. - - * checks/Makefile.in (nsprocessinfo): New target. - - * src/objects/LibobjectsMain.h: Comment out args to LibobjectsMain - so we don't get errors from people's "int main ()". - - * admin/Makefile.in (ADMIN_FILES): Added tasks. - (tasks): New target. - * doc/Makefile.in (copy-dist): Remove linking of 'tasks' to admin. - - * src/NSProcessInfo.m (_GNU_MISSING_MAIN_FUNCTION_CALL): Added - Tuparev's email address. - - * admin/Makefile.in (copy-dist): Use cp instead of ln. (Some of - these files are symbolic links themselves, and tar gets confused). - - * src/Makefile.in (FILE_AUTHORS): Added "Georg Tuparev". - - * Makefile.in (DIST_FILES): Remove GNUStep-volunteers. It's now - in admin/volunteers. - - * checks/nsprocessinfo.m: Fix typo in includes. - (main): Fix warnings in while test. - Add newlines to end of printf's. - - * src/NSProcessInfo.m: Fix indentation. - - * src/NSProcessInfo.m: Use ELF _libc_subinit for initialization - instead of LibobjectsMain. - * src/objects/LibobjectsMain.h: Only redefine main if we don't - have __ELF__. - - * src/objects/stdobjects.h.in: Include - - * src/Makefile.in (GNUSTEP_MFILES): Added NSProcessInfo.m. - (GNUSTEP_HEADERS): Added Foundation/NSProcessInfo.h and - LibobjectsMain.h. - * checks/Makefile.in (SRCS): Added nsprocessinfo.m. - - * src/NSProcessInfo.m, src/Foundation/NSProcessInfo.h, - src/objects/LibobjectsMain.h, checks/nsprocessinfo.m: New files - from Georg Tuparev - -Wed Aug 9 11:27:42 1995 Andrew McCallum - - * src/NSString.m: Replaced "notImplemented" with - "subclassResponsibilty" where appropriate. - - * admin/Makefile.in (RCS_FILES): Renamed Makefile to Makefile.in. - (Makefile, ../config.status): New targets. - - * admin/Makefile.in: Renamed from Makefile. - (srcdir, VPATH): new vars. - * configure.in (AC_OUTPUT): Added admin/Makefile. - - * src/NSString.m: Rename NSCString to NSGCString. - ([NXConstantString -release]): Fix return type and return. - ([NSString +_setConcreteClass:]): New method. - ([NSString +_setConcreteCClass:]): New method. - ([NSString +_setMutableConcreteClass:]): New method. - ([NSString +_setMutableConcreteCClass:]): New method. - ([NSString +_concreteClass]): New method. - ([NSString +_concreteCClass]): New method. - ([NSString +_mutableConcreteClass]): New method. - ([NSString +_mutableConcreteCClass]): New method. - ([NSString +initialize]): Initialize new statics that hold concrete - classes. - ([NSString +stringWithCString:byteString]): Use concrete class method. - ([NSString +stringWithCString:length:]): Likewise. - ([NSString +stringWithFormat:]): Likewise. - ([NSString +stringWithFormat:arguments:]): Likewise. - ([NSString -mutableCopyWithZone:]): Likewise. - ([NSMutableString +stringWithCapacity:]): Likewise. - ([NSMutableString +stringWithCString:length:]): Likewise. - - * src/Makefile.in: Rename NSCString to NSGCString. - * src/Foundation/NSString.h: Likewise. - * src/Foundation/NSGCString.h: Likewise. - * src/NSGCString.m, src/Foundation/NSGCString.h: Likewise. - * src/NSGCString.m: Likewise. - - * admin/Makefile: New file. - * Makefile.in (SUBDIRS): Added admin. - - * doc/Makefile.in (TOP_DOC_FILES): Remove TODO. - (DIST_FILES): Add TODO. - (copy-dist): Link TODO to ../snap/admin/tasks. - -Tue Aug 8 11:32:13 1995 Andrew McCallum - - * src/NSDate.m ([NSDate -copyWithZone:]): New method. - ([NSDate -descriptionWithCalendarFormat:timeZone:]): Uncommented. - ([NSDate -dateWithCalendarFormat:timeZone:]): Uncommented. - - * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Use - object_get_class() instead of ->isa. - - * src/Makefile.in (GNUSTEP_HEADERS): Added Foundation/NSDate.h. - (GNUSTEP_MFILES): Added NSDate.m. - -Fri Aug 4 13:39:05 1995 Adam Fedor - - * src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]): - Remove double_release checking. Increment released_count after - setting released array. - ([NSAutoreleasePool -dealloc]): Catch release errors. - ([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method. - - * src/NSObject.m ([NSObject -autorelease], [NSObject -release]): - Add double_release checking. - ([NSObject +enableDoubleReleaseCheck:]): New method. - - * src/Foundation/NSAutoreleasePool.h: Remove - +enableDoubleReleaseCheck:, add +autoreleaseCountForObject:. - - * src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:. - - * src/Foundation/objc-load.h: Include objc-api file. - -Fri Aug 4 11:08:05 1995 Andrew McCallum - - * src/MemoryStream.m (debug_memory_stream): Turn debugging off by - default. - - * src/Makefile.in (install): Remove README links before relinking. - - * src/mframe.m (make_method_call) [__mips__]: Add 4 to offset for - float retframe. Yipes, this may be needed for other architectures - too. - - * src/Makefile.in (GNUSTEP_HEADERS): Removed Foundation/NSUser.h. - (GNUSTEP_CFILES): Removed NSUser.c. - -Thu Aug 3 15:48:21 1995 Andrew McCallum - - * src/mframe.m (make_method_call): Added comment about looking - into a problem with returning floats. I need to get back to this - later. - -Mon Jul 31 10:44:22 1995 Adam Fedor - - * configure.in: Check for HP version of dld library. Add new - DYNAMIC_LDFLAGS if hpux version found. - - * checks/Makefile.in (DYNAMIC_LDFLAGS): New macro. (nsbundle): Use - macro in linking. - - * src/hpux-load.h (__objc_dynamic_link): Specify linking flags to - shl_load. (__objc_dynamic_find_symbol): Check for return error - from shl_findsym. - -Fri Jul 28 12:38:22 1995 Adam Fedor - - * configure.in: Added DYNAMIC_CFLAGS and extra test for hpux. - - * checks/Makefile.in (DYNAMIC_BUNDLER_LINKER, DYNAMIC_CFLAGS, - BUNDLE_NAME, DYNAMIC_MFILES, DYNAMIC_HFILES, DYNAMIC_OFILES, - nsbundle, bundles): New macros and targets. - - * checks/LoadMe.[hm], checks/SecondClass.[hm], - checks/MyCategory.[hm], checks/nsbundle.m: New files. - - * src/NSBundle.m (bundle_object_name, bundle_resource_path, - [NSBundle +mainBundle], [NSBundle +setSystemLanguages:]): Remove - dependency on NSString for calculating paths. - -Wed Aug 2 12:04:51 1995 Andrew McCallum - - * NSBundle.README: Remove reference to gcc-dynamic.patch. - -Fri Jul 14 17:11:20 1995 Adam Fedor - - * src/MallocAddress.m ([MallocAddress -dealloc]): Check for object in - dictionary before removing. - - * src/NSArchiver.m: Include NSData header. - - * src/NSAutoreleasePool.m ([NSAutoreleasePool - +autoreleaseCountForObject:]): Initialize count to 0. - - * src/NSGData.m ([NSGMutableData -setLength:]): Reset eofPosition - to size. - -Wed Aug 2 11:21:55 1995 Andrew McCallum - - * src/NSString.m ([NXConstantString -dealloc]): New method. - ([NXConstantString -cString]): New method. - ([NXConstantString -retain]): New method. - ([NXConstantString -release]): New method. - ([NXConstantString -autorelease]): New method. - ([NXConstantString -copyWithZone:]): New method. - (From Jeremy Bettis). - - * src/NSDate.m ([NSDate -isEqual:]): Fix typo. (From Jeremy - Bettis). - -Wed Jul 12 10:22:48 1995 Adam Fedor - - * NSString.m (componentsSeparatedByString:, substringFromRange:, - rangeOfCharacterFromSet:, rangeOfCharacterFromSet:options:, - rangeOfCharacterFromSet:options:range:, rangeOfString:, - rangeOfString:options:, caseInsensitiveCompare:, hasPrefix:, - hasSuffix:, lastPathComponent, pathExtension, - stringByAppendingPathComponent:, stringByAppendingPathExtension:, - stringByDeletingLastPathComponent, stringByDeletingPathExtension): - Implemented methods. - - * Foundation/NSException.h (_NSAssertArgs, _NSCAssertArgs): Made - ',' a separate token to work with ## macro. - - * Foundation/NSRange.h: Added NSMakeRange declaration. - -Fri Jun 30 16:02:12 1995 Adam Fedor - - * NSData.m ([NSData +allocWithZone:]): New method. - (_initWithBytesNoCopy:length): New (designated initializer) method. - (initWithBytesNoCopy:length:): Make subclass responsibility. - (init): Call new designated initializer. ([NSMutableData - +allocWithZone:]) New Method. (dataWithCapacity:, dataWithLength:): - Allocate using designated allocator. (initWithBytesNoCopy:length:): - Make subclass responsibility. - - * NSGData.m (_initWithBytesNoCopy:length:): Make designated - initializer. (initWithBytesNoCopy:length:) Call designated initializer. - -Wed Aug 2 10:35:31 1995 Andrew McCallum - - * src/Makefile.in (FILE_AUTHORS): Added "Martin Michlmayr". - - * NSUser.c, Foundation/NSUser.h: New files from Martin Michlmayr - . - * src/Makefile.in (GNUSTEP_HEADERS): Added Foundation/NSUser.h. - (GNUSTEP_MFILES): Added NSUser.c. - -Thu Jul 6 10:11:11 1995 Adam Fedor - - * src/MemoryStream.m ([MemoryStream -writeBytes:length]): Realloc - buffer to at least minimum required length. - - * src/NSCString.m ([NSCString -cString]): Malloc extra byte for - '\0' terminator. - - * src/NSGArray.m ([NSGArray -initWithObjects:count:]): Set - _capacity to minimum of 1. - ([NSGMutableArray -initWithCapacity:]): Likewise. - -Wed Jul 5 17:19:21 1995 Andrew McCallum - - Released version 0.1.13. - - * src/NSString.m ([NSString -getCharacters:range:]): Decrement, - not increment in loop. (Reported by Harmut - ). - -Mon Jul 3 18:10:50 1995 Andrew McCallum - - * src/NSMethodSignature.m ([NSMethodSignature -dealloc]): Free - returnTypes. - - * src/NSUnarchiver.m: Allow easy user-modification of concrete class. - ([NSUnarchiver +_setConcreteClass:]): New method. - ([NSUnarchiver +_concreteClass]): New method. - ([NSUnarchiver +initialize]): New method. - - * src/NSArchiver.m: Allow easy user-modification of concrete - class. Removed references to NSGData. - ([NSArchiver +_setConcreteClass:]): New method. - ([NSArchiver +_concreteClass]): New method. - ([NSArchiver +initialize]): New method. - - * src/NSData.m: Allow easy user-modification of concrete class. - ([NSData +_setConcreteClass:]): New method. - ([NSData +_setMutableConcreteClass:]): New method. - ([NSData +_concreteClass]): New method. - ([NSData +_mutableConcreteClass]): New method. - ([NSData +initialize]): New method. - -Sat Jul 1 14:32:52 1995 Andrew McCallum - - * src/objects/README: Capitalize Foundation. - - * src/NSArray.m: Moved NSArrayEnumerator interface and - implementation from separate files to here. - * src/Makefile.in (GNUSTEP_MFILES): Remove NSArrayEnumerator.m. - (GNUSTEP_HEADERS): Remove Foundation/NSArrayEnumerator.h. - - * src/Foundation/NSZone.h: Update copyright. - * src/Foundation/NSValue.h: Likewise. - * src/Foundation/NSGeometry.h: Likewise. - * src/Foundation/NSException.h: Likewise. - * src/Foundation/NSUnarchiver.h: Likewise. - * src/Foundation/NSTimer.h: Likewise. - * src/Foundation/NSString.h: Likewise. - * src/Foundation/NSSerialization.h: Likewise. - * src/Foundation/NSRange.h: Likewise. - * src/Foundation/NSObject.h: Likewise. - * src/Foundation/NSObjCRuntime.h: Likewise. - * src/Foundation/NSMethodSignature.h: Likewise. - * src/Foundation/NSInvocation.h: Likewise. - * src/Foundation/NSDictionary.h: Likewise. - * src/Foundation/NSData.h: Likewise. - * src/Foundation/NSCoder.h: Likewise. - * src/Foundation/NSCharacterSet.h: Likewise. - * src/Foundation/NSBundle.h: Likewise. - * src/Foundation/NSBitmapCharSet.h: Likewise. - * src/Foundation/NSAutoreleasePool.h: Likewise. - * src/Foundation/NSArray.h: Likewise. - * src/Foundation/NSArchiver.h: Likewise. - * src/Foundation/NSDate.h: Likewise. - * src/NSDate.m: Likewise. - -Fri Jun 30 16:42:10 1995 Andrew McCallum - - * src/Foundation/NSRange.h (NSLocationInRange): Added - __attribute__ ((unused)). - (NSMaxRange): Likewise. - -Fri Jun 30 13:19:24 1995 Adam Fedor - - * Makefile.in (install): Fixed directory typo. - - * NSCharacterSets/Makefile.in (INSTALL, INSTALL_PROGRAM, - INSTALL_DATA): New variables. - (install): Depend on installdirs. - -Fri Jun 30 09:45:14 1995 Andrew McCallum - - * (install-sh, mkinstalldirs): Change file permissions to group - and all can read and execute. (Reported by Paul Kunz.) - - * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.13. - - * doc/news.texi (Noteworthy changes since version 0.1.12): New - section. - - The "concrete class" configuration idea was proposed by Albin - Jones , 10 Jun 1995. - - * src/NSDictionary.m: Allow easy user-modification of concrete class. - ([NSDictionary +_setConcreteClass:]): New method. - ([NSDictionary +_setMutableConcreteClass:]): New method. - ([NSDictionary +_concreteClass]): New method. - ([NSDictionary +_mutableConcreteClass]): New method. - ([NSDictionary +initialize]): New method. - (NSDictionary_concrete_class, NSMutableDictionary_concrete_class): New - static variables. - ([NSDictionary -copyWithZone:]): Make a deep copy to conform to spec; - it was a shallow copy. - - * src/NSArray.m: Allow easy user-modification of concrete class. - ([NSArray +_setConcreteClass:]): New method. - ([NSArray +_setMutableConcreteClass:]): New method. - ([NSArray +_concreteClass]): New method. - ([NSArray +_mutableConcreteClass]): New method. - ([NSArray +initialize]): New method. - (NSArray_concrete_class): New static variable. - (NSMutableArray_concrete_class): New static variable. - ([NSArray +arrayWithObject:]): Don't use addObject:. - ([NSArray -copyWithZone:]): Make a deep copy to conform to spec; it - was a shallow copy. - -Wed Jun 28 18:31:36 1995 Andrew McCallum - - * Makefile.in (rcs-list-locked): Fix typo. - - Released Version 0.1.12. - - * Makefile.in (DIST_FILES): Remove gcc patch files. - * doc/install.texi: Remove instructions for gcc patches. - - * examples/Makefile.in (ALL_CPPFLAGS): Look in ../src for includes. - - * examples/second-server.m: Use release instead of free. - * examples/textcoding.m: Likewise. - * examples/stdio-stream.m: Likewise. - - * src/objects/Dictionary.h ([Dictionary - initWithType:keyType:capacity]): Declare it. - ([Dictionary initWithType:capacity]): Likewise. - - * Makefile.in (RCS_FILES): Added Makeconf. - - * checks/Makefile.in (DIST_FILES): Added RCS_FILES. - - * src/Time.m: Include Sequent support. (Thanks to Matt Nelson - ). - * src/objects/Time.h: Likewise. - - * checks/test09.m: Add _SEQUENT_ to lrand48 conditional. - * checks/test04.m: Likewise. - * checks/test01.m: Likewise. - - * checks/client.m (main): Use -invalidate, not -release. - * examples/first-client.m (main): Likewise. - * examples/second-client.m (main): Likewise. - - * src/Connection.m ([Connection - +newForInPort:outPort:ancestorConnection:]): Add comment. I need - to fix retain/release for Connection. - - * checks/Makefile.in: Put src in all dependencies on libobjects.a. - (OBJECTS_NEXT_INCLUDES): Look in src directory. - (LIBS): Likewise. - (ALL_CPPFLAGS): Likewise. - - * checks/test08.m: Use libobjects' Coder instead of GNU - TypedStream. Comment out BinaryTree testing. - - * src/BinaryTree.m ([BinaryTree -_initCollectionWithCoder:]): - Disabled with -notImplemented. I need to fix decoding of this - class. - - * src/LinkedList.m: Added comment. I need to fix decoding of this - class. - - * src/Collection.m ([Collection -_safeWithElementsCallNoRetain:]): - Use malloc not alloca. - - * src/Dictionary.m ([Dictionary -putElement:atKey:]): Release - previous element. (Thanks to Paul Burchard ). - - * src/NSObject.m (NSDecrementExtraRefCountWasZero): Return correct - value. (Thanks to Paul Burchard ). - - * src/Makefile.in (CFLAGS): Remove -Wall. - - * doc/announce.texi: Use machines.texi. - * doc/advertisement.texi: Likewise. - - * doc/machines.texi: New file. - * doc/Makefile.in (TEXI_FILES): Added machines.texi. - (info): Removed libobjects.texi and objective-c.texi. - (objective-c): Print apology about makeinfo. - -Sun Jun 25 18:08:26 1995 Andrew McCallum - - * src/Makefile.in (objects/stdobjects.h): Depend on ../Version, - not Makefile.in. - (AUTHORS): Fix echo'ing of newlines. - - * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.12. - (OBJECTS_GCC_VERSION): Upped from 2.6.3 to 2.7.0. - -Tue Jun 20 12:06:36 1995 Andrew McCallum - - * Makefile.in (rcs-list-locked): Print subdir names. - - * checks/Makefile.in: Include $(srcdir)/../Makeconf. - (RCS_FILES): New variable. - (install, uninstall): New targets. - (copy-dist): Converted to new scheme. - * examples/Makefile.in: Likewise. - - * doc/Makefile.in: Change the way top-level dir info files are - handled. - (TOP_FILES): Variable removed. - (.SUFFIXES): Removed. - (prefix, infodir): New variables. - (copy-dist): Converted to new scheme. - - * doc/news.texi (Noteworthy changes since version 0.1.10): New - section. - - * src/NSGArchiver.m ([NSGArchiver -initForWritingWithMutableData:]): - New method. - - * src/Makefile.in (prefix, exec_prefix, libdir, includedir): New - variables. - - * Makefile.in: Convert to new scheme with subdirs. Many variable - and targets moved to subdir Makefiles. - (maintainer-clean, %-subdirs): New targets. - - * configure.in (AC_OUTPUT): Added NSCharacterSets/Makefile. - - * NSCharacterSets/Makefile.in (prefix, datadir, charsetdir, - INSTALL_FILES): New variables. - (installdirs, install, uninstall): New targets. - -Fri May 26 11:17:54 1995 Adam Fedor - - * src/objc-load.c (objc_load_module): Don't execute ctor_list on - __ELF__ systems. - -Fri May 19 11:22:42 1995 Andrew McCallum - - * doc/Makefile.in (copy-dist): Renamed from "dist". - * examples/Makefile.in (copy-dist): Renamed from "dist". - * checks/Makefile.in (copy-dist): Renamed from "dist". - - * configure.in (AC_OUTPUT): Prepend "src/" to "objects/config.h". - - * configure.in (AC_OUTPUT): Added src/Makefile. Changed - INSTALL_HEADERS to HEADERS_INSTALL. Changed INSTALL_OBJS to - OBJS_INSTALL. - -Thu May 11 16:09:36 1995 Andrew McCallum - - * Makefile.in (datadir): According to new standards, use "share" - instead of "lib". - -Mon May 8 16:39:42 1995 Andrew McCallum - - * Makefile.in (dist): Rename "share" to "NSCharacterSets". - (datadir): New variable. - (charsetdir): New variable. - (install): Install files from NSCharacterSets directory. - (installdirs): Make $(datadir) and $(charsetdir). - * NSCharacterSets: Directory renamed from "share". - -Fri May 5 10:46:37 1995 Andrew McCallum - - * doc/Makefile.in (TOP_FILES): New variable. - (dist): Copy TOP_FILES. - (version.texi): Remove $(MAKEFLAGS). - - * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.11. - (dist): mkdir src and config. Copy share and contents. - - * configure.in: Use config/ directory prefix where needed. - - * config: New subdirectory. - * config.*: Files moved there. - - * src/NSException.m (encodeWithCoder:, initWithCoder:): Remove - class names from arg type to avoid bogus warnings about protocol - conformance. - - * Makefile.in: Use doc/ and src/ directories. Many changes. - * src: New subdirectory. Move source files there. - - * configure.in: Look for src/Collection.m, not Collection. - - * configure.in: Create doc/Makefile. - * doc: New subdirectory. - * doc/Makefile.in: New file. - - * checks/nsdictionary.m: New file. - * checks/Makefile.in (SRCS): Added nsdictionary.m. - - * Foundation/NSDictionary.h: Uncomment -keyEnumerator and - -objectEnumerator. - * NSDictionary.m [NSDictionary] (+allocWithZone, +dictionary, - +dictionaryWithObjects:forKeys:count:, -initWithObjects:forKeys:, - +dictionaryWithObjects:forKeys:, -initWithObjects,forKeys:count:, - -init, -initWithDictionary, -count, -objectForKey, -keyEnumerator, - -isEqual:, -isEqualToDictionary, -descriptionWithIndent, -allKeys, - -allValues, allKeysForObject:, -objectEnumerator, -copyWithZone, - -mutableCopyWithZone): Implemented. - [NSMutableDictionary] (+allocWithZone:, +dictionaryWithCapacity:, - -initWithCapacity:, -initWithObjects:forKeys:count:, - -setObject:forKey:, -removeObjectForKey:, removeAllObjects, - -removeObjectsForKeys:, addEntriesFromDictionary:): Implemented. - (NSGDictionaryKeyEnumerator, NSGDictionaryObjectEnumerator): New - classes. - * NSGDictionary.m, Foundation/NSGDictionary.h, - objects/NSDictionary.h: New files. - * Makefile.in (GNU_HEADERS): Added NSDictionary.h. - (GNUSTEP_MFILES): Added NSGDictionary.m. - (GNUSTEP_HEADERS): Added NSGDictionary.h. - - * objects/NSArray.h: Fix #ifndef macro name; NSArray, not NSString! - - * NSString.m (-compare:options:range:): Simple implementation; not - complete. - - * NSArray.m (NSArray +allocWithZone:): Implemented. - (NSMutableArray +allocWithZone:): Implemented. - - * NSGArray.m (-initWithObjects:count:): Retain objects. - -Thu May 4 11:51:04 1995 Adam Fedor - - * NSBitmapCharSet.m, Foundation/NSBitmapCharSet.h: Replaced NSData - instance variable with char array and rewrote methods to reflect - this. - - * NSCharacterSet.m (characterSetWithCharactersInString:): Create - mutable data object for bitmap. (characterSetWithRange:): Added - error checking. (deepen): removed. (copyWithZone:, - mutableCopyWithZone:): More efficient implementation. - (characterSetWithBitmapRepresentation:): Override implementation - from super. - -Wed May 3 15:05:17 1995 Adam Fedor - - * Makefile.in (GNUSTEP_MFILES, GNUSTEP_HEADERS): Added - NSBitmapCharSet. - - * NSCTemplateValue.m, NSConcreteNumber: Added #line macro so gdb - knows which file source came from. - - * NSBitmapCharSet.m, Foundation/NSBitmapCharSet.h: New files. - - * NSCharacterSet.m (all methods): Implemented. - - * NSDictionary.m, Foundation/NSDictionary.h (keyEnumerator, - objectEnumerator): Uncommented but left unimplemeneted. - - * NSNumber.m (valueClassWithObjCType:): Added break's to avoid - falling through case statements. - - * Foundation/NSException.h (_NSAssertArgs, _NSCAssertArgs): Made - ',' a separate token to work with ## macro. - -Wed Apr 26 10:15:51 1995 Adam Fedor - - * Makefile.in (GNUSTEP_MFILES, GNUSTEP_HEADERS): Added - NSCharacterSet. - - * NSCharacterSet.m, Foundation/NSCharacterSet.h: New files. - - * NSString.m (componentsSeparatedByString:, substringFromRange:, - rangeOfCharacterFromSet:, rangeOfCharacterFromSet:options:, - rangeOfCharacterFromSet:options:range:, rangeOfString:, - rangeOfString:options:, caseInsensitiveCompare:, hasPrefix:, - hasSuffix:, lastPathComponent, pathExtension, - stringByAppendingPathComponent:, stringByAppendingPathExtension:, - stringByDeletingLastPathComponent, stringByDeletingPathExtension): - Implemented methods. - - * Foundation/NSRange.h: Added NSMakeRange declaration. - -Wed Apr 26 15:01:07 1995 Andrew McCallum - - * install.texi: Fixed typo in patch instructions. Too many "..". - (Reported by Daniel L. Green .) - -Thu Apr 20 20:11:23 1995 Andrew McCallum - - * NSData.m: Include - - * NSData.m (dataWithBytesNoCopy:length:): Send alloc to NSGData - class, not self. - -Sun Apr 16 02:41:39 1995 Albin L. Jones - - * NSData.m([NSData -getBytes:range:], - [NSData -subdataWithRange:]): Coded these, including the range - checking bits. The proper exception is raised. - - * NSData.m([NSData -dataWithContentsOfFile:], - [NSData -dataWithContentsOfMappedFile:], - [NSData -initWithContentsOfFile:], - [NSData -initWithContentsOfMappedFile:], - [NSData -writeToFile:atomically:]): Filled - these out, made them do what they were suppossed to. - - * NSData.m: Added many comments. Maybe I shouldn't have. - -Thu Apr 20 11:26:45 1995 Adam Fedor - - * NSCTemplateValue.m, NSConcreteNumber.m, NSConcreteValue.m, - NSException.m, NSNumber.m, NSValue.m (encodeWithCoder:, - initWithCoder:): Include call to super since NSObject now - implements these methods. - -Mon Apr 17 16:37:06 1995 Andrew McCallum - - * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.10. - - * examples/second-client.h: Make AppellationObject inherit from - NSObject, not Object. - - * examples/second-server.h: Include NSObject.h from Foundation, - not objc. - - * NSData.m (replaceBytesInRange:withBytes:): Get pointer with - -mutableBytes, not -bytes. - - * Makefile.in (FILE_AUTHORS): Added Jeremy Bettis. - - * Makefile.in: Change "foundation" to "Foundation". - - * Foundation: Directory renamed from "foundation". - - * Connection.m, NSArchiver.m, NSArray.m, NSArrayEnumerator.m, - NSAssertionHandler.m, NSAutoreleasePool.m, NSBundle.m, - NSCString.m, NSCTemplateValue.m, NSCoder.m, NSConcreteNumber.m, - NSConcreteValue.m, NSData.m, NSDate.m, NSDictionary.m, - NSEnumerator.m, NSException.m, NSGArchiver.m, NSGArray.m, - NSGCoder.m, NSGData.m, NSGUnarchiver.m, NSGeometry.m, NSNumber.m, - NSObject.m, NSRange.m, NSString.m, NSUnarchiver.m, NSValue.m, - NSZone.c, objc-load.c: Include from , not - . - * objects/Collection.h, objects/NSCoder.h, objects/String.h, - objects/stdobjects.h.in: Likewise. - * foundation/NSArchiver.h, foundation/NSArray.h, - foundation/NSArrayEnumerator.h, foundation/NSAutoreleasePool.h, - foundation/NSBundle.h, foundation/NSCString.h, - foundation/NSCoder.h, foundation/NSConcreteNumber.h, - foundation/NSConcreteValue.h, foundation/NSData.h, - foundation/NSDate.h, foundation/NSException.h, - foundation/NSGArchiver.h, foundation/NSGArray.h, - foundation/NSGCoder.h, foundation/NSGData.h, - foundation/NSGUnarchiver.h, foundation/NSMethodSignature.h, - foundation/NSObject.h, foundation/NSRange.h, - foundation/NSString.h, foundation/NSUnarchiver.h, - foundation/NSUtilities.h, foundation/NSValue.h: Likewise. - * examples/first-server.h: Likewise. - * checks/nsarchiving.m, checks/nsarray.m, checks/string.m, - checks/values.m: Likewise. - - * objects/NSCoder.h: Fix typo: We're declaring methods of NSCoder, - not NSConcreteCoder. - - * foundation/NSData.h: Insert the interface for NSMutableData. - - * NSData.m: Insert the implementation of NSMutableData. - - * foundation/NSGData.h: Don't include - . The interface can now be found in - - -Sat Apr 15 14:12:57 1995 Andrew McCallum - - * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.9. - - * checks/Makefile.in (SRCS): Comment out nsarchiving.m. It's - not done yet. - - * Makefile.in (GNUStep-volunteers): New target to deal with "ln" - and disparate filesystem problems. - (DIST-FILES): Use the local GNUStep-volunteers file, not the remote - volunteers-gnustep file. - (dist): Switch back to "ln", not "ln -s". - - * Stream.m (-initWithMode:, -streamMode): Methods removed. - (-isWritable): New method. - (-initWithCoder): Renamed from +newWithCoder.m. - * objects/Stream.h: Method removed and put into Streaming - protocol. Included from objects/Streaming.h. - (mode): Instance variable removed. - (STREAM_READONLY, STREAM_WRITEONLY, STREAM_READWRITE): enum removed. - * objects/Streaming.h: New file. - * Makefile.in (GNU_HEADERS): Added objects/Streaming.h. - - * objects/StdioStream.h (mode): New instance variable, to replace - one removed from Stream class. - * StdioStream.m (-isWriteable): New method. - (-initWithCoder): Renamed and rewritten from +newWithCoder. - (-isAtEof): Renamed from -streamEof. - (-initWithFilePointer:fmode:): Use new mode ivar. - - * objects/MemoryStream.h: New protocol . Make - MemoryStream class conform to it. - * MemoryStream.m (-setStreamBufferCapacity:): Renamed from - -setStreamBufferSize. - (-streamBufferCapacity): Renamed from -streamBufferSize. - (-isWriteable): New method. - (-streamBufferPrefix): Renamed from -streamPrefix. - - * NSArchiver.m, foundation/NSArchiver.m, NSGArchiver.m, - NSUnarchiver.m, foundation/NSUnarchiver.h, - foundation/NSGArchiver.h, NSGData.m, foundation/NSGData.h: New - files. - * Makefile.in (GNUSTEP_MFILES): Added NSArchiver.m, NSGArchiver.m, - NSGData.m, NSGUnarchiver.m, NSUnarchiver.m. - (GNUSTEP_HEADERS): Added foundation/NSArchiver.h, - foundation/NSGArchiver.h, foundation/NSGData.h, - foundation/NSGUnarchiver.h, foundation/NSUnarchiver.h. - - * checks/nsarchiving.m: New file. - * checks/Makefile.in (SRCS): Added nsarchiving.m. - - * Makefile.in (GNU_HEADERS): Added objects/NSCoder.h. - - The GNU-interoperating concrete subclasses of NS classes have the - prefix NSG. If people want to write other concrete subclasses - (some of which could be more lowlevel-compatible with NeXT's - classes, such as in the low-level format used by NSConcreteCoder), - they can do so, and use NeXT's classnames, or their own. - * NSGArray.m, foundation/NSGArray.h: Renamed from NSConcreteArray. - * NSGCoder.m, foundation/NSGCoder.h: Renamed form NSGNUCoder. - * Makefile.in: Renamed appropriate files for NSG prefix. - * NSCoder.m: Change names from "Concrete"-style to "G"-style. - * NSGCoder.m: Likewise. - * foundation/NSGArray.h: Likewise. - * NSArray.m: Likewise. - * NSGArray.m: Likewise. - -Fri Apr 14 10:59:41 1995 Andrew McCallum - - * NSAutoreleasePool.m (+enableRelease:, +enableDoubleReleaseCheck:, - +setPoolCountThreshhold:): New methods. - * foundation/NSAutoreleasePool.h: Declare new methods. - - * Makefile.in (GNUSTEP_MFILES): Removed NSDate.m; it causes a bunch - of compilation errors. - (GNUSTEP_OTHER_SRCFILES): Added NSDate.m. - -Thu Apr 13 11:03:13 1995 Andrew McCallum - - * NSDate.m: Compare against [NSDate class], not NSDate. - - * NSDate.m: Fixed indentation. Added some calls to - -notImplemented:. - - * NSDate.m, foundation/NSDate.h: New files from Jeremy Bettis - . - * Makefile.in (GNUSTEP_HEADERS): Added foundation/NSDate.h. - (GNUSTEP_MFILES): Added NSDate.m. - - * readme.texi: Updated for changes since addition of string - classes and retain/release. - - * NSData.m (-getBytes:range:): Implemented. - (-isEqual:): New method. - - * Now using new ObjC Emacs mode from cc-mode.el (to be included - with emacs 19.29), with (c-set-style "GNU"). This will change the - way multi-line methods are indented: I used to indent with three - spaces, now colons are lined up. All contributors should use the - same style. Note that (c-set-style "GNU") has different - c-basic-offset than the default. - -Wed Apr 12 11:15:57 1995 Andrew McCallum - - * BinaryTree.m (removeElement:): Fix bug whereby the deleted - node's parent still had the deleted node as a right child. - (Reported by Stephen Peters ). - - * Collection.m (write:, read:): Put back these old-style archiving - methods. (Reported by Stephen Peters ). - -Sun Apr 9 20:34:32 1995 Andrew McCallum - - * NSAssertionHandler.m: Fix copyright date and indentation. - -Sun Apr 9 16:43:03 1995 Adam Fedor (fedor@boulder.colorado.edu) - - * Makefile.in (GNUSTEP_MFILES): Added NSAssertionHandler.m. - - * NSAssertionHandler.m: New file. - - * foundaton/NSException.h: Added NSAssert macros and - NSAssertionHandler interface. - -Sun Apr 9 13:55:28 1995 Andrew McCallum - - * MallocAddress.m (objectForAddress:): Return nil if address is - not maintained by a MallocAddress object. (Used to simply die.) - -Sat Apr 8 13:04:08 1995 Andrew McCallum - - * Makefile.in (GNUSTEP_MFILES): Added NSGNUCoder.m. - (GNUSTEP_HEADERS): Added foundation/NSGNUCoder.h. - (GNUSTEP_OTHER_SRCFILES): Added files NSArchiver.m, - foundation/NSArchiver.h. - * NSGNUCoder.m, foundation/NSGNUCoder.h, NSArchiver, - foundation/NSArchiver.h: New files. - - * Makefile.in: Rearranged source variables to put - GNU/NEXTSTEP/GNUStep files close together. - (GNUSTEP_OTHER_SRCFILES): Added NSData.m, foundation/NSData.h. - * NSData.m, foundation/NSData.h: New files. - - * Array.m, BinaryTree.m, BinaryTreeNode.m, CString.m, - CircularArray.m, Collection.m, Connection.m, DelegatePool.m, - Dictionary.m, EltNodeCollector.m, GapArray.m, LinkedList.m, - LinkedListNode.m, MappedCollector.m, MemoryStream.m, - MutableCString.m, NSCString.m, NSCoder.m, NSObject.m, NSString.m, - Port.m, RBTreeNode.m, RNGAdditiveCongruential.m, RNGBerkeley.m, - Random.m, Set.m, Stream.m, TextCoder.m, Time.m: Convert to new - Coder scheme. Use -initWithCoder instead of +newWithCoder where - appropriate. Remove arguments typed (Coder*). Replace - +_newCollectionWithCoder with -_initCollectionWithCoder. - - * objects/Coding.h (CommonCoding, Encoding, Decoding): New - protocols. - (SelfCoding): New category of NSObject, interface only, no - implementation. This takes the place of the Coding Protocol. - (Coding): Protocol removed. - - * objects/IndexedCollecting.h: Use ConstantIndexedCollecting - protocol where appropriate. - * objects/Collecting.h: Use ConstantCollecting protocol where - appropriate. - - * objects/KeyedCollection.h: Move protocol conformance to category - to avoid bogus gcc complaints. - * objects/IndexedCollection.h: Likewise. - - * Coder.m (-decodeObjectAt:withName:): Create the instance and - send -initWithCoder if the object doesn't respond to - +newWithCoder. Convert to new protocol and method type scheme. - - * Proxy.m (RemoteSelfCoding): Renamed category from RemoteCoding. - * objects/Proxy.h: Likewise. - * objects/Connection.h (ConnectedSelfCoding): Renamed protocol - from ConnectedCoding. - - * objects/Collection.h: Removed Coding protocol. It's already - provided by NSObject. - * objects/BinaryTreeNode.h: Likewise. - * objects/Port.h: Likewise. - * objects/LinkedListNode.h: Likewise. - - * objects/IndexedCollecting.h (ConstantIndexedCollecting): New - protocol extracted from IndexedCollecting. - * objects/KeyedCollecting.h (ConstantKeyedCollecting): New - protocol extracted from KeyedCollecting. - * objects/Collecting.h (ConstantCollecting): New protocol - extracted from Collecting. - -Fri Apr 7 16:36:08 1995 Andrew McCallum - - * checks/nsarray.m (main): Fix serious bug by including `nil' at - end of contents list. Test forward and reverse enumerator - objects. - - * NSArray.m (-objectEnumerator, -reverseObjectEnumerator): - Implemented methods. - * Makefile.in (GNUSTEP_MFILES): Added NSArrayEnumerator.m, - NSEnumerator.m. - (GNUSTEP_HEADERS): Added foundation/NSArrayEnumerator.h. - * NSEnumerator.m, NSArrayEnumerator.m, - foundation/NSArrayEnumerator.h: New files. - - * Connection.m (-dealloc): Remove dealloc of remote_proxies - contents. - - * NSArray.m (-componentsJoinedByString:): Implemented method. - - * NSCString.m (initWithCapacity:): Make sure that capacity is - greater than zero. - - * Makefile.in (DIST_FILES): Added volunteers-gnustep. - -Fri Apr 7 15:41:46 1995 Mark Lakata (lakata@nsdssp.lbl.gov) - - * foundation/NSZone.h: Fixed clash with linux unistd.h. - -Thu Apr 6 14:47:09 1995 Andrew McCallum - - * Makefile.in (FILE_AUTHORS): New variable. - (AUTHORS): New target. - (DIST_FILES): Added AUTHORS. - - * Makefile.in (DIST_FILES): Add objective-c.texi objective-c.info. - (RCS_FILES): Add objective-c.texi. - (objective-c.info): New target. - (info): Add objective-c.info. - - * Array.m (-_encodeCollectionWithCoder:): Fix typo. Fix super call. - (+_newCollectionWithCoder:): Fix super call. - (Reported by allan-europa@mct.co.uk (Allan Clearwaters)). - -Wed Apr 5 11:22:30 1995 Andrew McCallum - - * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.8. - - * Makefile.in (NEXTSTEP_DERIVED_CFILES): New variable. - (NEXTSTEP_CFILES): NXStringTable_scan.c moved to above. - (NEXTSTEP_OBJS): Use NEXTSTEP_DERIVED_CFILES. - (DIST_FILES): Add NEXTSTEP_DERIVED_CFILES. - (objects/stdobjects.h): Target overhauled. - (libobjects.a): Add dependancy on objects/stdobjects.h. - (GNU_HEADERS): Remove objects/config.h, objects/stdobjects.h. - (INSTALL_HEADERS): Add objects/config.h, objects/stdobjects.h. - (NEXTSTEP_HEADERS): Removed README. - (GNUSTEP_HEADERS): Likewise. - (RCS_FILES): New variable. - (rcs-list-locked): New target. - (dynamic-load.h): Depend on config.status, for less re-making. - (version.texi): Depend on Makefile.in, not Makefile. - (realclean): Add objects/stdobjects.h objects/config.h. - - * objects/stdobjects.h.in: New file. - - * Makefile.in (GNUSTEP_OTHER_SRCFILES): Added NSConcreteNumber.m, - NSCTemplateValue.m. - - * objects/DelegatePool.h (_last_message_had_receivers): New - instance variable. - * DelegatePool.m (-delegatePoolLastMessageHadReceivers): New method. - (-forward::, init): Set new ivar. - - * objects/behavior.h (CALL_METHOD_IN_CLASS): Fix typo. - - * NSArray.m (allocWithZone): Removed method. - (arrayWithObjects:, initWithObjects:, initWithArray:, count, - indexOfObjectIdenticalTo:, indexOfObject:, isEqualToArray:, - makeObjectsPerform:, makeObjectsPerform:withObject:, lastObject, - firstObjectCommonWithArray:, arrayWithCapacity:, addObject:, - replaceObjectAtIndex:, removeLastObject, insertObject:atIndex:, - removeObjectAtIndex:, removeObjectIdenticalTo:, removeObject:, - removeAllObjects, addObjectsFromArray:, - removeObjectsFromIndices:numIndices:, removeObjectsInArray:, - copyWithZone:, mutableCopyWithZone:): Newly implemented or - overhauled. - - * behavior.c (class_add_methods_if_not_there): Only put method - implementation in dtable if the dtable is already installed, - otherwise, just add it to the class's methods list and let - __objc_install_dispatch_table_for_class put it in. Also, change - arguments. All callers updated. - (check_class_methods): New function. - - * NSString.m (+initialize): Use static "done". - * NSCString.m: Likewise. - - * checks/test01.m (main): "release" collections intead of - "emtpy"ing them. - - * NSDeallocateObject.m (NSDeallocateObject): Set - anObject->class_pointer to 0xdeadface, to help catch message-sends - to deallocated objects. - - * Collection.m (_safeWithElementsCallNoRetain:): New method. - (dealloc, empty): Use it. - (send_release): New function. - (Problem reported by allan-europa@mct.co.uk (Allan Clearwaters)). - - * Time.m (CLK_TCK): Use _CS_CLK_TCK instead of 3. - -Tue Apr 4 18:48:59 1995 Andrew McCallum - - * NSObject.m (+retain, +retainCount, +release, +autorelease): New - methods. - - * checks/Makefile.in (SRCS): Added nsarray.m. - - * foundation/NSArray.h: Inherit from NSObject, not Array. - - * NSConcreteArray.m, foundation/NSConcreteArray.h, - foundation/NSUtilities.h, objects/NSArray.h: New files. - * Makefile.in (GNUSTEP_MFILES): Added NSConcreteArray.m. - (GNUSTEP_HEADERS): Added foundation/NSConcreteArray.h, - foundation/NSUtilities.h. - (GNU_HEADERS): Added objects/NSArray.h. - - * objects/behavior.h: Added warning in comments. - (CALL_METHOD_IN_CLASS): New macro. - - * objects/String.h: Add Protocol to String - Protocol. - -Tue Apr 4 10:56:02 1995 Andrew McCallum - - * NSDictionary.m: Fix indentation. - * NSCoder.m: Likewise. - - * NSArray.m: Fixed indentation. - (arrayWithObject, arrayWithObjects, initWithArray, initWithObjects, - initWithObjects:count:, indexOfObjectIdenticalTo:, - firstObjectCommonWithArray, isEqualToArray, - sortedArrayUsingFunction, sortedArrayUsingSelector): Implemented. - - * Time.m (#ifndef CLK_TCK): Define it using sysconf() if not - already defined. (CLK_TCK wasn't defined on Solbourne S4000 - running OS/MP 4.1B. Reported by Pekka Yrjola .) - -Mon Apr 3 19:02:37 1995 Andrew McCallum - - * NSString.m (initialize): No need to add IndexedCollection - behavior to NSString, we already added String, and String inherits - from IndexedCollection. - - * Makefile.in (dynamic-load.h): New target, replacing the - "one-step" target, which got invoked too often. - - * Makefile.in (GNUSTEP_HEADERS): Add foundation/NSArray.h, - foundation/NSCoder.h, foundation/NSDictionary.h. - -Mon Apr 3 16:36:36 1995 Adam Fedor (fedor@boulder.colorado.edu) - - Placeholder non-implementations from Fedor until McCallum does - real implementations (that will be aided by and coexist with GNU - versions). - - * NSArray.m, NSCoder.m, NSDictionary.m, foundation/NSArray.h, - foundation/NSCoder.h, foundation/NSDictionary.h: new files. - -Mon Apr 3 15:58:35 1995 Adam Fedor (fedor@boulder.colorado.edu) - - * configure.in: check for dynamic linking libraries to figure out - which *-load.h file to include in objc-load.c. - - * Makefile.in (one-time): new target. - -Mon Apr 3 14:55:47 1995 Adam Fedor (fedor@boulder.colorado.edu) - - * Makefile.in (GNUSTEP_MFILES, GNUSTEP_CFILES, GNUSTEP_HEADERS): - Added files from corresponding FEDOR_ lists, removed FEDOR_ lists. - (DIST_FILES): added gcc-dynamic.patch, NSBundle.README and - GNUSTEP_OTHER_SRCFILES. (NSVALUE_OFILES, NSNUMBER_OFILES): removed - multiple target declarations. - - * NSBundle.m (_bundle_load_callback): Changed Class* to Class. - - * find_exec.c: new file. - - * checks/Makefile (LIBS): added math library. (SRCS): Added values.m. - -Mon Apr 3 11:17:18 1995 Adam Fedor (fedor@boulder.colorado.edu) - - * Makefile.in: New class cluster targets NSVALUE_OFILES and - NSNUMBER_OFILES. - - * NSBundle.README, NCSTemplateValue.m, - NSConcreteNumber.m, NSConcreteValue.m: new files. - - * NSBundle.m: Use @"" constructs, change Class to a pointer. - - * NSException.m (encodeWithCoder:, initWithCoder:): take out calls - to super until NSCoder gets implemented. - - * NSGeometry.m: Change includes to look in foundation subdir. - - * NSNumber.m, NSValue.m: Rewrote as class cluster. - - * NSRange.m (NSUnionRange): fixed typo - point should be range. - (NSMaxRange, NSLocationInRange): Moved to header file. - (NSStringFromRange): use @"" construct. - - * String.m (contentType) : new method. - - * checks/values.m: new file. - - * dld-load.h, null-load.h, simple-load.h, hpux-load.h: new files. - * foundation/NSArray.h, foundation/NSConcreteNumber.h, - foundation/NSConcreteValue.h, foundation/objc-load.h: new files. - * gcc-dynamic.patch: likewise. - - * foundation/NSValue.h: Added methods valueClassWithObjCType: and - initValue:withObjCType: for class clusters. - - * objc-load.c: new file. - -Mon Apr 3 10:43:11 1995 Andrew McCallum - - * String.m (initWithType:): Fix previous attempt at avoiding - infinite loop. (Reported by Jeremy Bettis ) - -Sun Apr 2 20:05:04 1995 Andrew McCallum - - * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.7. - - * checks/string.m: Test mutable strings and "strings as - collections of char's". - - * Connection.m, MutableString.m, NSString.m, Port.m, SocketPort.m, - String.m, objects/Connection.h, objects/Invocation.h, - objects/Port.h, objects/SocketPort.h, objects/ValueHolding.h, - objects/stdobjects.h: Use (id ) instead of (String*). - - * objects/String.h: Use (id ) instead of (String*) Have - String protocol include NSString protcol. - - * foundation/NSString.h: Define NSString and NSMutableString as - protocols. Make the classes conform to them. - - * NSCString.m: Have increment and decrement functions take int - arguments instead of unsigned because I was getting (0 >= -234) == 1. - - * NSString.m: Added implementations. - - * foundation/NSString.h: Uncomment method declarations. Now - subclass of NSObject, not String. - (stringWithFormat:arguments:): Added method. - (NSMutableString): Added declaration for class. - (NXConstantString): Moved declaration for class to here from - objects/String.h. Now subclass of NSCString, not ConstantString. - - * NSObject.m (perform:with:with:): New method added to (NEXTSTEP) - category. - - * NSException.m: Fix #include's. Fix @"" strings. - - * ConstantString.m: #if'ed out NXConstantString implementation. - Moved to NSString.m - * objects/String.h (NXConstantString): Declaration #if'ed out. - Moved to foundation/NSString.h. - - * MallocAddress.m, objects/MallocAddress.h, NSCString.m, - foundation/NSCString.m: New files. - - * Makefile.in (GNU_MFILES): Added MallocAddress.m. - (GNU_HEADERS): Added objects/MallocAddress.h, objects/NSString.h. - (GNUSTEP_MFILES): Added NSCString.m. - (GNUSTEP_HEADERS): Added foundation/NSCString.h. - (objects/stdobjects.h): Fixed typo. - -Sat Apr 1 16:09:04 1995 Andrew McCallum - - * String.m (initWithType:): Avoid infinite loop by calling - designated initializer instead of init. (Reported by - Jeremy Bettis ) - -Sat Apr 1 12:19:13 1995 Andrew McCallum - - * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.6. - - * NSObject.m (+superclass): New method. - - * behavior.c (behavior_debug): Fix typo in variable name use. - - * NSObject.m (+conformsToProtocol:): For now, send conformsTo: to - Protocol object. - - * objects/stdobjects.h (OBJECTS_MAJOR_VERSION, - OBJECTS_MINOR_VERSION, OBJECTS_SUBMINOR_VERSION): New #define's. - * Makefile.in (OBJECTS_MAJOR_VERSION, - OBJECTS_MINOR_VERSION, OBJECTS_SUBMINOR_VERSION): New variables. - (OBJECTS_VERSION): define in terms of above. - (objects/stdobjects): Set values for OBJECTS_MAJOR_VERSION, - OBJECTS_MINOR_VERSION, OBJECTS_SUBMINOR_VERSION. - -Fri Mar 31 09:10:50 1995 Adam Fedor - - * NXStringTable.m (readFromFile:): Return the return value from - readFromSteam so that errors get passed along. - - * NXStringTable_scan.l (main): Restart the parser for each new - file. This fix works correctly with flex, but is a bad hack and - still doesn't work right with lex. - -Fri Mar 31 10:28:52 1995 Andrew McCallum - - * configure.in: Added check for times(). - * Time.m (HAVE_TIMES): Use this instead of test for solaris and - hpux. - - * configure.in: Added check for valloc(). - * objc-malloc.c (HAVE_VALLOC): if not defined, #define valloc - malloc. (Reported by Mike Perik for HPUX). - -Tue Mar 28 12:37:22 1995 Andrew McCallum - - * gcc-string.patch: New version from Pieter Schoenmakers - that should fix patching problems. From - ftp://ftp.es.ele.tue.nl/pub/tiggr/gcc-2.6.3-statics.patch. - -Mon Mar 27 09:35:30 1995 Andrew McCallum - - * NSObject.m (+conformsToProtocol:): Renamed from - -conformsToProtocol. - (-conformsToProtocol:): New method. - (-conformsTo:): New method. - - * Time.m (__hpux): Add this to #if for using times(). (Reported - by Jan Springer .) - -Fri Mar 24 12:33:27 1995 Mark Lakata (lakata@nsdssp.lbl.gov) - - * NSZone.c : added #define WORDSIZE sizeof(double) - (NSZoneMalloc): returns machine word aligned pointers. Actually, - the word size is assumed to be equal to or smaller than - sizeof(double). - -Fri Mar 24 10:04:54 1995 Andrew McCallum - - * Makefile.in (GNU_HEADERS): Added new file behavior.h. - (GNU_CFILES): Added new file behavior.c. - * behavior.c, objects/behavior.h: New files. - - * NSObject.m (retain): Call NSIncrementExtraRefCount(), not - NSShouldRetainWithZone(). (Of course!) (Reported by Adam Fedor - ) - - * Invocation.m (invoke): Fix typo. (Reported by hjl@nynexst.com - (H.J. Lu).) - -Wed Mar 22 16:37:06 1995 Andrew McCallum - - * Makefile.in (OBJECTS_VERSION): Version 0.1.5. - (OBJECTS_FTP_DIRECTORY): Fixed for alpha.gnu. - Added many GNUSTEP files. - - * checks/test06.m: Inherit from NSObject, not Object. - * checks/test13.m: Likewise. - * checks/server.h: Likewise. - * checks/server.m: Likewise. - * examples/first-server.h: Likewise. - * foundation/NSInvocation.h: Likewise. - * examples/second-server.h: Likewise. - - * checks/client.m: Inherit from NSObject, not Object. Don't free - connection object, release it. - - * IndexedCollection.m: Cast aCollectionClass to (id) so we can - send NSObject protocol messages that aren't in Collecting. - - * Stack.m (initialize): Return void. - - * examples/port-client.m: Use @"" constant strings. - * examples/second-server.m: Likewise. - * examples/first-client.m: Likewise. - * examples/first-server.m: Likewise. - * examples/second-client.m: Likewise. - - * checks/test03.m (main): Added some #if 0'ed out new tests. - - * objects/CollectionPrivate.h (DeallocationHelpers): New category - containing _empty and _collectionDeallocate. - - * BinaryCoder.m (encodeValueOfSimpleType:at:withName:): Use - #ifndef __CHAR_UNSIGNED__ to prevent compiler warning. - - * Magnitude.m (compare:): Implemented. - - * foundation/NSAutoreleasePool.h: Comment fixes. - * foundation/NSBundle.h: Likewise. - * foundation/NSException.h: Likewise. - * foundation/NSGeometry.h: Likewise. - * foundation/NSRange.h: Likewise. - * foundation/NSValue.h: Likewise. - * NSZone.c: Include objects/objc-malloc. Likewise. - * objects/String.h: Additional comments. - * Invocation.m: Add header comment. - - * foundation/NSArray.h (arrayWithObjects): Add missing s. - - * NSBundle.m: Don't include NSObjectPrivate.h. - - * SocketPort.m: Include objects/String.h. - - * foundation/NSMethodSignature.h (argumentInfoAtIndex:): Comment - out for now. - - * Set.m (_collectionDealloc): Fix super call. - * Dictionary.m (_collectionDealloc): Likewise. - * Array.m (_collectionDealloc): Likewise. - - * RetainingNotifier.m (autorelease): Implemented. - - * Collection.m (shallowCopyAs:, emptyCopyAs:, copyAs:): Change arg - type to (Class). - (dealloc, empty): Don't use safe version of makeObjectsPerform:. - (_empty, _collectionDealloc): Move to a category. - - * objects/Collecting.h (shallowCopyAs:, emptyCopyAs:, copyAs:): - Change arg type to (Class). - * KeyedCollection.m: Likewise. - - * foundation/NSObject.h (compare:, autoreleaseClass, - setAutoreleaseClass, read:, write:): Declare new category methods. - - * NSObject.m (class): Fix return value. - (encodeWithCoder:) #ifdef out for now, until we fix compatibility with - GNU Coder. - (perform:with:): New method in NEXTSTEP category. - - * objects/Coder.h (isProxy): Method removed from - NSObject(CoderAdditions). - - * Proxy.m (zone): New method. - (isProxy): Remove method from NSObject category. - Don't include objects/AutoreleasePool.h. - - * Coder.m (encodeSelector:withName:): Use sel_get_any_uid() to get - sel type if we can't get it the normal way. - (newWithCoder:): Use NSAllocateObject. - (isProxy): Removed from NSObject category. - - * objects/Collecting.h (releaseObjects, release): Methods removed. - -Sat Mar 18 10:38:06 1995 Andrew McCallum - - * NSObject.m (zone): Implemented. - - * Makefile.in (GNUSTEP_MFILES): New files NSAllocateObject.m, - NSBundle.m, NSCopyObject.m, NSDeallocateObject.m, NSException.m, - NSGeometry.m, NSNumber.m. - (GNUSTEP_HEADERS): New files foundation/NSBundle.h, - foundation/NSException.h, foundation/NSGeometry.h, - foundation/NSNumber.h. - - * NSZone.c: Base on objc_malloc and friends, not malloc. Reformat - header comment. - - * NSAllocateObject.m, NSDeallocateObject.m, NSCopyObject.m: New - files. - * NSObject.m (NSAllocateObject, NSDeallocateObject, NSCopyObject): - These functions moved to separate files. - - * objc-malloc.c (objc_valloc): New function pointer. - (__objc_valloc): New function. - * objects/objc-malloc.h (objc_valloc): New function declared. - (OBJC_VALLOC): New macro. - - * Proxy.m (dealloc): Call NSDeallocateObject(). - - * KeyedCollection.m (dealloc): Deleted. - - * Dictionary.m (_collectionDealloc): Renamed from dealloc. - * Set.m (_collectionDealloc): Likewise. - * Array.m (_collectionDealloc): Likewise. - - * Connection.m: Removed Object(Retaining) category. - - * Set.m (_empty): Renamed from emtpy. - * LinkedList.m (_empty): Likewise. - * GapArray.m (_empty): Likewise. - * EltNodeCollector.m (_empty): Likewise. - * Dictionary.m (_empty): Likewise. - * CircularArray.m (_empty): Likewise. - * BinaryTree.m (_empty): Likewise. - * Bag.m (_empty): Likewise. - * Array.m (_empty): Likewise. - -Fri Mar 17 11:09:29 1995 Andrew McCallum - - * Coder.m (dealloc): Remove unneccesary releaseObjects. - * EltNodeCollector.m (dealloc): Likewise. - - * Collection.m: Rename method "empty" to "_empty". Rename - "releaseObjects" to "empty". - - * Set.m: Do retain/release/autorelease of contents as appropriate. - * BinaryTree.m: Likewise. - * CircularArray.m: Likewise. - * SplayTree.m: Likewise. - * RBTree.m: Likewise. - * LinkedList.m: Likewise. - * Heap.m: Likewise. - * GapArray.m: Likewise. - * Dictionary.m: Likewise. - - * Proxy.m (autorelease): Ask NSObject for autoreleaseClass. - -Wed Mar 15 17:56:57 1995 Andrew McCallum - - * Array.m: Do retain/release/autorelease of contents as appropriate. - * Bag.m: Likewise. - - * Makefile.in (DIST_FILES): Added gcc-class.patch and - gcc-string.patch. - (OBJECTS_GCC_VERSION): Changed from version 2.6.1 to 2.6.3. - -Tue Mar 14 11:50:23 1995 Andrew McCallum - - * objects/CollectionPrivate.h (RETAIN_ELT, RELEASE_ELT, - AUTORELEASE_ELT): New macros. - -Sun Mar 12 11:37:10 1995 Andrew McCallum - - * objects/stdobjects.h: Declare @class String; - - * objects/Collecting.h (alloc, respondsToSelector:, - conformsToProtocol:) removed. - - * objects/Connection.h: Use String* instead of char*. - * objects/SocketPort.h: Likewise. - * objects/Port.h: Likewise. - * Connection.m: Likewise. - * SocketPort.m: Likewise. - * Port.m: Likewise. - * checks/client.m, checks/server.m: Likewise. - - * objects/IndexedCollecting.h (IndexRange): changed to - location/length from start/end. - * IndexedCollection.m: Use location/length instead of start/end. - - * *.[hm]: Use `release' and `dealloc' instead of `free'. - * *.[hm] (initialize): return void. - - * objects/Collecting.h: Use `release' and `dealloc' instead of `free'. - (write:, read:): Removed. - (respondsToSelector:, conformsToProtocol:) Renamed from old Object - method names to NSObject method names. - - * NSZone.c: New file, renamed from zone.c. Include - foundation/NSZone, not foundation/zone.h. - - * Makefile.in (GNU_MFILES): Remove AutoreleasePool.m, - AutoreleaseStack.m, ObjectRetaining.m. - (GNU_HEADERS): Remove AutoreleasePool.h, AutoreleaseStack.h, - ObjectRetaining.h - - * checks/Makefile.in (string): New test program. - - * objects/Coder.h: Changed superclass from Object to NSObject. - * objects/Collection.h: Likewise. - * objects/Stream.h: Likewise. - * objects/RNGAdditiveCongruential.h: - * objects/RNGBerkeley.h: Likewise - * objects/Random.h: Likewise. - * objects/Magnitude.h: Likewise. - * objects/RetainingNotifier.h: Likewise. - * objects/BinaryTreeNode.h: Likewise. - * objects/LinkedListNode.h: Likewise. - * objects/Lock.h: Likewise. - - * objects/stdobjects.h: Include foundation/NSObject.h instead of - objc/Object.h. - -Sat Mar 11 16:39:18 1995 Andrew McCallum - - * Makefile.in (NEXTSTEP_MFILES): Renamed from NeXT_MFILES. - (NEXTSTEP_CFILES): Renamed from NeXT_CFILES. - (NEXTSTEP_OTHER_SRCFILES): Renamed from NeXT_OTHER_SRCFILES. - (GNUSTEP_MFILES, GNUSTEP_CFILES, GNUSTEP_HEADERS, GNUSTEP_OBJS): New - variables. - (GNU_MFILES): Added CString.m, ConstantString.m, MutableCString.m, - MutableString.m, String.m. - (GNU_HEADERS): Added String.h. - (GNUSTEP_HEADERS): Added NSAutoreleasePool.h, NSObjCRuntime.h, - NSString.h. - (DIST_FILES): Added GNUSTEP files. - * configure.in: Renamed variables from NeXT... to NEXTSTEP. Added - GNUSTEP variables. - - * objects/ValueHolding.h (ValueSetting): Methods now return `void' - instead of `self'. - - * foundation/NSZone.h: Renamed from foundation/zone.h. - -Thu Mar 9 15:05:45 1995 Andrew McCallum - - * zone.c, foundation/zone.h: New files from Mark Lakata. - * Makefile.in (GNUSTEP_HEADERS): Added foundation/NSZone.h. - -Wed Mar 8 17:35:01 1995 Andrew McCallum - - * Coder.m: `CLASS' #define no longer necessary, using `Class'. - * Proxy.m: Likewise. - * Connection.m: Likewise. - - * objects/stdobjects.h (CLASS): #define removed. - - * objects/Proxy.h (class): use "Class" instead of "Class*" to - match new runtime. - - * Makefile.in (GNUSTEP_HEADERS): New variable. - (DIST_FILES): Added GNUSTEP_HEADERS. - * configure.in: Likewise. - - * configure.in: Renamed NeXT_HEADERS to NEXTSTEP_HEADERS. - * Makefile.in: Likewise. - - * Makefile.in (NeXT_HEADERS): Move from objects/next-includes up - to top. - (OBJECTS_NEXT_INCLUDES): Look directly in top level directory. - (dist, mostlyclean, installdirs): Likewise. - -Sat Feb 11 16:20:49 1995 Andrew McCallum - - * Makefile.in (OBJECTS_VERSION): Version 0.1.4. - -Wed Feb 1 15:26:11 1995 Andrew McCallum - - * checks/test01.m: Use lrand48() instead of random() if - defined(__hpux). - * checks/test09.m: Likewise. - * checks/test04.m: Likewise. - (Patch from Timothy Mooney ) - -Thu Jan 26 12:52:33 1995 Andrew McCallum - - * objc-gnu2next.m: Convert Class* to Class. - * Proxy.m: Likewise. - * Coder.m: Likewise. - -Fri Jan 13 12:57:50 1995 Andrew McCallum - - * Makefile.in (OBJECTS_VERSION): Version 0.1.3. - - * ConnectedCoder.m (newDecodingWithConnection:timeout:): On - timeout use objc_free to free the buffer. - - * checks/client.m (main): Only release remote_peer_obj if it - really is a remote object. - - * examples/second-client.m (main): Only free appellation string if - it's from a remote object. - -Mon Jan 9 12:14:03 1995 Andrew McCallum - - * RetainingNotifier.m (autorelease): New (unimplemented) method. - (Reported by Peter Kristensen ). - -Fri Jan 6 17:57:08 1995 Andrew McCallum - - * Makefile.in (DIST_FILES): Added file MACHINES. - -Tue Dec 13 11:53:54 1994 Andrew McCallum - - * Makefile.in (OBJECTS_VERSION): Version 0.1.2. - - * Coder.m (Object (CoderAdditions)): Removed methods retainCount, - dealloc, release, retain. - * objects/Coder.h (Object (CoderAdditions)): Likewise. - -Mon Dec 12 14:13:58 1994 Andrew McCallum - - * Makefile.in (dvi): Now points at libobjects.dvi. - (libobjects.dvi): New target, disabled until texinfo.tex is fixed. - -Fri Dec 9 20:00:56 1994 Andrew McCallum - - * Makefile.in (ANNOUNCE): depends on news.texi. - - * Makefile.in (version.texi): Output FTP vars only if non-empty. - - * Makefile.in (OBJECTS_FTP_MACHINE,OBJECTS_FTP_DIRECTORY): New vars. - (version.texi): set OBJECTS_FTP_MACHINE and OBJECTS_FTP_DIRECTORY. - - * Makefile.in (OBJECTS_VERSION): Bumped to 0.1.1. - -Wed Dec 7 12:59:32 1994 Andrew McCallum - - * SocketPort.m: Include #if _AIX. (Reported by - Todd B. Templeton .) - -Sun Nov 20 19:19:13 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) - - * Connection.m (connectionForward,connectionPerformAndDismissCoder): - Removed old #if'ed-out versions. - -Mon Nov 14 10:58:46 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * objects/objc-gnu2next.h: (sel_get_uid): Fix typo. - (class_is_class, class_is_meta_class, object_is_class, - object_is_instance, object_is_meta_class): New functions. - The above from a patch by Matthias Klose - -Sun Nov 13 14:29:37 1994 Andrew McCallum (mccallum@moose.cs.rochester.edu) - - * Makefile.in (diff): Fix tar call. Add proper arguments to diff. - -Thu Nov 10 16:51:48 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * news.texi (Noteworthy changes since version @samp{0.1.0}): New - section. - - * Makefile.in (TAGS): Use DIST_FILES, not non-existant SRCS. - -Wed Nov 9 18:34:53 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * configure.in: Remove duplicate NeXT_runtime=0. - -Tue Nov 8 10:44:30 1994 Andrew McCallum (mccallum@moose.cs.rochester.edu) - - * libobjects.texi (Organization): Updated inheritance tree. - * checks/test12.m (main): Free "rng", not "r" twice. - * TextCoder.m (encodeName): Do right thing for NULL name. - (Above three reported by Stephen Peters ) - - * Proxy.m (autorelease): New method. - - * Time.m: Patch for Solaris 2.4. Use times() instead of - getrusage(). (Patch from Stephen Peters ) - - * Makefile.in (GNU_MFILES,GNU_HEADERS): Added AutoreleasePool, - AutoreleaseStack and ObjectRetaining. - - * AutoreleasePool.m: Removed retain_count stuff. Now setting - autorelease_class. - - * ObjectRetaining.m: Removed stack release code. - (autorelease_class): New variable. - - * objects/Retaining.h (autorelease): New method. - Added comments. - - * objects/objc-gnu2next.h: Moved Object(GNUExtentions) category - from stdobject.h to here. - - * Makefile.in (DIST_FILES): Added README.ULTRIX. - - * Makefile.in (install,installdirs,includedir): Make NEXT_HEADERS - install to proper place: objects/next-include/. - -Fri Nov 4 01:32:27 1994 Andrew McCallum (mccallum@moose.cs.rochester.edu) - - * Makefile.in (diff): New target. - - * Makefile.in (ADVERTISEMENT): New target. - - * Version 0.1.0 released. - -Thu Nov 3 19:20:28 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) - - * Connection.[hm] (connectionForward:::): Added object argument. - Use selectorTypeForProxy: if defined (NeXT_runtime). - * Proxy.m (forward::): Added object argument to connectionForward. - (selectorTypeForProxy:): Add an Object Category with this method. - - * Coder.m (decodeName:): Terminate char* with 0. - - * collhash.c: Use objc_malloc and friends instead of - __objc_xmalloc and friends. - - * StdioStream.m (writeBytes:length:): Use fwrite, not write. - (readBytes:length:): Use fread, not read. - -Wed Nov 2 20:59:36 1994 Andrew McCallum (mccallum@leopard.cs.rochester.edu) - - * configure.in: Updated for Autoconf 2.0 - * Makefile.in (DIST_FILES): Changed install.sh to install-sh. - (distclean): Added config.log, config.cache. - (prefix, exec_prefix): Updated for Autoconf 2.0 - -Fri Oct 28 18:20:28 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) - - * *.[hm]: Change many "NeXT_cc" to "NeXT_runtime" - * Proxy.[hm]: Add and use _method_types ivar if NeXT_runtime. - * objects/objc-gnu2next.h: Many addtional functions #define'd. - * objc-gnu2next.m: New file. - * Makefile.in (GNU_MFILES): Added objc-gnu2next.m. - - * BinaryCoder.m (encode,decodeValueOfSimpleType:...): Added code - to write to stream directly (i.e. it does its own architecture - independent coding). This replaces previous messy code that - interfaced with the internals of GNU TypedStream's. - * Makefile.in (GNU_MFILES,GNU_HFILES): Removed bcoder-stream.[hm]. - -Thu Oct 27 17:39:49 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) - - * SocketPort.m (sendPacket:toPort:timeout:, - newRemoteWithNumber:onHost:): Added casts to (char*) to prevent - warnings on systems that don't have "const" on args to - gethostbyname() and sendto(). - - * ConnectedCoder.h: New #define's METHODTYPE_REQUEST, - METHODTYPE_REPLY. - * Connection.m (_typeForSelector:remoteTarget:): New method. - (_handleMethodTypeRequest:): New method. - (doReceivedRequestsWithTimeout:): Watch for METHODTYPE_* msgs. - (newReceivedReplyRmcWithSequenceNumber:): Likewise. - * Proxy.m (selectorTypeForProxy:): New method. - * Proxy.h (_method_types): New instance variable. - - * mframe.[hm], mtypes.[hm]: New files. - * Makefile.in (GNU_MFILES): Added mframe.m - (GNU_HFILES): Added mframe.h. - (GNU_CFILES): mtypes.c. - (GNU_OTHER_SRCFILES): Added mtypes.h. - * Connection.m (connectionForward,connectionPerformAndDismissCoder): - Use functions in mframe.m instead of previous DO-specific method - frame code. - -Mon Oct 24 18:41:35 1994 Andrew McCallum (mccallum@leopard.cs.rochester.edu) - - * configure.in: Added AC_HEADER_CHECK for sys/rusage.h and - ucbinclude/sys/resource.h needed in Time.m on various SYSV - systems. - - * *.[hm]: Changed method name encodeType: to encodeValueOfType:. - Likewise for decodeType and SimpleType method names. - - Makefile.in (GNU_OTHER_SRCFILES): Removed bzero.c. - (DIST_FILES): Added README.BZERO. - configure.in: Removed bzero stuff. - -Thu Oct 20 13:10:50 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * IndexedCollection.m (putElement:atKey:): New method, needed for - KeyedCollecting protocol. (reported by Niels Mvller - ) - -Wed Oct 19 19:35:32 1994 Andrew McCallum (mccallum@zebra.cs.rochester.edu) - - * configure.in: Look for libraries "socket" and "nsl", needed for - the distributed objects check/example programs on Solaris machine. - - * checks/test01.m,test04.m,test09.m: Use lrand48 instead of random - if on Solaris machine. - -Tue Oct 18 10:27:29 1994 Andrew McCallum (mccallum@graphite.cs.rochester.edu) - - * Set.[hm] (*WithCollection:): Renamed from *With:. - - * *.[hm]: Changed method name "initCapacity" to - "initWithCapacity". Changed method names "...Encoding:" to - "...(With)Type:" to match Coder method names. - -Fri Oct 7 17:08:57 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * DelegatePool.[hm], Makefile.in: Renamed "DelegateList" to - "DelegatePool" to avoid false association with List object. - -Thu Sep 22 10:06:19 1994 Andrew McCallum (mccallum@llama.cs.rochester.edu) - - * configure.in: Check for bzero, and include bzero.o in the - library if not. (This works around a bug in libobjc.) - * Makefile.in (GNU_OBJS): Added @BZERO@. - (GNU_OTHER_SRCFILES): Added bzero.c. - - * *.m: Added methods for Coding where necessary; a few just send - -notImplemented: for now. - -Tue Sep 20 20:11:57 1994 Andrew McCallum (mccallum@llama.cs.rochester.edu) - - * objects/ValueHolding.h: Divided ValueHolding protocol into - ValueGetting and ValueSetting. - - * GCC-BUGS, CREDITS: new files. - * Makefile.in (DIST_FILES): Added GCC-BUGS, CREDITS. - -Mon Sep 19 14:42:26 1994 Andrew McCallum (mccallum@llama.cs.rochester.edu) - - * LinkedList.m (successorOfElement,predecessorOfElement): return - nil when there is no such element because arg was first or last in - list; previously it raised an error. - -Mon Sep 12 18:54:47 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * HashTable.[hm]: Changed GNUHashState to NXHashState. - -Tue Sep 6 21:11:38 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * LinkedList.m, LinkedListNode.m EltNode-m: Added methods for - Coding. - -Sat Aug 20 18:34:38 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * examples/*: Added example files: Makefile.in, dictionary.m, - port-server.m, port-client.m, first-server.[hm], first-client.m, - second-server.[hm], second-client.[hm], textcoding.m - -Fri Aug 19 18:39:06 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collection.m, Set.m: Added new methods for Coding. - - * Makefile.in: Include new files in the distribution. Add new - classes: Stream, StdioStream, MemoryStream, Coder, TextCoder, - BinaryCoder, Port, SocketPort, Connection, Proxy, ConnectedCoder, - Lock, RetainingNotifier. New protocols: Coding, Retaining, - Locking. New text files: announce.texi, ANNOUNCE, readme.texi, - README. - -Thu Aug 11 12:30:20 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * checks/Makefile.in (CC): Changed from gcc to @CC@. - - * CircularArray.m (insertElement:atIndex:): Swapped order of - incrementCount and CIRCULAR_TO_BASIC. (Test case crash reported - by Matthias Klose .) - -Wed Aug 10 12:30:45 1994 Andrew McCallum (mccallum@raccoon.cs.rochester.edu) - - * Makefile.in: Defined GNU_MFILES, NeXT_MFILES, GNU_CFILES, - NeXT_CFILES, GNU_HEADERS, NeXT_HEADERS, GNU_OTHER_SRCFILES, - NeXT_OTHER_SRCFILES. Removed *OFILES. Renamed DISTFILES to - DIST_FILES. - -Tue Aug 9 15:21:43 1994 Andrew McCallum (mccallum@mink.cs.rochester.edu) - - * Changed name to libobjects. All files changed accordingly. - - * Makefile.in (DISTFILES): Added install.sh. - -Mon Aug 8 13:15:46 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Makefile.in (GOBJC_HDRS): Removed gobjc/ReferenceCounting.h. - Will be replaced by Retaining protocol. - -Sun Aug 7 17:13:08 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * config.nextcc.h: Created. - * configure.in: Update to use config.nextcc.h, define NeXT_cc - instead of NXcc. - Flipped the logic on NeXT32plus. (Reported by Matthias Klose - ) - - * Time.[hm]: Hack to make it work with Solaris rusage. - -Fri Jul 22 11:41:32 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Makefile.in (dist): Makefile.depend and Makefile.local forced to - be empty files by touch. - -Sat Jul 16 13:18:10 1994 R. Andrew McCallum (mccallum@ngoma) - - * configure.in: Define NXcc if using NeXT's cc. Sources - #ifdef'ing (NeXT) don't distinguish between NeXT cc and gcc on a - NeXT. - *.[hm]: Change #ifdef (NeXT) to #ifdef (NXcc) - - * Makefile.in: include Makefile.local. - * zone.c, gobjc/next-includes/zone.h: New files. - -Wed Jul 6 16:23:16 1994 Andrew McCallum (mccallum@swan.cs.rochester.edu) - - Changed name to from libcoll to libgobjc: - * All files: Changed name to "GNU Objective-C Class Library" in all - header comments. - * gobjc: Renamed coll to gobjc. - * gobjc/stdgobjc.h: Renamed from coll/collstd.h. Removed some - declarations that were already in gobjc/objc-malloc.h. - * gobjc/next-includes/objc: Created - * gobjc/next-includes/objc/ - {List.h,HashTable.h,Storage.h,NXStringTable.h}: Moved from gobjc. - * Makefile.in: Names changed from libcoll to libgobjc. - * gobjc/next-include/objc/*.h: Look in objc instead of coll. - - * gobjc/next-include/objc/List.h: Changed GNU_ to NX_. - -Tue Jul 5 15:51:58 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Storage.m (_makeRoomForAnotherIfNecessary): Added self-> to find - ivar in assert() call. Reported by ratlifc@ctron.com (Christian - A. Ratliff). - -Tue Jun 7 16:21:57 1994 Andrew McCallum (mccallum@raccoon.cs.rochester.edu) - - * List.m (incrementCount): Compare numElements and maxElements by - >= instead of ==. (Reported by Paul Kunz.) - -Fri Jun 3 13:26:42 1994 Andrew McCallum (mccallum@zebra.cs.rochester.edu) - - * LinkedList.m (successorOfElement:,predecessorOfElement:): Added. - * (removeElementAtIndex:): Return old element. - (Both reported by nisse@lysator.liu.se) - -Tue May 24 10:13:38 1994 Andrew McCallum (mccallum@brain.cs.rochester.edu) - - * coll/objc-gnu2next.h (objc_read_types): Removed ## from - NXWriteTypes() and NXReadTypes(). -cpp-traditional doesn't like - it, and 'args' should never be emtpy anyway. (Reported by Stefan - Reich ) - - * checks/Makefile.in (LIBS): Removed -lobjc, added LIBOBJC, made - it conditional on NeXT cc test from configure.in. - - * configure.in: Added LIBOBJC substitution. - - * collstd.m: Added missing semicolon to coll_NeXT_cc_version line. - - * Storage.m (_makeRoomForAnotherIfNecessary): Added assert() - checking for non-zero maxElements. - - * Makefile.in (install): Changed HDRS to INSTALLHDRS. (Reported - by Matthias Klose ) - -Mon May 9 18:30:05 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Storage.m (initCount:elementSize:description): Make sure - maxElements >= 1. (Reported by Paul Kunz.) - - These from Kresten Thorup: - * collstd.[hm] (#if NeXT): Added @interface/@end. Added - -shouldNotImplement:. - * configure.in, collstd.m: Changed NX_COMPILER_RELEASE to - NX_CURRENT_COMPILER_RELEASE. - -Sun May 8 19:40:40 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * configure.in: Added check for nested function support. - * config.nested.c: Created. - - * Makefile.in: Removed "-include Makefile.depend". Removed - "-include Makefile.local". - - * List.m (removeObjectAt:): Now returns old object. (Reported by - Paul Kunz.) - -Fri May 6 11:11:17 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * collstd.[hm]: Defined coll_NeXT_cc_version. - * checks/test11.m: Modified from NXStringTable test code provided - by - * checks/Makefile.in: Added test11.m, NXStringTable.example. - * Makefile.in: Added support for NXStringTable_scan.lex - * eltfuncs.m (elt_get_encoding): Fixed bug by adding char_ptr_u. - (__init_comp_func_hashtable(): Passing elt_{hash,compare}... to - coll_hash_new. - -Thu May 5 09:47:08 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Makefile.in, configure.in: Automatically check if using NeXT's - compiler. If so, add -cpp-traditional, don't compile or install - NeXT compatibility classes. If not, compile and install NeXT - compatibility classes. MAKEDEFINES now includes $(INCLUDEFLAGS). - - * StringTable*: Changed name to NXStringTable*. - - * collstd.[hm]: #ifdef NeXT -compare:. Added. - - * eltfuncs.m: Changed to use coll/collhash.[hc] instead of - objc/hash.[hc]. Added (void*) casts to __objcx[mc]alloc. - -Tue May 3 14:09:03 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Makefile.in: Removed Makefile.depend target. - -Tue Apr 19 17:55:45 1994 Andrew McCallum (mccallum@zebra.cs.rochester.edu) - - * Storage.m (initCount:elementSize:description, setNumSlots): - Clear the allocated memory. Patch contributed by Adam Fedor - - - * List.m (addObject:): Now calls insertObject:at:, as does NeXT's. - (removeLastObject): Now calls removeObjectAt:, as does NeXT's. - - The following are minor changes to enable compilation with - NeXTSTEP 3.3 cc. Thanks to Kresten Krab Thorup. - - * Collection.m (allocCopy): #ifdef NeXT object_copy takes 2 args. - * DelegateList.m (+initialize): Added. - * eltfuncs.m: Define _C_ATOM. Fix hash function types. #ifdef - NeXT add definitions for assert, objc_fatal, __objc_xmalloc, - __objc_xcalloc. - -Sat Feb 26 11:39:26 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * DelegateList.[hm] (delegateListCollection): Changed name from - delegateListList. Changed because what's returned is not a List. - (delegateListAddObjectIfAbsent:) Created. - -Fri Jan 21 13:29:48 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collection.m (safeWithElementsCall:, - safeWithElementsCall:whileTrue:): Removed extra -addContentsOf:. - (Reported by Allan Clearwaters ) - -Fri Dec 17 14:45:30 1993 Andrew McCallum (mccallum@raccoon.cs.rochester.edu) - - * List.m (insertObject:at:): Fixed bug that occured when trying to - insert at index zero on an empty list. (Reported by Paul Kunz) - -Tue Nov 16 18:40:12 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collecting.h, Collection.m, *.m: Renamed -includesSameContents: - to -contentsEqual:. "Equal" reminds the programmer that "isEqual" - is called on content objects. I think "Same" is used by Brad - Cox's code to mean something different from "isEqual". Later we - could add "contentsSame:" if it proves useful. Don't use - "includes" because programmers might think that we are talking - about a subset operation here---no this method tests for complete - membership equality. - IndexedCollecting.h, IndexedCollection.m: Renamed - -includesSameContentsInOrder: to -contentsEqualInOrder:. - - Collection.m (isEqual:): Removed. Now we just let Object take - care of equality testing. If you want to test equality of - contents, use -hasEqualContents:. - -Thu Nov 11 17:01:37 1993 Andrew McCallum (mccallum@llama.cs.rochester.edu) - - * coll/KeyedCollecting.h, KeyedCollection.m: Changed - -insertObject:atKey: to putObject:atKey:. In KeyedCollection - "insert" doesn't really insert. If there already an object at - that key, it replaces. But we can't use replace because there - might not be an object at that key yet. "Insert" was a bad name - because the method replaces an element if there already is one at - that key. "Put" is different from "replace" because "put" can - place elements at keys that don't already have elements associated - with them. This naming scheme also has the advantage that we can - later use "insertObject:atKey: for a collection that allows - multiple elements at a single key. - - * Makefile.in, coll/collstd.h, collstd.m: Moved version - information from version.c to collstd files. - (version.c): Removed. - - * Time.m: (indexOf...Name, nameOf...Index): Implemented. - -Wed Nov 10 13:36:06 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collection.m: (-includesSameContents:): Added a check for same - comparisonFunction. - (-compare:): Implemented. - - * IndexedCollection.m (-indexOfFirstIn:, -indexOfFirstNotIn:): - Implemented. - - * readme.texi, news.texi: Created. Changed Makefile to support - these. - - * checks, checks/Makefile.in: Renamed tests directory to checks. - Created autoconf Makefile.in for checks directory. - -Wed Nov 3 10:27:52 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * coll/Collecting.h: (newEnumState, freeEnumState:) Added. Now - we can avoid memory leaks. Later we can built an Iterator class - on top of these methods if we like. - *.m: Make use of new enum state methods. - - * IndexedCollection.m (indexOfFirstDifference:) Implemented. - -Tue Nov 2 13:40:34 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * RBTree.m (removeElement:,_RBTreeDeleteFixup): Added. RBTree - should now be operational. - - * BinaryTree.m, RBTree (nilNode): Added. Now using this sentinal - to make a few operations more efficient. - -Mon Nov 1 15:07:48 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * *.m: Made sure all function pointers are dereferenced when - called. - - * SplayTree.m (-splayNode:, -sortAddElement:byCalling:, - -insertElement:after:, -insertElement:before:, - -insertElement:atIndex:, -removeElement:, - -_doSplayOperationOnNode:): Added. SplayTree should now be - operational. - - * eltfuncs.m (elt_fprintf_elt): Now passing "l" when fprintf'ing - ... long elements. - - * coll/CollectionPrivate.h (RETURN_BY_CALLING_EXCEPTION_FUNCTION): - No longer uses __builtin_apply and __builtin_return unnecessarily. - -Sun Oct 31 12:34:55 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * BinaryTree.m (-leftRotateAroundNode:, -rightRotateAroundNode:): - Fixed bug occurring when rotation child is nil. - (rootNode): Added. - - * Collection.m, KeyedCollection.m, IndexedCollection.m - (-...Object:...): Added CHECK_CONTAINS_OBJECTS_ERROR; - -Fri Oct 29 14:22:41 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * KeyedCollection.m, Collection.m: Removed use of LAMBDA(). - -Thu Oct 28 15:44:23 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * coll/Time.h: Removed from @interface line. - -Tue Oct 26 8:32:48 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Released version 931026. - -Mon Oct 25 12:41:28 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * coll/*Collecting.h: Removed shallowCopy... methods with weird - options. These can be done easily and more flexibly with - enumerations. - - * coll/*Collecting.h, *Colletion.m: Removed definition and use of - COLL_NO_ELEMENT, COLL_NO_OBJECT, COLL_NO_KEY, COLL_NO_INDEX. - Added ...ifAbsentCall: methods to replace this functionality. - - * coll/Collecting.h, Collection.m: ...AllOccurrences... methods - now return self. - -Thu Oct 21 17:41:49 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * libcoll.texi: Created. - -Tue Oct 19 10:25:34 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * coll/Collecting.h: Changed method name -freeContents to - -freeObjects. Both names are pretty clear, and the later has the - advantage of compatibility with NeXT. - - * coll/Collecting.h: Changed method name -containsObjects to - -contentsAreObjects. The previous name could be interpretted as - testing whether or not the collection was empty; in fact this - method just tests whether or not the collection was initialized to - hold objects (i.e. initEncoding:@encode(id)). - - * coll/collstd.h: Added #define's for defining nested functions - in the argument position: LAMBDA, LAMBDA_VOID_PERFORM, - LAMBDA_ID_PERFORM, LAMBDA_BOOL_PERFORM. - - * coll/Collecting.h, KeyedCollecting.h, IndexedCollecting.h: - Removed many methods for various combinations of perform:, - perform:with:, perform:in, perform:in:with:. All these can now be - replaced with ...ByCalling: methods now that we can easily define - nested functions with the LAMBDA macro's. These methods really - ballooned the size of the protocols, and they still didn't provide - all the potentially useful conbinations. This new scheme is far - more flexible. I left the -makeObjectsPerform: and - -makeObjectsPerform:with: for compatibility with NeXT. - -Mon Oct 18 15:18:01 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * eltfuncs.m: Fixed overflow bug in compare functions. - -Fri Oct 8 11:47:56 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * List.m (replaceObjectAt:): Now returns oldObject. - (makeObjectsPerform:with:): Now uses perform:with:. - Removed -sortUsingMethod:inObject:. - - * coll/SortedArray.h: removed. - -Thu Sep 30 10:52:14 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * List.m (makeObjectsPerform:, makeObjectsPerform:with:): Removed - dependence on _makeObjects...:reverseOrder:. Using #if instead. - - * Bag.m (removeElement:occurrences:): Added. Bag will now cause - error if you try to remove an element that's not there, or not - there enough times. - -Tue Sep 28 11:49:42 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * List.m, Storage.m: Now use objc_malloc/OBJC_MALLOC and friends - instead of malloc and friends. - - * Makefile.in, configure.in: Created. Now libcoll works with - autoconf. Also made some changes to *.m to take advantage of - autoconf. - - * collstd.m: Changed definition of free(). (thanks to - krab@iesd.auc.dk) - -Mon Sep 27 09:59:25 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Bag.m (-uniqueCount): Added. - - * HashTable.m (-initKeyDesc:valueDesc:capacity:) Increased - portability for {long, unsigned} ints. - - * IndexedCollecting.h, IndexedCollection.m: Added - -safe...InReverse methods. - - * List.m (copy): Added. In order to force -shallowCopy for - compatibility with NeXT. - - * collhash.[hc] (coll_hash_empty): Added. - - * Collecting.h, Collection.m: (-safe...) Added these enumerators - for doing enumerations while changing the contents of the - collection. - - * Collecting.h, Collection.m: (-initWithContentsOf:) Added. This - allows for certain efficiencies, like init'ing an Array with the - needed capacity from the start. - -Sat Sep 25 12:20:18 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collection.m, KeyedCollection, IndexedCollection.m: Extracted - message -comparisonFunction from inside loops to improve - efficiency. - - * Collecting.h, Collection.m: Removed the -shallowCopySelect..., - etc methods and replaced them with -withElementsTrueBy..., etc - methods. These shallowCopy methods make lots of sense in - SmallTalk where garbage collection makes enumeration on - temporary collections useful for iteration, but in ObjC I think - methods with a little more flexibility would be more helpful. I - also wanted to add more options to those {select,reject,collect} - methods: 1) the option of deep or shallow copies, 2) the option of - changing the class of the new copy. But if done in the old - framework this would have exploded the number of methods. The new - framework allows all the old functionality, plus the new options, - plus the option to do something useful without creating a new - collection. - -Tue Sep 21 11:52:46 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * *.m: Added -emptyCopy based on -allocCopy. Subclasses override - to take care of instance vars that must change. - - * Collecting.h, Collection.m: Changed -addCount:... to - -addObjectsCount:... and -addElementsCount:... - -Mon Sep 20 17:05:10 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * *.[hm]: Added code for archiving: -write:, writeInit:, - writeContents:, -read:, readInit:, readContents:. I'm not sure - this division of labor is the best. I'm open to suggestions for - different implementations. - - * *.[hm]: Changed all instances of the word "description" to - "encoding". Objective-C already uses @encode() for these things. - We shouldn't introduce new vocabulary for refering to the same - thing. - - * *.[hm]: Removed methods that allowed specification of - comparison function independent of encoding. This will allow us - to archive the comparison function by archiving the encoding. - Most people will be able to get custom comparisons by overriding - -compare:. If you really, really need some new weird comparisons - for non-objects, you can still subclass the collection and - override -comparisonFunction. If people think that we will want - to want custom comparisons of non-objects *very often*, then we - come up with another scheme that still allows meaningful archiving - of comparison functions. - -Sun Sep 19 19:30:02 1993 Andrew McCallum (mccallum@swan.cs.rochester.edu) - - * coll/eltfuncs.[hm]: Created. Moved functions for manipulating - elt's from CollectionPrivate.h to eltfuncs.h. This makes elt a - little more separate from libcoll, so others can use it too. I - changed the prefix on the names accordingly from coll_ to elt_. - Also, added function for getting encoding from comparison - function. Also, declared all elt_compare_ and elt_hash_ functions - extern. - -Thu Sep 9 09:49:29 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * LinkedListEltNode.[hm], BinaryTreeEltNode.[hm], - RBTreeEltNode.[hm]: Created these files and moved EltNode code - into them. This cleanly separates the basic LinkedList code from - the EltNodeCollector stuff (and similarly for BinaryTree and - RBTree). The EltNode stuff strikes me as being a little messy; - with this separation we can easily replace it later with something - cleaner (if we can think of something cleaner). - - * elt.h, *.m: Changed elt union names from *_t to *_u, following - suggestion of Burchard: *_t should be reserved for type names. - -Tue Aug 31 11:40:29 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Storage.[hm], List.[hm]: Removed many extra features that - aren't in the NeXT implementations. Our goal for these NeXT-based - objects should be compatibility, not kitchen-sink features. Let - people add features in Categories if they need them. - - * Storage.[hm]: Fixed return type for -removeLastElement to match - NeXT. Unfortunately this conflicts with the IndexedCollecting - declaration (NeXT's returns self, IndexedCollecting returns the - removed element). I really think methods that remove elemements - should return that element. We're just going to have to live with - this conflict. - - * Storage.[hm]: Changed declaration of instance var 'dataPtr' - from void** to void*, to match NeXT. - - * IndexedCollecting.h, IndexedCollection.m: Added -sortContents; - -Thu Aug 26 17:47:59 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * List.m: Changed default order of -makeObjectsPerform... and - fixed comment to match NeXTSTEP reality. - -Wed Jul 10 14:38:23 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * BinaryTree.m, RBTree.m, EltNodeCollector.[hm]: Created. - -Wed Jun 2 11:48:08 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * IndexedCollecting.h: Added - - successorOfObject: anObject; - - predecessorOfObject: anObject; - - (elt) successorOfElement: (elt)anElement; - - (elt) predecessorOfElement: (elt)anElement; - - * BinaryTree.h, RBTree.h: Created. - -Mon May 31 13:33:42 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Time.[hm]: Threw a Time object I wrote a while ago into the - .tar file. Maybe someone will find it useful. - - * IndexedCollecting.h, IndexedCollection.m: Added methods: - - (unsigned) indexOfFirstDifference: (id )aColl; - - (unsigned) indexOfFirstIn: (id )aColl; - - (unsigned) indexOfFirstNotIn: (id )aColl; - They fit well with desired functionality for Strings, but may also - be generally useful. - - * Created preliminary String class. It's very preliminary; I just - want to see how it will fit with IndexedCollecting. - - * Overhauled instance variables in heirarchy. Removed all - instance variables from abstract superclasses. This makes - subclassing an abstract superclass a bit more of a pain, but it - helps keep memory requirements down, especially for String, - LinkList and all IndexedCollections. - -Sat May 29 11:27:01 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * IndexedCollection.m: Made cast of void* to unsigned more - portable. - -Fri May 28 17:00:14 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * IndexedCollecting.h, IndexedCollection.m: Added - -insertContentsOf:atIndex: modified from Kresten Krab Thorup. - - * Collecting.h, Collection.m: Added {Object,Element} to inject, - detect, max and min methods. - -Wed May 26 12:20:21 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Overhauled error generation. Changed #define's so error - generation is easier to change again later, if necessary. Error - methods now have forwarding capability. See CollectionPrivate.h, - Collection.m, IndexedCollectionPrivate.h, IndexedCollection.m. - - * *.m: Fixed many small bugs found with -Wall. - - * Created Heap object. - - * Collection.m: Fixed -includesSameContents. - - * Collecting.h, Collection.m: Added -isSubsetOf: as written by - Kresten Krab Thorup. Removed -includesSubsetOf:. - -Tue May 25 14:14:33 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Removed ComparedCollecting protocol. Its only purpose was to - allow the user to manage a comparison function---this was silly, - though, because there already was a comparison function inherited - from Collection! No need to have two of them. Now that there is - a general interface for user-specified comparison functions, we - don't need the ComparedCollecting methods. This is a big help - because we no longer have the problem of trying to combine a - ComparedCollection class and Array class with some ugly multiple - inheritance issues. One disadvantage, however, is that it is - slightly more complicated to specify a comparator that is a - selector. - - * Overhauled comparison and hash functions. More changes than I - want to describe in detail here... 1) Created temporary versions - of hash.[hc] that do what I want, hopefully Kresten's new versions - of hash.[hc] will do something like this. Created collhash.[hc]. - 2) Added -init... methods that allow the users to specify their own - comparison and hash functions instead of accepting the defaults. - -Mon May 24 10:46:21 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collecting.h, Collection.m: Removed -initWith:,... and - -initDescription:with:,... methods. I don't want to add ..with: - version of all -init... methods. People can use addCount,... - instead. - - * Created IdListLink.[hm]. Changed -linkClass in ListedList.m to - return [IdListLink class] if LinkedList contains objects. - - * Collecting.h, elt.h: Moved definition of elt union to - - - * List.m: -isEqual: now checks [List count] at beginning. - - * List.m: -empty no longer realloc()'s. (for compatibility with - NeXT.) - - * List.[hm]: Added - - makeObjectsPerform:(SEL)aSel reverseOrder:(BOOL)flag; - - makeObjectsPerform:(SEL)aSel with:anObject reverseOrder:(BOOL)flag; - and changed -makeObjectsPerform: and -makeObjectsPerform:with: to - call them. This gives the option of compatibility with - pre-NeXTSTEP 3.0 List's. - -Sat May 22 13:53:25 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * Collection.m, Collecting.h: Changed type of initialArg from - void* to elt in inject.. methods. - -Fri May 21 18:52:03 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) - - * First alpha release announced on gnu-objc@prep.ai.mit.edu + * src/NSTimeZone.m: ([-awakeAfterUsingCoder:]) implemented to handle + decopding of archived objects correctly. + * src/include/NSValue.h: Added ([-isEqualToValue:]) diff --git a/ChangeLog.1 b/ChangeLog.1 new file mode 100644 index 000000000..964cd66f3 --- /dev/null +++ b/ChangeLog.1 @@ -0,0 +1,10865 @@ +Wed Mar 11 17:11:23 1998 Adam Fedor + + * Version: Version 0.5.0; + +Wed Mar 11 11:02:49 1998 Scott Christley + + * doc/gnustep-howto.tmpl.texi: Update. + * GNUstep-HOWTO: Regenerate. + +Tue Mar 10 9:40:00 1998 Richard Frith-Macdonald + + * Tools/gdomap.c: Changes to permit configuration of gdomap so that + it probes a specific list of hosts rather than all hosts on the + local net. Also permit compile-time override of port number. + + * Tools/gdomap.h: Added comments about overriding port used by gdomap. + + * src/TcpPort.m: (nameServer()) modified for easy compile-time + override of port number used. + +Thu Mar 5 15:40:00 1998 Richard Frith-Macdonald + + * src/GNUmakefile: removed byte_order.h and added NSByteOrder.h + + * src/NSData.m: Changed all byte-ordering code to use new byte order + functions described in the Rhapsody documentation. + + * src/NSSerializer.m: Removed unused include file. + + * src/include/NSByteOrder.h: Added this file containing all the + byte-order management functions described in the Rhapsody docs. + +Wed Mar 4 21:06:00 1998 Richard Frith-Macdonald + + * src/NSConnection.m: Changed some objects to be OpenStep rather than + old libobjects types. Using NSMutableArray rather than Queue for the + message queues seems to fixes bug with queue corruption under heavy + load. + + * src/NSHost.m: Added methods for archiving NSHost objects and + sending them bycopy over DO at all times. + + * src/NSRunLoop.m: ([-runUntilDate:forMode:]) modified to exit + promptly if there are no more input sources for the run loop. + +Mon Mar 2 10:04:57 1998 Adam Fedor + + * ANNOUNCE, NEWS, GNUstep-HOWTO: Update. + * doc/faq.tmpl.texi, doc/gnustep-howto.tmpl.texi, + doc/news.tmpl.texi: Likewise. + * src/GNUmakefile (GENERATED_HAFILES): Add include/o_... + +Thu Feb 26 12:49:10 1998 Adam Fedor + + * configure.in: Use AC_CHECK_HEADERS instead of AC_CHECK_HEADER. + * src/include/config.h.in: Regenerate. + + * doc/GNUmakefile (HTML_FILES): Add fac_toc.html + * doc/Makefile.postamble: (fac_toc.html): New target. + + * src/include/NSDictionary.h: Add NSMutableCopying protocol + (suggested by David Fritzsche ). + +Thu Feb 26 8:12:00 1998 Richard Frith-Macdonald + + * Tools/defaults.m: Removed autorelease debugging. + * Tools/dread.m: Removed autorelease debugging. + * Tools/dremove.m: Removed autorelease debugging. + * Tools/dwrite.m: Removed autorelease debugging. + + * Tools/gdomap.m: Substantial rewrite with changes to the protocol + for name servers to identify themselves to each other. + Now handles subnet addressing within a class-c network. + Now handles machines with multiple IP addresses more efficiently. + Removes addresses from list of known servers after a period in + which it fails to contect them. + + * Tools/gdomap.h: Changed comments to reflect protocol changes. + + * src/Coder.m: ([-initForReadingWithData:]) removed an inefficient + hack for dealing with a problem that should never happen + (init methid called on autoreleased object). + + * src/NSConnection.m: ([+newForInPort:outPort:cancestorConnection:), + (-_handleRmc:) removed 'delay_dialog_interruptions' which could + result in deadlock in three-way DO conversations. + + * src/NSPortCoder.m: ([-_doEncodeObject:]) changed so that a copy + over-the-wire is a deep copy rather than a shallow one. I think + this gives a more expected behaviour, though I don't know what + OPENSTEP does. + + * src/include/NSConnection.h: Removed delay_dialog_interruptions. + +Sat Feb 14 16:03:07 1998 Scott Christley + + * configure.in: Check for sys/statvfs.h header file. + * configure: Regenerate. + * std/include/config.h.in: Regenerate. + * src/NSFileManager.m: Include header files only if available. + +Sat Feb 14 15:50:40 1998 Adam Fedor + + * src/NXStringTable_scan.c src/lex.pl.m src/lex.sf.m + src/proplist.tab.h src/proplist.tab.m src/stringsfile.tab.h + src/stringsfile.tab.m: Add regenerated files to repository. + +Sat Feb 14 13:41:39 1998 Scott Christley + + * src/include/config.h.in: Create and add back into repository. + +Thu Feb 12 13:31:00 1998 Adam Fedor + + * src/NSDictionary.m ([-copy]): New method. + +Mon Feb 9 13:08:27 1998 Adam Fedor + + * AUTHORS, ANNOUNCE, README, INSTALL, STATUS, TODO: New files. + * configure: Likewise. + * +cronscript, +crontab, +patch.sh, Makefile.local, make-*, + upload-dist: Removed non-dist files. + * src/Makefile.local, src/Makefile.set.nt: Likewise. + * GNUmakefile (DIST_FILES): Remove gcc diffs. + * Makefile.postamble (regenerate): New target. + (snapshot, dist): Update for cvs export. + * NSCharacterSets/Makefile.postamble (regenerate): New target. + * NSTimeZones/Makefile.postamble: Likewise + * Tools/Makefile.postamble: Likewise. + * admin/Makefile.postamble: Likewise + * checks/Makefile.postamble: Likewise + * doc/Makefile.postamble: Likewise + * examples/Makefile.postamble: Likewise + * src/Makefile.postamble: Likewise + + * src/NSUserDefaults ([-synchronize]): Check for defaultDatabase + and create it it doesn't exist. + * src/NSThread.m ([-currentThread]): Set thread data for new + thread. + * src/NSString.m ([-initWithContentsOfFile:]): Check for NULL + data. Patches suggested by Ulrich Steinmetz + + * src/NSHost.m: Remove arpa/inet.h + * src/TcpPort.m: Likewise. + * src/UnixFileHandle.m: Likewise. + patches from Paul Kunz + +Thu Feb 5 10:12:00 1998 Richard Frith-Macdonald + + * src/NSConcreteNumber.m: Defined preprocessor values to handle + 'promotion' of numeric types and added private methods to support + this. Modified ([-compare:]) to promote numeric values so that + comparisons work as expected. Implemented ([-isEqualToNumber:]), + Implemented ([-description]) and partially ([-descriptionWithLocale:]) + Implemented ([-hash]) so that numbers which compare the same also + has the same (so we can use NSNumbers as dictionary keys). + + * src/NSData.m: Added non-openstep method ([-relinquishAllocatedBytes]) + to ask a data object to hand over it's malloced buffer. + + * src/NSNumber.m: Added initialisation methods specified in Rhapsody + documentation. + + * src/NSString.m: ([-dataUsingEncoding:allowLossyConversion:]) made + tiny change for efficiency - moving test outside loop - perhaps the + compiler would have optimised it anyway. + + * src/Port.m: Modified initialisaers to test for failure to create + NSData objects and return nil as appropriate. + + * src/TcpPort.m: ([+newForReceivingFromPortNumber:]) release newly + created port before raising exceptions. + In both ([-invalidate]) methods we remove the port from the various + maps before doing anything else so that invalid ports can't be found + by accident during the invalidation process. + + * src/UnixFileHandle.m: ([-readDataOfLength:]) fixed problem with + data object causing read value to be overwritten with nuls. + + * src/include/NSData.h: Added ([-relinquishAllocatedBytes]) + + * src/NSValue.h: Added initialisation methods for NSNumber and + ([-isEqualToNumber:]) method. + +Thu Feb 5 10:48:35 1998 Adam Fedor + + * GNUmakefile (GNUSTEP_MAKEFILES): New variable. Use it to + include makefiles. + * Likewise for all sub-directory GNUmakefile files. + +Mon Feb 2 10:11:20 1998 Adam Fedor + + * Version (GCC_VERSION): Change to 2.8.0 + * gcc-2.7.2-objc.diff: Remove. + * gcc-2.7.2.1-objc.diff: Likewise. + + * NSTimeZones/Makefile.postamble (after-install): Remove + directories before (re-)installing. + + * checks/GNUmakefile: Include bundle.make. + * checks/invocation2.m: New file. + + * doc/gnustep-howto.tmpl.texi: Make gcc2.8.0 supported compiler. + * doc/news.tmpl.texi: Add recent changes. + + * src/NSFileManager.m: Include sys/statvfs for mips-sgi-irix6.2 + * Tools/gdomap.c: Add IPPORT_USERRESERVED def for sgi. + * src/TcpPort.m: Likewise. + * src/UdpPort.m: Likewise. + (patches from Mike Kienenberger ) + +Fri Jan 30 20:38:56 1998 Masatake Yamato + + * src/Invocation.m ([MethodInvocation + -initWithTarget:selector:,...]): Add _C_CLASS, a CASE_TYPE to the + switch-case labels. Implement default: in the switch-case. I + used typeof, a gcc extension. + + * src/NSMethodSignature.m ([NSMethodSignature -argumentInfoAtIndex:]): + Implemented. + + * src/include/NSInvocation.h (NS_INVOCATION, NS_MESSAGE): New macros. + +Mon Feb 2 12:54:00 1998 Richard Frith-Macdonald + + * Tools/defaults.m: Modified to make sure that defaults are all + written correctly when reading multile defaults settings from stdin. + + * src/NSArray.m: Modified or rewrote almost all methods to use + unsigned ints rather than ints and to avoid retain/release + sequences for the sake of efficiency. Also rewrote property list + and sorting methods for much greater efficieny. + + * src/NSData.m: (readContentsOfFile(NSString*, void**, unsigned*)) + fixed bug leaving file open and modified to use + ([NSString -fileSystemRepresentation]). Similarly modified + ([-writeToFile:atomically;]) and ([-initWithContentsOfMappedFile:]). + + * src/NSDictionary.m: Modified ([-descriptionInStringsFileFormat]) + and ([-descriptionWithLocale:indent:]) for better performance. + + * src/NSGArray.m: Added implementations of ([-getObjects:]) and + ([-getObjects:range:]) so that it is possible to get high speed + access to array contents. Added implementation of + ([-sortUsingFunction:context:]) for faster sorting of array contents + so that property descriptions are generated more quickly. + + * src/NSGCString.m: Modified various methods so that the _capacity + instance variable has the space available for characters in the + string without the terminator. Added ([-getCharacters:]) and + ([-getCharacters:range:]) implementations. + + * src/NSGString.m: Modified various methods so that unicode + strings are no longer nul terminated and the _capacity instance + variable has the number of character spaces available in the + string. Added ([-getCharacters:]) and ([-getCharacters:range:]) + implementations. Added ([-replaceCharactersInRange:withString:]) + implementation. + + * src/NSString.m: Fixed a few places where it was assumed that + string buffers include space for a nul terminator. In + ([-compare:options:range:]) made modifications so that literal + comparisons now work correctly for ranges other than the entire + string. Made some changes to avoid use of malloc/free sequences + where not necessary. Made efficiency improvements to append + methods. + + * src/NSUserDefaults.m: ([-initWithContentsOfFile:]) changed to take + process name as being the last path component of the full process + name. Also added code to retry a few times if the database is locked. + + * src/TcpPort.m: ([+newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]) + Vague attempt to make rapid shutdown/startup of DO more robust. + + * src/UnixFileHandle.m: (getAddr()) Fixed error in handling service + names and permit nil service to mean 'any'. + Also use ([NSString -fileSystemRepresentation]) as appropriate. + + * src/include/NSGArray.h: modified to contain same instance variables + as the Array class so we can access them directly in NSGArray.m + +Mon Jan 26 09:10:39 1998 Adam Fedor + + * src/NSPage.m (NSRealMemoryAvailable): Add implementation for + GNU/Linux (Patch from Matt Jenkins ). + + * src/Invocation.m (-setArgument:atIndex:): Make argument const. + * src/NSInvocation.m (-methodSignature): Make my_sel_type const. + +Sat Jan 24 15:14:50 1998 Masatake Yamato + + * src/include/NSMethodSignature.h(-methodType): + Declare new category NSMethodSignature(GNU). + + * src/Invocation.m ([MethodInvocation -setSelector:]): + Add code to handle a case that sel_pointer is pointing NULL + SEL value. This is far from perfect. Type checking is needed. + + * src/NSMethodSignature.m + Add cpp directives to use `strrchr'. + (rtn_type_is_oneway): New function + for [NSMethodSignature -isOneway]. + ([NSMethodSignature +signatureWithObjCTypes:]): Fix length of + memory allocation for strings. + Do not copy all the encoding string T to returnTypes. + ([NSMethodSignature -isOneway]): Method implemented. + ([NSMethodSignature(GNU) -methodType]): New category and method. + This is not part of OpenStep spec. This method is used in + NSInvocation.m. + + * src/NSInvocation.m ([NSInvocation +initialize]): Add + MethodInvocation class instead of Invocation. + ([NSInvocation -methodSignature]): Method implemented. + ([NSInvocation +invocationWithMethodSignature:]): Invoke + [NSMethodSignature -methodType] instead of + [NSMethodSignature -methodReturnType]. + +Wed Jan 21 17:37:00 1998 Richard Frith-Macdonald + + * Tools/defaults.m: Fixed bug in handling 'write' operations reading + info from stdin - now puts all values into the database correctly. + + * src/TcpPort.m: ([+newForReceivingFromPortNumber:]) added code to + perform retries if the kernel freaks out when asked to select the + port to bind to - this has happened to me on linux! + +Wed Jan 21 11:45:00 1998 Richard Frith-Macdonald + + * src/GetDefEncoding.m: Modified GetDefEncoding() to us the NSString + method - ([+availableStringEncodings]) so we can make the + _availableEncodings array local to NSString.m + + * src/NSString.m: Moved _availableEncodings here from NSString.h + Added methods as specified in Rhapsody documentation - + ([+pathWithComponents:]), ([-isAbsolutePath]), ([-pathComponents]), + ([-stringsByAppendingPaths:]) + + * src/include/NSString.h: Moved _availableEncodings from here to + NSString.m and added declarations for new methods - + ([+pathWithComponents:]), ([-isAbsolutePath]), ([-pathComponents]), + ([-stringsByAppendingPaths:]) + +Wed Jan 21 09:41:46 1998 Adam Fedor + + * src/Makefile.postamble: Change $(LEX) to $(FLEX) and $(YACC) to + $(BISON). Add $(GNUSTEP_OBJC_DIR) to targets with ${OEXT}. + +Tue Jan 20 19:05:00 1998 Richard Frith-Macdonald + + * Tools/GNUmakefile: Added defaults.m + + * Tools/defaults.m: New file defaults.m - command line tool like the + OPENSTEP defaults command. Renders dread, dwrite and dremove obsolete. + + * Tools/dread.m: Added -u flag and made numerous bug fixes. + + * Tools/dremove.m: Added -u flag and made numerous bug fixes. + + * Tools/dwrite.m: Added -u flag and made numerous bug fixes. + + * checks/GNUmakefile (TEST_TOOL_NAME): Add nstask. + * checks/nsdate.m: Added some year-2000 tests. + * checks/nstask.m: New file. + + * src/Dictionary.m: Removed ([-descriptionWithIndent:]) and the + ([-description]) methods - no longer needed for property lists. + + * src/GNUmakefile: Added NSTask + + * src/GetDefEncoding.m: Fixed so that the encoding that is read from + the environment is accepted. + + * src/Heap.m: Added implementation of ([-minObject]) to take + advantage of the known ordering of a heap - fixes performance + problem with large numbers of timers in NSRunLoop. + + * src/NSArray.m: Implemented many new methods for OPENSTEP - + ([+arrayWithArray:]), ([+arrayWithContentsOfFile:]), + ([+arrayWithObjects:count:]), ([-getObjects:]), + ([-getObjects:range:]), ([-indexOfObjectIdenticalto:inRange:]), + ([-indexOfObject:inRange:]), ([-makeObjectsPerformSelector:]), + ([-makeObjectsPerformSelector:withObject:]), ([-sortedArrayHint]), + ([-sortedArrayUsingFunction:context:hint:]), + ([-pathsMatchingExtensions:]), ([-descriptionWithLocale:]), + ([-descriptionWithLocale:indent:), + ([-replaceObjectsInRange:withObjectsFromArray:]), + ([-initWithContentsOfFile:]), ([-removeObject:inRange:]), + ([-removeObjectIdenticalTo:inRange:]), ([-removeObjectsInRange:]) + Modified ([-makeObjectsPerform:]) and + ([-makeObjectsPerform:wihtObject:]) to iterate through array in + reverse as specified in OPENSTEP docs. + Removed obsolete method - ([-descriptionWithIndent:]) + + * src/NSArray.m: Implemented new methods for OPENSTEP - + ([+dataWithData:]), ([-setData:]) + Modified ([-description]) to give tidier output. + + * src/NSCalendarDate.m: Changed initialisation and creation methods to + return type id as in the Rhapsody docs, also changed default format for + description to use numeric timezone values as per Rhapsody docs. + + * src/NSData.m: Implemented new methods for OPENSTEP - + ([+dataWithData:]), ([-setData:]) + Modified ([-description]) to give tidier output. + + * NSDate.m: Changed initialisation and creation methods to return type + id as in the Rhapsody docs. + + * src/NSDictionary.m: Implemented new methods for OPENSTEP - + ([-keysSortedByValueUsingSelector:]), + ([-objectsForKeys:notFoundMarker:]), ([-description]), + ([-descriptionInStringsFileFormat]), ([-descriptionWithLocale:]), + ([-descriptionWithLocale:indent:]), ([-setDictionary:]), + + * src/NSFileHandle.m: Added extensions for getting information + about sockets used in file handles. + + * src/NSString.m: Removed ([-quotedCString]) and added new method + ([-descriptionForPropertyList]) to do things more neatly. + Fixed ([-initWithContentsOfFile:]) to avoid crash when given a bad + file name. + + * src/NSTask.m: Added this OPENSTEP/Rhapsody class. + + * src/TcpPort.m: Added check for bad data arriving on descriptor + in ([-_tryToGetPacketFromReadableFD:]) + + * src/UnixFileHandle.m: Added stuff for getting information + about sockets used in file handles. + + * src/include/IndexedCollecting.h: Made 'IndexRange' a synonym for + NSRange. + + * src/include/NSArray.h: Changes to reflect the changes in methods + implemented in NSArray.m + + * src/include/NSData.h: Changes to reflect the changes in methods + implemented in NSData.m + + * src/include/NSDate.h: Changed return tpes of initialisation methods + to be (id) as in Rhapsody documentation. + + * src/include/NSDictionary.h: Changes to reflect the changes in methods + implemented in NSData.m + + * src/include/NSFileHandle.h: Changes to reflect the changes in methods + implemented in NSFileHandle.m + + * src/include/NSString.h: Changes to reflect the changes in methods + implemented in NSString.m + + * src/NSTask.h: Added this OPENSTEP/Rhapsody class. + + * src/include/UnixFileHandle.h: Changes to reflect the changes in + methods implemented in UnixFileHandle.m + + * src/proplist.y: Make parsing less strict - permit dictionaries + with or without a semicolon after the last key-value pair. + + * src/stringsfile.y: Fixed bug in parser - it is legitimate to have + a key-value pair without a value - in which case the '=' is omitted. + +Fri Jan 9 10:04:09 1998 Adam Fedor + + * Version: Release 0.4.0. + +Thu Jan 8 09:42:39 1998 Adam Fedor + + * doc/announce.tmpl.texi: Fixup variable definitions. + * doc/news.tmpl.texi: Likewise. + * doc/todo.tmpl.texi: Update. + +Sun Jan 4 13:26:03 1997 Stevo Crvenkovski + + * doc/news.tmpl.texi: Replace my old e-mail. + + * src/GNUmakefile : add GetDefEncoding.m and GetDefEncoding.h. + * src/GetDefEncoding.m : new file. + + * src/NSGCString.m ([NSGCString + -initWithCStringNoCopy:length:freeWhenDone:]): Move + [super init] to the begining of code. + * src/NSGCString.m ([NSGMutableCString initWithCapacity:]): + Likewise. + * src/NSGCString.m ([NSGMutableCString - + initWithCStringNoCopy:length:freeWhenDone:]): Likewise. + * src/NSGString.m ([NSGString - + initWithCharactersNoCopy:length:freeWhenDone:]): Likewise. + * src/NSGString.m ([NSGMutableString initWithCapacity:]): + Likewise. + + * src/NSGSequence.m ([NSGSequence decompose]): Check for lenght>1: + + * src/NSString.m ([NSGString initialize]): Set + _DefaultStringEncoding variable using GetDefEncoding(). + * src/NSString.m initWithData:encoding:]) : Number of bug fixes. + * src/NSString.m ([NSString initWithContentsOfFile:]) : Method + rewriten. + * src/NSString.m ([NSString hash]) : Method rewriten. + * src/NSString.m ([NSString lineRangeForRange:]) : New OPENSTEP + method implemented. + * src/NSString.m ([NSString + getLineStart:end:contentsEnd:forRange:]) : New OPENSTEP method + implemented. + * src/NSString.m ([NSString capitalizedString]) : Take care of + white space characters properly. + * src/NSString.m ([NSString defaultCStringEncoding]) : Changed to + read new _DefaultStringEncoding variable. + * src/NSString.m ([NSString availableStringEncodings]) : New + OPENSTEP method implemented. + * src/NSString.m ([NSString localizedNameOfStringEncoding]) : New + OPENSTEP method implemented. + * src/NSString.m ([NSString + dataUsingEncoding:allowLossyConversion:}) : Number of bug fixes. + * src/NSString.m ([NSString writeToFile:atomically:]) : Attempt to + write in default c string encoding, if failed write in Unicode. + + * src/include/GetDefEncoding.h : New file. + * src/include/NSString.h typedef enum _NSStringEncoding + Changed to OPENSTEP spec. + * src/include/NSString.h declare new OPENSTEP methods. + +Sat Jan 3 14:05:32 1998 Scott Christley + + * confdefs.h: Delete transient file. + + * src/include/Foundation.h: New file. + * src/include/NSEnumerator.h: New file. + * src/GNUmakefile: Install new header files. + * src/include/NSUtilities.h: Move NSEnumerator interface + to NSEnumerator.h file. + + * src/NSObject.m (-copyWithZone:): Eliminate semicolon. + + * Fix memory allocation function usage. (As reported by + Matthias Klose ). + * src/Connection.m (-_service_forwardForProxy:): Use + function instead of function pointer. + * src/Decoder.m (-decodeClass, -decodeSelectorWithName:): Likewise. + * src/Invocation.m (-initWithReturnType:): Likewise. + (-_initArgframeFrom:withType:retainArgs:): Likewise. + (-_deallocArgFrame): Likewise. + * src/NSAutoreleasePool.m (-reallyDealloc): Likewise. + * src/NSConnection.m (-_service_forwardForProxy:): Likewise. + * src/TextCStream.m (-decodeValueOfCType:at:withName:): Likewise. + * src/include/objc-gnu2next.h (list_cons): Likewise. + (list_remove_head, list_free): Likewise. + * src/include/preface.h.in (OBJC_FREE): Likewise. + +Fri Jan 2 13:04:53 1998 Adam Fedor + + * doc/Makefile.postamble: Generate html,texi from tmpl.texi files. + * doc/announce.tmpl.texi: Renamed from announce.texi + * doc/faq.tmpl.texi: Likewise. + * doc/gnustep-base.tmpl.texi: Likewise. + * doc/gnustep-howto.tmpl.texi: Likewise. + * doc/gnustep-zones.tmpl.texi: Likewise. + * doc/coding-standards.tmpl.texi: Likewise. + * doc/install.tmpl.texi: Likewise. + * doc/manual.tmpl.texi: Likewise. + * doc/news.tmpl.texi: Likewise. + * doc/readme.tmpl.texi: Likewise. + * doc/todo.tmpl.texi: Likewise. + * NSZone.texi: Removed. + + * STATUS: removed. + * MACHINES: removed. + * doc/status.tmpl.texi: New file. + +Wed Dec 31 13:58:51 1997 Adam Fedor + + * STATUS: Updated status on a few classes. + + * doc/GNUmakefile (TOP_DOC_FILES): Add GNUstep-HOWTO. + * doc/gnustep-howto.texi: Update documentation. + * doc/gnustep-faq.texi: Likewise. + * doc/install.texi: Likewise. + * doc/readme.texi: Likewise. + +Mon Dec 29 09:16:34 1997 Adam Fedor + + * src/Random.m ([Random -randomFloatBetween:and:]): Add lowBound + (Fix suggested by Masatake Yamato ). + +Fri Dec 26 10:25:00 1997 Richard Frith-Macdonald + + * src/NSCalendarDate.m: + ([-dateByAddingYears:months:days:hours:minutes:seconds:]) Fixed + bug in wrapping months when adding date to december. + + * src/NSUserDefaults.m: ([-__createArgumentDictionary]) Fixed to + use command line args beginning with a dash as defaults keys. + Retained old behaviour for -GS and --GS prefixes for backward + compatibility. + +Fri Dec 19 13:09:28 1997 Adam Fedor + + * src/NSGeometry.m (NSPointFromString, NSSizeFromString, + NSRectFromString): New functions. + * src/include/NSGeometry.h: New function defs. + * NSCTemplateValue.m (-description): Use them. + +Tue Dec 16 22:35:00 1997 Richard Frith-Macdonald + + * src/Decoder.m: Modified to use a single, class-wide dummy object + as a placeholder in cross-reference tables. This gives a slight + speed and memory usage improvement. + + * src/MemoryStream.m: Avoid using autorelease where possible in order + to improve efficiency. + + * src/NSConnection.m: ([+rootProxyAtPort:]) modified to refrain from + creating a new connection when we already have one for the given + output port. + + * src/Random.m: ([-randomDie:]) Fixed to confirm to description in + comments. + + * src/TcpPort.m: Changed size field in packets to be 4 bytes long + rather than 2. This allows messages to be more than 64K bytes long + and is essential for things like pasteboard operations. + +Thu Dec 18 16:17:22 1997 Yoo C. Chung + + * src/NSProcessInfo.m (_gnu_process_noobjc_args): Use malloc(). + (_gnu_noobjc_free_vars): Use free(). + +Thu Dec 11 13:58:39 1997 Adam Fedor + + * configure.in: Remove unneeded tests. + * GNUmakefile (SUBPROJECTS): Remove checks and examples. + +Tue Dec 9 17:47:21 1997 Yoo C. Chung + + * src/include/behavior.h: Include . + * src/NSProcessInfo.m: Include . + * src/NSPipe.m: Include . + * src/NSPage.m: Include . + * src/NSLog.m: Include . + * src/NSHost.m: Include . + * src/NSDistributedLock.m: Include . + * src/NSDictionary.m: Include . + + * src/NSBundle.m ([NSBundle + +_bundleResourcePathsWithRootPath:subPath:]): Removed unused + variables. + + * src/NSArray.m: Include + ([NSArrayNonCore -descriptionWithIndent:]): Changed argument to + unsigned. + + * src/UnixFileHandle.m: Include and . + * src/UdpPort.m: Include . + * src/StdioStream.m: Include . + * src/Coder.m: Include . + + * src/NSUser.m (NSHomeDirectoryForUser): Use objc_malloc(). + + * src/NSData.m ([NSDataMalloc -initWithCoder:]): Check malloc. + ([NSMutableDataMalloc -initWithCoder:]): Likewise. + + * src/List.m: Removed unused macros. + +Sun Dec 7 23:22:07 1997 Stevo Crvenkovski + + * src/NSGCString.m ([NSGMutableCString + -initWithCharactersNoCopy:length:freeWhenDone:]): Changed to + invoke instance of NSGMutableString. + * src/NSGString.m ([NSGMutableString + -initWithCStringNoCopy:length:freeWhenDone:]): Changed to invoke + instance of NSGMutableCString. + + * src/NSGString.m ([NSGMutableString + -initWithCharactersNoCopy:length:freeWhenDone:]): Method + implemented. Based on code by Richard Frith-Macdonald + + + * src/NSGCString.m ([NSGMutableCString + -initWithCStringNoCopy:length:freeWhenDone:]): Changed to fix + memory leak in this method. Code by Richard Frith-Macdonald + + + * src/NSGCString.m ([NSGCString -dealoc]): Changed to avoid + compiler warning. + * src/NSGCString.m ([NSGCString -initWithCStringNoCopy: length: + freeWhenDone:]): Changed to conform with class cluster definition. + * src/NSGString.m ([NSGString -initWithCharactersNoCopy: length: + freeWhenDone:]): Idem. + * src/NSGCString.m ([NSGMutableCString -initWithCapacity]): Idem. + * src/NSString.m ([NSString -init]): Idem. + * src/NSGCString.m ([NSGCString -init]): Method implemented to + conform with class cluster definition. + * src/NSGCString.m ([NSGMutableCString -init]): Idem. + * src/NSGString.m ([NSGString -init]): Idem. + * src/NSGString.m ([NSGMutableString -init]): Idem. + + * src/NSString.m ([NSString -replaceCharactersInRange: + withString:]): Change to be subclass responsibillty. This should + be pimitive method. + + * src/NSGString.m ([NSGString -replaceCharactersInRange: + withString:]): Move implementation from NSString here. + * src/NSGCString.m ([NSGCString -replaceCharactersInRange: + withString:]): Idem. + + * src/NSString.m ([NSString +stringWithString]): New OPENSTEP + method implemented. + * src/NSString.m ([NSString -substringFromRange]): Method + implemented + * src/NSString.m ([NSString -substringWithRange]): New OPENSTEP + method implemented. + * src/NSString.m ([NSString -hash]): Remove C String + implementation as Unicode implementation now works. + * src/NSString.m ([NSString -getFileSystemRepresentation]) Correct + name of method. + * src/NSString.m ([NSString -_normalizedString]):Bug fixed. + * src/NSString.m ([NSString -mutableCopy]): Implemented to avoid + compiler warning. Why is this warning anyway? Method should be + inherited from NSObject. + * src/NSString.m ([NSString -deleteCharactersInRange:]): Method + implemented. + * src/NSString.m ([NSString -insertString: atIndex:]): Method + implemented. + * src/NSString.m ([NSString -setString:]): Method implemented. + * src/NSString.h ([NSString +stringWithString:]): Method declared. + * src/NSString.h ([NSString -substringWithRange:]): Method + declared. + +Fri Nov 28 12:52:06 1997 Scott Christley + + * Tools/GNUmakefile (OBJC_PROGRAM_NAME): Reverse prior change. + * Tools/Makefile.postamble (after-install): Install gdomap + from the proper directory. + * checks/nsattributesstring.m (NSFontAttributeName): New variable. + (NSForegroundColorAttributeName): New variable. + (NSBackgroundColorAttributeName): New variable. + + * src/GNUmakefile: Install headers in gnustep not gnustep/base. + * src/Makefile.preamble (ADDITIONAL_INSTALL_DIRS): Likewise. + + * src/NSTimeZone.m (LOCALDBKEY, ZONES_DIR): Make NSStrings. + (+getTimeZoneFile:): ZONES_DIR is NSString. + + * src/o_map.m (INLINE): Use macro so its easy to un-inline + functions if debugging. + +Wed Nov 26 16:08:20 1997 Adam Fedor + + * Tools/GNUmakefile (OBJC-PROGRAM_NAME): Change from underscore. + * checks/GNUmakefile: include new test-tool.make. + * examples/GNUmakefile: Likewise. + * src/Makefile.postamble (FORCE): New target. + + * src/ostream.m (_ostream_new_stream_struct): Use "r+" for append + or read/write mode. + +Wed Nov 26 11:30:00 1997 Richard Frith-Macdonald + + * Tools/dwrite.m: Fix problem with uninitialised variable. + + * src/NSConnection.m: Added [+connectionByOutPort:] and + [+connectionByInPort:OutPort:] methods to lookup connections for + use by other barts of the DO system. + Added [-_service_retain:] and [-retainTraget:] methods to handle + special case of retaining of proxies. + + * src/NSDistantObject.m: ([+newWithCoder:]) modified to fix two + problems to do with proxies passed in a triangle - + 1. if passed a proxy to an object in a third server, use any + existing connection to that third server if possible rather + than creating a new connection. + 2. if passed a proxy to an object in a third server, tell the + third server to retain it's local object for us. + + * src/NSUserDefaults.m: various modifications to fix for getting + the defaults for a user other than the logged in user - eg when a + server process runs setuid to a particular user ID and wants to + read the defaults for that user rather than the user who actually + launched it. Also - added code to break the lock on the defaults + database if it is more than five minutes old. + + * src/include/DistributedObjects.h: modifications for retaining + objects. + + * src/include/NSPortCoder.h: removed unneccessary include. + + * src/include/NSUserDefaults.h: minor changes for coping with + tasks runnning setuid to a user other than the person who launched + them. + +Fri Nov 21 13:14:31 1997 Adam Fedor + + * src/NSAttributedString.m (-initWIthString:attributes:): Make + designated initializer. + * src/NSGAttributedString.m: (_initWithString): Save value of + textChars. + * src/include/NSAttributedString.h: Update comments, Remove + attribute strings. + Fixes submitted by . + +Tue Nov 18 14:13:13 1997 Adam Fedor + + * src/include/NSNotification.h: Correct placeholder size (bug + submitted by Ville-Pertti Keinonen . + +Wed Nov 12 10:10:33 1997 Adam Fedor + + * src/NSString.m (-initWithFormat:args:): Print a "null string" + when string in format is nil. + * src/objc-load.c: Remove ifdef HAVE_CONFIG_H. + + * doc/gnustep-howto.texi: Update for new gdb patch file. + +Wed Nov 12 12:30:00 1997 Richard Frith-Macdonald + + * src/Collection.m: ([Enumerator -dealloc]) added call dealloction + method in super class to fix memory leak. + + * src/KeyedCollection.m: Removed initialisation and deallocation + methods for KeyEnumerator as these are done in its super class. + + * src/NSCharacterSet.m: ([-invertedSet:]) added autorelease for data + object (created by mutableCopy) in order to fix memory leak. + + * src/NSData.m: Replaced line accidentally deleted in section only + compiled in for systems without shared memory. + +Thu Nov 6 19:00:00 1997 Richard Frith-Macdonald + + * Tools/Makefile.postamble: Modified to install gdomap in cpu/os + specific location. + + * src/Dictionary.m: ([-descriptionWithIndent:]) Modified to encode + empty strings as "" so that ascii property lists work when a + dictionary entry is empty. + + * src/NSArray.m: ([-descriptionWithIndent:]) Modified to encode empty + strings as "" so that ascii property lists work when a string in the + array is empty. + + * src/TcpPort.m: Modified in various places so that we look in the + correct location for gdomap. + +Thu Nov 6 10:14:39 1997 Adam Fedor + + * src/GNUmakefile (DEFS): Remove PLATFORM_OS. + * src/NSBundle.m: Change platform to gnustep_target_os. + + * src/ostream.m (ostream_getc, ostream_read, ostream_vscanf): + Return EOF if stream_obj returned 0. + + * doc/gnustep-howto.texi: Use today's date. + +Wed Nov 5 16:10:32 1997 Scott Christley + + * src/Invocation.m (-setArgument:atIndex:): Add OpenStep method. + * src/NSGSet.m (-member:): Delete method. + * src/Set.m (-member:): New method. + * src/NSMethodSignature.m (-methodReturnType): Return value. + + * configure.in: Remove check for threads library. + + * checks/heap.m: Don't prototype random. + + * Remove dependency upon config.h by headers files and include + directly in source files because the config.h file is system + dependent and should not be installed. + * src/Archiver.m: Include config.h. + * src/Array.m: Likewise. + * src/Bag.m: Likewise. + * src/BinaryCStream.m: Likewise. + * src/BinaryTree.m: Likewise. + * src/BinaryTreeNode.m: Likewise. + * src/CStream.m: Likewise. + * src/CircularArray.m: Likewise. + * src/Coder.m: Likewise. + * src/Collection.m: Likewise. + * src/ConnectedCoder.m: Likewise. + * src/Connection.m: Likewise. + * src/Decoder.m: Likewise. + * src/DelegatePool.m: Likewise. + * src/Dictionary.m: Likewise. + * src/Encoder.m: Likewise. + * src/GapArray.m: Likewise. + * src/HashTable.m: Likewise. + * src/Heap.m: Likewise. + * src/IndexedCollection.m: Likewise. + * src/Invocation.m: Likewise. + * src/KeyedCollection.m: Likewise. + * src/LinkedList.m: Likewise. + * src/LinkedListNode.m: Likewise. + * src/List.m: Likewise. + * src/Lock.m: Likewise. + * src/MachPort.m: Likewise. + * src/Magnitude.m: Likewise. + * src/MallocAddress.m: Likewise. + * src/MappedCollector.m: Likewise. + * src/MemoryStream.m: Likewise. + * src/NSAllocateObject.m: Likewise. + * src/NSArchiver.m: Likewise. + * src/NSArray.m: Likewise. + * src/NSAssertionHandler.m: Likewise. + * src/NSAttributedString.m: Likewise. + * src/NSAutoreleasePool.m: Likewise. + * src/NSBitmapCharSet.m: Likewise. + * src/NSBundle.m: Likewise. + * src/NSCTemplateValue.m: Likewise. + * src/NSCalendarDate.m: Likewise. + * src/NSCallBacks.m: Likewise. + * src/NSCharacterSet.m: Likewise. + * src/NSCoder.m: Likewise. + * src/NSConcreteNumber.m: Likewise. + * src/NSConcreteValue.m: Likewise. + * src/NSConnection.m: Likewise. + * src/NSCopyObject.m: Likewise. + * src/NSCountedSet.m: Likewise. + * src/NSData.m: Likewise. + * src/NSDate.m: Likewise. + * src/NSDeallocateObject.m: Likewise. + * src/NSDebug.m: Likewise. + * src/NSDictionary.m: Likewise. + * src/NSDistantObject.m: Likewise. + * src/NSDistributedLock.m: Likewise. + * src/NSEnumerator.m: Likewise. + * src/NSException.m: Likewise. + * src/NSFileHandle.m: Likewise. + * src/NSFileManager.m: Likewise. + * src/NSGArchiver.m: Likewise. + * src/NSGArray.m: Likewise. + * src/NSGAttributedString.m: Likewise. + * src/NSGCString.m: Likewise. + * src/NSGCountedSet.m: Likewise. + * src/NSGDictionary.m: Likewise. + * src/NSGSequence.m: Likewise. + * src/NSGSet.m: Likewise. + * src/NSGString.m: Likewise. + * src/NSGeometry.m: Likewise. + * src/NSHashTable.m: Likewise. + * src/NSHost.m: Likewise. + * src/NSInvocation.m: Likewise. + * src/NSLock.m: Likewise. + * src/NSLog.m: Likewise. + * src/NSMapTable.m: Likewise. + * src/NSMethodSignature.m: Likewise. + * src/NSNotification.m: Likewise. + * src/NSNotificationCenter.m: Likewise. + * src/NSNotificationQueue.m: Likewise. + * src/NSNumber.m: Likewise. + * src/NSObjCRuntime.m: Likewise. + * src/NSObject.m: Likewise. + * src/NSPage.m: Likewise. + * src/NSPipe.m: Likewise. + * src/NSPort.m: Likewise. + * src/NSPortCoder.m: Likewise. + * src/NSProcessInfo.m: Likewise. + * src/NSProxy.m: Likewise. + * src/NSRange.m: Likewise. + * src/NSRunLoop.m: Likewise. + * src/NSScanner.m: Likewise. + * src/NSSerializer.m: Likewise. + * src/NSSet.m: Likewise. + * src/NSString.m: Likewise. + * src/NSThread.m: Likewise. + * src/NSTimeZone.m: Likewise. + * src/NSTimer.m: Likewise. + * src/NSUser.m: Likewise. + * src/NSUserDefaults.m: Likewise. + * src/NSValue.m: Likewise. + * src/NSZone.m: Likewise. + * src/NXStringTable.m: Likewise. + * src/Notification.m: Likewise. + * src/NotificationDispatcher.m: Likewise. + * src/OrderedCollection.m: Likewise. + * src/Port.m: Likewise. + * src/Proxy.m: Likewise. + * src/Queue.m: Likewise. + * src/RBTree.m: Likewise. + * src/RBTreeNode.m: Likewise. + * src/RNGAdditiveCongruential.m: Likewise. + * src/RNGBerkeley.m: Likewise. + * src/Random.m: Likewise. + * src/RawCStream.m: Likewise. + * src/Set.m: Likewise. + * src/SplayTree.m: Likewise. + * src/Stack.m: Likewise. + * src/StdioStream.m: Likewise. + * src/Storage.m: Likewise. + * src/Stream.m: Likewise. + * src/TcpPort.m: Likewise. + * src/TextCStream.m: Likewise. + * src/Time.m: Likewise. + * src/UdpPort.m: Likewise. + * src/Unicode.m: Likewise. + * src/UnixFileHandle.m: Likewise. + * src/behavior.m: Likewise. + * src/externs.m: Likewise. + * src/find_exec.c: Likewise. + * src/md5.c: Likewise. + * src/mframe.m: Likewise. + * src/o_array.m: Likewise. + * src/o_cbs.m: Likewise. + * src/o_hash.m: Likewise. + * src/o_list.m: Likewise. + * src/o_map.m: Likewise. + * src/o_x_bas.m.in: Likewise. + * src/o_x_cbs.m.in: Likewise. + * src/objc-gnu2next.m: Likewise. + * src/ostream.m: Likewise. + * src/preface.m: Likewise. + * src/win32-entry.m: Likewise. + * src/include/preface.h.in: Do not include config.h + + * src/GNUmakefile: Don't install config.h; add target so that + config.h gets moved to target cpu/os dependent directory. + * src/Makefile.postamble: Move config.h to target directory. + * src/Makefile.preamble: Add target directory to include dirs. + + * src/NSCalendarDate.m (-initWithString:calendarFormat:locale:): + Parse the time zone abbreviation and am/pm indicator. + + * src/md5.c: Correct license comment. + +Wed Nov 5 13:36:45 1997 Adam Fedor + + * doc/GNUmakefile (TEXT_FILES): Add GNUstep-HOWTO + * doc/Makefile.postamble (GNUstep-HOWTO): New target. + * doc/gnustep-howto.texi: New file. + +Sun Nov 2 15:47:10 1997 Yoo C. Chung + + * src/NSTimeZone.m: More effecient implementation of [NSTimeZone + -abbreviationDictionary] object enumerator. + More robust error logging. Description method changes. + +Sat Nov 1 06:45:00 1997 Richard Frith-Macdonald + + * src/NSDistributedLock: New OPENSTEP class implementation. + * src/GNUmakefile: Add new class to list. + + * src/NSFileManager: implemented method ([-removeFileAtPath:handler:]) + + * src/NSString.m: Added two new (OPENSTEP) methods - + ([-fileSystemRepresentation]) and + ([-fileSystemRepresentation:maxLength:]) + + * src/NSUserDefaults.m: ([-synchronize]) modified to do locking + using NSDistributedLock + + * src/Foundation/NSDistributedLock.h: New OPENSTEP class definition. + + * src/Foundation/NSString.h: Added two new (OPENSTEP) methods. + +Fri Oct 31 17:00:29 1997 Adam Fedor + + * GNUmakefile (DIST_FILES): Update files. + * src/GNUmakefile: Likewise. + * checks/GNUmakefile: Likewise. + * examples/GNUmakefile: Likewise. + * doc/GNUmakefile: Likewise. + * admin/GNUmakefile: Likewise. + * NSCharacterSets/GNUmakefile: Likewise. + * NSTimeZones/GNUmakefile: Likewise. + * Tools/GNUmakefile: Likewise. + * Tools/Makefile.postamble (copy-dist): New target. + +Fri Oct 31 15:16:46 1997 Adam Fedor + + * NSBundle.README: Removed obsolete file. + * README.threads: Likewise. + * RELEASE-NOTES: Likewise. + * GNUmakefile: Remove obsolete files from DIST. Make Tools the + second build target. + + * Tools/GNUmakefile: Include tool.make and make dread, etc as + tools. + * Tools/Makefile.preamble: Add uninstalled includes and libraries + from ../src. + + * Tools/dremove.m: Add errno.h. + + * doc/GNUmakefile: Remove unneeded top-level text files. + * doc/announce.texi: Update. + * doc/install.texi: Likewise. + * doc/news.texi: Likewise. + * doc/readme.texi: Likewise. + * doc/todo.texi: Likewise. + +Fri Oct 31 10:26:16 1997 Adam Fedor + + * GNUmakefile: Renamed from Makefile. + * src/GNUmakefile: Likewise. + * checks/GNUmakefile: Likewise. + * examples/GNUmakefile: Likewise. + * doc/GNUmakefile: Likewise. + * admin/GNUmakefile: Likewise. + * NSCharacterSets/GNUmakefile: Likewise. + * NSTimeZones/GNUmakefile: Likewise. + * Makefile: Dummy make, tells user to use GNU make. + + * doc/GNUMakefile: Make more text files. + * doc/Makefile.postamble: Clean up to make text files. + + * NSBundle.README: Update. + * examples/Makefile.example.in: Remove obsolete file. + * examples/configure.example.in: Likewise. + +Thu Oct 30 15:20:00 1997 Richard Frith-Macdonald + + * Tools/GNUmakefile: New format make file with the addition of three + new tools - dread, dwrite, dremove + + * Tools/dread.m: New command line tool to read user defaults database. + * Tools/dremove.m: New command line tool to remove defaults from + database. + * Tools/dwrite.m: New command line tool to modify user defaults. + + * src/Dictionary.m: ([-descriptionWithIndent:]) modified to produce + better property-list type description with escaped special chars. + + * src/NSArray.m: ([-description]) modified to produce better + property-list type description with escaped special chars. + + * src/NSData.m: ([-writeToFile:atomically:]) changed code for handling + temporary file to avoid failure due to cross-device links. + + * src/NSDictionary.m: ([-writeToFile:atomically:]) implemented this + method using NSString. + + * src/NSString.m: ([-stringByAppendingString:]) fixed memory leak. + Added new method ([-quotedCString]) for use in writing property lists. + Modified ([-appendFormat:]) so that it doesn't leave temporary strings + to be autoreleased - small efficiency gain. + + * src/NSUserDefaults.m: Various minor fixes to get saving to the + defaults database to work. + + * src/Foundation/NSString.h: Added (GNUstep specific) method - + [-quotedCString]. + + * src/Foundation/NSUserDefaults.h: Added (OPENSTEP specific) method - + [-setSearchList:]. + +Thu Oct 30 13:38:51 1997 Scott Christley + + * Makefile (GNUSTEP_INSTALLATION_DIR): Make default be system. + * NSCharacterSets/Makefile: Likewise. + * NSTimeZones/Makefile: Likewise. + * Tools/Makefile: Likewise. Use objc.make instead of tool.make + as the file does not require the foundation library. + * admin/Makefile: Likewise. + * checks/Makefile: Likewise. Use test.make so that + the programs do not get installed. + * doc/Makefile: Likewise. + * examples/Makefile: Likewise. Use test.make so that the + programs do not get installed. + * src/Makefile: Likewise. Alter names to correspond with + the new recursive library.make. + * src/Makefile.postamble: Uninstall header files. + + * src/NSBundle.m (+mainBundle): Strip off library combo, target + os and target cpu is they are part of the directory list to + the executable so that the bundle path is the top level dir. + + * src/externs.m (NSNonRetainedObjectHashCallbacks): Correct name. + +Thu Oct 30 14:32:28 1997 Adam Fedor + + * Makefile (GNUSTEP_INSTALLATION_DIR): New variable. + * checks/Makefile (TOOL_NAME): Remove duplicate nsattributedstring. + * src/Makefile: Add libgnustep-base_ prefix to appropriate + variables. + + * src/NSProxy.m: Add limits.h for Solaris. + +Tue Oct 28 10:05:00 1997 Richard Frith-Macdonald + + * src/NSData.m: Added [-replacementObjectForPortCoder:] method to + ensure that NSData objects are always sent bycopy. + + * src/mframe.m: Modified mframe_do_call() and mframe_build_return() + to encode/decode a dummy integer value where a method returns void + but is NOT declared as being oneway. + +Mon Oct 27 16:15:00 1997 Richard Frith-Macdonald + + * Makefile: Added Tools subproject + + * NSTimeZones/Makefile.postamble: Added distclean code to remove + time-zone files leaving only the tar image. + + * Tools/Makefile: New make file added. + + * Tools/Makefile.postamble: New file. + + * Tools/Makefile.preamble: New file. + + * Tools/gdomap.c: Moved from the src directory with some minor + bug fixes and easing of restrictions on deregistering a name. + + * Tools/gdomap.h: Moved from the src directory with some minor + changes and improvements to comments. + + * checks/Makefile.postamble: Added some stuff for distclean to + remove some fo the temporary data files. + + * checks/Makefile.preamble: Modified to compile with -g flag + even if being linked with non-debug libraries. + + * checks/nsdate.m: Added checks for new NSCalendarDate features. + + * src/Coder.m: ([-initForReadingWithData:]) modified use of the + [-retainCount] method for newly corrected version. + + * src/Makefile: Removed references to gdomap.[hc] + + * src/Makefile.postamble: distclean now removes some automatically + generated source files. + + * src/NSBundle.m: Removed own reference counting support in favour + of using the standard mechanism but intercepting [-release] to + change deallocation behaviour. + + * src/NSCalendarDate.m: Implemented [-dayOfWeek], added support for + week day names (and abbreviations) in descriptions. Implemented + some missing formatting directives in descriptions, Fixed the + [-initWithYears:months:days:hours:minutes:seconds:timeZone:] method + to use the supplied time zone correctly. + Implemented [-dateByAddingYears:months:days:hours:minutes:seconds]. + Implemented [-years:months:days:hours:minutes:seconds:sinceDate:]. + + * src/NSData.m: Fixed shared memory to only remove shared-memory IDs + from the system when the last object having mapped the memory is + deallocated. + + * src/NSObject.m: ([-retainCount]) corrected to return the number of + times the object has been retained. + ([-autorelease]) use [-retainCount] so that this works with classes + that have implemented their own retain./release/retainCount. + + * src/NSProxy.m: Fixed retain counting scheme so that [-retainCount] + returns the correct value. + + * src/NSRunLoop.m: ([-runMode:beforeDate:]) fixed possible problem + with passing a date obejct which might have been released unexpectedly. + + * src/NotificationDispatcher.m: Fixed retain counting scheme so that + [-retainCount] returns the correct value. + + * src/Proxy.m: Fixed retain counting scheme so that [-retainCount] + returns the correct value. + + * src/TcpPort.m: Modified to expect to find gdomap in the Tools + directory of the new GNUstep directory standard. + + * src/include/NSBundle.h: Removed unneeded retsain count variable. + + * src/include/NSData.h: Conform to NSCoding protocol. + + * src/include/NSDate.h: Added two OPENSTEP methods. + +Fri Oct 24 14:36:23 1997 Adam Fedor + + * Removed unused files. + * checks/beh.m, checks/float.c: Removed + * examples/nx-client.m, examples/nx-server.m, + examples/port-client.m, examples/port-server.m: Likewise. + * src/AutoreleasePool.m, src/AutoreleaseStack.m, + src/BinaryTreeEltNode.m, src/ConstantString.m, + src/EltNodeCollector.m, src/LinkedListEltNode.m, + src/Makefile.sed.nt, src/MethodSignature.m, src/NXConnection.m, + src/NXProtocolChecker.m, src/NXProxy.m, src/NotificationQueue.m, + src/ObjectRetaining.m, src/ProtocolEnforcer.m, src/RBTreeEltNode.m, + src/ReleasePool.m, src/RetainingNotifier.m, src/Ring.m, + src/RunLoop.m, src/SocketPort.m, src/SunRpcPort.m, src/Thread.m, + src/Tree.m, src/TreeNode.m, src/argframe.m, src/data.m, + src/eltfuncs.m, src/gnu4next.m, src/gnu4nextrt.m, + src/o_vprintf.c, src/vfscanf.c: Likewise. + * src/include/AutoreleasePool.h, src/include/AutoreleaseStack.h, + src/include/BinaryTreeEltNode.h, src/include/LinkedListEltNode.h, + src/include/RBTreeEltNode.h, src/include/SmallInt.h, + src/include/SocketPort.h, src/include/abort.h, + src/include/allocs.h, src/include/atoz.h, src/include/bitops.h, + src/include/data.h, src/include/magic.h, src/include/minmax.h, + src/include/number.h: Likewise. + +Fri Oct 24 20:16:14 1997 Yoo C. Chung + + * src/StdioStream.m ([StdioStream -dealloc]): Check fp before + closing. + +Wed Oct 22 19:54:07 1997 Yoo C. Chung + + * src/NSTimeZone.m ([NSTimeZone +initialize]): Fallback time zone + now only set to UTC. + (NSConcreteTimeZoneDetail): Changed method. + ([NSConcreteTimeZoneDetail -timeZoneDetailForDate:]): New method. + ([NSConcreteTimeZoneDetail -timeZoneName]): Likewise. + ([NSConcreteTimeZoneDetail -timeZoneDetailArray]): Likewise. + ([NSTimeZone +timeZoneWithName:]): Updated for changed methods in + NSTimeZoneDetail. + ([NSInternalTimeTransition -description]): Print class name. + ([NSConcreteTimeZone -description]): Likewise. + ([NSConcreteAbsoluteTimeZone -description]): Likewise. + ([NSConcreteTimeZoneDetail -description]): Likewise. + +Mon Oct 20 09:51:53 1997 Adam Fedor + + * Version: Update ftp sites. + * checks/Philosopher.h: Removed. + * checks/Philosopher.m: Likewise. + * checks/basic-old.m: Likewise. + * checks/nsarchiving.m: Likewise. + * src/Foundation/NSUser.h: Likewise. + * src/Foundation/x-basics.h.in: Likewise. + * src/Foundation/x-callbacks.h.in: Likewise. + * checks/Makefile (HDRS): Add oldserver.h. + * doc/Makefile: Add other texi files. + * NSCharacterSets/Makefile (DIST_FILES): Remove Makefile.preamble. + * NSTimeZones/Makefile (DIST_FILES): Likewise. + * NSCharacterSets/Makefile.postamble (copy-dist): Correct copy. + * NSTimeZones/Makefile.postamble (copy-dist): Correct dist files. + +Sat Oct 18 12:27:56 1997 Scott Christley + + * Get NSTimeZone to work in GNUstep directory structure. + * src/NSTimeZone.m (+getAbbreviationFile): New method. + (+getRegionsFiles, +getLocalTimeFile): New methods. + (+getTimeZoneFile:): New method. + (TIME_ZONE_DIR, ABBREV_DICT, REGIONS_FILE, LOCAL_TIME_FILE, ZONES_DIR): + Correct paths. + (+initialize): Use private method to get resource file name. + (+timeZoneWithName:, +abbreviationMap, +timeZoneArray): Likewise. + * checks/create-abbrevs.m: New file. + * checks/create-regions.m: New file. + * checks/nstimezone.m: New file. + * checks/Makefile: Add new checks. + + * src/NSBundle.m + (+pathForResource:ofType:inRootPath:inDirectory:withVersion:): + If no extension then look for file without extension before + calling _bundle_path_for_name() which does not handle the case + where the resource name contains a directory path within it. + + * src/NSBundle.m + (+pathForGNUstepResource:ofType:InDirectory:): New method. + * src/include/NSBundle.h + (+pathForGNUstepResource:ofType:InDirectory:): New method. + +Fri Oct 17 12:44:18 1997 Scott Christley + + * src/NotificationDispatcher.m (-init): Make the key callbacks + be NSObject for the notification name map table so that + isEqual: is used for comparison. + +Fri Oct 17 09:16:36 1997 Adam Fedor + + * checks/Makefile.postamble: Add English.lproj dir to copy-dist. + + * src/NSCalendarDate.m (-descriptionWithCalendarFormat:locale): + Use VSPRINTF_LENGTH macro to return string length. + * src/NSData.m ([NSMutableDataMalloc -setCapacity:): Use realloc + instead of objc_realloc. + * src/NSHost.m (-_initWithHostEntry:): Use memcpy instead of + memmove. + * src/UnixFileHandle.m (getAddr): Remove uneeded htonl. + Changes from Richard Frith-Macdonald . + + * src/NSTimeZone.m: Reformat with better spacing. + ([NSTimeZone +initialize]): Find local time zone. + Changes from Yoo C. Chung . + +Thu Oct 16 16:14:31 1997 Scott Christley + + * checks/Makefile: Add variables to create bundle example. + * checks/NXStringTable.example: Move to English.lproj subdir. + + * checks/nsarray.m: Turn off behaviour debugging. + + * checks/nsdictionary.m: Add isEqual check. + + * checks/values.m: Add isEqual check. + + * src/Collection.m (isEqual:): Don't require that the classes + be the same. + + * src/NSDictionary.m: Fix implementation by creating + NSDictionaryNonCore and NSMutableDictionaryNonCore classes; move + implemented methods to non-core classes. + * src/include/NSDictionary.h: Likewise. + * src/NSGDictionary.m: Add behaviour from non-core classes. + + * src/ObjCRuntime.m (NSClassFromString): Use objc_lookup_class + instead of objc_get_class so that the program will not abort + if the class is not found. + + * src/NSTimeZone.M (TIME_ZONE_DIR): Eliminate reference to + obsolete GNUSTEP_INSTALL_DIR macro. + + * src/NSZone.m: Use default zone if zone is NULL. + * src/include/NSZone.h: Likewise. + + * src/behavior.m (behavior_class_add_class): Add debug message. + + * src/Makefile: Define macros for the target directory and + library combo that the library is compiled for. + * src/NSBundle.m (gnustep_target_dir, library_combo): New variables. + (bundle_object_name): Use the target directory and library + combo when determine where the executable file is located. + (+_bundleResourcePathsWithRootPath:subPath:): Don't search + directory specified by GNUSTEP_LIBRARY_PATH environment variable. + + * src/NSCharacterSet.m (+_bitmapForSet:number:): Rewrite to search + the user, local, and system directories based upon environment + variable values. + + * src/NSData.m (getBytes:range:): Fix range check. + (subdataWithRange:, replaceBytesInRange:withBytes:): Likewise. + (resetBytesInRange:): Likewise. + +Wed Oct 1 14:44:17 1997 Adam Fedor + + * src/NSConnection.m ([-registerName:]): Remove + duplicate method. + * src/NSDistantObject.m ([-encodeWithCoder:]): Likewise. + * src/Proxy.m: ([NSObject -selectorTypeForProxy]): Likewise. + + * Makefile: Add new subproject. + * NSTimeZones: New directory. + * NSTimeZones/Makefile: New file. + * NSTimeZones/Makefile.postamble: Likewise. + * NSTimeZones/NSTimeZones.tar: Likewise. + +Tue Sep 30 08:57:44 1997 Adam Fedor + + * src/NSData.m: Remove obsolete includes. + * src/NSMutableData.m: Remove file. + * src/NSSerializer.m: Remove references to obsolete data classes. + +Sun Sep 28 21:15:00 1997 Richard Frith-Macdonald + + * checks/nsdata.m: Added a whole lot of trivial checks. + + * checks/oldserver.h: Added include file for oldserver.m, oldclient.m + + * src/Coder.m: ([-initForWritingWithMutableData:]) added code to + wrap the NSMutableData object inside a MemoryStream since + NSMutableData no longer conforms to the MemoryStreaming protocol. + ([-initForReadingWithData:]) added code to wrap the NSData object + inside a MemoryStream. + ([+unarchiveObjectWithData:]) added code to wrap the NSData object + inside a MemoryStream. + ([-classForPortCoder:]) changed to [-classForPortCoder] to conform + to OpenStep spec. + + * src/Makefile.in: Removed NSGData.[hm] and NSHData.[hm] + + * src/MemoryStream.m: Rewritten to use NSData and NSMutableData + objects to hold the memory. + + * src/NSAttributedString.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/NSData.m: Extensively rewritten to have the OPENSTEP class + cluster architecture. Should support the full OPENSTEP api and + have shared memory support and static buffer support as extensions. + + * src/NSDate.m: ([-classForPortCoder:]) changed to [-classForPortCoder] + to conform to OpenStep spec. + + * src/NSDistantObject.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/NSGArchiver.m: ([-archiverData]) modified to cope with changes + to NSData and NSMutableData. + + * src/NSGAttributedString.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/NSGCString.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/NSGString.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/NSPortCoder.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + ([-isByCopy]) changed to [-isBycopy] to conform to OpenStep. + + * src/NSString.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/Port.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/StdioStream.m: ([-initWithFilename:fmode:]) fixed excessive + releases of string. ([-initWithFileDescriptor:fmode:]) fixed + excessive releases of string. ([-close]) clear file pointer when + it is closed to prevent attempted operations on bad pointer. + + * src/TcpPort.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. Also multiple + changes to deal with the rewrite of MemoryStream. + + * src/UdpPort.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/UnixFileHandle.m: Numerous changes improving logging and + tidying stuff. failed initialisers should now all return nil + rather than raising exceptions. + + * src/include/MemoryStream.h: Changed this class to use NSData and + NSMutableData to hold its contents. Added methods to initialise + with a data object so we can wrap an NSData or NSMutableData inside + a MemoryStream to give it Streaming behaviour. + + * src/include/NSData.h: Added some extension methods for creating + data objects with static buffers or shared memory buffers. + + * src/include/NSDistantObject.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/include/NSObject.m: ([-classForPortCoder:]) changed to + [-classForPortCoder] to conform to OpenStep spec. + + * src/include/NSPortCoder.m: ([-classForPortCoder:]) changed to + [-classForPortCoder], and ([-isByCopy]) changed to [-isBycopy] to + conform to OpenStep spec. + +Fri Sep 26 20:43:12 1997 Adam Fedor + + * Fix Makefiles so snapshots and releases work again + * Makefile: Include missing DIST_FILES + * Makefile.postamble: Correct csnap projects. + * NSCharacterSets/Makefile: Include missing DIST_FILES. + * admin/Makefile: Likewise. + * admin/Makefile: Correct snap target. + * checks/Makefile: Include missing DIST_FILES. + * checks/Makefile.postamble: New file. + * examples/Makefile: Include missing DIST_FILES. + * examples/Makefile.postamble: New file. + * doc/Makefile.postamble: New file. + * src/Makefile: Include missing DIST_FILES. + * ssrc/Makefile.postamble: Fix AUTHORS depend, copy-dist. + + * STATUS: Update. + * README.foundation: Remove obsolete file. + +Sat Sep 23 10:18:41 2017 Scott Christley + + * Convert to GNUstep makefile package. + * Makefile: New file. + * Makefile.postamble: New file. + * config.mak.in: New file. + * Makefile.in: Delete. + * Makefile.sed.nt: Delete. + * Makeconf: Delete. + * configure.in (AC_OUTPUT): No longer create the makefiles. + * NSCharacterSets/Makefile: New file. + * NSCharacterSets/Makefile.postamble: New file. + * NSCharacterSets/Makefile.in: Delete. + * admin/Makefile: New file. + * admin/Makefile.postamble: New file. + * admin/Makefile.in: Delete + * checks/Makefile: New file. + * checks/Makefile.preamble: New file. + * checks/Makefile.in: Delete. + * checks/Makefile.sed.nt: Delete. + * examples/Makefile: New file. + * examples/Makefile.preamble: New file. + * examples/Makefile.in: Delete. + * src/Makefile: New file. + * src/Makefile.preamble: New file. + * src/Makefile.postamble: New file. + * src/Makefile.in: Delete + + * The installation of the header files was modified slightly + to correspond with the GNUstep makefile package. All OpenStep + headers go into Foundation while the gnustep-base specific + headers go into gnustep/base. + * checks/coder.m: Correct header directory. + * checks/cstream.m: Likewise. + * checks/oldserver.m: Likewise. + * checks/string.m: Likewise. + * src/include/Connection.h: Likewise. + * src/include/NSConnection.h: Likewise. + * src/include/NSPortCoder.h: Likewise. + * src/include/Notification.h: Likewise. + * src/include/NotificationDispatcher.h: Likewise. + +Mon Sep 22 17:14:32 1997 Adam Fedor + + * checks/NSData-test.m: Change main to return int. + * checks/coder.m: Check for nil names -- Solaris can't print NULL + strings. + * checks/nsattributedstring.m: Add test to main. + * checks/values.m: Remove exception handlers. + + * doc/coding-standards.texi: New file. + * doc/Makefile.in: Add new texi file, CODING-STANDARDS target.. + + * src/Collection.m ([ConstantCollection + -_collectionReleaseContents]): Release only if count > 0. + * src/Set.m ([Set dealoc]): Set contents_hash to 0 and call super. + * src/Set.m ([Set count]): If !contents_hash return 0; + + * src/Makefile.in: remove extra Collection.m. + + * src/NSArray.m ([NSArray -initWithObjects:rest:]): REALLOC before + overflow of array. + + * src/NSConcreteValue.m ([NSConcreteValue -initValue:withObjCType:]): + Change exceptions to NSLog and return nil. + +Fri Sep 22 09:50:52 2017 Scott Christley + + * src/NSArray (initWithObjects:rest:): Fix count. + +Tue Sep 16 15:50:39 1997 Adam Fedor + + * src/Dictionary.m ([Dictionary -descriptionWithIndent:]): Rewrite + to pretty-print description. + * src/NSDictionary.m ([NSDictionary -description]): Remove + redundant method implementation. + ([NSDictionary -descriptionWithIndent:]): Likewise. + * src/NSArray.m ([NSArray -descriptionWithIndent:]): Implement. + + * src/NSCTemplateValue ([NSCTemplateValue description]): Add + semicolon to last value. + * src/NSValue: ([NSValue valueFromString:]): New method. + * src/NSNumber: ([NSValue valueFromString:]): Likewise. + * src/include/NSValue.h: Define new method. + + * src/NSCharacterSet.m ([NSCharacterSet -_bitmapForSet:]): Fix + test path name. + + * src/NSString ([NSString initWithFormat:arguments:]): Take care + of formatted string case "%*s". + ([NSString -stringByAppendingPathComponent:]): Exception only if + string starts with '/'. + ([NSString -stringByAppendingPathExtension:]): Likewise. + +Mon Sep 15 21:27:00 1997 Richard Frith-Macdonald + + * src/NSHData.m: Fixed a couple of bugs occurring when allocation of + shared memory segments failed. Also added class methods to query + and set the size of the blocks in which shared memory is allocated. + + * src/include/NSHData.h: Added class methods for query and set of size + of shared memory allocation blocks. + +Sat Sep 13 10:05:57 1997 Scott Christley + + * The GNU tools for building a DLL on Windows only allow functions + and not data to be exported; therefore, all global variables were + moved into a separate file, externs.m, and added to the import + library for the DLL so that those variables would be accessible + outside of the DLL. + * configure.in (PIPE): Make the -pipe a configure option. + (DLLTOOL): Add support for building DLLs. + (disable-static): New configure option to disable the building + of the static library when building a shared library. + (pcthread, pthread, m): Add checks for pcthread and math libraries. + (sys/stat.h, sys/vfs.h, sys/statfs.h, statvfs): Add checks + for filesystem related headers and functions. + (getcwd): Remove duplicate check. + * src/win32-entry.c: Rename to win32-entry.m + * src/externs.m: New file. + * src/libgnustep-base.def: New file. + * src/Connection.m: Move all global variables to externs.m. + * src/NSArchive.m: Likewise. + * src/NSBundle.m: Likewise. + Comment out code that would not compile on WIN32. + * src/NSException.m: Likewise. + (dealloc): Release instance variables. + * src/NSFileManager.m: Likewise. + Add WIN32 specific code. + * src/NSHashTable.m: Likewise. + * src/NSMapTable.m: Likewise. + * src/NSThread.m: Likewise. + (-init): Set the thread data first. + * src/NSUserDefaults.m: Likewise. + * src/Stream.m: Likewise. + * src/TcpPort.m: Likewise. + * src/o_cbs_char_p.m: Likewise. + * src/o_cbs_id.m: Likewise. + * src/o_cbs_int.m: Likewise. + * src/o_cbs_int_p.m: Likewise. + * src/o_cbs_void_p.m: Likewise. + + * checks/Makefile.in: Do not link with math library. + * checks/NSData-test.m: Correct directory for include files. + * checks/diningPhilosophers.m (WIN32): Check different macro. + * checks/nsattributedstring.m (main): New function. + * checks/nsbundle.m: Do not include for MINGW32. + + * src/Makefile.in: Add support for building a DLL. Break + out the single install target into multiple targets. + + * src/NSCalendarDate.m (-descriptionWithCalendarFormat:locale:): + Add character string month names. + (short_month, long_month): New static arrays. + * src/NSDate.m (+timeIntervalSinceReferenceDate): Also test _WIN32. + + * src/NSCharacterSet.m (NSCharacterSet_PATH): Don't specify + full path, just bundle directory. + + * src/NSDictionary.m (-initWithContentsOfFile:): Make sure + the returned object is an NSDictionary. + + * src/NSObject.m (initialize): Create global lock. + (-performSelector:, -performSelector:WithObject:) + (-performSelector:withObject:withObject:): New methods. + * src/include/NSObject.h: Add prototype for global lock. + (-performSelector:, -performSelector:WithObject:) + (-performSelector:withObject:withObject:): New methods. + + * src/NSProcessInfo.m (_gnu_process_args): Check if NULL. + For MINGW32, have NSProcessInfo access the global variables directly. + + * src/NSString.m: Add support for different path components + that are supported on WIN32. + (rangeOfCharacterFromSet:options:mask:): Correct assert. + (-componentsSeparatedByString:): Correct calculation of search range. + + * src/NSUser.m: Check _WIN32 macro as well. + * src/Time.m: Likewise. + + * src/RunLoop.m (_AIX): Include header file. + UNIX is vastly different from WIN32 so separate the functionality + into different methods. Move all global variables to externs.m. + (-acceptWIN32InputForMode:beforeDate:): New method. + (-acceptUNIXInputForMode:beforeDate:): New method. + (-acceptInputForMode:beforeDate:): Call the appropriate method + depending upon whether a UNIX or WIN32 system. + + * src/StdioStream.m: Comment out code that would not compile on WIN32. + * src/include/StdioStream.h (-rewindStream): Add prototype. + + * src/find_exec.c: Handle the different path separator in the + PATH environment variable and the different path component + which is supported on WIN32. Also add common WIN32 extensions to + the filename when searching for the executed file. + + * src/include/NSDate.h (-initWithTimeIntervalSince1970:): ADd + missing method prototype. + + * src/include/NSHashTable.h: Move typedefs that were in NSHashTable.m + to here so that externs.m has access to them. + * src/include/NSMapTable.h: Move typedefs that were in NSMapTable.m + to here so that externs.m has access to them. + + * src/include/UdpPort.h (WIN32): Use __WIN32__ macro instead. + + * src/include/fake-main.h: Do not redefine main on MINGW32. + + * src/include/preface.h.in: Add WIN32 specific definition. + +Fri Sep 12 12:27:00 1997 Richard Frith-Macdonald + + * src/NSString.m: Added [-classForPortCoder:]) method for + NXConstantString to prevent minor DO memory leak. + +Fri Sep 12 6:15:00 1997 Richard Frith-Macdonald + + * src/NSAttributedString.m: Added the [-classForPortCoder:] and + [-replacementObjectForPortCoder:] methods to ensure that strings + are always sent over DO bycopy. + + * src/NSDistantObject.m: Fixed the types of the parameters to a few + methods to avoid compiler warnings. + + * src/NSGAttributedString.m: Added the [-classForPortCoder:] and + [-replacementObjectForPortCoder:] methods to ensure that strings + are always sent over DO bycopy. + + * src/NSGCString.m: Added the [-classForPortCoder:] and + [-replacementObjectForPortCoder:] methods to ensure that strings + are always sent over DO bycopy. + + * src/NSGString.m: Added the [-classForPortCoder:] and + [-replacementObjectForPortCoder:] methods to ensure that strings + are always sent over DO bycopy. + + * src/NSHData.m: Added the [-classForPortCoder:] and + [-replacementObjectForPortCoder:] methods to ensure that data + objects are always sent over DO bycopy. + + * src/NSProxy.m: Commented out a couple of methods whose OPENSTEP + style implementation was incomplete so that the old (working) + GNUstep implementation is used. + + * src/NSRunLoop.m: Moved some code around to fix problems with + earlier patch being applied in wrong place. + +Wed Sep 10 18:03:22 1997 Scott Christley + + * config.guess: Update. + * config.sub: Add mingw32. + + * src/NSArray.m (-initWithObjects:rest:): The first object is + allowed to be nil and the count needs to be reduced by one before + calling -initWithObjects:count: + +Tue Sep 9 10:15:00 1997 Richard Frith-Macdonald + + * src/NSConnection.m: Made numerous changes to fix memory leak with + ports never being released and to fix problems in port invalidation + associated with that. Also added code to cope with odd cases like + when a remote application dires while we are waiting for a response + from it. + + * src/NSPort.m: Added [-release] method which ensures that ports + are invlidated before they are finally deallocated. + + * src/NSPortCoder.m: Catch exceptions during attempt to write data. + + * src/NSRunLoop.m: Fixed this so that a count is kept of the + number of times a port has been added to the run loop as per the + OPENSTEP documentation. + + * src/TcpPort.m: Fixed a minor retain/release problem. + + * src/UnixFileHandle.m: Added loads of checks so that attempts to + use a file handle which has been closed will fail/generate an + exception rather than crashing things! Also modified for changes + to NSRunLoop. + + * src/include/NSRunLoop.h: Modified the interface for adding watchers + for events with a count of the number of times they have been added. + + * src/include/Port.h: Removed [-isValid] - now in NSPort. + +Tue Aug 26 15:47:54 1997 Adam Fedor + + * src/NSCTemplateValue.m ([NSCTemplateValue -description]): New + method. + * src/NSConcreteValue.m ([NSConcreteValue -description]): + Likewise. + * src/NSNumber.m ([NSNumber -description]): use -stringValue. + +Fri Aug 29 13:25:51 1997 Adam Fedor + + * src/Makefile.in: Add LIBS macro. + * src/UnixFileHandle.m: Add include for Solaris. + * src/NSHData.m: Include errno.h + +Thu Aug 28 16:15:00 1997 Richard Frith-Macdonald + + * configure.in: Added check for presence of inet_aton(). + + * src/Array.m: Added NSSerializer.m + + * src/NSConnection.m: ([-_initCollectionWithCoder:]): Removed redundant + OBJC_MALLOC() which was causing a memory leak. + + * src/Collection.m: ([-_decodeContentsWithCoder:]): Added code to + release newly decoded contents to avoid massive memory leak. + + * src/Dictionary.m: Restructured deallocation process so that the + dictionary gets deallocated properly rather than just it's contents + being released. + + * src/Makefile.in: Added NSDebug.m and NSDebug.h + + * src/NSAllocateObject.m: Minor modification to permit counting of + the number of instances of any object allocated. + + * src/NSDeallocateObject.m: Minor modification to permit counting of + the number of instances of any object deallocated. + + * src/Debug.m: Added functions for monitoring allocation and + deallocation of objects. Also an implementation of strerror() + for systems which don't have it. + + * src/NSHost.m: minor portability fixes. + + * src/NSPort.m: ([-isValid]): implemented this method. + + * src/NSSerializer.m: Misc tidying up and minor fixes. + + * src/Port.m: Removed retain/release methods - these are handled + by NSObject. + + * src/StdioStream.m: Moved implementation of strerror() to NSDebug.m. + + * src/TcpPort.m: Various alterations to try to ensure that ports + are automatically retained and released correctly. + + * src/UnixFileHandle.m: Various alterations to try to ensure that things + are always released correctly. + + * src/include/NSDebug.h: Interface for debugging facilities. + + * src/include/NSPort.h: Added variable to handle invalidation. + + * src/include/NSSerialization.h: Fixed some errors introduced in last + change. + + * src/include/Port.h: Avoid use of bitfields - some compiler versions + seem to mess up. + + * src/include/config.h.in: Added some constants for NSHData and + UnixFileHandle. + +Tue Aug 19 09:45:00 1997 Richard Frith-Macdonald + + * src/Dictionary.m: Added [-description] to perform OpenStep style + description of dictionary contents (for property-list strings). + + * src/Makefile.in: Added NSSerializer.m + + * src/NSConnection.m: Implemented [+defaultConnection] method. + + * src/NSHData.m: Fixed bug in resizing buffer - when going from + malloced-memory to shared-memory the buffer contents were not being + copied! + + * src/NSSerializer.m: Implementation of the NSSerializer and + NSDeserializer classes for handling property-lists. + + * src/include/NSConnection.h: Added [-makeNewConnection:sender:]. + + * src/include/NSDictionary.h: Added [+dictionaryWithObjectsAndKeys:]. + + * src/include/NSSerialisation.h: Added interface definitions for the + NSSerializer and NSDeserializer clases. + + * src/proplist.l: Fixed pattern definition for matching NSData items + and relaxed rules a little to permit newlines. Also fixed severe + memory leaks. + + * src/proplist.y: Fixed excessive number of autoreleases and + restructured slightly so that temporary objects are released + immediately rather than being autoreleased at the end of the + parse - should avoid out-of-memory problems when parsing huge + property-lists. + +Thu Aug 14 14:00:00 1997 Richard Frith-Macdonald + + * checks/Makefile.in: Renamed client and server to oldclient and + oldserver. Created new versions for OpenStep D.O. Added nsdata and + nshost. + + * checks/NSData-test.m: Updated in line with current NSRange code. + + * checks/client.m: Revised version for OPENSTEP D.O. + + * checks/nsarchiver.m: Added a couple of checks to do with allocation. + + * checks/nsarray.m: Added some retain count checks. + + * checks/nsdata.m: Test memory mapped file initialisation. + + * checks/nshost.m: Basic tests for nshost class. + + * checks/nstimer.m: Changed to use NSRunLoop. + + * checks/oldclient.m: Old version for GNU D.O. + + * checks/oldserver.h: Old version for GNU D.O. + + * checks/oldserver.m: Old version for GNU D.O. + + * checks/server.h: Revised version for OPENSTEP D.O. + + * checks/server.m: Revised version for OPENSTEP D.O. + + * checks/tcpport-client.m: Modified for changed tcpport. + + * checks/tcpport-server.m: Modified for changed tcpport. + + * configure.in: Added checks for mapped file and shared memory support. + + * examples/first-server.m: Include NSRunLoop.h rather than RunLoop.h. + + * examples/second-client.m: Include NSRunLoop.h rather than RunLoop.h. + + * src/ConnectedCoder.m: ([ConnectedEncoder -dismiss]): Changed the + method used to send an encoded packet. + + * src/Connection.m: ([Connection -_service_forwardForProxy:]): Fixed + another memory leak. + + * src/Dictionary.m: Added [-allKeys] and [-allValues] + + * src/Invocation.m: Added methods to encode bycopy over OPENSTEP D.O. + + * src/Makefile.in: Updated for new OPENSTEP D.O. classes etc. + + * src/NSConnection.m: New implementation for OPENSTEP D.O. + + * src/NSData.m: Altered to use NSHData as default concrete class and + added serialization stuff from libFoundation. + + * src/NSDate.m: Added methods to ensure that NSDate objects are sent + over the wire bycopy. + + * src/NSDistantObject: New implementation of this OPENSTEP class based + on code from Proxy.m + + * src/NSFileHandle.m: Changed notification names for GNUstep extensions + to have a GS prefix rather than an NS prefix. + + * src/NSGArchiver.m: Changed to work using NSHData objects. + + * src/NSHData.m: New version of NSData which supports memory mapped + files and shared memory for large objects. + + * src/NSHost.m: A few minor changes to get this to compile without + warnings under Linux. + + * src/NSPort.m: Implementation of this OPENSTEP class as a base class + for real port objects. + + * src/NSPortCoder.m: New implementation of this OPENSTEP class based on + the code from ConnectedCoder.m + + * src/NSProxy.m: New implementation of this class. + + * src/NSRange.m: (NSMakeRange()): added check for possible integer + overflow. + + * src/NSRunLoop.m: Complete implementation of OPENSTEP API based on + the code from RunLoop.m with some rewriting and lots of additions. + + * src/NSTimer.m: Altered to use NSRunLoop instead of RunLoop + + * src/Port.m: Changed to use timeouts when sending packets, use the + OpenStep notification names, and be encoded bycopy with NSConnection. + + * src/RunLoop.m: removed this file - NSRunLoop does everything. + + * src/TcpPort.m: Alterations for revised version of nameserver + protocol and to perform timeouts when sending data. + + * src/UnixFileHandle.m: Updated for changes in notification names and + NSRunLoop class. + + * src/gdomap.c: Improved startup time, changed nameserver protocol to + permit 4-byte port IDs (eg mach ports) and to permit the nameserver + to be used by non-Distributed-Objects applications. + + * src/gdomap.c: Imroved nameserver protocol. + + * src/include/DistributedObjects.h: New header file to contain + interface information which is only for internal used by the + distributed objects system. + + * src/include/NSConnection.h: New interface definition file. + + * src/include/NSData.h: Corrected a few methods to conform to OpenStep. + + * src/include/NSDictionary.h: Changed methods to require NSObject keys + rather than NSStrings. + + * src/include/NSDistantObject.h: New interface definition file. + + * src/include/NSFileHandle.h: Changed notification names for extensions. + + * src/include/NSHData.h: New interface definition file. + + * src/include/NSPort.h: New interface definition file. + + * src/include/NSPortCoder.h: New interface definition file. + + * src/include/NSProxy.h: New interface definition file. + + * src/include/NSRunLoop.h: Complete interface for NSRunLoop class. + + * src/include/NSSerialization.h: Fixed typos in method names. + + * src/include/Port.h: Changed Port to inherit from NSPort and added + a timeout to the method for sending data. + + * src/include/RunLoop.h: Removed RunLoop stuff and changed it to use + NSRunLoop instead. + + * src/include/UnixFileHandle.h: Changed gnustep extension notification + names and altered class to work with new NSRunLoop. + + * src/include/byte_order.h: Incorporated this file from libFoundation. + + * src/mframe.m: (mframe_do_call()): modified this to tell the decoder + function when it has finished so that the decoder can cleanup safely. + +Thu Aug 28 16:36:03 1997 Adam Fedor + + * src/NSUser.m (NSUserName): Check for login_name in other places + (bug submitted by Manuel Guesdon . + +Tue Jul 15 13:55:19 1997 Gregor Hoffleit + + * configure.in: Check for getcwd and pthread library. + + * src/find_exec.c: Use getcwd if available. + +Fri Jul 11 13:55:19 1997 Richard Frith-Macdonald + + * checks/Makefile.in: Added nsfilehandle.m and improved 'clean' + + * checks/nsfilehandle.m: Rudimentary tests for NSFileHandle class. + + * src/LinkedList.m ([LinkedList -removeObject:]): Clear the pointer + to the list in the removed list element so it know it is no longer + in a list. + + * src/Makefile.in: Added NSFileHandle, UnixFileHandle and + NSNotificationQueue. Fixed link libraries for gdomap. + + * src/NSDate.m: Added code to ensure that NSDate objects are always + sent over the wire bycopy. + + * src/NSFileHandle.m: Implemented this OPENSTEP class in full. + + * src/NSFileManager.m ([NSFileManager -fileAttributesAtPath:traverseLink:): + Fixed to return full list of attributes. + ([NSFileManager -findNextFile): Fixed retain/release problem. + + * src/NSNotificationQueue.m: Imported class from libFoundation and + modified for gstep-base with a few bug fixes and thread stuff. + + * src/NSPipe.m: Implemented this OPENSTEP class in full. + + * src/NSThread.m: Modified to ensure that a threads dictionary + persists until the end of the thread! + + * src/NSNotificationDispatcher.m: Modified to avoid multiple identical + notification observer requests and fixed posting of notifications so + that observer requests can be safely removed by notification handlers. + + * src/RunLoop.m: Modifications for NSNotificationQueue, per-thread + default run-loops, and safer file descriptor watching. + + * src/TcpPort.m: Added include for solaris. + + * src/UnixFileHandle.m: Wrote this class as a concrete implementation + of NSFileHandle. + + * src/gdomap.c: Modified to make autolaunch of this daemon work + more reliably. Also modified to make probes for other servers + take place asynchronously. + + * src/gdomap.h: Tidied comments up a bit. + + * src/include/NSFileHandle.h: Added this OPENSTEP include file. + + * src/include/NSNotificationQueue.h: Added this from libFoundation. + + * src/include/UnixFileHandle.h: Added header file for UnixFileHandle. + + * src/mframe.m: Hacked this about to get all return types working for + DO under linux on i386 family. Requires more work and compiler or + Objective-C runtime support for a more general solution. + +Mon Jul 7 02:40:45 1997 Geoffrey Berry + + * src/NSString.m ([NSString -componentsSeparatedByString:]): + Fixed calculation of new search range. + +Mon Jun 9 16:05:26 1997 ANOQ of the sun + + * src/NSAttributedString.m: New file. + * src/NSGAttributedString.m: New file. + * src/include/NSAttributedString.m: New file. + * src/include/NSGAttributedString.m: New file. + * src/Makefile.in: Add new files into lists. + + * checks/nsattributedstring.m: New file. + * checks/Makefile.in: Add new file into list. + +Wed Jun 4 01:04:50 1997 Yoo C. Chung + + * src/include/preface.h.in: Include . + + * src/include/NSDate.h (NSTimeZone): Added new method + -abbreviationMap. + + * src/NSCalendarDate.m: Adjust for time zone detail. + ([NSCalendarDate + -initWithYear:month:day:hour:minute:second:timeZone:]): Set time + zone detail properly. + ([NSCalendarDate -descriptionWithCalendarFormat:locale:]): Add + case for '%Z'. + ([NSCalendarDate -initWithString:calendarFormat:locale:]): Use + local time zone, not default time zone detail. + ([NSCalendarDate -initWithTimeIntervalSinceReferenceDate:]): + Adjust for time zone detail. + + * src/tzfile.h: New file. + + * configure.in: Add check for endianness and int size. + + * src/NSTimeZone.m: New implementation. + + * src/include/NSDate.h (NSTimeZone): Remove unnecessary method + declarations. + (NSTimeZoneDetail): Likewise. + +Sun June 02 22:14:21 1997 Stevo Crvenkovski + + * src/NSGCString.m ([NSGCString -isEqualToString]): + C string implementation from old NSString.m moved here + and changed to check for class. + * src/NSGCString.m ([NSGCString -setString]): + Changed to avoid compiler warning. + * src/NSGSequence.m ([NSGSequence -compare]): + Changed for speed. + * src/NSString.m ([NSString -isEqualToString]): + New implementation, mutch faster. + * src/NSString.m ([NSString -commonPrefixWithString]): + Implemented recognition of composed characters. + * src/NSString.m ([NXConstantString -characterAtIndex]): + Method implemented. + +Thu May 15 08:59:13 1997 Yoo C. Chung + + * configure.in: Add check for getcwd(). + + * src/NSString.m ([NSString +initialize]): Removed casts for + register_printf_function. + (handle_printf_atsign): Set argument types for GNU libc. + +Sun May 21 23:12:24 1997 Stevo Crvenkovski + + * src/NSGSequence.m ([NSGSequence -decompose]): + Reorganized code and changed to handle empty strings. + * src/NSGSequence.m ([NSGSequence -order]): + Added code to handle case when consecutive nonspacing + characters have same canonical ordering priority. + * src/NSString.m ([NSString + -rangeOfComposedCharacterSequenceAtIndex:]): + Changed to recognize end of string when last character + is nonspacing. + * src/NSString.m ([NSString -compare:options:range:]): + Handle empty strings. + * src/NSString.m ([NSString -hash]): Unicode version + implemented and commented out for more testing. + * src/NSString.m ([NSString -_normalizedString]): + New private method for Unicode. + * src/NSString.h ([NSString -_normalizedString]): + New private method for Unicode declared. + +Tue May 20 09:29:47 1997 Adam Fedor + + * configure.in (VSPRINTF_RETURNS_LENGTH): Define as actual value + of variable.. + + * checks/Makefile.in (LDFLAGS): Include DYNAMIC_LDFLAGS + (BUNDLE_NAME.bundle): Add new Resources directory. + * checks/nsbundle.m: Remove obsolete NSArgv. + + * src/MemoryStream.m ([MemoryStream -writeFormat:arguments]): Make + sure buffer has at least 128 bytes free space. + + * src/NSBundle.m ([NSBundle -load]): New method. + ([NSBundle -principalClass]): Use it. + ([NSBundle +_bundleResourcePathsWithRootPath:subPath:]): New class + method (was an instance method). Add search in GNUSTEP_LIBRARY_PATH. + ([NSBundle + +pathForResource:ofType:inRootPath:inDirectory:withVersion:]): New + generalized search method. + ([NSBundle +pathForResource:ofType:inDirectory:withVersion:]): Use it. + ([NSBundle +pathForResource:ofType:inDirectory:]): Likewise. + ([NSBundle -pathForResource:ofType:]): Likewise. + ([NSBundle -pathForResource:ofType:inDirectory:]): Likewise. + + * src/include/NSBundle.h: New method definitions. + + * src/BinaryCStream.m: Include sys/types.h for SunOS4 definitions. + * src/NSData.m: Include unistd.h for SunOS4 definitions. + * src/StdioStream.m: Likewise. + * src/Time.m: Likewise. + +Wen May 14 01:07:16 1997 Stevo Crvenkovski + + * src/NSGCString.m ([NSGCString + -initWithCharactersNoCopy:length:freeWhenDone:]): + Changed to invoke instance of NSGString. + * src/NSGString.m ([NSGString + -initWithCStringNoCopy:length:freeWhenDone:]): + Changed to invoke instance of NSGCString. + * src/NSGString.m ([NSGString + -initWithCStringNoCopy:length:]): + Method removed - it is in NSString. + +Sun May 11 10:12:11 1997 Stevo Crvenkovski + + * src/NSGCString.m ([NSGCString -fastestEncoding:]): Method + implemented. + * src/NSGCString.m ([NSGCString -smallestEncoding:]): Method + implemented. + * src/NSGCString.m ([NSGMutableCString -setString:]): C string + implementation moved here from old version of NSString. + + * src/NSGString.m ([NSGString -fastestEncoding:]): Method implemented. + * src/NSGString.m ([NSGString -smallestEncoding:]): Method implemented. + + * src/NSString.m ([NSString -initWithData:encoding:]): Method + implemented. + * src/NSString.m ([NSString -canBeConvertedToEncoding:]): Method + implemented. + * src/NSString.m ([NSString -dataUsingEncoding:]): Method implemented. + * src/NSString.m ([NSString -dataUsingEncoding: + allowLossyConversion]): partial implementation of method. + * src/NSString.m ([NSString -fastestEncoding:]): Method implemented. + * src/NSString.m ([NSString -smallestEncoding:]): Method implemented. + * src/NSString.m ([NSString -stringByExpandingTildeInPath:]): + changed for Unicode. + * src/NSString.m ([NSString -writeToFile: + atomically:useAuxiliaryFile:]): Method implemented. + * src/NSString.m ([NXConstantString -fastestEncoding:]): Method + implemented. + * src/NSString.m ([NXConstantString -smallestEncoding:]): Method + implemented. + + * src/Unicode.m (ustrtostr): changed to detect end of string. + * src/Unicode.m (encode_strtoustr): New function. + * src/Unicode.m (encode_ustrtostr): New function. + +Tue May 13 23:36:59 1997 Yoo C. Chung + + * src/NSString.m ([NSString -initWithFormat:arguments:]): Skip + arguments dealt with in vsprintf(). + +Sun May 11 10:12:11 1997 Stevo Crvenkovski + + * src/NSString.m ([NSString -stringByAppendingString]): Changed to + avoid calling wrong subclass. + ([NSString -capitalizedString]): Likewise. + ([NSString -lowercaseString]): Likewise. + ([NSString -uppercaseString]): Likewise. + +Mon May 12 11:15:00 1997 Richard Frith-Macdonald + + * src/Collection.m ([Collection -copyAs:]): Modified so that copied + objects are released once the new collection has retained them. This + ensures that when the new collection is deallocated, the copied + objects it contains are deallocated as well. + + * src/NSArray.m ([NSArray -initWithArray:]): Free temporary C + array opf objects when we are done with it - fixes memory leak. + ([NSArray -copy:]) Added method to ensure copyWithZone: is called. + ([NSArray -sortUsingSelector:]) Added method. + + * src/NSDate.m ([NSDate -copyWithZone:]): Sometimes just retain + a date. + + * src/NSObject.m ([NSObject -retainCount]): Take autorelease stuff + into account in determining retain count for an object. + Added new function 'extraRefCount()' to do what -retainCount used to. + Modified -release and -autorelease to use extraRefCount(). + + * src/include/NSArray.h: Added -sortUsingSelector: + +Thu May 8 02:10:35 1997 Yoo C. Chung + + * src/NSString.m: Removed the redefinition of + HAVE_REGISTER_PRINTF_FUNCTION. + + * src/NSZone.m (BUFFER): Reduced buffer size to 4. + + * src/NSAssertionHandler.m: Include "NSObjCRuntime.h". + Use NSLog() to log errors. + Reason for exception now identical to log messages. + + * configure.in: AC_TYPE_SIZE_T, AC_C_INLINE added. + + * src/include/NSZone.h: Removed inline keywords for functions that + are potentially fluid. + + * src/NSThread.m ([NSThread + +detachNewThreadSelector:toTarget:withObject:]): Post + NSBecomingMultiThreaded. + + * src/StdioStream.m: Define _REENTRANT. + ([StdioStream -initWithFilename:fmode:]): Use NSLog() to log + errors. + ([StdioStream -initWithFileDescriptor:fmode:]): Likewise. + + * src/NSThread.m: Removed [-exceptionHandler] and + [-setExceptionHandler]. + * src/include/NSThread.h: Likewise. + + * src/NSException.m: Use member variables directly to obtain and + set exception handlers. + + * src/Makefile.in (FILE_AUTHORS): Added new person. + + * src/include/NSPage.h: Changed e-mail address. + +Thu May 8 15:45:00 1997 Richard Frith-Macdonald + + * src/Proxy.m: (+newForRemoteTarget:connection:) + When an existing proxy is substituted for a newly allocated one + we must retain it. + + * src/Proxy.m: (+newWithCoder:) + When an object is substituted for a local proxy we must retain it. + + * src/Connection.m: (forwardForProxy:selector:argframe:) + Ensure that objects created by the decoder are autoreleased. + + * src/Connection.m: (_service_forwardForProxy:) + Ensure that objects created by the decoder are autoreleased. + + * src/Connection.m: (_getReceivedReplyRmcWithSequenceNumber:) + Ensure that a newly allocated NSdate objects is released on return + from this method. Fixes a memory leak. + + * src/NSGCString.m: + Added an implementation of dealloc which will cause the string + contents to be released correctly - fixing a major memory leak. + + * src/NSString.m (handle_printf_atsign()) + Modified so that the '%@' format prints an objects description as it + should according to the OpenStep spec. + + * src/NSString.m (- initWithFormat:arguments:) + Modified so that the '%@' format prints an objects description as it + should according to the OpenStep spec. + + * src/NSString.m (- componentsSeparatedByString:) + Fixed to produce the final component of the string. + + * src/NSString.m (- rangeOfString:options:range:) + Return a range of length 0 if passed an empty string. + + * src/NSString.m (- lastPathComponent) + Do autorelease for newly created substrings. + + * src/NSString.m (- pathExtention) + Do autorelease for newly created substrings. + + * src/NSString.m (- stringByAppendingPathComponent:) + Added code to handle empty or illegal path components. + + * src/NSString.m (- stringByAppendingPathExtension:) + Added code to handle empty or illegal path extensions. + + * src/NSString.m (- stringByDeletingLastPathComponent:) + Fixed some special cases - autorelease for newly created substrings. + + * src/NSString.m (- stringByExpandingTildeInPath:) + Do autorelease for newly created substrings. + + * src/NSString.m (- stringByAbbreviatingWithTildeInPath:) + Do autorelease for newly created substrings. + +Wed May 7 15:45:00 1997 Richard Frith-Macdonald + + * checks/server.m: Removed line which released object which should + already have been autoreleased by D.O. mechanism. + + * src/Coder.m: ([Coder -init]): Modified so that subclasses can be + initialised using 'init'. + ([Coder -initForReadingWithData:]) Check to see if 'self' has been + autoreleased. If it has - be graceful and don't release self again + but autorelease the newly created object. I know that this should + not be necessary, but it's defensive programming. + + * src/Makefile: Changed 'make distclean' to remove links to the + header files directory so that it's easy to make a clean setup + for generating patches. + + * src/NSArchiver.m: ([NSArchiver -init]): Modified to say that the + subclass should handle this. + ([NSArchiver +archivedDataWithRootObject:]): Added a release to fix + memory leak. + + * src/NSGArchiver.m: Added implementation of init method. + ([NSGArchiver -archiverData]): Addep partial implementation of this + method - only works if the archiver was initialised with an + NSMutableData object, returns nul otherwise. This probably covers + pretty much all the cases where you would want to use this method. + + * src/NSObject.m: ([NSObject -returnCount]): Fixed this to return + zero for the cases where the object is not in the retain count map. + + * src/include/NSRunLoop.h: Added protocol declarations etc so that + you don't need to include RunLoop.h + +Tue May 6 14:50:35 1997 John Stevens + + * src/Array.m ([Array -appendObject:]): Check for nil object. + ([Array -insetObject:atIndex:]): Likewise. + + * src/NSArray.m ([NSArray -initWithObjects:rest:]): Good varargs + implementation. + + * src/NSData.m: ([NSData -getBytes:range:]): Check range. + ([NData -replaceBytesInRange:withByte:]): Likewise. + ([NSData -resetBytesInTange:]): Likewise. + +Mon May 5 16:00:00 1997 Richard Frith-Macdonald + + * src/Connection.m: ([Connection -forwardForProxy:selector:argFrame:]): + Added code to autorelease newly created objects to avoid memory leak. + ([Connection -_service_forwardForProxy:]): Added code to autorelease + newly created objects to avoid memory leak. + ([Connection -_getReceivedReplyRmcWithSequenceNumber:]): Release + locally created NSDate object before returning from method. + + * src/NSGString.m: ([NSGCString -dealloc:]): Added implementation so + that allocated memory can be freed. + ([NSGCString -initWithCoder:]): Set flag to say that contents should + be freed when object is deallocated. + + * src/NSGSequence.m: + Added +sequenceWithCharactersNoCopy:length:freeWhenDone:. + Added -dealloc so that Sequence contents can be freed. + ([NSGSequence -initWithCharactersNoCopy:length:freeWhenDone:]): + Modified to release sequence contents if necessary (when the + designated initialiser is called more than once). + ([NSGSequence -decompose]): Fixed memory leak in this method. + ([NSGSequence -lowercase]): Fixed memory leak in this method. + ([NSGSequence -uppercase]): Fixed memory leak in this method. + + * src/NSGString.m: Added -dealloc so that string contents can be freed. + ([NSGString -encodeWithCoder]): Fixed to encode array of unichar. + ([NSGString -initWithCoder]): Fixed to expect encoded array of unichar. + + * src/NSGMutableString.m: ([NSGMutableString -insertString:atIndex:]): + Fixed memory leak. + ([NSGMutableString -encodeWithCoder:]): Encode array of unichar. + ([NSGMutableString -initWithCoder]): Expect encoded array of unichar. + + * src/NSString.m: ([NSString -compare:options:range]): Fixed a memory + leak. + ([NSString -commonPrefixWithString:options:]): Fixed a memory leak. + + * src/Proxy.m: ([Proxy +newForRemoteTarget:connection:]): When we + return an existing Proxy, retain it. + ([Proxy +newWithCoder:connection:]): When we return a local object, + retain it. + + * src/RunLoop.m: ([RunLoop -removeReadDescriptor:forMode:]): free + enumeration state on return. + ([RunLoop -removeWriteDescriptor:forMode:]): free enumeration state + on return. + ([RunLoop -acceptInputForMode:beforeDate:]): free enumeration states + when done with them. + + * src/include/NSGSequence.h: Added class method + +sequenceWithCharactersNoCopy:length:freeWhenDone:. + + * src/NSDate.m: Added implementations for methods - + -copyWithZone:, -encodeWithCoder: -initWithCoder:. + + * src/include/NSDate.h: Added protocol conformance for NScopying + and NSCoding. + +Sat May 3 12:28:48 1997 Andrew McCallum + + * src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Add gdomap.c and + gdomap.h. + + * checks/NSData-test.m: New file from John Stevens + . + + * src/Makefile.in (GNUSTEP_HEADERS): Add include/NSConnection.h. + + * doc/news.texi: Fix typo. + * doc/install.texi: Fix typo. + + * Makefile.in (DIST_FILES): Add config.sub. + + * src/NSBundle.m: Temporarily comment out some code with #if 0/1 + so it will compile. Get Adam Fedor or someone to fix it. + * src/NSCharacterSet.m: Likewise. + + * src/include/NSConnection.h: Include some files. + + * src/Makefile.in (GNUSTEP_HEADERS): Add NSDistantObject.h. + * src/include/NSDistantObject.h: New file. + + * src/gdomap.c: Delete duplicate copy inside file. + + * src/TcpPort.m: #include . Define GDOMAP to be 0 for + now; have Richard Frith-Macdonald verify that it works for me. + (tryWrite): Change type of IFUN to match declaration of signal(). + Cast second argument to signal() to avoid warning. + ([TcpInPort +newForReceivingFromPortNumber:]): Use P->_PORT_SOCKET not + P->_SOCKET, which doesn't exist. Likewise in several other + methods. + + * src/NSString.m: Remove some duplicate methods. + + * src/NSHost.m: Don't include . Include + . + + * src/Connection.m: Include for delegate + method declaration. + ([Connection +newForInPort:outPort:ancestorConnection:]): Cast + NEWCONN to avoid warning. + + * src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Move NSHost.m + temporarily here until its debugged. + (GNUSTEP_MFILES): Temporarily remove NSHost.m. + + * src/NSDate.m ([NSDate -timeIntervalSince1970]): Remove duplicate + method definition. + + * src/NSArchiver.m ([NSArchiver -init]): New method. (Need for it + reported by Richard Frith-Macdonald .) + + * src/NSArchiver.m ([NSArchiver -encodeClassName:intoClassName:]): + Fix typo in method name. + * src/include/NSArchiver.h: Fix typo in method name. + + * src/TcpPort.m (nameServer): Remove the ntohs() conversion of + NUM. (Reported by Richard Frith-Macdonald + >) + + * src/NSCharacterSet.m ([NSCharacterSet_PATH]): Value of global + variable changed to absolute path. (Reported by Richard + Frith-Macdonald .) + + * checks/Makefile.in (SRCS): Added NSData-test.m. + + * src/Decoder.m ([Decoder -decodeObjectAt:anObjPtr:name]) + [CODER_OBJECT_REPEATED]: Retain the object before returning it by + reference. (Reported by Richard Frith-Macdonald + .) + + * src/NSHashTable.m (NSNonRetainedObjectHashCallBacks): Renamed + from NSNonRetainedObjectsHashCallBacks to conform to spec. + * src/include/NSHashTable.h: Likewise. + + * src/Makefile.in (UNICODE_HEADERS): New variable. + (DIST_FILES): Add UNICODE_HEADERS. + (copy-dist): Create directory for unicode. + + * examples/Makefile.in (RCS_FILES): Added custom-zone.m. + * examples/custom-zone.m: New file. + + * src/NSBundle.m ([NSBundle + +pathForResource:ofType:inDirectory:]): Change it from an instance + method to a class method, in order to conform to spec. + * src/include/NSBundle.h ([NSBundle + +pathForResource:ofType:inDirectory:]): Likewise. + * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): + Revert last change. + + * src/Makefile.in (GNUSTEP_HEADERS): Added include/NSHost.h. + (GNUSTEP_MFILES): Added NSHost.m. + + * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): + Use NSBundle's pathForResource:ofType:inDirectory method properly. + (Reported by Stevo Crvenkovski .) + +Fri Apr 25 01:30:00 1997 Richard Frith-Macdonald + + * src/NSBundle.m: + Added missing methods to conform to OpenStep spec, also added + [+ pathForResource:ofType:inDirectory:] + + * src/include/NSBundle.h: + Added missing methods to conform to OpenStep spec. + +Thu Apr 24 10:30:00 1997 Richard Frith-Macdonald + + * src/Makefile.in: Added stuff to build and install the name + server (gdomap). + + * src/RunLoop.m: Minor change to ensure that repeated timers are + not lost. + + * src/TcpPort.m: Major changes to support use of a name server for + handling TCP port numbers and fix a few bugs. + + * src/gdomap.c: This is the name server source. + + * src/gdomap.h: This is the name server header file. + + * src/include/NSRunLoop.h: Added methods for monitoring file + descriptors. + +Sat Mar 29 00:43:18 1997 Yoo C. Chung + + * src/NSZone.m: New e-mail address. Default default zone + alignment problems fixed. + +Sun Mar 23 19:55:19 1997 Mark Kettenis + + * src/Makefile.in: Update config.h.in in $(srcdir)/src/include. + * configure.in: Look for config.guess in $(srcdir). + +Sat Mar 22 18:25:43 1997 Mark Kettenis + + * src/NSDate.m ([NSDate +timeIntervalSinceReferenceDate]): Don't + use struct timezone. + ([NSDate -timeIntervalSince1970]): New method. + ([NSDate -isEqual:]): Correct bug if other specifies a later date. + +Sun Mar 23 22:14:21 1997 Stevo Crvenkovski + + * src/NSGString.m: New file Initial implementation of Unicode + * src/include/NSGString.h : New file Interface for NSGString + * src/NSGSequence.m: New file - class that deals with Unicode + composite character sequences + * src/include/NSGSequence.h : New file Interface for NSGSequence + * src/Unicode.m: New file - functions for Unicode + * src/include/Unicode.h : New file + + * src/Makefile.in: Added NSGString.m, NSGString.h, NSGSequence.m, + NSGSequence.h, Unicode.m, Unicode.h + + * src/NSGCString.m ([NSGCString -length]): Method implemented. + ([NSGCString -characterAtIndex]): Changed to work + with encodings + ([NSGCString -_baseLength]): private method for + composite character sequences. + ([NSGCString -initWithString:]): CString implementation + moved here from NSString.m + + * src/NSString.m : Changed NSString_concrete_class to NSGString + and NSMutableString_concrete_class to NSGMutableCString + ([NSString +stringWithCharacters]): Method implemented. + ([NSString -initWithCharacters:length:]): Method implemented. + ([NSString -stringByAppendingString]): changed for Unicode. + ([NSString -rangeOfString]): split method into 8 private _search* + methods and implemented full Unicode + ([NSString -compare:options:range:]): changed for Unicode. + ([NSString -isEqualToString]): changed for Unicode + ([NSString -description]): changed. + ([NSString -commonPrefixWithString]): changed for Unicode + ([NSString -capitalizedString]): changed for Unicode + ([NSString -lowercaseString]): changed for Unicode + ([NSString -uppercaseString]): changed for Unicode + ([NSString -getCString]): changed for Unicode + ([NSString -defaultCStringEncoding]): method implemented + ([NSString -_baseLength]): private method for composite + sequences. + ([NSString -stringWithFormat:]): null terminate buffer. + + *src/unicode : New directory - temporary holds data for unicode + functions. + *src/unicode/caseconv.h : New file + *src/unicode/cop.h : New file + *src/unicode/cyrillic.h : New file + *src/unicode/decomp.h : New file + *src/unicode/nextstep.h : New file + +Fri Feb 14 08:51:39 1997 Yoo C. Chung + + * src/NSZone.m: Use [NSString -cStringNoCopy]. + +Wed Feb 12 13:51:42 1997 Yoo C. Chung + + * src/NSZone.m (frealloc): memcpy() with proper size. + + * examples/custom-zone.m (custom_recycle): Release zone name. + + * src/NSZone.m (frealloc): Moved assignment out of a critical + block. + +Tue Feb 11 22:55:05 1997 Yoo C. Chung + + * examples/custom-zone.m: New file. + +Sun Feb 9 20:28:00 1997 Yoo C. Chung + + * src/NSZone.m (NSZoneRegisterRegion): New function. + (NSDeregisterZone): New function. + + * src/include/NSZone.h: Added 'NSZoneRegisterRegion' and + 'NSDeregisterZone'. + +Thu Mar 6 08:57:29 1997 Scott Christley + + * src/NSString.m (-substringToIndex:): Should return + characters upto but not including the one at index. + (lastPathComponent, stringByDeletingLastPathComponent): Modify + for -substringToIndex: change. + (stringByDeletingPathExtension): Likewise. + +Tue Mar 4 10:47:18 1997 Scott Christley + + * src/NSBundle.m: Don't look in gnustep installation library + directory; remove previous patch. + * src/NSCharacter.m: Create bundle with path instead of using + main bundle. + * src/NSString.m (-stringByAppendingPathComponent:): Don't + even check the length; only care if we found the string at + the very last position. + (-stringByAppendingPathExtension:): Likewise. + * src/include/preface.h.in: Include NSObjCRuntime so that + NSLog() is declared. + * src/include/NSString.h (+stringWithContentsOfFile:): Add + missing declaration. + +Thu Feb 27 13:46:10 1997 Scott Christley + + * configure.in: Fill out description of parameter. + * src/Makefile.in (GNUSTEP_INSTALL_LIBDIR): Use quotes. + * src/NSBundle.m: Add gnustep installation library directory + to the directories searched. + * src/NSCharacterSet.m (NSCharacterSet_PATH): Don't specify + full path, just bundle directory. + * src/NSRange.m (NSMakeRange): Correct prototype. + * src/include/NSRange.h (NSMakeRange): Likewise. + * src/NSString.m (stringByAppendingExtension:): The length + will actually be zero if the period isn't found. + (stringByAppendingPathComponent:): Likewise. + +Tue Jan 21 17:09:09 CST 1997 Jeremy Bettis + + * src/NSGCString.m: Add -appendString:. + + * src/include/NSString.h: Add +string. + + * src/NSString.m: (handle_printf_atsign) Take the description of + the object before the cStringNoCopy. + ([NSString +allocWithZone:],[NSMutableString +allocWithZone:]) + Only return the concrete class if [self class] == NSString to + allow subclassing. + +Tue Mar 4 10:51:22 1997 Andrew McCallum + + * src/NSConnection.m: New file. + * src/include/NSConnection.h: Add copyright and fix method + declaration. + + * src/Connection.m ([Connection -registerName:]): New method. + ([Connection +newForInPort:outPort:ancestorConnection:]): Ask the + delegate for permission to create the new connection. We were + already doing it GNUstep-style. Do it OpenStep-style also. + + * src/NSGArchiver.m ([NSGArchiver -archiverData]): New method. No + implementation. + + The above was actually checked in May 3 1997. + + * src/Connection.m ([Connection + -forwardForProxy:selector:argFrame:]): In nested function + decoder(), always set IP to -1 after sending it -dismiss, i.e. in + both cases. Fix the assertion at the bottom so that IP is allowed + to be nil, which will be the case when mframe_build_return() never + calls decoder(), which will happen when we are returning void. + + * src/Decoder.m ([Decoder -finishDecodingInterconnectedObjects]): + Comment fixes. + + * src/Proxy.m ([Proxy -awakeAfterUsingCoder:]): New method. + Needed otherwise we get an infinite loop with Decoder trying to + send this message to a Proxy. + +Mon Mar 3 14:41:01 1997 Andrew McCallum + + * doc/install.texi: Describe what happens when libieee.a isn't + available. + + * configure.in: Remove obsolete AC_C_CROSS. + + * doc/Makefile.in (TEXI_FILES): Added gnustep-zones.texi. + + * src/NSHost.m, src/include/NSHost.h: New files from Luke Howard + . + +Tue Feb 25 17:12:52 1997 Scott Christley + + * configure.in: Add macro to determine host, build, and target. + (whole_archive, no_whole_archive): Optional linker variables + for specifying when the linker should include the whole archive. + * configure: Regenerate for configure.in changes. + * Makefile.in: Force targets. + * config.sub: New file. + * NSCharacterSets/Makefile.in: Use configure datadir variable. + Install character set files in NSCharacterSets subdirectory + within GNUstep library install dir. + * checks/heap.m: random is rand on _WIN32. + * checks/nscharacterset.m: New file + * checks/Makefile.in: Add nscharacterset.m. + Surround gnustep-base library with new linker variables. + * checks/release.m: No malloc.h on _WIN32. + * examples/Makefile.in: Surround gnustep-base library with + new linker variables. + * doc/Makefile.in: Use configure infodir variable. + + * src/NSFileManager.m: New file. + * src/include/NSFileManager.h: New file. + * src/Makefile.in: Add NSFileManager files. + (GNUSTEP_INSTALL_LIBDIR): New definition. + Use configure libdir and includedir variables. + Use the LN_S variable for soft links. Slightly modify creation + of gnustep/base for platforms which don't support soft links. + (install:): Install only the NEXTSTEP_HEADERS into objc directory + and eliminate out-dated README file link. + (uninstall:): Remove only NEXTSTEP_HEADERS out of objc directory. + * src/NSCharacterSets.m (NSCharacterSet_PATH): Search for + character set files in NSCharacterSets subdirectory within + GNUstep library installation directory. + + * src/NSDate.m (-initWithTimeIntervalSince1970:): New method. + (-timeIntervalSince1970): New method. + * src/include/NSDate.h (-initWithTimeIntervalSince1970:): New method. + (-timeIntervalSince1970): New method. + + * src/NSDictionary.m: Changed key datatype from NSString to + NSObject to correspond with OpenStep specification. + * src/NSGDictionary.m: Likewise. + * src/include/NSDictionary.h: Likewise. + (+dictionaryWithObjectsAndKeys:,...): Define method. + + * src/NSNumber.m (+numberWithLong:): Use correct class. + + * src/NSString.m (-description:): Just return self. + (+stringWithContentsOfFile:): New method. + (-componentsSeparatedByString:): Fix range calculation and + make sure last component is added. + (-appendString:): Don't attempt append if nil string. + + * src/NSUserDefaults.m (__changePersitentDomain:) Corrected + spelling of method. + + * src/TcpPort.m (_socket): Rename to _port_socket to avoid conflict + with hidden system variables. + * src/include/TcpPort.h (_socket): Likewise. + * src/UdpPort.m (_socket): Likewise. + * src/include/UdpPort.h (_socket): Likewise. + + * src/include/NSObject.h: Include fake-main.h. + +Thu Feb 6 09:20:05 1997 Yoo C. Chung + + * src/NSZone.m (fcheck): Implemented. + (fstats): Likewise. + (ncheck): Likewise. + (nstats): Likewise. + + * src/include/NSZone.h: New declarations of 'NSZoneRegisterChunk' + and 'NSZoneChunkOverhead'. + Include instead of . + + * src/NSZone.m: Removed 'outmemstr'. Better reasons given when + raising exceptions. + (frecycle): Use objc_free(). + (nrecycle): Likewise. + (NSCreateZone): Check allocation of 'zone'. + (default_check): New function. + (default_stats): Likewise. + (fcheck): Likewise. + (fstats): Likewise. + (ncheck): Likewise. + (nstats): Likewise. + (NSZoneChunkOverhead): Likewise. + (NSZoneRegisterChunk): Likewise. + (NSZoneCheck): Likewise. + (NSZoneStats): Likewise. + (default_zone): Set the zone name to "default". + +Wed Feb 5 21:29:23 1997 Yoo C. Chung + + * src/include/NSZone.h (struct _NSZoneStats): New structure. + (struct _NSZone): Added 'check' and 'stats'. + (NSZoneCheck): New declaration. + (NSZoneStats): Likewise. + +Tue Feb 4 22:39:50 1997 Yoo C. Chung + + * src/NSZone.m (nmalloc): Return NULL when size is 0. + +Tue Feb 4 09:16:05 1997 Yoo C. Chung + + * src/NSZone.m (NSSetDefaultMallocZone): New function. + (get_chunk): Use objc_malloc() to get more memory. + (nmalloc): Likewise. + (NSCreateZone): Likewise. + (NSSetZoneName): Removed locks. + + * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Don't + check whether we're releasing an already deallocated object. + + * src/include/NSZone.h (struct _NSZone): Removed mutex. + Removed NSZoneMemInUse(). + Added NSSetDefaultMallocZone(). + + * src/NSZone.m: Changed comments. + Uses objc_malloc() and friends for default zone. + Moved mutex out of NSZone structure. + Use mutex functions even in single threaded case. + (NSZoneMemInUse): Removed. + +Fri Jan 24 19:12:18 1997 Yoo C. Chung + + * src/NSZone.m: Spell checked comments. + +Tue Jan 21 13:31:11 1997 Yoo C. Chung + + * src/NSZone.m (default_recycle): New function. + (nrealloc): Likewise. + (nfree): Likewise. + (default_zone): Set common.recycle to default_recycle. + (NSCreateZone): Set realloc and free for nonfreeable zone. + + * src/include/NSThread.h: Add comments. + + * src/NSThread.m ([NSThread -setExceptionHandler:]): Add comments. + ([NSThread -exceptionHandler]): Likewise. + ([NSThread +detachNewThreadSelector:toTarget:withObject:]): Set + entered_multi_threaded_state to YES. + +Tue Jan 21 11:18:32 1997 Yoo C. Chung + + * checks/thread-except.m: New file. + + * checks/Makefile.in (SRCS): Added thread-except.m. + + * src/NSAssertionHandler.m ([NSAssertionHandler +currentHandler]): + Handle multiple threads. + + * src/NSException.m: Removed e_handlers. + ([NSException -raise]): Support multiple threads. + (_NSAddHandler): Likewise. + (_NSRemoveHandler): Likewise. + + * src/NSThread.m ([NSThread -init]): Init _exception_handler. + ([NSThread -exceptionHandler]): New method. + ([NSThread -setExceptionHandler:]): Likewise. + + * src/include/NSThread.h (NSThread): Added _exception_handler and + new methods exceptionHandler and setExceptionHandler. + +Mon Jan 20 09:46:00 1997 Yoo C. Chung + + * src/NSException.m: Use linked list instead of NSArray. Fit + lines within 80 columns. + + * src/NSZone.m (nmalloc): Use CHUNKSIZE to get new block size + instead of SIZE. + +Mon Jan 20 00:15:39 1997 Yoo C. Chung + + * src/NSAllocateObject.m: Include NSZone.h. + + * src/NSZone.m: Changed ffree_NSZone and nfree_NSZone to ffree_zone + and nfree_zone. Changed lock functions return types to ints. + (become_threaded): Set mutex functions. + (NSZoneMemInUse): Properly check buffer. + (nmalloc): Removed unnecessary declaration of block. + (NSCreateZone): Moved assignment of block out of exception handled + area. + (NSCreateZone): Fixed typo (objc_mutex_deallocate instead of + objc_mutex_dealloc). + (NSZoneMemInUse): Consider cases when memory is in buffer. + + * src/NSData.m ([NSData -description]): Frees malloced memory. + + * src/NSPage.m (NSAllocateMemoryPages): Return NULL if we fail to + allocate memory. + + * src/NSObject.m (NSShouldRetainWithZone): Check match for + NSDefaultMallocZone(). + +Fri Jan 17 20:08:00 1997 Yoo C. Chung + + * src/o_x_bas.m.in (o_@XX@_zone): Use NSZoneFromPointer(). + (_o_@XX@_alloc_with_zone): Remove unnecessary assignment. + + * src/o_array.m (o_array_alloc): Use NSDefaultMallocZone(). + * src/o_hash.m (o_hash_alloc): Likewise. + (o_hash_copy): Likewise. + * src/o_list.m (o_list_alloc): Likewise. + (o_list_copy): Likewise. + + * src/include/o_array.h (_o_array): Remove zone. It's just a + waste of space when we have a very fast NSZoneFromPointer(). + * src/include/o_hash.h (_o_hash): Likewise. + * src/include/o_list.h (_o_list): Likewise. + * src/include/o_map.h (_o_map): Likewise. + + * src/include/NSZone.h: New implementation. + + * src/include/NSPage.h: New file. + + * src/include/NSException.h (NS_HANDLER): Separate declaration and + assignment of localException. This is to shut up gcc when we + don't use localException. + + * src/StdioStream.m ([StdioStream -dealloc]): Removed call to + fclose(). + + * src/NSZone.m: New implementation. + + * src/NSDeallocateObject.m: Simplified. + + * src/NSAutoreleasePool.m: + Included NSZone.h. + ([NSAutoreleasePool -dealloc]): Use NSZoneMemInUse(). + + * src/Makefile.in (GNUSTEP_HEADERS): Added NSPage.h. + +Sun Jan 12 13:46:38 1997 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.12. There seems to be + a problem with Richard's and my patches to distributed objects, but + many other bug fixes have been added, NSZone has a complete + re-write, -awakeAfterUsingCoder: is now called, and NSString is + all cleaned up and ready to go. Richard and I will work on fixing + D.O. for the next release. + + * examples/second-client.m: Include + instead of . + * examples/second-server.m: Likewise. + * examples/first-client.m: Likewise. + * examples/first-server.m: Likewise. + + Finish code necessary for versioning in CStreams and Coders. + Test this code by actually making a new format for BinaryCStream; + files created with the new format should be, on average, 4/5 the + size of the previous ones, and it should be faster. This is now + the default format, but files created with the old format should + still be readable. + + * src/BinaryCStream.m (PRE_SIZEOF_PREFIX_FORMAT_VERSION): New + macro for old version number. + (CURRENT_FORMAT_VERSION): New macro. + (DEFAULT_FORMAT_VERSION): Changed from 0 to 1. + ([BinaryCStream -_initForReadingFromPostSignatureStream: + withFormatVersion:]): New method. + ([BinaryCStream -initForWritingToStream:swithFormatVersion:]): New + method. + (WRITE_SIGNED_TYPE0): Renamed from WRITE_SIGNED_TYPE. + (WRITE_SIGNED_TYPE1): New macro. + (WRITE_SIGNED_TYPE): New macro for choosing between them. + (READ_SIGNED_TYPE0): Renamed from READ_SIGNED_TYPE. + (READ_SIGNED_TYPE1): New macro. + (READ_SIGNED_TYPE): New macro for choosing between them. + (WRITE_UNSIGNED_TYPE0, WRITE_UNSIGNED_TYPE1, WRITE_SIGNED_UNTYPE, + READ_UNSIGNED_TYPE0, READ_UNSIGNED_TYPE1, READ_UNSIGNED_TYPE): + Likewise. + ([BinaryCStream -encodeValueOfCType:at:withName:name]): Don't use + `unsigned' as part of the argument to the *_UNSIGNED_TYPE macros, + because the macros now include that themselves. + + * src/CStream.m ([CStream -_initForReadingFromPostSignatureStream: + withFormatVersion:]): New method. + ([CStream +cStreamReadingFromStream:s]): Use it. + ([CStream -initForReadingFromStream:swithFormatVersion:]): Likewise. + + * src/include/BinaryCStream.h (BinaryCStream): Declare new ivars + for holding sizeof C types. + + * src/include/CStream.h: Declare designated method for reading. + + * src/include/NSProcessInfo.h: Include + +Sat Jan 11 16:34:57 1997 Andrew McCallum + + * src/NSZone.m (NSCreateZone): Call initialize(), so that we won't + crash if someone tries to create an object before main() and + before initialize() gets called as a constructor. + (NSDefaultMallocZone): Likewise. + (initialize): Use a static variable to return immediately if we've + been run already. + + * checks/string.m (main): Use NSDefaultMallocZone() instead of + NS_NO_ZONE. + +Thu Jan 9 10:45:10 1997 Andrew McCallum + + * checks/client.m: Include instead of + . + (main): Use class NSString instead of String. + + * checks/server.m: Include instead of + . + + * src/objc/NXStringTable.h (STRVAL): Make it a macro instead of an + inline function to avoid warning. + + * src/NSPage.m (NSLogPageSize): Use NSPageSize() instead of + ns_page_size(). + (NSRoundDownToMultipleOfPageSize): Likewise. + (NSRoundUpToMultipleOfPageSize): Likewise. + + * src/NSString.m ([NSString -copy]): Use NSDefaultMallocZone() + instead of NS_NO_ZONE. + + * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): + Remove last parameter from calls to [NSBundle pathForResource...]. + The method doesn't exist. + + * src/NSBundle.m: Rearrange #include's a little. + + * src/Connection.m ([Connection + -_getReceivedReplyRmcWithSequenceNumber:]): Break if the RunLoop + returns NO. (Reported by Richard Frith-Macdonald + .) + + * src/NSDictionary.m ([NSDictionary + +dictionaryWithContentsOfFile:]): Method implemented. + (From Scott Christley.) + + * src/NSString.m ([NSString -initWithFormat:arguments:]): Increase + BUFFER_EXTRA by a factor of 500. + + * src/Foundation/NSZone.h (ZoneLock): Don't prepend OBJC_MUTEX_T + with an underscore. + + * src/mframe.m (mframe_build_return): Change the way values of + type smaller than int are returned---don't offset into the int. + (Recommended by Richard Frith-Macdonald .) + +Thu Jan 9 17:06:00 1996 Richard frith-Macdonald + + * src/NSTimer.m ([NSTimer -compare:]): Added an implementation of + 'compare:' which compares timers by fire date. This is required + for the timers to be kept in the correct order by the Heap in + Runloop. Fixes a problem where a timer could be delayed + indefinately. + +Wed Dec 04 12:39:24 1996 Scott Christley + + * src/Makefile.sed.nt: remove Foundation directory if it exists + before installing header files. Don't regenerate lex.sf.m. + * src/NSSet.m (-unionSet:): Implement method. + (-intersectSet:, -minusSet:): Implement methods. + * src/NSString.m (-initWithContentsOfFile:): Use Win32 specific + functions for file operations. + * src/md5.c: Include config header file. + * src/include/config-win32.h: vsprintf returns length on Win32. + * src/NSUser.m (NSHomeDirectoryForUser, NSUserName): Implement + Win32 specific versions. + +Thu Nov 21 12:00:44 1996 Scott Christley + + * src/include/NSDictionary.h (+dictionaryWithContentsOfFile:): New + method. + * src/proplist.l (COMMENT, LINE_COMMENT): Added lexical rules for + traditional C comments and ObjC line comments. Add carriage + return '\r' as part of whitespace rules. + * src/lex.pl.m: Regenerated with proplist.l changes. + * src/proplist.tab.m: Likewise. + * src/NSArray.m (-sortedArrayUsingSelector:): Implemented. + (-sortedArrayUsingFunction:context:): Implemented. + (-sortUsingFunction:context:): Implemented. + * checks/nsarray.m: Add tests for sorting methods. + +Tue Nov 19 09:06:00 1996 Richard Frith-Macdonald + + * src/ConnectedCoder.m: Release packet after invoking + initialisation method of super which retains it. To fix memory + leaks. + + * src/Connection.m (+rootProxyAtName:onHost:): Return nil if we + can't create port. + (-forwardForProxy:selector:argFrame:): Modified to cooperate + better with mframe_build_return() so that the created decoder is + released reliably. Fixes a memory leak. + (-_getReceivedReplyRmcWithSequenceNumber:): Added code to release + allocated NSDate object on exit - fixes a memory leak. + + * src/Decoder.m (-_coderCreateReferenceForObject:): Changed code + to release dummy object after insertion in array (which retains + it). fixes memory leak. + + * src/Encoder.m (-initForWritingToStream:withFormatVersion: + cStreamClass:cStreamFormatVersion:): Release stream after invoking + initialisation method of super which retains it. To fix memory + leaks. + + * src/KeyedCollection.m (-dealloc): Added call to + NSDeallocateObject() to ensure that the memory used by the + enumerator is released. + + * src/RunLoop.m: Changed code to get timers to work correctly and + enabled timer support by default. Fixed all the cases I could + spot where the '_current_mode' could be left in the wrong state. + Modified so that the object listening on a file descriptor need + not be the same as the object speaking on it. Added code to + release the enumerator state information for Bags after use - + fixes memory leak. + + * src/mframe.m (mframe_build_return): Modified to cooperate better + with [Connection -forwardForProxy:selector:argFrame:]. + +Mon Jan 6 16:06:21 1997 Andrew McCallum + + * src/NSDictionary.m ([NSDictionary -initWithContentsOfFile:]): + Implemented. (By David Wetzel .) + + * src/NSAssertionHandler.m [NSAssertionHandler + -handleFailureInMethod:object:file: lineNumber:description:]: Use + the FORMAT argument! (Reported by Wolfgang Baron + .) + + * src/NSString.m ([NSString -hasPrefix:]): Fix logic to return + correct value. + (Reported by David Wetzel .) + + * src/NSString.m ([NSString -description]): Free DEST to prevent + memory leak! + (Reported by Wolfgang Baron .) + + * src/NSException.m (_NSUncaughtExceptionHandler): Don't declare + it static. (Reported by John Hethcox .) + + * src/BinaryCStream.m (BITSPERBYTE): If it hasn't been defined + after #include's guess that it's 8. + + * checks/nsscanner.m: Removed RCS keyword. + +Sat Nov 16 23:39:11 1996 Yoo C. Chung + + * src/NSPage.m (NSLogPageSize): Fix logic to return correct value. + +Wed Nov 13 16:27:39 1996 Adam Fedor + + * aclocal.m4 (OBJC_SYS_DYNAMIC_FLAGS): Check if executable needs + dynamic ldflags. + * checks/Makefile.in (LDFLAGS): Include dynamic ldflags. + (BUNDLE_NAME.bundle): Add new Resources directory. + + * configure.in: Provide platform definition. Check DIR + definitions. + * src/Makefile.in (DEFS): Use platform definition. + + * src/NSBundle.m: Rewrite of NSBundle class to cache bundles and + update searching of resources. _bundles and _releasedBundles are + static NSMapTables for caching bundles. + (bundle_object_name): Use executable name, if provided. + (_bundle_resource_path): Use NSString methods. + (_bundle_path_for_name): New function. + ([NSBundle -_bundleClasses]): New private method. + ([NSBundle +mainBundle]): Use NSString methods. + ([NSBundle +bundleForClass]): New search process using map + tables. + ([NSBundle -initWithPath]): Likewise. + ([NSBundle -release]): New method. + ([NSBundle -retain]): New method. + ([NSBundle -retainCount]): New method. + ([NSBundle -dealloc]): Release new ivars. + ([NSBundle -classNamed:]): Search from new _bundleClasses ivar. + ([NSBundle -principalClass:]): New loading protocol. + ([NSBundle -_bundleResourcePathsWithDirectory:]): New method. + ([NSBundle -pathForResource:ofType:inDirectory:]): New search + protocol. + ([NSBundle -pathsForResourcesOfType:inDirectory:]): New method. + ([NSBundle -localizedStringForKey:value:table:]): Implement. + ([NSBundle -resourcePath]): New method. + ([NSBundle -infoDictionary]): New method. + ([NSBundle -bundleVersion]): Removed. + ([NSBundle -setBundleVersion:]): Removed. + * NSBundle.h: Add new ivars. Add new OpenStep methods, remove + obsolete methods. New localization macros. + +Wed Nov 13 14:10:00 1996 Richard Frith-Macdonald + + * src/Connection.m ([Connection +rootProxyAtName:onHost:]): + Return nil if we fail to create a port for talking to a remote server. + ([Connection forwardForProxy:selector:argFrame:]): + Changes to ensure that ConnectedDecoder is correctly dismissed in the + case where a DO method returns an object but does not have any + parameter values returned. + + * src/mframe.m (mframe_build_return()): + Cooperate with [Connection forwardForProxy:selector:argFrame:] so + that it's callback function is called to tell it dismiss the + ConnectedDecoder. + + * src/RunLoop.m ([RunLoop -limitDateForMode:]): + Various changes to get timeouts working reliably. + Ensure that _current_mode is restored correctly on exit. + + * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): + Ensure that _current_mode is restored correctly on exit. + +Wed Nov 6 11:59:08 1996 Adam Fedor + + * src/NSLog.m: New file + * src/Makefile.in (GNUSTEP_MFILES): Add NSLog.m + * src/include/NSObjCRuntime.h: Add NSLog definitions. + +Mon Nov 4 12:30:05 1996 Adam Fedor + + * src/objc-load.c: Include . + +Sat Sep 21 15:18:47 1996 Yoo C. Chung + + * src/NSZone.m: Use constructor attribute with initialize(). + +Thu Sep 19 22:09:08 1996 Yoo C. Chung + + * src/DelegatePool.m: + Use NSDefaultMallocZone() instead of NS_NOZONE. + * src/NSProcessInfo.m: Likewise. + + * src/NSObject.m: + Use NSDefaultMallocZone() instead of NS_NOZONE. + Use NSZoneFromPointer() instead of NSZoneFromPtr(). + + * src/NSProcessInfo.m: Use NSDefaultMallocZone() instead of 0. + And cosmetic changes. + + * src/NSHashTable.m: Use NSDefaultMallocZone() instead of 0. + * src/NSMapTable.m: Likewise. + * src/o_map.m: Likewise. + + * src/NSPage.m: + Use valloc() in NSAllocateMemoryPages(). + Cosmetic style changes. + + * src/NSZone.m: Complete rewrite. + * src/include/NSZone.h: Extensive modifications. + +Thu Dec 5 17:20:58 1996 Nick Christopher + + * NSString.m [NSString -componentsSeparatedByString]: Didn't + handle strings with separators longer than a single character + and in other cases. + + * stringsfile.l: The definition of LABEL needed expanding. + +Sun Jan 5 17:41:37 1997 Andrew McCallum + + Further changes for the NSString implementation. + + * src/NSGCString.m ([NSGMutableCString -insertString:atIndex:]): + Use -cStringNoCopy instead of the removed method + -_cStringContents. + + * src/include/Stream.h (StreamException): Change type to NSString + from id . + + * src/include/NSUser.h (NSUserName, NSHomeDirectory, + NSDirectoryForUser): Change the return types from (char*) to + (NSString*). + + * src/include/NSUserDefaults.h (NSUserName, NSHomeDirectory, + NSDirectoryForUser): Declare them unconditionally; before it was + conditioned on NEXT_FOUNDATION. + + * src/include/NSArray.h: Don't include + * src/include/Streaming.h: Likewise. + * src/include/Port.h: Likewise. + * src/include/Coder.h: Likewise. + + Changes to send -awakeAfterUsingDecoder, and to do the proper + object substitution if necessary. + + * src/Decoder.m ([Decoder + +readSignatureFromCStream:csgetClassname: + nameformatVersion:version]): Better commented. + ([Decoder -_coderSubstituteObject:atReference:]): New method. + ([Decoder -_coderPushRootObjectTable]): Better commented. + ([Decoder -finishDecodingInterconnectedObjects]): Implement an + approach to root-object-based -awakeAfterUsingCoder. + ([Decoder -decodeObjectAt:anObjPtr:name]): Send -awakeAfterUsingCoder: + here. First see if the object actually responds to it, then send + it and make the object substitution if necessary. Also make the + appropriate substitution in Decoder's internal tables matching + references numbers to objects. + + * src/Encoder.m (DEFAULT_DEFAULT_FORMAT_VERSION): Renamed from + DEFAULT_FORMAT_VERSION, for clarity with variable by the same old + name. + + * checks/fref.m: Add comment and move around headers for easier + reading. + + * src/include/NSAutoreleasePool.h (init_autorelease_thread_vars): + Make it a macro instead of a static inline function. This avoids + the warning with not optimizing. + + * checks/Makefile.in (CFLAGS): Remove -O, for easier debugging. + (SRCS): Added awake.m. + * checks/awake.m: New file, testing -awakeAfterUsingCoder:. + +Sun Nov 24 09:20:47 1996 Andrew McCallum + + * src/NSString.m: Fixed `Caveats' comment. + ([NSString -commonPrefixWithString:options:]): Method implemeneted. + ([NSString -capitalizedString]): Method implemented. + ([NSString -lowercaseString]): Method implemented. + ([NSString -uppercaseString]): Method implemented. + ([NSString -stringByExpandingTildeInPath]): Method implemented. + ([NSString -stringByAbbreviatingWithTildeInPath]): Method implemented. + ([NSString -stringByStandardizingPath]): Method implemented. + ([NSString -_cStringContents]): Method removed. All callers changed + to use -cStringNoCopy. + ([NSString -objectAtIndex:]): Method removed. + + * src/include/NSString.h: Moved non-OpenStep methods aside, put + some under STRICT_OPENSTEP, others under NO_GNUSTEP. Reordered + declarations to match. + [NSString -_cStringContents]: Method removed. + + * src/ostream.m: Don't use old String methods; use NSString + methods. + + * src/include/NSString.h: Don't include + and . + [!NO_GNUSTEP]: Declare -cStringNoCopy. + + * src/UdpPort.m: Don't include + + * src/TextCStream.m ([TextCStream -decodeName:name]): Don't use + the non-existant +stringWithCStringNoCopy:. + * src/Stream.m ([Stream -readLine]): Likewise. + * src/MemoryStream.m ([MemoryStream -readLine]): Likewise. + + * src/NSString.m ([NSString -cStringNoCopy]): New method. + + * src/NSGCString.m ([NSGCString -emptyCopy]): Method removed. It + was part of the Collecting protocol. + ([NSGMutableCString -emptyCopy:]): Likewise. + + * src/*.m, src/include/*.h: Substitute (NSString*) for (id + ). + + * src/Makefile.in (GNU_MFILES): Remove CString.m, + ConstantString.m, MutableString.m, MutableCString.m, String.m. + (GNU_HEADERS): Remove include/String.h. + + * src/NSString.m: Don't include . + ([NSString +initialize]): Don't use static variable to prevent getting + run twice. + +Mon Nov 18 11:30:39 1996 Andrew McCallum + + * STATUS: Removed classes NSBTreeBlock, NSBTreeCursor, + NSByteStore, and NSByteStoreFile since they are no longer part of + the OpenStep standard. + +Sat Nov 2 15:39:56 1996 Andrew McCallum + + * src/Decoder.m ([Decoder + -_coderCreateReferenceForInterconnectedObject:]): Autorelease the + placeholder object to prevent memory leak. + + * src/Connection.m ([Connection + -forwardForProxy:selector:argFrame:]): Add an assertion that we + processed all arguments and dismissed the ConnectedCoder. + +Thu Oct 31 11:54:42 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.11. + + * src/Makefile.in (DIST_FILES): Remove include/config-win32.sed. + + * src/NSString.m (HAVE_REGISTER_PRINTF_FUNCTION): Move definition + below #include's. + + * checks/nsnotification.m ([Observer -gotNotificationFoo:]): Don't + use %@ inside printf(). + ([Observer -gotNotificationFooNoObject:]): Likewise. + + * checks/nshashtable.m (main): Avoid adding 0 to the hashtable, + because that is currently the o_hash_not_an_element_marker. + + * src/BinaryCStream.m ([BinaryCStream + -encodeValueOfCType:at:withName:name]): Use intermediate float + value. + ([BinaryCStream -decodeValueOfCType:at:withName:]): Likewise. + + * src/stringsfile.y: Remove duplicated content. + * src/stringsfile.l: Likewise. + + * src/StdioStream.m: Fix typo. That's HAVE_STRERROR, not + HAS_STRERROR. + + * src/BinaryCStream.m ([BinaryCStream + -decodeValueOfCType:at:withName:]): Don't make float and double + `volatile'. It conflicts with memcpy. + ([BinaryCStream -encodeValueOfCType:at:withName:name]): Likewise. + + * src/Makefile.in (DEFS): Add comment. + + * src/NSDictionary.m: Include Foundation/NSException.h to get + NSInvalidArgumentException. + + * src/NSCalendarDate.m ([NSCalendarDate + -descriptionWithCalendarFormat:locale:]): Remove unused variables + MS and DS. Avoid warning by not trying to sprintf() a zero-length + string. + + * src/include/NSZone.h: Include gnustep/base/config.h instead of + preface.h; otherwise we get a dependancy loop on the definition on + NSZone. + * src/o_array.m: Include gnustep/base/preface.h first. + + * src/Makefile.in (HEADERS_INSTALL): Added include/config.h. + (install): Don't install include/config.h specially, it's now done + with the rest of the HEADERS_INSTALL files. + (ALL_CPPFLAGS): Don't pass `-include include/config.h' since + include/preface.h now does that. + * src/include/preface.h.in: Include , and + do it first. + + * src/NSUser.m (NSUserName): Make is work for SOLARIS. (Reported + by M. Decugis .) + + * src/NSUserDefaults.m ([NSUserDefaults -initWithUser:]): Don't + try to append to a immutable string! + ([NSUserDefautls +standardUserDefaults]): When creating a new + defaults, return it, not nil! (Reported by M. Decugis + .) + + * src/BinaryCStream.m ([BinaryCStream + -encodeValueOfCType:at:withName:name]): Use memcpy() instead of + assignment to get the floats and doubles from the `at:' argument. + ([BinaryCStream -decodeValueOfCType:at:withName:]): Likewise, for + setting the values. (Reported by M. Decugis + .) + + * src/NSPage.m (getpagesize) [__SOLARIS__]: Define as macro making + proper sysconf call. (Reported by M. Decugis + .) + (NSPageSize): Remove the dependancy on __mach__ to a #define above. + + * configure.in: Use config/config.vsprintf.c to define + VSPRINTF_RETURNS_LENGTH. Deal with different systems for which + vsprintf() returns either the length or the char*. + * Makefile.in (DIST_FILES): Added config/config.vsprintf.c. + * config/config.vsprintf.c: New file. + * src/include/preface.h.in (VSPRINTF_LENGTH): New macro; + definition depends on VSPRINTF_RETURNS_LENGTH. + * src/MemoryStream.m ([MemoryStream -writeFormat:arguments:]): Use + VSPRINTF_LENGTH. + * src/NSString.m ([NSString -initWithFormat:arguments:]): Likewise. + * src/String.m ([String -initWithFormat:arguments:]): Likewise. + ([String -initWithCFormat:arguments:]): Likewise. + * acconfig.h: Add VS_PRINTF_RETURNS_LENGTH. + + * src/RunLoop.m ([RunLoop -limitDateForMode:]): Bracket timer + firing with a retain/release of the MIN_TIMER. (Reported by + Richard Frith-Macdonald .) + + * Heap.m: Fix index comparisons. (From Richard Frith-Macdonald + .) + + * src/include/RunLoop.h (RunLoop _mode_2_fd_speakers): New ivar. + ([RunLoop]): Added new methods for notification of readiness of file + descriptors for reading and writing. Done by Richard + Frith-Macdonald . + * src/RunLoop.m: Added implementation of new methods for + notification of readiness of file descriptors for reading and + writing. Done by Richard Frith-Macdonald + . + * examples/first-server.m: Added test of RunLoop FD listening. + Done by Richard Frith-Macdonald . + + * src/mframe.m (method_types_get_next_argument): Do weird argframe + workaround not just on m68k, but on all NeXT systems. (Reported + by Richard Frith-Macdonald .) + + * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Fix + assignment of TIMEOUT.TV_USEC. (Reported by Richard + Frith-Macdonald .) + +Wed Oct 23 11:19:05 1996 Scott Christley + + * src/Makefile.sed.nt: Link with ObjC runtime DLL library + when making gnustep-base a DLL. + * src/NSProcessInfo.m (main): Initialize network library for Win32. + * src/RunLoop.m (-acceptInputForMode:beforeDate:): When determining + which ports are ready for reading, don't assume that file + descriptor for FD_ISSET is an integer. Maintain list of ports + we are listening to so that we check those exact ports when + determining which are ready for reading. + * src/TcpPort.m (invalidate): Use closesocket function on Win32. + (_getPacketSize:andReplyPort:fromSocket:inPort:): Use recv instead + of read for Win32 as read doesn't work for sockets. + (_fillFromSocket:): Likewise. + (_writeToSocket:withReplySockaddr:): Use send instead of write + for Win32 as write doesn't work for sockets. + * src/behavior.m: Don't directly access the ObjC runtime uninstalled + dtable variable, use the public function instead. + * src/objc-load.m: Likewise. + * checks/Makefile.sed.nt: Add specific targets for tcpport-server + and tcpport-client. Remove unneeded definitions. + +Tue Oct 15 15:29:07 1996 Adam Fedor + + * src/objc-load.c: Use gnu names for objc_load_modules and + objc_unload_modules functions as defined in header. + * src/include/objc-load.h (objc_load_modules, objc_unload_modules): + Use Class not Class*. + +Fri Oct 18 10:45:10 1996 Scott Christley + + * Makefile.sed.nt: Always force gnustep/base target. + * src/NSDate.m (+timeIntervalSinceReferenceDate): Use native + Win32 functions to obtain current time. + * src/Time.m (gettimeofday): Win32 implementation, not year + 2000 compliant so don't use it. + * src/include/NSZone.h: Include preface.c so that NSZone gets + configuration settings. + +Wed Oct 16 10:01:23 1996 Scott Christley + + * checks/nsdate.m: New file. + * src/NSCalendarDate.m: New file. + * checks/Makefile.in: Add test program for NSDate classes. + * src/Makefile.in (GNUSTEP_MFILES: Add NSCalendarDate.m. + * src/NSDate.m: Eliminate use of NSConcreteDate. Utilize the + NSCalendarDate class for implementing some methods. + * src/include/NSDate.h: Add NSCalendarDate interface. + +Tue Oct 1 12:56:09 1996 Nicholas Christopher + + * NSString.m: Implemented -initWithContentsOfFile: and + -propertyListFromStringsFileFormat:. + * stringsfile.l, stringsfile.y: New files. + +Fri Oct 25 20:22:37 1996 Andrew McCallum + + * src/StdioStream.m (strerror) [!HAS_STRERROR]: New function from + Richard Frith-Macdonald . + * configure.in: Check for strerror(). + +Fri Sep 27 10:33:07 1996 Adam Fedor + + * aclocal.m4 (OBJC_CON_AUTOLOAD): New macro. Explicit check for + constructor loading. + (OBJC_SYS_AUTOLOAD): Insert '_cv' in cache variable name to get it + to cache correctly. + (OBJC_SYS_DYNAMIC_LINKER): Use headers to determine linker. Check + for libraries separately. + (OBJC_SYS_DYNAMIC_FLAGS): Check to see if '-shared' load flag + works (for DEC Alpha). + +Thu Sep 26 12:39:18 1996 Adam Fedor + + * src/ostream.m (ostream_close_memory): Change to + OSTREAM_SAVEBUFFER constant. + +Wed Sep 25 18:32:14 1996 Scott Christley + + * src/include/config-win32.sed: Delete file. + * src/include/config-win32.h: Changes for new config.h.in. + * configure.bat: Changes for new config.h.in. + * src/Makefile.sed.nt: Changes for new config.h.in. Make sure + preface.h is created before creating gnustep/base directory. + * src/NSUserDefaults.m: Don't include header file for Win32. + * src/Time.m: Specialized time routines for Win32. + + * src/Makefile.in (distclean): Remove generated files. + * admin/example.patch: Remove CVS keywords. + * src/NXStringTable.m: Likewise. + * src/dld-load.h: Likewise. + * src/hpux-load.h: Likewise. + * src/include/objc-load.h: Likewise. + * src/null-load.h: Likewise. + * src/objc/NXStringTable.h: Likewise. + * src/simple-load.h: Likewise. + +Fri Oct 25 18:42:45 1996 Andrew McCallum + + * src/NSSet.m ([NSSet -anyObject]): Implemented. + + * src/NSDictionary.m ([NSDictionary + +dictionaryWithObjectsAndKeys:]): New method. + +Wed Sep 25 08:47:33 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.10. + + * src/NSString.m ([NSString -initWithFormat:arguments:]): Fix bug + whereby multiple %@'s in the same format string created incorrect + output. + + * examples/second-client.m: Don't pass %@ directives to printf(); + use %s and -cStringNoCopy instead. + * examples/second-server.m: Likewise. + + * doc/install.texi: Add the installation step. + +Tue Sep 24 11:20:06 1996 Andrew McCallum + + * Makefile.in (mostlyclean, clean, distclean, maintainer-clean): + Reverse order of subdir-cleaning and topdir-cleaning so that we + don't force the Makefile to automatically run ./configure for us, + (which sometimes happens in the wrong way). + + * src/NSString.m ([NSString -copy]): New method. Now -copy sent + to strings should work. (Added temporarily until this problem is + fixed by me overhaul of the string classes to separate Core and + NonCore methods.) + * checks/string.m (main): Add tests for -copy and -mutableCopy. + + * src/ostream.m (ostream_open_memory): Cast (const char*) to + (char*) when passing to MemoryStream -init... method. + + * examples/second-client.m (main): Rename `exception' to + `localException'. (Reported by Erich Stefan Boleyn + .) + + * admin/HOWTO-patches: Update from libobjects terminology to + gstep-base terminology. + + * doc/install.texi: Mention specification of the GNU runtime in + the GNUstep-specific instructions. + + * configure.in: Warn the user that GNUstep doesn't work with the + NeXT Objective C runtime. + + * src/BinaryCStream.m: Check HAVE_VALUES_H before trying to + include ; use if we don't. + * configure.in: Add check for needed by + BinaryCStream.m. + (Reported by Gregor Hoffleit .) + + * src/NSUserDefaults.m: Don't try to include NeXT's headers; just + include GNUstep headers. + * src/include/NSUserDefaults.h: Likewise. + (Reported by Gregor Hoffleit .) + + * src/ostream.m (ostream_close_memory): Send -setFreeWhenDone:NO to + the MemoryStream, not -release. + * src/MemoryStream.m ([MemoryStream -setFreeWhenDone:]): New + method. + * src/include/MemoryStream.h: Declare new method. + (Reported by Adam Fedor .) + + * aclocal.m4: Do forgotten renames of ac_cv_sys_dld and + ac_cv_sys_autoload to objc_cv_sys_dld and objc_cv_sys_autoload. + (Reported by Nick Christopher .) + + * src/include/objc-gnu2next.h: Don't include + gnustep/base/objc-malloc.h. + + * src/NSSet.m ([NSMutableSet -addObjectsFromArray:]): Implemented. + +Wed Sep 18 09:11:44 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.9. + + * src/NSString.m (HAVE_REGISTER_PRINTF_FUNCTION): Temporarily set + this to 0 until I figure out when register_printf_function's + output handler function takes `va_list' and when it takes + `void**'. + + * src/TcpPort.m: Use new ivar name eof_position, not old + eofPosition. + + * src/include/NSZone.h: Don't include gnustep/base/config.h. + +Tue Sep 17 16:44:15 1996 Andrew McCallum + + * src/ostream.m (ostream_open_memory): Use new MemoryStream method + to specify that buffer should not be deallocated when MemoryStream + is deallocated. Don't do the extra retain that was the previous + workaround. + * src/MemoryStream.m: Rename all uses of ivar eof_position. + ([MemoryStream -_initOnMallocBuffer:freeWhenDone:size: + eofPosition:prefix:position:]): Method name changed to include + freeWhenDone:. Set new ivar. + ([MemoryStream -_initOnMallocBuffer:size: + eofPosition:prefix:position:]): New method (with old name) that + calls above method with `YES' for freeWhenDone:. + * src/include/MemoryStream.h: Declare new method. + (MemoryStream free_when_done): New ivar. + (MemoryStream eof_position): Ivar renamed from eofPosition, to + conform to GNU coding standards. + + * src/Makefile.in (GNU_MFILES): Rename objc_streams.m to + ostream.h. + (GNU_HEADERS): Rename objc_streams.h to ostream.h. + * src/ostream.m: File renamed from src/objc_streams.m. Fix + copyright date, and make minor formatting changes. + * src/ostream.h: File renamed from src/objc_streams.h. Fix + copyright date, and make minor formatting changes. + + * src/MemoryStream.m (MEMORY_CHECK): Macro deleted. objc_malloc() + and friends take care of raising the correct exception. All calls + removed. + +Tue Sep 17 11:43:23 1996 Adam Fedor + + * src/Makefile.in (GNU_MFILES): Add new file. + (GNU_HEADERS): Likewise. + + * src/MemoryStream.m ([MemoryStream + -initWithSize:prefix:position:]): Add error checking. + ([MemoryStream -writeBytes:length:]): Likewise. + ([MemoryStream -setStreamBufferCapacity:]): Likewise. + * src/StdioStream.m ([StdioStream -initWithFilename:fmode]): Add + error checking. + ([StdioStream -initWithFileDescriptor:fmode]): Likewise. + ([StdioStream -writeBytes:length:]): Likewise. + ([StdioStream -readBytes:length:]): Likewise. + + * src/Stream.m ([Stream -writeFormat:]): Implement. + ([Stream -setStreamPosition:]): Likewise. + * src/MemoryStream.m ([MemoryStream -writeFormat:arguments:]): + Implement instead of writeFormat:. ([MemoryStream + -setStreamPosition:seekMode:]): Implement instead of + -setStreamPostion:. + * src/StdioStream.m ([StdioStream -writeFormat:arguments:]): + Implement instead of writeFormat:. ([StdioStream + -setStreamPosition:seekMode:]): Implement instead of + -setStreamPostion:. + + * src/objc_streams.m: New file. + * src/base/objc_streams.h: New file. + + * src/base/Stream.h: Declare new exception. + * src/Stream.m: Define it. + + * src/base/Streaming.h: Add new enum type. Add + -setStreamPostion:seeMode: to protocol. + +Tue Sep 17 10:33:31 1996 Andrew McCallum + + * doc/install.texi: Fix typo in use of @code{}. + + * src/md5.c: Don't include config.h. + + * Makefile.in (DIST_FILES): Added contents of RCS_FILES. Added + acconfig.h. + (RCS_FILES): Variable removed. + + * doc/gnustep-faq.texi: Cause the time stamp to be updated + automatically by Emacs. + + * src/NSScanner.m ([NSScanner -scanRadixUnsignedInt:]): New + method. + ([NSScanner -_scanInt:]): Deal with overflow better. (?) + ([NSScanner -scanLongLong:]): Likewise. + * src/include/NSScanner.h: Declare new method. + * checks/nsscanner.m: Test new method, -scanRadixUnsignedInt:. + Changes from Eric Norum . + + * src/NSObject.m ([NSObject -doesNotRecognizeSelector:]): Raise + NSInvalidArgumentException, not NSGenericException. (Reported by + Jeremy Bettis .) + +Mon Sep 16 20:11:54 CDT 1996 Jeremy Bettis + + * src/HashTable.m ([HashTable -isKey]): Updated isKey to use the new + hash_value_for_key function in the runtime, and thereby allow for + nulls in HashTables. + +Mon Sep 16 15:08:42 1996 Andrew McCallum + + * aclocal.m4 (DYNAMIC_LINKER): Put double quotes around some + $-variable dereferences. (Reported by Richard Frith-Macdonald + .) + + * src/o_vscanf.c: Include . (Reported by Richard + Frith-Macdonald .) + + * src/include/preface.h.in: Don't include gnustep/base/config.h. + Note, this file used to define NeXT_runtime and NeXT_cc. These + macros will no longer be available to library users. + + * src/include/config.h.in: File removed. It is not automatically + generated by autoheader in src/Makefile. + + * src/o_vscanf.c: Don't include no-longer-existant + gnustep/base/objc-malloc.h. (Reported by Adam Fedor.) + + * src/Makefile.in (include/config.h.in): New dependancy. + (include/config.h): New dependancy. + (ALL_CPPFLAGS): Added -include argument to have gcc look at + include/config.h. It is no longer included in include/preface.h + because other packages that use the installed Base Library may + have their own ideas about these macro values. + + * acconfig.h: New file, needed for autoheader. + + * configure.in: Use AC_CONFIG_HEADER to put config macros in a + file instead of on gcc's command line. Use AC_DEFINE_UNQUOTED to + set NeXT_runtime and NeXT_cc instead of using AC_SUBST. + + * make-dist-diff (diff): Add -N flag so new files will get + created. + +Sat Sep 7 13:37:32 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.8. + + Beginning of changes related to use of new Objective C runtime. + + * Makefile.in (DIST_FILES): Remove gcc-objc.patch. Add + gcc-2.7.2-objc.diff and gcc-2.7.2.1-objc.diff. + + * configure.in: Insert -lobjc before rest of LIBS, not after. + + * src/include/NSThread.h: Remove underscore from front of + objc_thread type. + + * src/NSObject.m: Remove underscores from front of objc_mutex + types. + ([NSObject -error:]): Use objc_verror(), not _objc_error. + + * doc/install.texi: Refine instructions for installing pthreads. + Wow, is it yucky. + + * configure.in: Remove check for sel_types_match. That patch was + added long ago. + + * src/include/preface.h.in (OBJC_STRINGIFY): New macro. + + * src/include/preface.h.in: Don't include objc-malloc.h. + + * src/Foundation/NSLock.h: Remove underscore from before + objc_mutex_t. + + * src/include/preface.h.in (OBJC_MALLOC): Macro moved here from + src/include/objc-malloc.h. + (OBJC_VALLOC): Likewise. + (OBJC_ATOMIC_MALLOC): Likewise. + (OBJC_REALLOC): Likewise. + (OBJC_CALLOC): Likewise. + (OBJC_FREE): Likewise. + + * src/mframe.m: Don't include objc-malloc.h. + * src/RNGAdditiveCongruential.m: Likewise. + * src/NSAutoreleasePool.m: Likewise. + * src/MemoryStream.m: Likewise. + * src/AutoreleasePool.m: Likewise. + + * src/Makefile.in (GNU_MFILES): Remove objc-malloc.m. + (GNU_HEADERS): Remove include/objc-malloc.h. + + * src/mframe.m (mframe_build_return): In accordance with Objective + C runtime change, use objc_malloc as a function, not a function + pointer. + * src/behavior.m (behavior_class_add_methods): Likewise. + * src/Storage.m ([Storage -initCount:elementSize:description:]): + Likewise. + ([Storage -shallowCopy]): Likewise. + ([Storage -read:]): Likewise. + * src/Storage.m ([Storage -initCount:elementSize:description:]): + Likewise. + * src/NSMutableData.m ([NSMutableData -initWithCapacity:]): Likewise. + * src/NSGData.m ([NSGMutableData -initWithCapacity:]): Likewise. + * src/NSData.m ([NSMutableData -initWithCapacity:]): Likewise. + * src/NSAutoreleasePool.m ([NSAutoreleasePool -init]): Likewise. + ([NSAutoreleasePool -addObject:]): Likewise. + * src/MemoryStream.m ([MemoryStream -readLine]): Likewise. + * src/Invocation.m ([Invocation -initWithCoder:]): Likewise. + * src/o_vscanf.c (STRING_ARG): Likewise. + (STRING_ADD_CHAR): Likewise, with objc_realloc. + * src/NSZone.m: Likewise. + * src/Storage.m: Likewise. + * src/MemoryStream.m ([MemoryStream -writeBytes:length:]): Likewise. + + * doc/install.texi: Update instructions for new Objective C + runtime patches and for new pthreads. + + * RELEASE-NOTES: Talk about need for new Objective C runtime to + compile this release. + + End of changes related to use of new Objective C runtime. + + * config.guess: New version from FSF. + + * doc/Makefile.in: Added some pattern rules, but commented them + out for now. + + * src/NSGCString.m ([NSGCString -substringFromRange:]): Don't + always return a mutable string class; return the same + mutable/immutable string class as self. This also simplies the + code. + + * src/NSGCString.m ([NSGCString -substringFromRange:]): New + method, overrides superclass method with more efficient + implementation. (From Eric Norum.) + + * src/NSScanner.m: Now that NSCharacterSet's does its own caching, + simplify this code. + (Changes from Eric Norum .) + + * src/NSCharacterSet.m (NSCharacterSet_PATH): New macro, replacing + BITMAP_PATH. Value partially determined by + GNUSTEP_INSTALL_PREFIX. + + * configure.in: Use AC_CHECKING instead of `echo', so ./configure + obeys --quiet and --silent. + + * src/Makefile.in (DEFS): Add definition of + GNUSTEP_INSTALL_PREFIX, equal to $(prefix). This is needed by + NSCharacterSet, so it knows where to find the char set data files. + +Thu Aug 1 10:42:19 1996 Adam Fedor + + * src/NSCharacterSet.m ([NSCharacterSet -_bitmapForSet:number:]): + Retain cached set. + +Wed Sep 4 11:29:31 1996 Andrew McCallum + + * doc/gnustep-faq.texi (Why don't we separate the OpenStep + standard classes from the GNU-specific classes?): New Q/A pair. + (Where can I get a copy?): Removed reference to Rochester's FTP site, + which will no longer be used, now that I'm at CMU. + +Mon Sep 2 10:00:05 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.7. + + * checks/nsbundle.m: Use new exception variable name. + * checks/values.m: Likewise. + + * src/NSString.m ([NSString -substringFromRange:]): Implement it + using CString's for now so we can get it working; (we'll fix + everything for Unichar's in the next release). + + * checks/nsscanner.m: New file from Eric Norum. + + * Version: Remove spaces around `=' so file can be + read by sh. + (VERSION): Use curly braces for sh. + + * src/NSString.m ([NSString -substringFromRange:]): Fix bug in + references to string length. + + * src/NSGArray.m: Declare NonCore classes. + + * src/NSCharacterSet.m ([NSCharacterSet +_bitmapForSet:number:]): + Add an abort() after raising the exception, to avoid gcc warning. + + * Makefile.in (clean): Fix dependancies so we actually clean-top, + not mostlyclean-top. + (distclean): Analogously. + (maintainer-clean): Analogously. + +Tue Aug 27 13:38:14 1996 Adam Fedor + + * src/Connection.m ([Connection -_service_forwardForProxy]): Use + new exception variable name. + * src/NSCharacterSet.m: ([NSCharacterSet -_bitmapForSet:number:]): + Likewise + +Sat Aug 24 16:41:01 1996 Adam Fedor + + * src/include/NSException.h (NS_HANDLER): Change local exception + variable name. + +Wed Jul 17 16:04:29 1996 Adam Fedor + + * NSCharacterSet.m: Cache standard character + sets. ([NSCharacterSet +initialize]): New method. + ([NSCharacterSet _bitmapForSet:number:]): Return set from cache if + available, otherwise find bitmap file and add to cache. All + callers changed. + +Mon Sep 2 09:23:46 1996 Andrew McCallum + + * src/NSString.m ([NSString -substringFromRange:]): Raise correct + exceptions. + + * src/Makefile.in (install): Make a soft link from + `$(includedir)/gnustep/base' to `$(includedir)/objc' the same way + we do for `$(includedir)/Foundation'. + + * src/NSString.m ([NSString -getCharacters:range:]): Fix bug in + buffer index. + (Reported by Eric Norum .) + ([NSString -rangeOfString:aStringoptions:maskrange:aRange]): + Implemented. (By Eric Norum.) + + * src/NSUser.m: Include . + +Sun Aug 25 16:12:49 1996 Andrew McCallum + + * checks/Makefile.in (SRCS): Added nsscanner.m from Eric Norum. + + * src/NSScanner.m: Fix indentation. + ([NSScanner +scannerWithString:]): Rewrite to avoid unnecessary + local variable. + ([NSScanner -initWithString:]): Call [super init]. + ([NSScanner -_scanCharactersFromSet:intoString:]): Method renamed to + put underscore at the beginning, not in the middle of the method + name. All callers changed. + ([NSScanner -_skipToNextField]): Likewise. + ([NSScanner +localizedScannerWithString:]): New method, unimplemented. + ([NSScanner -scanDouble:]): Initialize `unichar c' to avoid warning. + ([NSScanner -scanLongLong:]): Don't compare with -(LONG_LONG_MIN), + this number is out of range since, in two-complement arithmetic, + we have one more negative number than positive numbers. + * src/include/NSScanner.h: Include . Fix + indentation. Standarize #define wrapper symbol. + + * src/NSScanner.m, src/include/NSScanner.h: New files from Eric + Norum. + +Sun Aug 11 10:54:49 1996 Andrew McCallum + + * src/NSUser.m (NSHomeDirectory): Use NSHomeDirectoryForUser + instead of the HOME environment variable. + + * src/NSUserDefaults.m: #include to + get declarations for NSUser* functions. + (NSUserName): Function removed; it can already be found in + NSUser.m. + (NSHomeDirectory): Likewise. + (NSHomeDirectoryForUser): Likewise. + + * doc/Makefile.in: Fix typo: properly comment out section. + + * doc/gnustep-faq.texi: English fixes, and move NSScanner to + `implemented' list. + + * doc/install.texi: English fixes, and mention --enable-shared + with Base Library configure directions. + + * README.foundation: Add note about making a soft link, instead of + adding #ifdef's to the code. + + * NSBundle.README: Change name from libobjects to GNUstep Base + Library. + * README.first: Likewise. + +Wed Aug 7 09:06:10 1996 Andrew McCallum + + * src/mframe.m (mframe_build_return): Remove comment about users + responsibility to free returned char*'s; it's no longer true. + +Mon Aug 5 11:25:30 1996 Andrew McCallum + + * src/include/NSArray.h: Remove declaration of NonCore classes; + just the category is sufficient. + +Mon Sep 2 09:11:34 1996 Andrew McCallum + + * src/mframe.m: Use gcc's __builtin_return smarts to find location + of `char' and `short' return values; don't use my (possibly wrong) + guesses. + (retframe_char): New nested function. + (retframe_short): New nested function. + (mframe_do_call) [_C_CHR, _C_UCHR]: Use retframe_char. + [_C_SHT, _C_USHT]: Use retframe_short. + + * src/NSObject.m ([NSObject -isKindOfClass:]): Fix formatting. + +Fri Aug 30 17:00:29 1996 Andrew McCallum + + * src/Dictionary.m ([Dictionary -removeObject:]): Implemented + method. (Needs testing!) + +Thu Jul 11 21:12:41 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.6. + +Tue Jun 25 12:56:01 1996 Scott Christley + + * NSCharacterSets/Makefile.in: Remove Makefile when distclean. + * admin/Makefile.in: Likewise. + * checks/Makefile.in: Change realclean target to maintainer-clean. + * doc/Makefile.in: Likewise. + * examples/Makefile.in: Likewise. + + * Makefile.in: Clean the subdirectories first before the top + level directory to avoid configuration loop. + + * checks/Makefile.sed.nt: Change name of runtime initialization + routine to use standard "_init_runtime" suffix. + * checks/nsarchiver.m: Likewise. + * checks/nsarray.m: Likewise. + * src/win32-entry.c: Likewise. + * src/Makefile.in: Likewise. Clean additional files. + + * src/NSDate.m: Use __WIN32__ macro instead of WIN32. + + * src/NSTime.m: Implement Win32 specific time routines. + * src/include/config-win32.h: Likewise. + +Fri Jun 21 16:45:31 1996 Scott Christley + + * configure.bat: New filenames for Win32 configuration. + * src/Makefile.in: (DIST_FILES): Add Win32 configuration files: + src/include/config-win32.sed, src/include/config-win32.h. + * src/BinaryCStream.m: Rename WIN32 to __WIN32__ to conform + to ANSI specifications. Perform any WIN32 customization. + * src/NSBundle.m: Likewise. + * src/NSPage.m: Likewise. + * src/NSProcessInfo.m: Likewise. + * src/NSUser.m: Likewise. + * src/NSRunLoop.m: Likewise. + * src/TcpPort.m: Likewise. + * src/UdpPort.m: Likewise. + * src/find_exec.c: Likewise. + * src/include/TcpPort.h: Likewise. + * src/include/Time.h: Likewise. + * src/include/config-nt.sed: Renamed to config-win32.sed. + * src/include/config-nt.h: Renamed to config-win32.h + +Thu Jul 11 08:20:34 1996 Andrew McCallum + + * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Remove + untrue assertion that SELF be this thread's current pool. + (Reported by Adam Fedor.) + + * checks/Makefile.in (LIBS): Remove -lmcheck. + + * Version (SUBMINOR_VERSION): Version 0.2.5. + + * doc/news.texi: Fix typo, replace @ with @@ in email address. + + * Version (SUBMINOR_VERSION): Version 0.2.4. + + * src/NSString.m (PRINTF_ATSIGN_VA_LIST): Reverse sense of test. + This macro should be defined if libc version is *less than* 5.2. + + * examples/dictionary.m: Long-overdue update for new collection + heirarchy. + * examples/textcoding.m (main): Fix typo in comment. + * examples/second-server.m: Add comments. + * examples/second-client.m (main): To avoid warnings: make SERVER + static; get rid of unused variable. + * examples/Makefile.in (CFLAGS): Added -Wno-format so we don't get + complains about the %@ printf directive. + + * doc/news.texi: Add news about NSUserDefaults, thread-safety, @%, + and NSPage. + * doc/readme.texi: Update description of classes, although the + list is still incomplete. + +Wed Jul 10 16:28:14 1996 Andrew McCallum + + * doc/gnustep-faq.texi: New Q/A about mixing Objective C and C++. + Include base-desc.texi for description of Base Library. Update + "state of development for Base Library. Correct description of + NeXT's archiving. Add ocbi.com ftp site. + * doc/base-desc.texi: Improve list of example classes. + * doc/announce.texi: Fix comments about NeXT's cc. + * doc/machines.texi: Label as out-of-date. + * doc/advertisement.texi: Comment out inclusion of machines.texi. + + * src/NSUserDefaults.m: Fix source to avoid warnings. + + * src/NSUserDefaults.m: New file from Georg Tuparev. + * src/include/NSUserDefaults.h: Likewise. + * src/NSUserDefaults.m, src/include/NSUserDefaults.h: Fix + formatting to conform to GNU standards. + * src/Makefile.in (GNUSTEP_MFILES): Added NSUserDefaults.m. + (GNUSTEP_HEADERS): Added include/NSUserDefaults.h. + +Tue Jul 9 20:05:16 1996 Andrew McCallum + + * doc/install.texi: Enumerate the steps, and various other + corrections. + + * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Free + fd_2_object before returning in case where select() returned 0. + (Reported by Marc Decugis .) + +Mon Jul 8 21:55:11 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): Version 0.2.3. + + * src/Invocation.m ([ArgframeInvocation -dealloc]): Release + arguments depending on ARGS_RETAINED, not RETURN_RETAINED. + + * checks/release.m: New file. + * checks/Makefile.in (SRCS): Added release.m. + + * src/o_map.m (o_map_remove_node): Function renamed from + o_map_remove_node_from_its_map(). Free the node after removing + it! Otherwise, memory leaks and leaks! + * src/NSObject.m (NSDecrementExtraRefCountWasZero): Call renamed + function for removing node. + + * src/NSAutoreleasePool.m (push_pool_to_cache): Avoid unnecessary + test. + (pop_pool_from_cache): Don't bother conditionally initializing the + cache; it will always be initialized when we are here. + ([NSAutoreleasePool -dealloc]): Add assertion. + ([NSAutoreleasePool -reallyDealloc]): New method. + +Tue May 28 15:39:36 1996 Adam Fedor + + * checks/nsmaptable.m: Check for nil map element. + + * src/Invocation [Invocation -dealloc]: Release return_value + only if return_retained. + [ArgframeInvocation -dealloc]: Likewise. + +Sat Jul 6 09:03:25 1996 Andrew McCallum + + * Version (SUBMINOR_VERSION): gnustep-base version 0.2.2. + + * doc/install.texi: Describe installation of pthreads. + + * src/NSObject.m ([NSObject +initialize]): Use + o_map_with_callbacks(), instead of the short-cut function + o_map_of_non_owned_void_p_to_int(). + + * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Add + comment about arbitrary fd port limit. Fix this eventually. + + * checks/tcpport-client.m (main): When argc == 1, pass nil for + hostname instead of @"localhost". + + * checks/string.m (main): Add test of copyWithZone. + + * src/TcpPort.m ([TcpOutPacket + -_writeToSocket:withReplySockaddr:]): Use memcpy() instead of + cast; some systems have trouble with the cast due to alignment + issues. (Reported by Marc Decugis .) + ([TcpInPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): + Likewise. + + * configure.in: Clean up echo'ed message for shared library flags. + + * gcc-objc.patch: New objc runtime patch from Scott Christley. + * Makefile.in (DIST_FILES): Include gcc-objc.patch instead of + objc.patch. + * doc/install.texi: Update instructions for new objc runtime + patch. + + * src/Foundation/NSAutoreleasePool.h: Include for + memset(). + + A first attempt at making NotificationDispatcher thread-safe. + * src/NotificationDispatcher.m ([NotificationDispatcher -init]): + + Create _LOCK. + ([NotificationDispatcher -dealloc]): New method. + ([NotificationDispatcher + -_addObserver:notificationRequest:name:object:]): Use _LOCK to + provide thread-safety. Lock around all access to ivars. + ([NotificationDispatcher -removeObserver:]): Likewise. + ([NotificationDispatcher -removeObserver:name:object:]): Likewise. + ([NotificationDispatcher -postNotification:]): Likewise. All + Notification postings are serialized. If this weren't true, the + user would have to worry about all kinds of thread-safety issues + in unpredictable ways, because there is no way to tell what other + objects have asked for notification postings. + * src/include/NotificationDispatcher.h (NotificationDispatcher + _lock): New ivar. + + Fix error that occurs when using a TcpOutPort that was created + with a default hostname. + + * src/TcpPort.m ([TcpInPort +newForReceivingFromPortNumber:]): + Terminate the hostname at the first dot before looking up with + gethostbyname(). If gethostbyname() fails, don't try again with + "localhost"; signal an error instead. + ([TcpOutPort +newForSendingToPortNumber:onHost:]): When HOSTNAME is + empty or nil, don't use "localhost", look up the name of the local + machine, and use that. Before this change we could easily get + "Can't change reply port of an out port once set" errors. + +Fri Jul 5 08:59:26 1996 Andrew McCallum + + Use more-efficient o_map instead NSMapTable for retain counts. + + * src/NSObject.m (retain_counts): Make it an o_map instead of + NSMapTable; (o_map is more efficient). + (NSIncrementExtraRefCount): Use o_map interface. + (NSDecrementExtraRefCountWasZero): Likewise. + ([NSObject +initialize]): Likewise. + ([NSObject -retainCount]): Likewise. + + * src/o_map.m (o_map_node_for_key): New function, non-static, for + efficient implementation of NSObject retain count management. + (o_map_remove_node_from_its_map): Likewise. + +Thu Jul 4 21:00:42 1996 Andrew McCallum + + Make -retain/-release counts thread-safe. + + * src/NSObject.m (retain_counts_gate): New static variable, mutex + for protecting RETAIN_COUNTS. + (NSIncrementExtraRefCount): Use it. + (NSDecrementExtraRefCountWasZero): Likewise. + ([NSObject -retainCount]): Likewise. + ([NSObject +initialize]): Allocate RETAIN_COUNTS_GATE. + +Tue Jun 11 14:50:20 1996 Andrew McCallum + + Make NSAutoreleasePool thread-safe. + + * src/include/NSAutoreleasePool.h (struct + autorelease_thread_vars): New structure declared. + (struct autorelease_cache): Structure declaration removed. + (init_autorelease_thread_vars): New static inline function. + + * src/NSAutoreleasePool.m (ARP_THREAD_VARS): New macro for + accessing NSAutoreleasePool's per-thread variables. + (current_pool): Static variable removed. + (total_autoreleased_objects_count): Likewise. + (autorelease_pool_cache): Likewise. + (autorelease_pool_size): Likewise. + (autorelease_pool_count): Likewise. + (push_pool_to_cache): Add (struct autorelease_thread_vars*) argument. + All callers changed. + (pop_pool_from_cache): Likewise. + (push_pool_to_cache): Likewise. + (init_pool_cache): New function. + ([NSAutoreleasePool +initialize]): Don't initialize the + autorelease_pool_cache here. + ([NSAutoreleasePool +init]): Use per-thread variables. + ([NSAutoreleasePool -autoreleaseCountForObject:]): Likewise. + ([NSAutoreleasePool -currentPool:]): Likewise. + ([NSAutoreleasePool +currentPool:]): Likewise. + ([NSAutoreleasePool -addObject:]): Likewise. + ([NSAutoreleasePool +addObject:]): Likewise. + ([NSAutoreleasePool -dealloc:]): Likewise. + ([NSAutoreleasePool +totalAutoreleasedObjects:]): Likewise. This + return value is now only a per-thread count. + ([NSAutoreleasePool +resetTotalAutoreleasedObjects:]): Likewise. + + * src/include/NSThread.h: Make the ivars @public, not @private, so + NSAutoreleasePool can efficiently access the _autorelease_vars + ivar. + (_autorelease_vars): New ivar. + + * src/NSThread.m ([NSThread -init]): Instead of creating an + NSMutableDictionary here, just set the ivar `_thread_dictionary' to + nil, and create it later, only on demand. Use + `init_autorelease_thread_vars()' to initialize `_autorelease_vars'. + ([NSThread -threadDictionary]): If `_thread_dictionary' is nil, + create it. + + * checks/string.m (print_string): Use -cStringNoCopy instead of + -cString. + (main): Test the use of the `%@' printf format directive. + + Implement handling of `%@' for non-GNU libc systems. + * src/NSString.m: Include . + (PRINTF_ATSIGN_VA_LIST): Make it an expression that depends on the + libc version, not a boolean constant. + ([NSString -initWithFormat:arguments:]): Implement the `%@' printf + directive in the case where the available libc doesn't have + `register_printf_function()'. It does not currently handle format + width specifiers, etc. + +Mon Jun 10 23:22:58 1996 Andrew McCallum + + * src/gnustep/base/preface.h.in: Fix comment. + +Mon Jun 3 12:07:16 1996 Andrew McCallum + + * src/Makefile.in (gnustep/base): Remove `gnustep' and `base' + before trying to recreate them. + +Fri May 31 10:06:05 1996 Andrew McCallum + + * src/Makefile.in (gnustep/base): Make a link for `Foundation' + when building in a separate directory. + + * doc/install.texi: Mention making a link from thread.h to thr.h. + + * src/StdioStream.m ([StdioStream -readBytes:length:]): Don't + assert that we get as many bytes as we asked for. + + * checks/Makefile.in (ALL_CPPFLAGS): Look in ../src/srcdir-include. + * examples/Makefile.in (ALL_CPPFLAGS): Likewise. + + * src/NSLock.m: Include . Fix typo. + + * src/proplist.l (unescstr): Bug fix from Nathan Urban + . + + This is a feeble attempt to use the correct flags for making a + shared library. Other than the GNU-standard flags, so far I've + just taken care of the Solaris case. + * src/Makefile.in (CFLAGS_SHAREDLIB_GNU): New variable. + (CFLAGS_SHAREDLIB_SOLARIS): New variable. + (CFLAGS_SHAREDLIB): New variable set from configure. + (lib$(LIBRARY_NAME).so.$(VERSION)): Use it. + * configure.in (CFLAGS_SHAREDLIB): Figure this out, and AC_SUBST it. + + * src/Makefile.in (maintainer-clean): Remove *_bas and *_cbs files. + (GNU_MFILES): Fix typo. + + * src/NSProcessInfo.m (__gnustep_base_subinit_args__): No longer + declared static; (avoids warning). + + * src/Makefile.in: Rename all `o-*' files to `o_*', and prepend + `o_' to some related files. + * src/o-*, src/include/o-*: Rename to `o_'. + + * src/NSString.m ([NSString -initWithFormat:arguments:]): Increase + bsprintf buffer size, and assert that we haven't overrun the + buffer. + + * src/Makefile.in (GNU_OTHER_SRCFILES): Added win32-entry.c and + win32-def.top. + + * src/NSObject.m: Don't declare `errno'. + + * src/NSAutoreleasePool.m: Don't include . + + * src/BinaryCStream.m (WRITE_SIGNED_TYPE): Avoid alignment errors + by using memcpy() instead of trying to assign to (_TYPE*)(BUFFER+1). + (WRITE_UNSIGNED_TYPE): Likewise. + +Fri May 31 08:20:09 1996 Adam Fedor + + * src/NSProcessInfo.m (main): Pass `env' variable to + gnustep_base_user_main. + +Tue May 28 09:37:19 1996 Andrew McCallum + + * src/include/NSPathUtilities.h: New file. + * src/Makefile.in (GNUSTEP_HEADERS): Added + include/NSPathUtilities.h. + + * src/NSUser.m: New file. + * src/Makefile.in (GNUSTEP_MFILES): Added NSUser.m. + + * src/NSPage.m: New file. + * src/include/NSZone.h (NSPageSize, NSLogPageSize, + NSRoundUpToMultipleOfPageSize, NSRoundDownToMultipleOfPageSize, + NSRealMemoryAvailable, NSAllocateMemoryPages, + NSDeallocateMemoryPages, NSCopyMemoryPages): New functions + declared; they are implemented in NSPage.m. + + * src/Makefile.in (ALL_INCLUDE_FLAGS): Undo last change, except + use name `srcdir-include' instead of `include'. This should allow + building is a separate directory than the source, yet still avoid + confusion between and on win32 systems. + (gnustep/base:): Use `srcdir-include' instead of `include' for extra + links needed when building in a separate directory than the + source. + + * src/NSException.m (_NSAddHandler): When creating E_QUEUE, don't + autorelease and then retain; instead just allocate it + un-autoreleased. + + * checks/Makefile.in (SRCS): Added basic.m. + * checks/basic.m: New file. + + * src/NSLock.m: Include first! Fix + indentation. + ([NSLock +initialize]): Method removed. + ([NSLock -init]): Assert return value from objc_mutex_allocate(), + don't just return nil. + ([NSConditionLock -initWithCondition:]): Likewise. + ([NSRecursiveLock -init]): Likewise. + ([NSConditionLock +initialize]): Method removed. + ([NSRecursiveLock +initialize]): Method removed. + +Mon May 27 09:57:34 1996 Andrew McCallum + + * Makefile.in (DIST_FILES): Added README.ucblib. + + * src/include/objc-gnu2next.h: Remove "Object (GNUExtentions)" + Category. We no longer use Object; we use NSObject. + + Do our best to use "%@" (Objective-C String object printf-format + tag) as little as possible, because, for now, it is not + implemented on non-GNU-libc systems. + * src/KeyedCollection.m ([ConstantKeyedCollection -description]): + Instead of @%, use %s and [s cStringNoCopy]. + * src/NSHashTable.m (NSStringFromHashTable): Likewise. + (NSHashInsertKnownAbsent): Likewise. + * src/NSMapTable.m (NSStringFromMapTable): Likewise. + (NSMapInsertKnownAbsent): Likewise. + * src/TextCStream.m ([TextCStream + -encodeValueOfCType:at:withName:]): Likewise. + ([TextCStream -encodeName:n]): Likewise. + * src/o-hash.m (o_hash_description): Likewise. + * src/x-bas.m.in (_o_@XX@_description): Likewise. + * src/NSDictionary.m ([NSDictionary -descriptionWithIndent:]): Use + -cStringNoCopy instead of -cString. + + * src/x-cbs.m.in: Prepend missing `o-' in #include. + * src/x-bas.m.in: Likewise. + +Mon May 20 16:53:57 1996 Adam Fedor + + * src/include/NSGeometry.h: Include NSString functions only if + compiling in Objective-C mode (using "#ifdef __OBJC__"). + +Tue May 14 20:03:55 1996 Scott Christley + + * INSTALL.WIN32: Correct grammatical errors. + * Makefile.sed.nt: Sed script now handles install and all + targets for top level Makefile. + * checks/Makefile.sed.nt: Corrections to handle changes + to checks/Makefile.in. + * configure.bat: Corrections to handle the different + directory structure for the header files. + * src/BinaryCStream: Eliminate header files not needed on WIN32. + * src/Makefile.in (ALL_INCLUDE_FLAGS): Eliminate -I./include flag. + (FORCE): New Target. + * src/Makefile.sed.nt: New file; somehow got lost. + * src/RunLoop.m: Eliminate header files not needed on WIN32. + * src/TcpPort.m: Likewise. + * src/UdpPort.m: Likewise. + * src/include/TcpPort.h: Likewise. + * src/include/config-nt.h: New file, got lost during restructuring. + * src/include/config-nt.sed: New file, got lost during restructuring. + * src/libgnustep-base-entry.c: New file. + * src/libgnustep-base.top: New file. + +Wed May 22 06:56:49 1996 Andrew McCallum + + * doc/install.texi: Say that the objc patch will be part of gcc + 2.8.0. + +Mon May 13 09:03:55 1996 Andrew McCallum + + * src/Makefile.in (FILE_AUTHORS): Added "Scott Christley". + + * src/NSString.m ([NSString -description]): Fix warnings. + * src/NSDictionary.m ([NSDictionary -description]): Fix warnings. + + * src/Makefile.in (GNU_OTHER_SRCFILES): Added proplist.l and + proplist.y. + (GNU_MFILES): Added lex.pl.m and proplist.tab.m. + (YACC): New variable. + (GNU_OTHER_SRCFILES): Added proplist., proplist.tab.h and proplist.y. + (proplist.tab.m proplist.tab.h): New target. + (lex.pl.m): New target. + * proplist.y, proplist.l: New files from Nathan Urban. + + * src/NSData.m ([NSData -description]): Implemented by Nathan Urban. + * src/NSArray.m ([NSArrayNonCore -description]): Likewise. + * src/NSDictionary.m ([NSDictionary -description]): Likewise. + * src/NSString.m ([NSString -description]): Likewise. + ([NSString -propertyList]): Likewise. + + * src/NSThread.m (NSBecomingMultiThreaded, NSThreadExiting): + Initialize the notification strings as static strings, not in + +initialize. + (thread_id_2_nsthread): Renamed from THREAD_LIST. Keep the collection + of NSThread's as a maptable, not a NSArray that takes linear time + to search! + (thread_lock): Renamed from THREAD_LIST_LOCK. + (entered_multi_threaded_state): Renamed from + ENTERED_MULTI-THREADED_STATE. + ([NSThread +initialize]): Don't initialize notification strings here. + Don't autorelease the lock! + ([NSThread -init]): Initialize _thread_autorelease_pool. Set our + thread data to self, for easy, efficient access to this NSThread + object later. Put ourselves in the thread collection here, not in + +detach... + ([NSThread +currentThread]): This will be called often and needs to be + fast. Reimplemented so we don't have to acquire a lock and step + through an NSArray of threads; instead, just look ourselves up + with the objc_thread_get_data(), and furthermore, no lock + required. + ([NSThread +detachNewThreadSelector:toTarget:withObject:]): Avoid race + condition, don't create new NSThread object here. + ([NSThread +sleepUntilDate:]): Call -notImplemented:. + ([NSThread +exit]): Properly post NSThreadExiting notification, making + sure not to hold the lock while we do so. Get the NSThread object + efficiently. + ([NSThread -threadId]): Removed unnecessary private method. + ([NSThread -setThreadId]): Likewise. + + * src/include/NSLock.h: Include renamed , not + . + + * src/include/NSThread.h: Include renamed , not + . Prepend ivars with underscore. Formatting + cleanups. + + * src/Makefile.in (gnustep/base): Use -r test for file existance, + not -e. (Reported by Adam Fedor .) + + * src/BinaryCStream.m: Include for byte-conversion; + needed on Solaris. (Reported by Adam Fedor + .) + + * src/Makefile.in (AUTHORS): Also search for "Rewritten by" + string. + +Sun May 12 19:57:53 1996 Andrew McCallum + + * src/Coder.m ([Coder -encodeConditionalObject:]): Comment + additions. + ([Coder -decodeObject]): Likewise. + + * src/Coder.m: Remove many methods from (Coder + NSCoderCompatibility), they are now included by adding the + behavior from NSCoderNonCore. + ([Coder +initialize]): Add behavior from NSCoderNonCore. + ([Coder -encodeArrayOfObjCType:count:at:]): Method removed. + ([Coder -decodeArrayOfObjCType:count:at:]): Method removed. + ([Coder -encodeProperyList:]): Method removed. + ([Coder -decodeProperyList:]): Method removed. + ([Coder -encodePoint:]): Method removed. + ([Coder -decodePoint:]): Method removed. + ([Coder -encodeSize:]): Method removed. + ([Coder -decodeSize:]): Method removed. + ([Coder -encodeRect:]): Method removed. + ([Coder -decodeRect:]): Method removed. + ([Coder -encodeValuesOfObjCTypes:]): Method removed. + ([Coder -decodeValuesOfObjCTypes:]): Method removed. + +Sat May 11 20:38:10 1996 Andrew McCallum + + * After consulting other developers, change "Gnustep" to "GNUstep" + everywhere. + + * src/include/NSAutoreleasePool.h (struct autorelease_cache): New + data type. + * src/include/NSThread.h (NSThread _thread_autorelease_pool): New + ivar. + * src/NSThread.m: Preparation for thread-safety. + ([NSThread -init]): Initialize new ivar. + * src/NSAutoreleasePool.m: Comment changes, and preparation for + thread-safety. + +Fri May 10 09:55:40 1996 Andrew McCallum + + * src/BinaryCStream.m: #include to get BITSPERBYTE on + Solaris. (Reported by M. Decugis .) + +Wed May 8 10:53:07 1996 Andrew McCallum + + * src/objc-load.c (objc_load_module): Uncomment local vars when + needed. (Provided by Bill Bumgarner .) + + * src/BinaryCStream.m (BITSPERBYTE): Define if not defined and on + NeXT. (Provided by Bill Bumgarner .) + +Tue May 7 10:55:11 1996 Andrew McCallum + + * src/include/o-map.h: Prepend `o-' in #include. + * src/include/o-list.h: Likewise. + * src/include/o-hash.h: Likewise. + * src/include/o-array.h: Likewise. + * src/include/x-cbs.h.in: Likewise. + + * src/NSCoder.m: Separate implemented, non-core methods into + separate class, in preparation for avoiding the duplication of + these methods in Coder.m. + ([NSCoder +initialize]): New method. + (NSCoderNonCore): New class. + * src/include/NSCoder.h: Declare new NSCoderNonCore class. + + * Makefile.in (snapshot-rtag): New target. + (dist-rtag): New target. + (rdiff): New target. + +Mon May 6 14:59:03 1996 Andrew McCallum + + * src/NSGArchiver.m ([NSGArchiver -encodeObjectReference:]): New + method. + * src/Decoder.m ([Decoder -decodeObjectAt:anObjPtr:name]): Move + CREATE_REF_BEFORE_INIT assertion to inside conditional for FREF + being true. + + * src/NSString.m (PRINTF_ATSIGN_VA_LIST): New macro, when 1, + undoes previous changes. Previous changes cause crashes with my + libc. + + * configure.in (shared): Prepend missing `lib'. (Reported by + Randy Chapman .) + + * src/Makefile.in: It should now work again to build in a separate + directory. Use ${OEXT}, not $(OEXT). + (ALL_INCLUDE_FLAGS): Look in ./include, not $(srcdir). + (GNU_HEADERS): Remove duplicate NS*.h files. + (gnustep/base): Make soft links to the $(srcdir) include files inside + ./include. + (include/preface.h): Get preface.h.in from the $(srcdir)! + * examples/Makefile.in (ALL_CPPFLAGS): Look for source include + files in new place. + * checks/Makefile.in (ALL_CPPFLAGS): Look for source include files + in new place. + + * src/include/NSZone.h: use #include instead of #import. + + * doc/gnustep-faq.texi: Added "On what platforms will it run?" + + * src/NSArray.m ([NSMutableArray +initialize]): Add the + NSArrayNonCore methods also. (Reported by Scott Christley.) + + * src/Makefile.in: Add `o-' prefix to object collection function + files. + * src/o-array.m, src/o-list.m, src/o-hash.m, src/o-map.m: Renamed + from versions without `o-' prefix. This prevents aliasing with + Array.m, etc, on systems without case-sensitive filenames. + * src/include/o-array.h, src/include/o-hash.h, + src/include/o-list.h, src/include/o-map.h: Likewise. + + * src/NSString.m: All uses of @"" were crashing in Linux + libc-5.3.9. + (arginfo_func): New function. + (handle_printf_atsign): Get the string object without va_arg(). + ([NSString +initialize]): Use new function. + (Reported and fixed by Kai-Uwe Sattler + .) + +Tue Apr 30 10:19:40 1996 Andrew McCallum + + * src/NSArray.m ([NSMutableArrayNonCore -removeObject:]): Replace + with version that removes all objects equal to argument. + ([NSMutableArrayNonCore -removeObjectIdenticalTo:]): Likewise. + + * checks/nsarray.m (main): Patched from Scott Christley. + +Fri Apr 19 18:11:30 1996 Andrew McCallum + + Make NSArchiver do object forward references the same way OpenStep + does, so that -encodeConditionalObject: and -decodeObject will + work as users expect. The OpenStep-style of forward referencing + is actually broken in that it cannot handle cases in which + -initWithCoder: deallocates self and substitutes another object + for self---this is supposed to be allowed. The GNU-style of + forward references robustly handles this case, as well as all the + cases that OpenStep handles; the GNU code works through alternate + methods: -encodeObjectReference: and -decodeObjectAt:withName:. + It is recommended that programmers use the GNU archiving methods. + + Before these changes, the gnustep-base code that tried to handle + the OpenStep-style `-encodeConditionalObject:' and `-decodeObject' + did not have the same behavior as NeXT's implementation---in fact + it did not do forward references at all. Users' OpenStep code + that used the OpenStep methods would have failed badly. These + changes implement the OpenStep-style forward references. Now + NSArchiver implements OpenStep-style forward references, and + Archiver implements GNU-style forward references. Be warned: by + necessity, because of limitations of the OpenStep method + interface, NSArchiver has the same bug as NeXT's NSArchiver. + + * src/NSGArchiver.m (USE_OPENSTEP_STYLE_FORWARD_REFERENCES): New + macro. + (NSGArchiverNullCStream): New class, interface and implementation. + ([NSGArchiverNullCStream -encodeValueOfCType:at:withName:]): New + method. + ([NSGArchiverNullCStream -decodeValueOfCType:at:withName:]): New + method. + ([NSGArchiver -encodeRootObject:withName:]): New method. + ([NSGArchiver -encodeConditionalObject:]): New method. + ([NSGArchiver -_coderCreateReferenceForObject:]): New method. + ([NSGArchiver -_coderCreateForwardReferenceForObject:]): New method. + ([NSGArchiver -_coderForwardReferenceForObject:]): New method. + ([NSGArchiver -_objectWillBeInProgress:]): New method. + ([NSGArchiver -_objectNoLongerInProgress:]): New method. + ([NSGArchiver -defaultDecoderClassname]): New method. + ([NSGUnarchiver -_createReferenceBeforeInit]): New method. + + * src/NSArchiver.m ([NSUnarchiver +initialize]): Test self against + NSUnarchiver class. + + * src/Encoder.m (debug_coder): Make it a static var instead of a + #define. + ([Encoder -_objectWillBeInProgress:]): New method. + ([Encoder -_objectNoLongerInProgress:]): New method. Depending on + whether we are doing GNU or OpenStep style forward references one + of these two methods will create a backward reference to the + object by calling -_coderInternalCreateReferenceForObject:. This + will effect whether encoding make forward or backward references + to objects in progress. GNU uses forward references, which is + robust even when the object's -initWithCoder substitutes another + object for self. + ([Encoder -_encodeObject:withName:isBycopy:isForwardReference:]): Use + new methods. Don't call -_coderInternalCreateReferenceForObject + here, let one of the ...InProgress methods do it. + + * src/Decoder.m (debug_coder): Make it a static var instead of a + #define. + ([Decoder -_coderCreateReferenceForObject:]): Add a debugging message. + ([Decoder -_coderCreateReferenceForInterconnectedObject:]): + Autorelease the placeholder object. + ([Decoder -_createReferenceBeforeInit]): New method. By default + return NO, for the GNU-style forward references. + ([Decoder -decodeObjectAt:anObjPtr:name]): [CODER_OBJECT]: Use new + method; if it returns true, then we are using non-GNU, + OpenStep-style forward references. In this case: (1) don't try to + decode the object by sending +newWithCoder:, in fact, raise an + error if the object wanted to be decoded that way; (2) call + _coderInternalCreateReferenceForObject before sending + -initWithCoder, not after; unfortunately this means that + -initWithCoder methods cannot substitute another object for self. + If it returns false, use the more robust GNU style forward + references. The NSGUnarchiver overrides this method to use the + OpenStep style. + + * src/include/Coder.h (Coder): Make ivars public, so NSGArchiver + can get at them. + (Encoder): Likewise. + + * src/TextCStream.m ([TextCStream + -encodeValueOfCType:at:withName:]): If name is nil or zero-length, + make it "Anonymous". + (DECODE_ERROR): Add next stream contents to error message. + + * src/Coder.m: Include gnustep/base/Archiver.h. + ([Coder +archivedDataWithRootObject:]): Use Archiver class, not + NSArchiver, it matters because now the two classes handle forward + references differently. + + * src/include/NSGArchiver.h: NSGUnarchiver inherits from + NSUnarchiver, not NSArchiver! + + * checks/fref.m: Use Archiver, not NSArchiver, if GNU_ARCHIVING is + true. + (SELF_REF_DECODE_SUBSTITUTES): New macro. + +Thu Apr 18 08:31:53 1996 Andrew McCallum + + * checks/fref.m: Updated to work on NS3.3. + + * src/Makefile.in (Foundation): Fix dependancy to force proper + handling after a cvs checkout. + +Wed Apr 17 08:56:09 1996 Andrew McCallum + + Major renaming! + "GNU Objective C Class Library" -> "Gnustep Base Library" + libobjects.a -> libgnustep-base.a + libobjects.tar.gz -> gstep-base.tar.gz + -> + OBJECTS_* -> GNUSTEP_BASE_* + objects_*() -> o_*() + R. Andrew McCallum -> Andrew Kachites McCallum + (my pre-marriage name) (my post-marriage name) + ...and more... + + * examples/Makefile.in (EXEEXT): New variable. + (OEXT): New variable. + (LIBEXT): New variable. + (SRCS): Remove port-{server,client}.m. + + * examples/dictionary.m: Warn user that the file hasn't been + converted to new collection scheme, and comment out old code. + + * examples/second-server.m ([SecondServer -addRemoteObject:]): + Don't free the string returned; mframe already does it! + + * examples/stdio-stream.m: Include Foundation/NSString.h. + + * Makefile.in: Include Makeconf. + + * checks/server.m: Include TcpPort.h, not SocketPort.h. + * checks/client.m: Likewise. + + * checks/Makefile.in (../src/lib$(LIBRARY_NAME)$(LIBEXT)): New + target. + + * doc/Makefile.in (TEXI_FILES): Rename libobjects.texi to + gnustep-base.texi. Add base-desc.texi. + * doc/base-desc.texi: New file. + + * src/include/*.h: Rename all #ifndef macro names to + ...GNUSTEP_BASE_INCLUDE. + + * Rename all `objects_' to `o_'. This mostly affects Albin Jones' + map tables, hash table, etc. + + * src/NSGSet.m ([NSGSet -isEqual:]): Call isEqualToSet: (in + superclass). + + * checks/pipes.m: Include + + * src/objc/HashTable.h: Use preface.h instead of stdobjects.h. + + * src/CStream.m ([CStream -writeSignature]): Use new version macro + names. + + * src/include/fake-main.h (main): Define as + gnustep_base_user_main, not LibobjectsMain. + * src/NSProcessInfo.m (__gnustep_base_subinit_args__): Renamed + from libobjects... + (main): Use gnustep_base_user_main, not LibobjectsMain. + + * checks/fref.m (test_fref): Make ARRAY a NSMutableArray, not a + NSArray. + ([SubFoo -encodeWithCoder:]): Add printf. + ([Foo -encodeWithCoder:]): Likewise. + + * src/o_vscanf.c: Include objc-malloc.h from gnustep/base. + + * src/Makefile.in (Foundation): Add step to get rid of old + Foundation directory that would come from a CVS checkout. + + * src/include/String.h: Don't include . + Don't have String protocol inherit NSString protocol. We were + having trouble with circular dependancies. + * src/include/Streaming.h: Include String.h, not NSString.h. + + * src/include/preface.h.in: Use __preface_h_... instead of + __stdobjects_h... for wrapper. Include files from gnustep/base. + Include fake-main.h, instead of LibobjectsMain.h. + + * src/Makefile.in (include/preface.h): Make substitutions for + macro name, as well as value. + + * Makeconf (LIBRARY_VAR): New variable. + + * src/Makefile.in (all): Add dependancy on `Foundation'. + (Foundation): New target. + + * Change all #include to #include . + + * src/include/preface.h.in: All Makefile-maintained #defines, now + have the macro name inserted by Makefile, not just the value. + Comment out objects_version global variable and friends. + (LAMBDA): Macro removed. + (LAMBDA_VOID_PERFORM): Macro removed. + (LAMBDA_ID_PERFORM): Macro removed. + (LAMBDA_BOOL_PERFORM): Macro removed. + * src/preface.m: Update names of global const char's. + + * Makefile.in: Remove/rename all mention of `objects'. + * configure.in: Likewise. + * examples/Makefile.in: Likewise. + * checks/Makefile.in: Likewise. + + * Makeconf (LIBRARY_NAME): Remove `lib' prefix. + * src/Makefile.in: Don't assume the `lib' prefix is included in + $(LIBRARY_NAME). + + * Makeconf (PACKAGE_NAME): New variable. + (LIBRARY_NAME): New variable. + (rcs-list-locked): Target removed. + + * Version: Removed `OBJECTS_' prefix. + + * src/Makefile.in: Rename all occurrences of `objects/' to + `include/'. Rename all occurrences of `Foundation/' to + `include/'. Rename all occurrences of `libobjects' to + `$(LIBRARY_NAME)'. Rename all occurrences of `OBJECTS_*VERSION' + to `*VERSION'. + (GNU_NEXT_INCLUDES): Renamed from OBJECTS_NEXT_INCLUDES. + (gnustep/base): New target; make symbolic link to `include'. + (all): Added dependancy on gnustep/base. + (install): Put the include files in gnustep/base. Make a link from + $(includedir)/Foundation to $(includedir)/gnustep/base. + (installdirs): Make $(includedir)/gnustep/base, not objects and + Foundation include directories. + (GNU_MFILES): stdobjects.m renamed to preface.m. + (GNU_HEADERS): LibobjectsMain.h renamed to fake-main.h. objects.h + renamed to all.h. + (HEADERS_INSTALL): stdobjects.h renamed to preface.h. + (maintainer-clean): Likewise. + (DIST_FILES): stdobjects.h.in renamed to preface.h.in. + (RCS_FILES): Likewise. + (include/preface.h): Target renamed from stdobjects.h. + (preface$(OEXT)): Likewise. + * src/preface.m: File renamed from stdobjects.m. + * src/include/preface.h: File renamed from stdobjects.h. + * src/include/fake-main.h: File renamed from LibobjectsMain.h. + * src/include/all.h: File renamed from objects.h. + + * configure.in (AC_OUTPUT): do src/include/config.h, not + src/objects/config.h. + + * src/objects/*, src/Foundation/*: Files moved to src/include. + + * src/Foundation/NSString.h: Insert contents of + + * src/Foundation/NSSet.h: Insert contents of + * src/Foundation/NSDictionary.h: Insert contents of + + * src/Foundation/NSCoder.h: Insert contents of + * src/Foundation/NSArray.h: Insert contents of + + Fix error in Decoder, that only affected TextCStream. + + * src/Decoder.m ([Decoder -decodeObjectAt:anObjPtr:name]): Decode + the Unindent *before* decoding the fref; as does Encoder! + +Tue Apr 16 17:29:02 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): Version 0.2.1. Last version + before renaming from libobjects to gnustep-base. + + * checks/Makefile.in (CFLAGS): Add -Wno-format. + (SRCS): Use new, more descriptive file names. + + * checks/prepend.m: Include NSValue.h + + * src/NotificationDispatcher.m ([NotificationDispatcher + -_addObserver:notificationRequest:name:object:]): Don't release NR + here. + ([NotificationDispatcher -addInvocation:name:object:]): Release it + here. + ([NotificationDispatcher -addObserver:selector:name:object:]): + Likewise. + + * src/TcpPort.m (debug_tcpport): Changed from 1 to 0; don't print + debugging messages. + * src/Proxy.m (debug_proxy): Likewise. + * src/Connection.m (debug_connection): Likewise. + + * src/NSArray.m ([NSArrayNonCore -arrayByAddingObject:]): + Autorelease the returned array. + ([NSArrayNonCore -arrayByAddingObjectsFromArray:]): Likewise. + ([NSArrayNonCore -subarrayWithRange:]): Likewise. + + * checks/nsarray.m (main): Removed several -autorelease calls that + are repetative, now that NSArray autoreleases properly. The test + still does not complete successfully. It tries to send -cString + to an NSMutableArray. + + * src/objects/objc-malloc.h: Only declare "id + MemoryExchaustedException" #ifdef __OBJC__. This allows + to be included in non-ObjC files, i.e. C + files. + + * src/NSZone.m: Include first. + + * checks/*.m: Many test??.m files renamed with descriptive names. + + * checks/nsarchiver.m (main): Add extra parens around assignment + in while(). + + * checks/string.m (main): Comment out use of obsolete + -withElementsCall:. + + * checks/nsbundle.m (main): Use object_get_class_name(), not + -name. + + * src/Makefile.in (GNU_MFILES): Re-added Time.m. + (o_vscanf$(OEXT), o_vscanf_pic$(OEXT)): New rules that turn off + warnings for o_vscanf.c; it generates a bunch of unimportant ones. + + * src/Time.m ([Time +initialize]): Comment out day/month name + handling that depends on old Collection heirarchy. + ([Time +indexOfDayName:]): un-implemented. + ([Time +nameOfDayIndex:]): Likewise. + ([Time +indexOfMonthName:]): Likewise. + ([Time +nameOfMonthIndex:]): Likewise. + + * checks/prepend.m: New file from test13.m. + * checks/nxst.m: New file from test11.m. + * checks/heap.m: New file from test04.m. + + * src/Heap.m ([Heap -heapifyFromIndex:]): Swap -compare: receiver + and argument, so firstObject is minimum instead of maximum object. + ([Heap -addObject:]): Likewise. + +Mon Apr 15 21:41:17 1996 Andrew McCallum + + * src/NSGDictionary.m ([NSGDictionaryObjectEnumerator + -nextObject]): Return the key, not the object. + ([NSGDictionary -objectForKey:]): Method moved from + NSGMutableDictionary. + ([NSGMutableDictionary +initialize]): Don't use static variable in + test. + + * src/KeyedCollection.m ([KeyEnumerator -initWithCollection:]): + New method. + ([KeyEnumerator -nextObject]): New method. + ([KeyEnumerator -dealloc]): New method. + + * doc/install.texi: Mention possible need for GNU make. + +Sun Apr 14 11:58:04 1996 Andrew McCallum + + Old archiving scheme didn't properly deal with the + LinkedListNode's _linked_list ivar. + * src/LinkedList.m ([LinkedList -encodeWithCoder:]): New method. + ([LinkedList -initWithCoder:]): New method. + ([LinkedList -_initCollectionWithCoder:]): Method removed. + ([LinkedList -_encodeContentsWithCoder:]): Method removed. + ([LinkedList -_decodeContentsWithCoder:]): Method removed. + + * src/Coder.m ([Coder -encodeConditionalObject:]): Don't use old, + removed method name to see if object has already been encoded. + +Sat Apr 13 13:49:23 1996 Andrew McCallum + + * src/BinaryCStream.m (debug_binary_coder): Explicitly set to + zero. + + * src/objects/CoderPrivate.h ([Coder (Private) + -_coderReferenceForObject:): Renamed from old-xref-scheme + "_coderHasObjectReference:. + + * checks/Makefile.in (SRCS): Added fref.m. + + Fix a bug with encoding an object whose encoding generates forward + references to the object itself. + + * src/Encoder.m ([Encoder + -_encodeObject:withName:isBycopy:isForwardReference:]): See if the + object satisfies a forward reference *after* encoding it, not + before. This is necessary because the encoding of subobjects may + generate forward references to the object. (In a sense, this + undoes the last change to this method, but it is significantly + different in that we test whether the object is in the + object_2_fref table *after* encoding the object; earlier we looked + in the table before encoding the object.) As a consequence, the + CODER_OBJECT_FORWARD_SATISFIER tag is no longer necessary; this + was used to tag an object before it was encoded, but now we + understand that we cannot know whether this object satisfies a + forward reference until after it has been encoded. Thus, for all + objects we encode an unsigned int after encoding the object + itself. This unsigned int is either the forward reference number + of zero, depending on whether this object satisfies any forward + references. + + * src/Decoder.m ([Decoder -decodeObjectAt:withName:]): Allow for + the case in which ANOBJPTR is NULL, and deal with it using a + DUMMY_OBJECT local variable. Remove + CODER_OBJECT_FORWARD_SATISFIER case. In the CODER_OBJECT case, + decode the forward reference number, and deal with it + appropriately. See the ChangeLog comments for the Encoder + changes. * src/objects/CoderPrivate.h + (CODER_OBJECT_FORWARD_SATISFIER): Enum constant removed; it is no + longer needed. Note: decoders built after this change will not be + able to read data files encoded before this change. + + * src/Encoder.m ([Encode + -_encodeObject:withName:isBycopy:isForwardReference:]): If this + object satisfies a forward reference, remove it from the + object_2_fref table before encoding the object, since, in the + process of encoding the object, we may generate more references to + this object, and we don't want to interpret this as another + forward reference satisfier; previously an object could get + encoded as a forward reference satisfier more than once. + + Plug a memory leak in decoding. + + * src/Collection.m ([ConstantCollection + -_decodeContentsWithCoder:]): Use alloca(), not objc_malloc(), + plugging memory leak. + +Fri Apr 12 17:08:08 1996 Andrew McCallum + + * src/objects/Coder.h (Encoder fref_counter): New ivar for + guaranteeing that forward references have unique names. Previous + use of the MapTable count for this purpose didn't work because we + occasionally removed elements from the table, and thus had aliased + forward reference numbers. + * src/Encoder.m ([Encoder + -initForWritingToStream:withFormatVersion:cStreamClass + :cStreamFormatVersion:]): Initialize new ivar. + ([Encoder -_coderCreateForwardReferenceForObject:]): Use new ivar to + `gensym' a new forward reference. + * src/Decoder.m ([Decoder + -_coderSatisfyForwardReference:withObject:]): Create fref_2_object + with NSNonOwnedPointerMapValueCallBacks, not + NSObjectMapValueCallBacks. + + * src/StdioStream.m ([StdioStream -writeBytes:length:]): Check for + error condition, and report. Reporting scheme needs fixing. + ([StdioStream -readBytes:length:]): Likewise. + + * src/LinkedList.m ([LinkedList -_decodeContentsWithCoder:]): Step + through the new list, and send -setLinkedList:, otherwise the + links don't properly know about their parent LinkedList. + +Wed Apr 10 12:37:35 1996 Andrew McCallum + + * src/Encoder.m ([Encoder + -_coderCreateForwardReferenceForObject:]): Initialize the + OBJECT_2_FREF ivar, if it hasn't been already. + + * configure.in: Init some emacs variables. + + * src/objc-malloc.m: New file, changed from objc-malloc.c. Raise + a MemoryExhaustedException with NSException instead of calling + objc_fatal. + * src/Makefile.in (GNU_CFILES): Removed objc-malloc.c. + (GNU_MFILES): Added objc-malloc.m. + * src/objects/objc-malloc.h (MemoryExhaustedException): Declare + this global variable; note that now objc-malloc.h cannot be + included in .c files, only .m files. + + * src/NSRunLoop.m: New file. + * src/Foundation/NSRunLoop.h: Declare classes NSDate and NSTimer. + * src/Makefile.in (GNUSTEP_MFILES): Added NSRunLoop.m. + (GNUSTEP_HEADERS): Added Foundation/NSRunLoop.h. + + * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): When + unintalling ourselves at the current pool, and setting our parent + to be the current pool, be sure to set our parent's _CHILD ivar to + nil. + + * src/mframe.m (mframe_do_call): Use sel_get_type() instead of + class_get_instance_method() to get the selector type. For some + reason the old scheme wasn't getting class methods properly; I + should look at this again, though. + +Tue Apr 9 19:55:44 1996 Andrew McCallum + + * src/mframe.m (mframe_do_call): When getting the instance method, + just use object->class_pointer, not object_get_class(),... because + object_get_class() of a class will return the argument, not the + metaclass---we want the metaclass. + +Mon Apr 8 13:19:17 1996 Andrew McCallum + + * src/TcpPort.m ([TcpInPort +newForReceivingFromPortNumber:]): + Bind the socket with INADDR_ANY, (not the host's address), so that + others can connect using any of the host's interfaces, including + localhost. Add the host's address to _LISTENING_ADDRESS after the + bind(). + + * src/NSDictionary.m ([NSDictionary -allKeysForObject:]): Ask SELF + for objectForKey:, not K. (Reported by Robert Quillen + ). + +Sun Mar 31 16:43:42 1996 Andrew McCallum + + Several small bug fixes. + + * src/Foundation/NSArray.h: Declare @class NSMutableArrayNonCore, + not NSMutableArray. + + * checks/test02.m (main): Updated for new collection scheme. + + * src/MappedCollector.m ([MappedCollector -newEnumState]): New + method. + ([MappedCollector -freeEnumState:]): New method. + + * src/Random.m (ABS): Remove macro; now defined in + objects/stdobjects.h. + + Separate the core and non-core methods of NSArray implementations + to take advantage of the new behavior mechanisms, and to better + make use of the non-core methods in the concrete implementation. + + * src/NSGArray.m ([NSGArray +initialize]): Add the NSArrayNonCore + behavior, so we can, once and for all, avoid the need for those + odd [super ...] calls, and can remove many methods. + ([NSGArray -initWithObjects:count:]): Method removed. + ([NSGArray -indexOfObject:]): Method removed. + ([NSGArray -objectAtIndex:]): Method removed. + ([NSGMutableArray +initialize]): Add the NSMutableArrayNonCore + behavior, as above. + ([NSGMutableArray -replaceObjectAtIndex:withObject:]): Method removed. + * src/Foundation/NSGArray.h (NSGArray, NSGMutableArray): Add + placeholder ivars so our instance size matches that of the + behavior class that will be added. + + * src/NSArray.m: Divide methods between NSArray and NSArrayNonCore + classes. Add NSArrayNonCore behavior to NSArray. Divide methods + between NSMutableArray and NSMutableArrayNonCore classes. Add + NSArrayNonCore behavior to NSArray. + * src/Foundation/NSArray.h: Separate core and non-core methods. + Declare with @class the new classes NSArrayNonCore and + NSMutableArrayNonCore. + + Use the new behavior mechanisms to make it safe to subclass + NSNotification. + + * src/Foundation/NSNotification.h: Include + + (NSNotification): Add placeholder ivars so our instance size matches + that of the behavior class that will be added. + * src/objects/Notification.h: Add #ifndef/#endif wrapper around + header file. + + New behavior mechanisms for safe subclassing. + + * src/behavior.m (behavior_class_add_class): Function renamed from + class_add_behavior. Add more explanation to NSCAssert(). + (class_add_behavior): New function, calling above function. + (behavior_class_add_category): New function. + (behavior_class_add_methods): Function renamed from + class_add_methods_if_not_there. + * src/objects/behavior.h: Declare new function names. + + * src/behavior.m: Include . + (class_add_behavior): Use NSCAssert() to make sure that we don't try + to increase the instance size of a class that has been subclassed; + (hopeless ivar layout confusion would result). + * behavior.m: File renamed from behavior.c. + * src/Makefile.in (GNU_CFILES): Removed behavior.c. + (GNU_MFILES): Added behavior.m. + +Sat Mar 30 10:05:17 1996 Andrew McCallum + + * checks/nsdictionary.m (main): Use renamed method + behavior_set_debug. + * checks/nsarray.m (main): Use renamed method behavior_set_debug. + + * src/NSArray.m ([NSArray -lastObject]): Don't assert count; just + return nil if it's empty. + ([NSMutableArray -removeLastObject]): Don't assert count; raise + NSRangeError if it's empty. + + Make NSAutoreleasePools co-exist with exceptions, safely and + without leaks. (Also improve efficiency by using a linked list of + arrays instead of realloc when more space is needed, and by using + a cache of pools that helps avoid the allocation/deallocation of + pools.) + + * src/NSAutoreleasePool.m: (push_pool_to_cache): New function. + (pop_pool_from_cache): New function. + ([NSAutoreleasePool +initialize]): New method. + ([NSAutoreleasePool +allocWithZone:]): New method. + ([NSAutoreleasePool -init]): Method overhauled to initialize new ivar + for handling exceptions, _child; also use pool cache. + (total_autoreleased_objects_count): New static variable. + (BEGINNING_POOL_SIZE): Macro renamed from DEFAULT_SIZE. + (autorelease_pool_cache, autorelease_pool_cache_size, + autorelease_pool_cache_count): New static variables. + ([NSAutoreleasePool -_setChildPool:]): New method, handling stack and + dealing with exceptions. + ([NSAutoreleasePool -addObject:]): Deal with linked list of arrays. + ([NSAutoreleasePool -dealloc]): Deal with exceptions by releasing + child pools. Place self into the pool cache instead of + deallocating. + ([NSAutoreleasePool +resetTotalAutoreleasedObjects]): New method. + ([NSAutoreleasePool +totalAutoreleasedObjects]): New method. + * src/Foundation/NSAutoreleasePool.h: Declare new ivars and + methods. + + * src/NSArray.m ([NSArray -isEqualToArray:]): Fix typo; reverse + test for returning NO. + ([NSArray -arrayByAddingObject:]): New function, from Scott + Christley. + ([NSArray -arrayByAddingObjectsFromArray:]): Likewise. + ([NSArray -subarrayWithRange:]): Implemented by Scott Christely. + ([NSMutableArray -removeObjectIdenticalTo:]): Don't fail if the object + is not present. Initial implementation by Scott Christley + overhauled by McCallum. + ([NSMutableArray -removeObject:]): Likewise. + ([NSMutableArray -removeAllObjects]): Implemented by Scott Christley. + ([NSMutableArray -setArray:]): New function, from Scott Christley. + * src/Foundation/NSArray.h: Declare new methods. + + * src/objects/ArrayPrivate.h: Add new semantic to ivar + _grow_factor: if it is less than 0, the array capacity grows by + -_grow_factor, but never shrinks. + (incrementCount): Use the ABS() of _grow_factor. + (decrementCount): Only shrink the array capacity if _grow_factor + is greater than 0. + * src/objects/Array.h (Array _grow_factor): Change type of ivar + from unsigned to int. + * src/Array.m ([Array +defaultGrowFactor]): Return type changed to + int. + ([Array -growFactor]): Likewise. + * src/objects/stdobjects.h.in (ABS): New macro, defined if not + already defined. + * src/objects/Array.h: Change return types of "grow factor" + methods from unsigned to int. + + * src/IndexedCollection.m ([IndexedCollection -removeObject:]): + Now removes *all* instances of ANOBJECT, not just one. + ([IndexedCollection -replaceObject:withObject:]): Now replaces *all* + instances of OLDOBJECT, not just one. + * src/objects/IndexedCollecting.h (NO_INDEX): Change from UINT_MAX + to NSNotFound, so that Array and NSArray can coexist. + + * checks/test01.m ([ConstantCollection -printCount]): Use + object_get_class_name() instead of sending -name. + +Fri Mar 29 09:47:39 1996 Andrew McCallum + + Overhaul mframe functions. + + * src/mframe.m: Overhauled for memory management changes to fix + leaks, various other fixes. + (MFRAME_STRUCTURES_PASSED_BY_REFERENCE): Renamed from + CONNECTION_STRUCTURES_PASSED_BY_REFERENCE. + (mframe_dissect_call): Function renamed from dissect_method_call. + Remove some redundant if()-else clauses. Clarify case in which + OUT_PARAMETERS is true. Use switch statement instead of + if-else's. + (mframe_do_call): Function renamed from make_method_call. Get the + local selector type from the target's Method, not from the + selector type; this will more reliably give the correct type + string. Don't bother to set OBJECT twice. Remove some redundant + if()-else clauses. Use NSParameterAssert, not assert, so we can + catch problems, (and not crash the D.O. server). Change the way + memory management for decoded arguments is handled to remove + memory leaks; use new scheme for DECODER functions that are + responsonsible for making sure allocated memory is eventually + freed. Use alloca() to allocate space for _C_PTR values, struct's + and arrays. Overhaul the way floats and doubles are extracted + from the RETFRAME; use functions with __builtin_return, instead of + fishing around the RETFRAME. Use switch statement intead of + if-else's. Separate cases for char's and short's. Change some + local variable names for clarity. + (mframe_build_return): Function renamed from dissect_method_return. + Remove some redundant if()-else clauses. Use NSParameterAssert, + not assert. Change the way memory management for decoded + arguments is handled to remove memory leaks; use new scheme for + DECODER functions that are responsonsible for making sure + allocated memory is eventually freed. Use alloca() to allocate + space for _C_PTR values, struct's and arrays. + * src/objects/mframe.h: Declare new method names, and comment. + + * src/Connection.m ([Connection + -forwardForProxy:selector:argFrame:]): Use new mframe interface. + In the nested function DECODER, autorelease any char*'s that we + decode, as required by the new memory reference scheme. + ([Connection -_service_forwardForProxy:]): Likewise, for both. + + * src/Collection.m ([ConstantCollection + -_collectionReleaseContents]): Use alloca() instead of malloc() + and free(). + + Fixes to checks for testing new coding of float and double. + * checks/server.m ([Server -returnFloat]): Append float const with + `f'. Include for -connectionForProxy. + * checks/client.m (main): Print the float and double before + sending it. + * checks/cstream.m (main): Decode the float and double. + + * src/BinaryCStream.m ([BinaryCStream + -encodeValueOfCType:at:withName:]): Encode the exponent as a + short, not an int. + ([BinaryCStream -decodeValueOfCType:at:withName:]): Likewise, decoding. + * src/BinaryCStream.m ([BinaryCStream + -encodeValueOfCType:at:withName:]): [_C_CHARPTR]: Don't + autorelease the malloc'ed pointer here; thus the behavior is + analogous to decoding an object: it gives you a reference, it is + the callers responsibility to free it. + ([BinaryCStream -decodeValueOfCType:at:withName:]): [_C_DBL]: Fix + typo. Use mantissa1, not mantissa2 twice. + + Fix the scheme for encoding and decoding floats and doubles. The + old scheme sometimes lost precision, and it was also very + inefficient. + * src/BinaryCStream.m: Include + (FLOAT_FACTOR): New macro. + (WRITE_SIGNED_TYPE): Take new first argument, the pointer for the + data. + (READ_SIGNED_TYPE): Likewise. + (WRITE_UNSIGNED_TYPE): Likewise. + (READ_UNSIGNED_TYPE): Likewise. + ([BinaryCStream -encodeValueOfCType:at:withName:]): [_C_FLT]: Use new + scheme, based on frexp() to turn a float into a series of ints. + [_C_DBL]: Likewise. + ([BinaryCStream -decodeValueOfCType:at:withName:]): [_C_FLT]: Likewise + to match. + [_C_DBL]: Likewise. + + * src/RunLoop.m (debug_run_loop): Changed from 1 to 0; turn off + debugging messages. + +Thu Mar 28 22:59:35 1996 Andrew McCallum + + * src/MallocAddress.m ([MallocAddress + +autoreleaseMallocAddress:]): Fix typo in method name. + * src/objects/MallocAddress.h: Fix typo. + +Tue Mar 26 14:23:13 1996 Andrew McCallum + + * src/MallocAddress.m ([MallocAddress +initialize]): Use + NSNonRetainedObjectMapValueCallBacks, not + NSObjectMapValueCallBacks, because otherwise the object will never + get dealloc'ed. + + Send exceptions in the D.O. server back to the client. This is + not finished. We still need to address some potential memory leaks. + + * examples/second-client.m (main): Add a call that causes an + exception in the server, and catch the returned exception. + + * src/Connection.m: In all methods, use NSParameterAssert() + instead of assert(), so that it raises an NSException, and doesn't + abort(). + ([Connection -forwardForProxy:selector:argFrame:]): Decode the flag + that indicates whether the return packet hold an exception or the + return values. If it holds an exception, decode it and raise it. + ([Connection -_service_forwardForProxy:]): Surround the processing of + the method request packet with NS_DURING...NS_ENDHANDLER. If an + exception is raised, catch it, encode in in a specially flagged + packet, and send the packet back to the client. + + * src/BinaryCStream.m ([BinaryCStream + -decodeValueOfCType:at:withName:]): [_C_CHARPTR]: Autorelease the + malloc'ed char pointer. Before memory was leaking. + + * src/Connection.m: Use NSException instead of sending -error: in + all methods. + * src/Proxy.m: Likewise. + * src/NSString.m: Likewise. + * src/NSObject.m: Likewise. + * src/NSAutoreleasePool.m: Likewise. + * src/Encoder.m: Likewise. + * src/Decoder.m: Likewise. + * src/BinaryCStream.m: Likewise. + + * src/OrderedCollection.m ([OrderedCollection + -putObject:atIndex:]): Return type changed from id to void. Use + NSException, not error:. + +Mon Mar 25 19:27:06 1996 Andrew McCallum + + Fixing miscellaneous bugs that showed up with -Wall. + + * src/NXStringTable_scan.l (string_buf_ptr): Init local variable. + + * src/NSBundle.m ([NSBundle +setSystemLanguages:]): Comment out + unused variables. + + * src/NSData.m ([NSMutableData -resetBytesInRange:]): Cast to + avoid warning. + ([NSMutableData -initWithLength:]): Likewise. + + * src/NSValue.m ([NSValueDecoder -initValue:withObjCType:]): + Return self. + + * src/objc-load.c (objc_load_module): Comment out unused + variables. + + * src/UdpPort.m: Include for MAXHOSTNAMELEN. + ([UdpInPort -newPacketReceivedBeforeDate:]): Return nil. + +Sun Mar 24 17:04:24 1996 Andrew McCallum + + Just a little futzing. + + * src/UdpPort.m (name_2_port_number): Function renamed from + name_to_port_number, and changed to better use + IPPORT_USERRESERVED. + ([UdpInPort +newForReceivingFromPortNumber:]): Overhauled and + commented. + +Fri Mar 22 08:39:03 1996 Andrew McCallum + + * src/NSObject.m ([NSObject +initialize]): Use + NSNonOwnedPointerOrNullMapKeyCallBacks, not + NSNonRetainedObjectsMapKeyCallBacks; keying on addresses, and + avoiding a call to -isEqual, is better. + +Thu Mar 21 20:17:05 1996 Andrew McCallum + + * src/BinaryCStream.m ([BinaryCStream + -encodeValueOfCType:at:withName:name]): [_C_CHARPTR]: Write the + string with the host LENGTH, not the network LENGTH! + + * src/NSGSet.m ([NSGSet -isEqual:]): Make this just compare the + id's, not call [super isEqual:]. I did this to prevent an + infinite loop while running checks/nsarchiver.m, but I have a + feeling that the bug might be in map.c, not here. Look at this + again! + + * src/Set.m ([Set -nextObjectWithEnumState:]): Dereference + ENUMSTATE; this change mirrors the earlier change to [NSGSet + -nextObject]. + + * src/KeyedCollection.m ([ConstantKeyedCollection + -_decodeContentsWithCoder:]): Reverse order of objects and keys, + to match _encodeContentsWithCoder:. + + * src/Makefile.in (GNUSTEP_CFILES): Removed NSZone.c. + (GNUSTEP_MFILES): Added NSZone.m. + * NSZone.m: Renamed from NSZone.c. + (NSZoneSetName, NSZoneName): New functions; unimplemented. + * src/Foundation/NSZone.h: Declare new functions. + + * src/Makefile.in (objects/stdobjects.h): Create it in the build + directory, not $(srcdir). (Reported by Albin Jones.) + +Thu Mar 21 13:13:35 EST 1996 Albin L. Jones + + * src/Foundation/NSGeometry.h: Added documentation commentary + and reformatted things a little. Also separated the typedef's + from the struct declarations in the definitions of NSPoint, + NSSize, and NSRect. (This is for conformity to the GNU coding + standards.) + * src/NSGeometry.m: Added documentation commentary and + reformatted things a little. Also added bits of code to + guarantee that functions which return BOOL do so. + * src/Foundation/NSHashTable.h: Added full documentation. + * src/Foundation/NSMapTable.h: Ditto. + * src/Foundation/NSRange.h: Separated the typedef from the + struct declaration for NSRange. (This is for conformity to the + GNU coding standards.) + * src/Makefile.in: Added new files to GNU_MFILES, GNU_HEADERS; + removed old files from GNU_CFILES, GNU_OTHER_SRCFILES, + GNUSTEP_HEADERS, GNUSTEP_MFILES. Removed GNU_BASICS_CFILES, + GNU_BASICS_HFILES, GNU_CALLBACKS_CFILES, GNU_CALLBACKS_HFILES; + they are no longer needed. + * src/Makefile.in (libobjects.so): Replaced dependency + objects/stdobjects.h with $(HEADERS_INSTALL). + * src/Makefile.in (libobjects.a): Ditto. + * src/NSHashTable.m (_NSHT_extra_retain): Fixed annoying "Bus + error" bug. + * src/NSHashTable.m: Removed the usage of "allocs". Now uses + zones only. + * src/NSHashTable.m: Many other changes, none fundamental. More + comments. + * src/NSMapTable.m: Removed the usage of "allocs". Now uses + zones only. + * src/NSMapTable.m: Many other changes, none fundamental. More + comments. + * src/abort.c, src/allocs.c., src/atoz.m, src/objects/abort.h + src/objects/allocs.h, src/objects/bitops.h, + src/objects/minmax.h: Got rid of these, as they were no longer + needed. + * src/array.c: Became src/array.m. + * src/data.c: Became src/data.m. + * src/hash.c: Became src/hash.m. + * src/list.c: Became src/list.m. + * src/map.c: Became src/map.m. + * src/callbacks-char_p.c: Became src/cbs-char-p.m. + * src/callbacks-id.m: Became src/cbs-id.m. + * src/callbacks-int_p.c: Became src/cbs-int-p.m. + * src/callbacks-int.c: Became src/cbs-int.m. + * src/callbacks-void_p.c: Became src/cbs-void-p.m. + * src/callbacks.c: Became src/callbacks.m. + * src/number.c: Became src/numbers.c. + * src/x-basics.c.in: Became src/x-bas.m.in. + * src/x-callbacks.c.in: Became src/x-cbs.m.in. + * src/objects/magic.h, src/objects/number.h: Merged to form + src/objects/numbers.h. + * src/objects/x-basics.h.in: Became src/objects/x-bas.h.in. + * src/objects/x-callbacks.h.in: Became src/objects/x-cbs.h.in. + * src/array.m, hash.m, list.m, map.m: Removed usage of "allocs", + changed to using zones only. + +Thu Mar 21 19:27:56 1996 Andrew McCallum + + * src/Makefile.in (CFLAGS): Added -Wno-implicit. + + * src/BinaryCStream.m: Overhauled to use htonl() and friends. New + format is incompatible with the old. + + * checks/Makefile.in (SRCS): Add coder.m and cstream.m. + +Wed Mar 20 13:21:16 1996 Andrew McCallum + + * src/Makefile.in (CC): Added -pipe. + +Tue Mar 19 12:10:44 1996 Andrew McCallum + + * checks/server.m: Use new RunLoop mechanism, and new Array method + names. + ([Server -connection:didConnect:]): Clean up search for invalidated + proxies. + * checks/client.m: Use new RunLoop mechanism. + + * src/TcpPort.m (debug_tcp_port): Set to 1. + ([TcpInPort -encodeWithCoder:]): Use encodeBytes:.., not + encodeValue..; the data is already in network byte-order. + ([TcpOutPort -encodeWithCoder:]): Likewise. + ([TcpOutPort +newWithCoder:]): Likewise. + ([TcpOutPort + +newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]): Set + entirety of _REMOTE_IN_PORT_ADDRESS to zero. + + * src/Encoder.m ([Encoder -encodeBytes:count:withName:]): Update + for new argument types. + * src/Decoder.m ([Decoder -decodeBytes:count:withName:name]): + Update for new argument types, and verify read count. + * src/objects/Coding.h (Coding -encodeBytes:count:withName:): Use + void*, not char* for bytes. + (Coding -decodeBytes:count:withName:): Likewise, and pass COUNT, not + pointer to COUNT. + + * src/Encoder.m ([Encoder -encodeBytes:count:withName:]): Method + implemented; although it may need to change later. + * src/Decoder.m ([Decoder -decodeBytes:count:withName:name]): + Likewise. + + * src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): If + LIMIT_DATE is nil, poll the inputs, but don't wait if there is + nothing available immediately. Check to make sure that the + LIMIT_DATE hasn't already past; if it has, return immediately, + before polling input sources. + +Mon Mar 18 13:31:38 1996 Andrew McCallum + + Miscellaneous small fixes, found with -Wall. + * src/NSThread.m: Fix indentation. + ([NSThread +currentThread]): Add parenthesis around assignment inside + while. + * src/NSString.m: Include . + ([NSString -componentsSeparatedByString:]): Initialize ARRAY! + * src/List.m: Include Use OBJC_MALLOC and + friends, instead of NX_MALLOC. + * src/Decoder.m ([Decoder -finishDecodingInterconnectedObjects]): + Comment out temporarily unused AWAKE_SEL local variable. + * src/Proxy.m: Raise NSExceptions instead of using -error:. + + Debug bug the occurs when a client disconnects from the server, + and other clients have references to Proxy's of the disconnected + client. + * examples/second-server.m ([SecondServer + -connectionBecameInvalid:]): Correctly detect proxies that should + be removed from the array. + * examples/second-client.m (main): Run RunLoop properly according + to new style. + * src/Proxy.m ([Proxy -encodeWithCoder:]): Add a more explanatory + error message for the use of invalid Connections. + ([Proxy +encodeObject:withConnectedCoder:]): Likewise. + ([Proxy -forward::]): Likewise. + * src/Connection.m ([Connection -_handleRmc:]): [METHOD_REQUEST]: + Fix conditional for which we handle a request immediately. Before + it inappropriately queued call backs from the server on which we + were waiting, causing us to wait forever. + * src/TcpPort.m ([TcpOutPort -encodeWithCoder:]): Add debugging + message. + ([TcpOutPort +newWithCoder:]): Add debugging message. + * src/Proxy.m ([Proxy +encodeObject:withConnectedCoder:]): Assert + that triangle connection proxy out port's are valid. + + Fix tricky autorelease bugs. + * examples/second-server.m ([SecondServer + -connectionBecameInvalid:]): Don't release REMOTES; it was already + autoreleased. + (main): Enable double release check with NSObject. + * src/NSMapTable.m (NSAllMapTableKeys): Don't autorelease the + return value; it was already autoreleased. Too many autoreleases + were causing crashes. + (NSAllMapTableValues): Likewise. + * src/NSObject.m ([NSObject -autorelease]): Print retain and + release counts in more helpful error message. + * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Set + CURRENT_POOL to PARENT, even if PARENT is nil. This is correct + behavior. Old behavior could cause infinite loops in the PARENT + pointers. + + Remove old vestiges of nil mode used when RunLoop modes were + ignored. + * src/RunLoop.m ([RunLoop -limitDateForMode:]): Assert mode. + ([RunLoop -acceptInputForMode:beforeDate:]): Likewise. + * src/NSTimer.m ([NSTimer + +scheduledTimerWithTimeInterval:invocation:repeats:]): Add to + RunLoopDefaultMode, not nil. + ([NSTimer + +scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]): + Likewise. + * src/Connection.m ([Connection + -_getReceivedReplyRmcWithSequenceNumber:]): Run the RunLoop in + RunLoopConnectionReplyMode, not nil mode. + + Update Connection for new RunLoop/Port interaction/interface. + * src/Connection.m ([Connection + +newForInPort:outPort:ancestorConnection:]): Add the in port to + the RunLoop in new RunLoop style. + ([Connection -addToRunLoop:forMode:]): Method removed. + ([Connection -removeFromRunLoop:forMode:]): Method removed. + ([Connection -_getReceivedReplyRmcWithSequenceNumber:]): Use new class + method for RunLoop. + ([Connection -invalidate]): Remove comment about removing from + RunLoop. RunLoop's now automatically remove invalid ports. + (RunLoopConnectionReplyMode): New run loop mode string. + * src/objects/Connection.h: Remove old methods. Add declaration + of new RunLoop mode. + + Fix the relationship between RunLoop's and Port's. Maintain the + fd_set, and information about which Port's are registered with + which RunLoop's entirely in the RunLoop. Also implement multiple + MODE's with RunLoop's---previously the MODE was ignored: + + * checks/tcpport-server.m (main): Add port to run loop using new + scheme. + * checks/tcpport-client.m (main): Likewise. + + * src/TcpPort.m: Removed methods for dealing remembering locally + which RunLoop we've been added to; now the RunLoop manages this. + ([TcpInPort +newForReceivingFromPortNumber:]): Don't initialize the + the removed ivar ACTIVE_FD_SET. Likewise with _RUN_LOOPS. + ([TcpInPort -newPacketReceivedBeforeDate:]): Don't use removed + _RUN_LOOPS. + ([TcpInPort -old_receivePacketWithTimeout:]): Remove old deprecated + method. + ([TcpInPort -invokeWithObject:]): Method removed. + ([TcpInPort -newPacketReceivedBeforeDate:]): Overhauled to use new + RunLoop mechanism. + ([TcpInPort -getFds:count:]): New method, called by RunLoop. + ([TcpInPort -readyForReadingOnFileDescriptor:]): Likewise. + ([TcpInPort -_addClientOutPort:]): Updated for new scheme. + ([TcpInPort -_connectedOutPortInvalidated:]): Likewise. + ([TcpInPort -addToRunLoop:forMode:]): Method removed. + ([TcpInPort -removeFromRunLoop:forMode:]): Method removed. + ([TcpInPort -dealloc]): Don't release deleted ivar _RUN_LOOPS. + * src/objects/TcpPort.h (TcpInPort _run_loops): Removed ivars. + (TcpInPort _client_sock_2_out_port, _client_sock_2_packet): Prepended + ivars with underscores. + + * src/RunLoop.m: Add new explanatory comment at beginning. + ([RunLoop -init]): Initialize new ivars. + ([RunLoop -currentMode]): New method. + ([RunLoop -addFileDescriptor:object:forMode:]): Method replaces + -addFileDescriptor:invocation:forMode:, and re-implemented. Not + yet functional. + ([RunLoop -removeFileDescriptor:forMode:]): Likewise. + ([RunLoop -addPort:forMode:]): New method. + ([RunLoop -removePort:forMode:]): New method. + ([RunLoop -addTimer:forMode:]): Overhauled to do the right thing with + the MODE argument. + ([RunLoop -acceptInputForMode:beforeDate:]): Method overhauled to ask + port objects for their FD's, create FD_2_OBJECT map table on the + fly, and initialize FDS on the fly. Now properly removed + invalidated ports from the MODE. + ([RunLoop -runOnceBeforeDate:forMode:]): New method. + ([RunLoop -runOnceBeforeDate:]): New method. + ([RunLoop -runUntilDate:forMode:]): New method. + ([RunLoop -runUntilDate:]): New method. + ([RunLoop +runUntilDate:forMode:]): New method. + ([RunLoop +runOnceBeforeDate:]): New method. + ([RunLoop +runOnceBeforeDate:forMode:]): New method. + ([RunLoop +currentMode]): New method. + (RunLoopDefaultMode): New global variable. + ([NSObject -performSelector:afterDelay:]): Not implemented. + * src/objects/RunLoop.h: Many new methods declared. + (RunLoop _mode_2_timers): New ivar. + (RunLoop _mode_2_in_ports): New ivar. + (RunLoop _mode_2_fd_listeners): New ivar. + (RunLoopDefaultMode): New extern variable. + + * src/objects/RandomGenerating.h (RandomGenerating): Inherit from + NSObject protocol. Remove methods +alloc and -init. + + * src/NSDate.m ([NSDate +distantFuture]): Increase efficiency by + caching a single instance in a static variable. + ([NSDate +distantPast]): Likewise. + +Fri Mar 15 19:13:57 1996 Scott Christley + + * checks/nsarray.m (main): Filled out tests for NSArray and + NSMutableArray classes. + +Sun Mar 17 18:20:17 1996 Andrew McCallum + + Many miscellaneous small bug fixes, found with -Wall: + + * src/objects/objects.h: Don't include + + * src/mframe.m (dissect_method_return): Initialize RETFRAME to + NULL to prevent warning. + + * src/UdpPort.m: Change references to non-existant UdpPacket class + to UdpInPacket. + * src/objects/UdpPort.h: Declare classes UdpInPacket and + UdpOutPacket. + + * src/TcpPort.m (bzero): New macro, to memset(); for FD_ZERO(). + + * src/RunLoop.m: Remove references to NAN. Include for + memset. + (bzero): New macro, to memset(); for FD_ZERO(). + * src/NSTimer.m: Remove references to NAN. + + * src/Proxy.m ([Proxy +newWithCoder:]): Remove unused variable. + + * src/NotificationDispatcher.m ([NotificationDispatcher + -removeObserver:name:object:]): Remove unused variables. + * src/NSNotificationCenter.m: Include + * src/NSNotification.m: Include + + * src/NSInvocation.m ([NSInvocation -methodSignature]): Return + nil. + + * src/NSDate.m ([NSDate -initWithString:]): Initialize theTime to + 0, to prevent warning. + + * src/NSData.m ([NSData +_setConcreteClass:]): Include + for memset(). + + * src/NSCountedSet.m ([NSCountedSet -countForObject:]): Return 0. + + * src/NSBundle.m: Minor comment format fix. + + * src/Invocation.m: Remove several unused local variables. + ([MethodInvocation -invokeWithObject:]): Revert last change: call + -invokeWithTarget:, not -subclassResponsibility. + + * src/NSAllocateObject.m: Include for memset(). + + * src/NSAutoreleasePool.m ([NSAutoreleasePool + -parentAutoreleasePool]): Remove inclusion of eltfuncs.h and + collhash.h. + + Miscellaneous archiving fixes. + * src/NSArchiver.m ([NSArchiver +initialize]): Use ==, not = in if + test. + * src/Encoder.m ([Encoder -_coderCreateReferenceForObject:]): + Return the xref! + ([Encoder -_coderCreateReferenceForConstPtr:]): Likewise. + * src/Coder.m: Return nil for several -notImplemented methods that + are to return objects. + * src/CStream.m ([CStream -initForWritingToStream:s]): Return the + result. + * src/TextCStream.m ([TextCStream -decodeName:name]): Pass correct + value to debug message. + * src/RawCStream.m ([RawCStream + -encodeValueOfCType:at:withName:name]): Remove unused variable. + ([RawCStream -decodeValueOfCType:at:withName:]): Likewise. Switch on + *type, not unused variable. + + Miscellaneous fixes to collection classes. + * src/MutableCString.m ([MutableCString -initWithCoder:]): Remove + unused variable n. Return self, not n. + * src/OrderedCollection.m ([OrderedCollection + -replaceRange:withCollection:]): Return void. + ([OrderedCollection -replaceRange:usingCollection:]): Likewise. + * src/MappedCollector.m ([MappedCollector + -initWithObjects:forKeys:count:]): Return self. + * src/LinkedList.m ([LinkedList -initWithObjects:count:]): Return + self. + * src/KeyedCollection.m ([ConstantKeyedCollection + -initWithObjects:forKeys:count:]): Return nil. + ([ConstantKeyedCollection -objectAtKey:]): Likewise. + ([ConstantKeyedCollection -keyOfObject:]): Likewise. + ([ConstantKeyedCollection -withKeysInvoke:]): Return void. + ([ConstantKeyedCollection -withKeysInvoke:whileTrue:]): Likewise. + ([ConstantKeyedCollection -nextObjectAndKey:withEnumState:]): + Return nil. + ([ConstantKeyedCollection -copyValuesAs:]): Likewise. + ([ConstantKeyedCollection -nextObjectAndKey:withEnumState:]): + Likewise. + * src/IndexedCollection.m ([ConstantIndexedCollection + -prevObjectWithEnumState:]): Use assignment, not equality test for + setting enumState to -1. + * src/GapArray.m ([GapArray -empty]): Renamed from + _collectionEmpty, and implemented to do entire job of emptying. + * src/Dictionary.m ([Dictionary -newEnumState]): Removed useless + cruft. + * src/Collection.m ([ConstantCollection + -detectObjectByInvoking:]): Set detectedObject to nil to avoid + warning. + ([ConstantCollection -maxObject]): Initialize MAX to nil. + ([ConstantCollection -minObject]): Initialize MIN to nil. + ([Collection -uniqueContents]): Iterate over CP, not SELF. + * src/CircularArray.m ([CircularArray -empty]): Renamed from + _collectionEmpty, and implemented to do entire job of emptying. + * src/Array.m ([Array -empty]): Renamed from _empty, and + implemented to do entire job of emptying. + +Fri Mar 15 13:10:34 1996 Andrew McCallum + + * doc/Makefile.in (GNUstep-FAQ.html): New target. + (GNUstep-FAQ): Rules modified to handle @email{} and @url{}. + +Tue Mar 12 09:43:32 1996 Andrew McCallum + + * checks/tcpport-server.m, checks/tcpport-client.m: Method name + changes. + + * checks/Makefile.in (SRCS): Add nstimer.m. + + * src/TcpPort.m ([TcpInPort +newForReceivingFromPortNumber:]): + Initialize _run_loops. + ([TcpInPort -addToRunLoop:forMode:]): Use new _run_loops Bag. + ([TcpInPort -removeFromRunLoop:forMode:]): Likewise. + ([TcpInPort -_connectedOutPortInvalidated:]): Likewise. + ([TcpInPort -_addClientOutPort:]): Likewise. + ([TcpInPort -dealloc]): Release _run_loops. + ([TcpOutPort -outPacketClass]): Method renamed from -packetClass. + ([TcpOutPort +outPacketClass]): Likewise. + * src/objects/TcpPort.h (TcpInPort _run_loops): Make it a Bag. + (TcpInPort _run_loop_modes): Remove ivar. + + * src/Port.m ([InPort -setReceivedPacketInvocation:]): Assert that + _packet_invocation isn't already set. + + * src/RunLoop.m ([RunLoop -removeFileDescriptor:forMode:]): Add + debugging message. + + * src/NSGSet.m ([NSGSet -member:]): Return value. + + * src/IndexedCollection.m ([ConstantIndexedCollection + -firstObject]): Return nil if empty. + ([ConstantIndexedCollection -lastObject]): Likewise. + ([ConstantIndexedCollection -prevObjectWithEnumState:]): Use -1 to + deal with reversals at extremes. + ([ConstantIndexedCollection -nextObjectWithEnumState:]): Use [self + count] to deal with reversals at extremes. + + * src/Connection.m (in_port_2_ancestor): New static variable. + ([Connection +initialize]): Initialize it. + ([Connection +newForInPort:outPort:ancestorConnection:]): Use new + static variable to handle ancestor; (ignore ancestor argument; the + method name will be changed later). Set the in-port's packet + invocation to the Connection class. Don't call + -addToRunLoop.. here, the mechanics of it were already done above. + ([Connection -addToRunLoop:forMode:]): Mark it as not implemented, + for now. + ([Connection -runConnectionUntilDate:]): Don't add to run loop here. + ([Connection +invokeWithObject:]): Make it a class method instead of + an instance method; alter contents appropriately for this. + ([Connection -portIsInvalid:]): Look at in_port_2_ancestor and remove + ourselves if necessary. + ([Connection -invalidate]): Don't remove ourselves from the run loop + here, because we may not be the only one listening. This still + needs fixing. + + * src/ConnectedCoder.m ([ConnectedEncoder -dismiss]): Fix typo in + sendPacket: call. + + * src/IndexedCollection.m: Several minor fixes to return types and + return values. Also: + ([ReverseEnumerator -nextObject]): Pass pointer to enum_state. + ([ConstantIndexedCollection -prevObjectWithEnumState:]): Method + overhauled. + ([ConstantIndexedCollection -nextObjectWithEnumState:]): Likewise. + ([ConstantIndexedCollection -newEnumState]): New method. + + * src/Foundation/NSGSet.h: Remove #include of objects/elt.h. + * src/Foundation/NSGDictionary.h: Likewise. + * src/Foundation/NSGArray.h: Likewise. + * src/NSGSet.m: Remove #include of objects/eltfuncs.h. + * src/NSGDictionary.m: Likewise. + * src/NSGCountedSet.m: Likewise. + * src/AutoreleasePool.m: Remove #include of objects/collhash.h. + + * src/TcpPort.m: Updated to conform to new Port class. TcpPacket + class split into TcpInPacket and TcpOutPacket. + * src/objects/TcpPort.h: Declare new methods and classes. + + * src/RunLoop.m: Debugging messages conditioned on debug_run_loop. + ([RunLoop -runOnceBeforeDate:forMode:]): New method. + * src/objects/RunLoop.h: Declare new method. + + * src/Port.m ([Port +outPacketClass]): Method renamed from + packetClass. + ([Port -outPacketClass]): Likewise. + ([InPort -setReceivedPacketInvocation:]): Method renamed from + setPacketInvocation. + ([OutPort -sendPacket:]): Method renamed from -sendPacket:withTimeout:. + (OutPacket, InPacket): New classes, replacing Packet class. + * src/objects/Port.h: Declare new methods and classes. + + * src/MemoryStream.m ([MemoryStream -initWithCapacity:prefix:]): + New method. + * src/objects/MemoryStream.h: Declare new method. + + * src/Connection.m: Remove old-style methods for getting incoming + ConnectedCoders. Add new methods that use RunLoop. All callers + changed. + ([Connection -addToRunLoop:forMode:]): New method. + ([Connection -removeFromRunLoop:forMode:]): New method. + ([Connection -runConnectionUntilDate:]): New method. + ([Connection -runConnection]): Method changed to call above method. + ([Connection -_handleRmc:]): New method. + ([Connection -_handleQueuedRmcRequests]): New method. + ([Connection -_getReceivedReplyRmcFromQueueWithSequenceNumber:]): New + method. + ([Connection -_getReceivedReplyRmcWithSequenceNumber:]): New method. + ([Connection -invokeWithObject:]): New method. + ([Connection +newForInPort:outPort:ancestorConnection:]): Set + reply_depth ivar. + ([Connection -_encoderCreateReferenceForConstPtr:]): Return the xref! + * src/objects/Connection.h: Declare new methods. Type arguments + with InPort and OutPort, not just Port. + (Connection reply_depth): New ivar. + + * src/ConnectedCoder.m ([ConnectedDecoder + +newDecodingWithPacket:connection:]): New method. Old method + +newDecodingWithConnection:timeout: is deprecated. + * src/objects/ConnectedCoder.h: Declare new method. + +Mon Mar 11 12:02:04 1996 Andrew McCallum + + * checks/tcpport-server.m: Updated for RunLoop. + * checks/tcpport-client.m: Likewise. + + * src/RunLoop.m: New file. + * src/objects/RunLoop.h: New file. + * src/NSTimer.m: New file. + * src/Makefile.in (CFLAGS): Add -Wall. + (GNU_MFILES): Add RunLoop.m. + (GNU_HEADERS): Add objects/RunLoop.h. + (GNUSTEP_MFILES): Add NSTimer.m. + (GNUSTEP_HEADERS): Add Foundation/NSTimer.h. + + * src/TcpPort.m ([TcpInPort -receivePacketWithTimeout:]): + Completely new implementation that uses the RunLoop. + ([TcpInPort -old_receivePacketWithTimeout:]): New method, holding old + implementation. + ([TcpInPort -invokeWithObject:]): New method, called by RunLoop. + ([TcpInPort -_tryToGetPacketFromReadableFD:]): New private method. + ([TcpInPort -_addClientOutPort:toRunLoop:forMode:]): New method. + ([TcpInPort -addToRunLoop:forMode:]): New method. + ([TcpInPort -_removeClientOutPort:fromRunLoop:forMode:]): New method. + ([TcpInPort -removeFromRunLoop:forMode:]): New method. + ([TcpInPort -_addClientOutPort:]): Add it to the RunLoop. + ([TcpInPort -_connectedOutPortInvalidated:]): Remove it from the + RunLoop. + ([TcpInPort -_addClientOutPort:]): Method renamed from _addOutPort:. + * src/objects/TcpPort.h (TcpInPort _run_loop, _run_loop_mode): New + ivars. + + * src/Port.m ([InPort -init]): Set _packet_invocation. + ([InPort -setPacketInvocation:]): New method. + ([InPort -addToRunLoop:forMode:]): New method. + ([InPort -removeFromRunLoop:forMode:]): New method. + * src/objects/Port.h: Declare new methods. + (Port _packet_invocation): New ivar. + + * src/NotificationDispatcher.m ([NotificationDispatcher + +defaultInstance]): New method. + ([NotificationDispatcher -removeObserver:name:object:]): Remove + handling of non-existance _nil_observer_array. + + * src/NSDate.m: Many small formatting changes. + (UNIX_REFERENCE_INTERVAL): Macro renamed from UNIX_OFFSET. + ([NSConcreteDate -timeIntervalSinceNow]): New method. + + * src/Invocation.m (return_retained): Change macro from 1 to 0. + + * src/Foundation/NSTimer.h: Declare NSTimer class interface. + + * src/Connection.m ([Connection -isValid]): New method. + + * src/objects/NotificationDispatcher.h ([NotificationDispatcher + +defaultInstance]): Declare new method. + + * src/objects/Notification.h (Notifying): New protocol. + (NotificationPosting): New protocol. + + * src/objects/Connection.h: Declare new method. + + * src/objects/Array.h (ConstantArray): Inherit from + ConstantIndexedCollection, not IndexedCollection. + + * src/IndexedCollection.m ([IndexedCollection +initialize]): + Compare self with IndexedCollection, not KeyedCollection. + + * doc/gnustep-faq.texi: Changes by Scott Christley. + +Thu Mar 7 15:51:51 1996 Andrew McCallum + + * src/TcpPort.m ([TcpInPort -receivePacketWithTimeout:]): Move + initialization of select_timeout to inside loop since Linux + select() modifies *select_timeout. + +Wed Mar 6 11:40:02 1996 Andrew McCallum + + * src/TcpPort.m: Assert is_valid in many places. + ([TcpInPort +newForReceivingFromPortNumber:]): Get the address of the + host, not localhost=127.0.0.1. + ([TcpInPort -invalidate]): Remove ourselves from socket_2_port and + port_number_2_port here instead of in -dealloc. + ([TcpInPort -description]): Indicate whether we are valid or not in + string. + ([TcpOutPort -description]): Likewise. + ([TcpOutPort -invalidate]): Assert is_valid, don't just conditionally + execute body. Remove ourselves from out_port_bag and + socket_2_port here, not in -dealloc. + ([TcpPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): If we + don't read() full prefix, don't abort(), just return EOF. + + * src/Proxy.m: Assert that the connection is valid in several + places. + + * src/Connection.m: Assert is_valid in many places. + ([Connection +newForInPort:outPort:ancestorConnection:]): Set is_valid + to 1. Only ask for notification of out port death if out port is + non-nil. + ([Connection -portIsInvalid:]): Properly get the port from the + notification object. + + * src/Port.m ([Port -invalidate]): Insist that is_valid is true at + the beginning of this method, don't test it and skip the body of + this method. Force users to be careful about calling -invalidate + more than once. + + * src/NSMapTable.m (NSAllMapTableValues): Get rid of unused + variable ARRAY. Return VALUEARRAY, not unused variable. + + * examples/second-server.m (announce_new_port): New function. + (announce_broken_port): New function. + (main): Register them for notifications; let user choose registered + name on command line. + + * examples/second-client.m (main): Use new notification interface. + + * checks/nsnotification.m (main): Wrap it with an + NSAutoreleasePool. + + * checks/tcpport-server.m (main): Use new notification interface + for invocations. + + * src/NotificationDispatcher.m (NotificationRequest): Ivar names + prepended with `_'. + (NotificationInvocation): Likewise. + (NotificationPerformer): Likewise. + ([NotificationDispatcher + -_addObserver:notificationRequest:name:object:]): Insist that + observer be non-nil; (in the case of Invocation's, the invocation + is now the observer). + ([NotificationDispatcher -addInvocation:name:object:]): Method renamed + from -addObserver:invocation:... Pass the invocation as the + observer. Release the NR after it has been added. + ([NotificationDispatcher -addObserver:selector:name:object:]): Release + the NR after it has been added. + ([NotificationDispatcher -_removeFromLinkedListNotificationRequest:]): + New method. + ([NotificationDispatcher -removeInvocation:]): New method. + ([NotificationDispatcher -removeInvocation:name:object:]): New method. + ([NotificationDispatcher -removeObserver:]): Use + _removeFromLinkedListNotificationRequest:. + ([NotificationDispatcher -removeObserver:name:object:]): Likewise. + ([NotificationDispatcher +addInvocation:name:object:]): New method. + ([NotificationDispatcher +removeInvocation:]): New method. + ([NotificationDispatcher +removeInvocation:name:object:]): New method. + * src/objects/NotificationDispatcher.h: Declare new methods. + + * src/Connection.m ([Connection +initialize]): Initialize + all_connections_local_targets. + ([Connection -addLocalObject:]): Put it in + all_connections_local_targets also. + ([Connection -removeLocalObject:]): Remove it from + all_connections_local_targets also. + +Tue Mar 5 10:32:51 1996 Andrew McCallum + + * examples/second-server.m: Use notifications instead of old + scheme for invalidation listening. + * examples/second-server.h: Don't conform to no-longer-used + InvalidationListening protocol. + * examples/second-client.m (announce_new_connection): New function. + (main): Register it for notifications. Run the connection forever, + instead of on a 15 second timeout. + * examples/first-client.m (main): Before exit, invalidate the + connection, not the proxy. + * examples/textcoding.m: Send -close to Archiver, not old + -closeCoder. + * examples/Makefile.in (first): Force check for re-compilation of + libobjects. + (second): Likewise. + + * checks/tcpport-server.m (announce_new_connection): New function. + (announce_broken_connection): New function. + (main): Register new functions for notifications. Send messages back + to clients to test reply port mechanism. + * checks/tcpport-client.m: Test the reply port mechanism; look for + messages coming back from the server. + * checks/server.m: Use Array instead of List. Use + NotificationDispatcher to hear about invalid and new connections. + Let the user set the registerd name from the command line. + * checks/server.h: Update for new server interface. + * checks/client.m (main): Let user set registered name from + command line. + * checks/Makefile.in (SRCS): Added nsnotification.m. + (tcpport, remote): Force check of libobjects re-compilation. + + * doc/Makefile.in (TEXI_FILES): Add gnustep-faq.texi. + (GNUstep-FAQ): New target. + + * src/TcpPort.m: Many ivar names changed for clarity. Some new + ivars added; see changes to TcpPort.h. Overhaul of how + TcpOutPort's track their remote address. Previously they used the + address of their local peer; this is no good when encoding a + TcpOutPort on the wire for D.O.; the D.O. reciever needs a way to + contact the listen'ing socket of the TcpInPort in order to form a + new connection. _remote_in_port_address is now the address of the + remote listen'ing socket. Added many comments throughout. All + perror() calls changes to be more informative. + (debug_tcp_port): Make this a static variable instead of a macro. + (init_socket_2_port): Check pre-existance of socket_2_port here + instead of callers. + ([TcpInPort +newForReceivingFromPortNumber:]): Method overhauled. + Don't bind socket to INADDR_ANY because we need to be able to + encode our unique host address on the wire for D.O. + ([TcpInPort -_listeningSockaddr]): New method. + ([TcpInPort -receivePacketWithTimeout:]): Method overhauled. Get the + reply port for an incoming packet from the packet prefix. + ([TcpInPort -_connectedOutPortInvalidated:]): Add debugging message. + ([TcpInPort -classForConnectedCoder:]): Return the TcpOutPort class, + not [self class] because we always encode a "send right" (ala + Mach), not a "recieve right". + ([TcpOutPort + +newForSendingToSockaddr:withAcceptedSocket:pollingInPort:]): + Method renamed, and majorly overhauled. Now many different + combinations of NULL argument do different things. This is now + the single designated initializer. We now check both the SOCKADDR + and the SOCK argument to find previously-created TcpOutPort's. + This method is also used to set the remote_in_port_address of an + already-created TcpOutPort. There is more error checking. + ([TcpOutPort +newForSendingToPortNumber:onHost:]): Overhauled. + ([TcpOutPort +_newWithAcceptedSocket:peeraddr:inPort:]): Overhauled to + work with new designated initalizer. + ([TcpOutPort -sendPacket:withTimeout:]): Use new low-level Packet + interface that deals with reply ports. + ([TcpOutPort +packetClass]): New method. + (PREFIX_LENGTH_TYPE): New macro. + (PREFIX_LENGTH_SIZE): New macro. + (PREFIX_ADDRESS_TYPE): New macro. + (PREFIX_ADDRESS_SIZE): New macro. + (PREFIX_SIZE): New macro. + ([TcpPacket -_initForReceivingWithSize:replyPort:]): Use 0 prefix, + because the separate +_getPacketSize... method reads those bytes. + ([TcpPacket -_writeToSocket:withReplySockaddr:]): Now the prefix + includes the sockaddr of the reply port. If ADDR is non-null, set + the reply port address portion of the prefix. + ([TcpPacket +_getPacketSize:andReplyPort:fromSocket:inPort:]): New + method, replacing +readPacketSizeFromSocket:. + ([TcpPacket -_fillFromSocket:]): Set Stream's eofPosition properly. + Leave Stream's position at zero. + (InPortAcceptedClientNotification): New notification string. + * src/objects/TcpPort.h: Declare new ivars and notfication + strings. + + * src/Proxy.m: Change many ivar names. + (debug_proxy): Temporarily set to 1. + ([Proxy +newForRemoteTarget:connection:]): Set new ivar names. + Embellish debugging message to include connection. + ([Proxy -invalidateProxy]): Return void instead of self. + ([Proxy +encodeObject:withConnectedCoder:]): Overhauled, encode tag, + and change order of encoding for more efficient encoding. Added + many comments. + ([Proxy +newWithCoder:]): Likewise, to match. Also added a check to + make sure we don't return a bogus pointer for a local object; do + this by checking with connection's +includesLocalObject; if it's + not there, raise an exception. + ([Proxy -forward::]): Call the new forwarding method name in + Connection. + * src/objects/Proxy.h: Several ivar name changes. Method types + fixed. + + * src/Connection.m (default_in_port_class, + default_out_port_class): New static variables, replacing + default_port_class. + (all_connections_local_targets): New map table; not used yet, though. + (debug_connection): Temporarily set to 1. + ([Connection +initialize]): Set new static vars. + ([Connection +setDefaultInPortClass:]): New method. + ([Connection +defaultInPortClass]): New method. + ([Connection +setDefaultOutPortClass:]): New method. + ([Connection +defaultOutPortClass]): New method. + ([Connection -init]): Use new default_in_port_class. + ([Connection +new]): Likewise. + ([Connection +newWithRootObject:]): Likewise. + ([Connection +newRegisteringAtName:withRootObject:]): Likewise. + ([Connection +rootProxyAtName:onHost:]): Likewise. + ([Connection +rootProxyAtPort:]): Likewise. + ([Connection +newForInPort:outPort:ancestorConnection:]): Assert the + in port. Embellish the debugging message to print the in port and + out port. Set the new connection's in port and out port ivars. + Register ourselves as observers of port invalidation with the + NotificationDispatcher. Post a notification that a new connection + was created. + ([Connection -runConnectionWithTimeout:]): Use + _serviceReceivedRequestsWithTimeout:. + ([Connection -_newReceivedRmcWithTimeout:]): Use decodingClass, not + encodingClass. + ([Connection -_serviceReceivedRequestsWithTimeout:]): Method name + changed from -newReceivedReplyRmcWithSequenceNumber:. + ([Connection +includesLocalObject:]): New method; still needs more + infrastructure to work, though. + ([Connection -inPortClass]): New method. + ([Connection -outPortClass]): New method. + ([Connection -setInPortClass:aPortClass]): New method. + ([Connection -setOutPortClass:aPortClass]): New method. + ([Connection -_encoderCreateReferenceForConstPtr:]): Add 1 to map + table count to get xref. + ([Connection -_decoderCreateReferenceForConstPtr:]): Likewise. + ([Connection -dealloc]): Remove ourselves from the + NotificationDispatcher. + (ConnectionWasCreatedNotification): New notification string. + * src/objects/Connection.h (in_port_class, out_port_class): New + ivars replacing port_class. Declare methods to get and set them. + + * src/ConnectedCoder.m (CONNECTED_CODER_FORMAT_VERSION): New + macro. + ([ConnectedEncoder + -_initForWritingWithConnection:sequenceNumber:identifier:]): Get + packetClass from the connection's outPort, not the outPortClass. + Return self. + ([ConnectedDecoder + +readSignatureFromCStream:getClassname:formatVersion:]): Fill in + name and version. + + * src/LinkedList.m ([LinkedList -prependObject:]): Fix return type. + ([LinkedList -insertObject:atIndex:]): Likewise. + + * src/Encoder.m ([Encoder -_coderCreateReferenceForObject:]): + Insert it in object_2_xref, not const_ptr_2_xref. + ([Encoder -_encodeObject:withName:isBycopy:isForwardReference:]): + Create the in_progress_table with + NSNonOwnedPointerMapKeyCallBacks, not NSObject..; needed by + distributed objects so we don't get infinite loop with proxy + objects. + + * src/Decoder.m ([Decoder + +readSignatureFromCStream:getClassname:formatVersion:]): Compare + got with 6, not 2. + ([Decoder -_coderCreateReferenceForObject:]): Add warning comment + about a -retain we don't want. Fix this eventually! + + * src/objects/CoderPrivate.h (SIGNATURE_FORMAT_STRING): Remove + "version" from between class name and format version. + + * src/CStream.m: Use new SIGNATURE_FORMAT_STRING, as defined in + objects/CoderPrivate.h. + +Sat Mar 2 19:33:26 1996 Andrew McCallum + + Wrote implementation of GNU Notification and + NotificationDispatcher classes. Used these as the engines for new + versions of the NSNotification* classes. The previous versions of + NSNotification and NSNotificationCenter were buggy and slow. The + new GNU implementations have some dramatic improvements speed, due + to extra use of hash tables, and the use of LinkedList's; they + also have some better features. + + * src/Notification.m: New file. + * src/NotificationDispatcher.m: New file. + * src/objects/Notification.h: New file. + * src/objects/NotificationDispatcher.h: New file. + + * src/NSNotificationCenter.m: Completely new implementation based + on GNU NotificationDispatcher. This version is much faster, and + has some better features. + * src/NSNotification.m: Completely new implementation based on GNU + Notification. + * src/Foundation/NSNotification.h: New interface based on GNU + Notification and NotificationDispatcher. + + * src/Makefile.in (GNU_MFILES): Added Notification.m and + NotificationDispatcher.m. Removed SocketPort.m. + (GNU_HEADERS): Added objects/Notification.h and + objects/NotificationDispatcher.h. Removed objects/SocketPort.h. + * src/Foundation/NSConnection.h (NSConnectionDeath): New macro. + + * src/objects/TcpPort.h: Declare new methods and new Notification + String. + + * src/Proxy.m ([Proxy +initialize]): Don't return self. + + * src/objects/Magnitude.h: Don't include + + * src/LinkedList.m ([LinkedList -insertObject:after:]): When + inserting first object, set _count to 1. + ([LinkedList -insertObject:before:]): Likewise. + ([LinkedList -appendObject:]): Don't claim ownership here if we're + going to call -insertObject:after: later. + ([LinkedList -prependObject:]): Likewise. And renamed from + prependElement. + ([LinkedList -insertObject:atIndex:]): Likewise. + ([LinkedList -newEnumState]): New method. + ([LinkedList -nextObjectWithEnumState:]): Overhauled. + ([LinkedList -prevObjectWithEnumState:]): Likewise. + * src/LinkedListNode.m ([LinkedListNode -initialize]): Method + removed. + ([LinkedListNode -init]): Set _linked_list. + + * src/Connection.m ([Connection +connectionsCountWithInPort:]): + Fix use of END_FOR_ARRAY. + ([Connection -invalidate]): Post ConnectionBecameInvalidNotification. + (ConnectionBecameInvalidNotification): New extern String. + + * src/objects/Connection.h (ConnectionBecameInvalidNotification): + Declare extern new String. + + * src/objects/String.h (String): Make the protocol inherit from + the NSObject protocol. + + * src/objects/Collecting.h (ConstantCollecting): Make is inherit + from the NSObject protocol. + + * src/TcpPort.m ([TcpInPort -numberOfConnectedOutPorts]): New + method. + ([TcpInPort -_connectedOutPortInvalidated:]): Post an + InPortClientBecameInvalidNotification. + ([TcpInPort -portNumber]): New method. + ([TcpInPort -description]): New method. + ([TcpOutPort +newWithAcceptedSocket:inPort:]): Fill in the + _address ivar. + ([TcpOutPort -portNumber]): New method. + ([TcpOutPort -description]): New method. + + * src/Invocation.m ([MethodInvocation -invokeWithObject:]): Make + it a -subclassResponsibililty. + ([MethodInvocation -initWithArgframe:selector:]): Raise an exception + if we are unable to get a non-null selector type string. + + * src/Port.m ([Port -invalidate]): Post + PortBecameInvalidNotification. + (PortBecameInvalidNotification): New String object. + + * src/NSGDictionary.m ([NSGMutableDictionary -objectForKey:]): New + method. + + * src/KeyedCollection.m ([ConstantKeyedCollection -description]): + Use object_get_class_name instead of -name. + + * src/Foundation/NSObject.h (NSObject (NEXSTEP)): Comment out + -name method because NSNotification.h declares it with a different + type. Eventually we'll have to come up with a more permanent + solution. + + * src/DelegatePool.m ([DelegatePool -forward::]): Fix use of + END_FOR_ARRAY. + + * src/Collection.m ([Enumerator -nextObject]): Pass pointer to + ENUM_STATE. + ([Enumerator -dealloc]): Likewise. + ([ConstantCollection -detectObjectByInvoking:]): Use -returnValueIsTrue. + ([ConstantCollection -printForDebugger]): Use object_get_class_name + instead of -name because -name is now ambiguously typed. + +Fri Mar 1 09:53:31 1996 Andrew McCallum + + * checks/Makefile.in: Removed all invdividual targets for + executables. Use general rule that works for GNU make, but may + not work for others. + (SRCS): Add tcpport-server.m and tcpport-client.m. + (tcpport): New target. + + * src/MachPort.m: Surrounded by #if for mach. + + * src/Port.m: Overhauled for new Port heirarchy. More changes + than I want to list individually. + * src/objects/Port.h: Likewise. + * src/TcpPort.m, src/objects/TcpPort.h: New files. + * src/UdpPort.m, src/objects/UdpPort.h: New files. + * src/MachPort.m,src/objects/MachPort.h: New files. + * src/Makefile.in (GNU_MFILES): Added UdpPort.m. + (GNU_HEADERS): Added objects/UdpPort.h. + * src/Makefile.in (GNU_MFILES): Add MachPort.m. + (GNU_HEADERS): Add objects/MachPort.h. + + * src/Encoder.m ([Encoder -_coderCreateReferenceForConstPtr:]): + Get xref before asserting it. + + * src/objects/CoderPrivate.h (WRITE_SIGNATURE_FORMAT_ARGS): Use + STRINGIFY() for OBJECTS_PACKAGE_NAME. + * src/objects/stdobjects.h.in (STRINGIFY): New macro defined, if + not defined already. + (XSTRINGIFY): Likewise. + + * src/objects/Array.h (END_FOR_ARRAY): Macro renamed from + FOR_ARRAY_END, and given argument. + + * src/Connection.m: Overhauled for new collections, coders and + ports. More changes than I want to list individually. + * src/ConnectedCoder.m: Likewise. + * src/objects/ConnectedCoder.h: Likewise. + * src/objects/Connection.h: Likewise. + * src/Proxy.m: Likewise. + * src/objects/Proxy.h: Likewise. + All this overhaul work not yet finished. + +Thu Feb 29 21:49:33 1996 Andrew McCallum + + * src/Makefile.in (GNUSTEP_MFILES): Re-added Connection.m and + ConnectedCoder.m. + (GNUSTEP_HEADERS): Removed duplicate Foundation/NSHashTable.h. + +Wed Feb 28 20:37:27 1996 Andrew McCallum + + * checks/invocation.m: Test many new features. + + * src/objects/CoderPrivate.h (SIGNATURE_FORMAT_STRING): Change to + include package name and version. + (WRITE_SIGNATURE_FORMAT_ARGS): New macro. + * src/objects/stdobjects.h.in: New macro. + * src/Decoder.m + ([Decoder +readSignatureFromCStream:getClassname:formatVersion:]): + Get new values. + * src/Encoder.m ([Encoder -writeSignature]): Use new macro. + + * src/Makefile.in (GNU_MFILES): Add TcpPort.m. + (GNU_HEADERS): Add objects/TcpPort.h. + +Sun Feb 25 13:01:50 1996 Andrew McCallum + + * src/Makefile.in (FILE_AUTHORS): Added "Albin L. Jones". + +Sat Feb 24 13:47:40 1996 Andrew McCallum + + * src/Makefile.in (GNUSTEP_MFILES): Add NSInvocation.m. + + * src/NSInvocation.m: Class implemented using Invocation as + behavior. + * src/Foundation/NSInvocation.h: Remove ivars. Define so that + behavior can be used. + + * src/Invocation.m (return_retained): New macro. + ([Invocation -setReturnValue:]): Retain return value if necessary. + ([ArgframeInvocation -_retainArguments]): Add missing local var. + ([MethodInvocation -initWithArgframe:type:]): New method. + ([MethodInvocation -initWithArgframe:selector:]): Use new method. Set + selector using sel_pointer. + ([ObjectFunctionInvocation -invokeWithObject:]): Use return_retained, + not args_retained. + +Fri Feb 23 14:35:05 1996 Andrew McCallum + + * src/Invocation.m ([Invocation -initWithReturnType:]): Use new + ivar names. Use calloc instead of malloc. + ([Invocation -encodeWithCoder:]): New method. + ([Invocation -initWithCoder:]): New method. + ([Invocation -classForConnectedCoder:]): New method. + ([Invocation -returnType]): Use new ivar name. + ([Invocation -setReturnValue:]): New method. + ([Invocation -objectReturnValue]): Method implemented. + ([Invocation -intReturnValue]): Method implemented. + ([Invocation -returnValueIsTrue]): Method implementation finished. + ([Invocation -dealloc]): Use new ivar name. Release return type if + necessary. + ([ArgframeInvocation -_retainArguments]): New method. + ([ArgframeInvocation -_initArgframeFrom:withType:retainArgs:]): Method + overhauled. + ([ArgframeInvocation -initWithArgframe:type:]): Use new method. + ([ArgframeInvocation -encodeWithCoder:]): New method. + ([ArgframeInvocation -initWithCoder:]): New method. + ([ArgframeInvocation -argumentTypeAtIndex:]): Use new ivar name. + ([ArgframeInvocation -retainArguments]): New method. + ([ArgframeInvocation -argumentsRetained]): New method. + ([ArgframeInvocation -_deallocArgframe]): New method. + ([ArgframeInvocation -dealloc]): Use new method. Release args if + necessary. + ([MethodInvocation -_initTargetAndSelPointers]): New method. + ([MethodInvocation -initWithArgframe:selector:]): Use new method. + ([MethodInvocation -initWithCoder:]): New method. + ([MethodInvocation -initWithTarget:selector:...]): Retain args if + necessary. + ([MethodInvocation -invoke]): Use new ivars. + ([MethodInvocation -invokeWithTarget:]): Use -setTarget:. + ([MethodInvocation -selector]): Use new ivar. + ([MethodInvocation -setSelector:]): Likewise. + ([MethodInvocation -target]): Likewise. + ([MethodInvocation -setTarget:]): Likewise. + ([ObjectMethodInvocation -_initArgObjectPointer]): New method. + ([ObjectMethodInvocation -initWithArgframe:selector:]): Use new method. + ([ObjectMethodInvocation -initWithCoder:]): New method. + ([ObjectMethodInvocation -invokeWithObject:]): New method. + (VoidFunctionInvocation): New class implementation. + (ObjectFunctionInvocation): New class implementation. + + * src/objects/Invocation.h: Make -invoke methods return void. + Include objects/Invoking.h. + (return_type): ivar renamed from encoding. + (ArgframeInvocation args_retained): new ivar. + (MethodInvocation target_pointer): new ivar. + (MethodInvocation sel_pointer): new ivar. + (VoidFunctionInvocation): New class. + (ObjectFunctionInvocation): New class. + + * src/objects/Invoking.h: Make -invoke methods return void. + + * src/Encoder.m ([Encoder +initialize]): Compare self with + Encoder, not Coder. + ([Encoder +encodeRootObject:withName:toStream:]): Rename method to + -close. + ([Encoder -encodeSelector:withName:name]): Use sel_get_any_typed_uid + instead of sel_get_any_uid. + + * src/Stream.m ([Stream -close]): Method renamed from + -closeStream. + * src/objects/Streaming.h: Likewise. + * src/StdioStream.m ([Stream -close]): Likewise. + * src/MemoryStream.m ([Stream -close]): Likewise. + + * src/objects/Coder.h ([Coder +setDefaultCStreamClass:]): Declare + method. + ([Coder +defaultCStreamClass]): Declare method. + + * src/Coder.m ([Coder -close]): Method renamed from -closeCoding. + * src/objects/Coding.h: Likewise. + +Thu Feb 22 10:03:01 1996 Andrew McCallum + + * src/NSObject.m (retain_counts): Make it a NSMapTable instead of + a coll_hash. + (NSIncrementExtraRefCount): Update for new retain_counts type. + (NSDecrementExtraRefCountWasZero): Likewise. + ([NSObject +initialize]): Likewise. + ([NSObject -retainCount]): Likewise. + + * src/Makefile.in (GNU_HEADERS): Add objects/bitops.h, + objects/minmax.h. + (GNU_OTHER_SRCFILES): Add md5.h. + * src/Makefile.in (GNU_HEADERS): Add objects/Enumerating.h, + objects/Invoking.h. + * src/Makefile.in (GNU_HEADERS): Add objects/array.h. + + * Makefile.in (DIST_FILES): Add RELEASE-NOTES. + + * src/NSString.m ([NSString -hash]): Don't use elt_* function, and + use NSHashStringLength. + * src/String.m ([String -hash]): Likewise. + + * src/simple-load.h (__objc_dynamic_find_symbol): Cast to drop + const type, and avoid warning. + + * src/Makefile.in (GNU_MFILES): Remove eltfuncs.m. + (GNU_HEADERS): Remove objects/elt.h, objects/eltfuncs.h. + * src/Makefile.in (GNU_CFILES): Remove collhash.c. + (GNU_HEADERS): Remove objects/collhash.h. + + * src/CString.m ([CString -initWithCString:range:]): Don't make + super call. Fix infinite loop in _collectionDealloc. + + * src/BinaryCStream.m ([BinaryCStream + -decodeValueOfCType:at:withName:]): Make save_type const. + + * src/AutoreleasePool.m: Don't include . + * src/AutoreleaseStack.m: Likewise. + + * examples/textcoding.m: Overhaul for new collection class scheme + to improve distributed objects and NeXT-compatibility. + + * checks/Makefile.in (SRCS): Add nsmaptable.m and nshashtable.m. + * checks/nsarchiver.m: Update for new Archiver classes. + * checks/test01.m: Update for new collection classes. + + * doc/Makefile.in (TEXI_FILES): Add faq.texi. + * doc/faq.texi: New file. + + * src/Foundation/NSGSet.h: Remove ivars, the behavior code now + handles this. + * src/Foundation/NSGDictionary.h: Likewise. + + * src/objects/Coder.h: Declare classes Encoder and Decoder; + extensive rearrangement of ivars, method names and protocols. + + * src/objects/RetainingNotifier.h: Don't include + + * src/objects/Archiver.h: Subclass from Encoder and Decoder, not + Coder. + + * src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Add NSCallBacks.h. + (GNUSTEP_HEADERS): Remove Foundation/NSCallBacks.h. + + * src/Makefile.in (CFLAGS): Remove -Wno-implicit. + (GNU_MFILES): Remove BinaryTreeEltNode.m, LinkedListEltNode.m, + RNTreeEltNode.m. Add Decoder.m, Encoder.m. Temporarily remove + ConnectedCoder.m, Connection.m, RetainingNotifier.m, Time.m. + (GNU_CFILES): Add allocs.c. + (GNU_OBJS): Change order to create BASICS and CALLBACKS first. + (GNU_HEADERS): Remove BinaryTreeEltNode.h, EltNode-h, EltNode-m, + LinkedListEltNode.h, RBTreeEltNode.h. + (GNUSTEP_MFILES): NSCallBacks.m. + (GNUSTEP_HEADERS): Foundation/NSCallBacks.h. + + * Encoder.m, Decoder.m, NSCallBacks.m: New files. + * objects/OrderedCollecting.h, objects/Enumerating.h, + objects/Invoking.h, objects/CoderPrivate.h, + objects/OrderedCollection.h: New files. + + * src/Coder.m: Move much of functionality to Encoder.m, Decoder.m, + and objects/CoderPrivate.h. + + * src/Invocation.m ([Invocation -objectReturnValue]): New method. + ([Invocation -intReturnValue]): New method. + ([Invocation -returnValueIsTrue]): New method. + ([Invocation -initWithTarget:selector:...]): Use switch statement to + handle value arguments, instead of pointer-to-value arguments. + + * src/NSConcreteNumber.m ([NumberTemplate -hash]): New method. + ([NumberTemplate -isEqual:]): New method. + ([NumberTemplate -encodeWithCoder:]): Make this self-contained. + ([NumberTemplate -initWithCoder:]): Likewise. + + * src/NSData.m: Fix typos. + + * src/Port.m ([Port -encodeWithCoder:]): Fix argument type. + + * src/OrderedCollection.m: Many fixes, continuing conversion from + old IndexedCollection.m + + * src/NSValue.m ([NSValueDecoder +newWithCoder:]): Comment out for + now; I think it needs fixes. + ([NSValueDecoder -initWithCoder:]): Likewise. + + * src/NSNumber.m ([NSNumber -description]): New method. + + * src/callbacks-char_p.c, src/callbacks-id.m, src/callbacks-int.c, + src/callbacks-int_p.c, src/callbacks-void_p.c, src/callbacks.c, + src/hash.c, src/list.c, src/map.c, src/objects/allocs.h, + src/objects/array.h, src/objects/callbacks.h, src/objects/data.h, + src/objects/hash.h, src/objects/list.h, src/objects/map.h, + src/objects/objects.h, src/x-basics.c.in, src/x-callbacks.c.in, + src/NSHashTable .m, src/NSMapTable.m, src/Foundation/atoz.h, + src/Foundation/NSMapTable.h, src/Foundation/NSHashTable.h: New + version from Albin Jones, plus fixes by McCallum. + + Major overhaul of collection class heirarchy to improve + distributed objects and NeXT-compatibility. Many classes + entirely-reworked. More changes than I want to list here. + + * src/KeyedCollection.m, src/IndexedCollection.m, src/Heap.m, + src/GapArray.m, src/Dictionary.m, src/Bag.m, src/Array.m, + src/CircularArray.m, src/Collection.m, src/ConstantString.m, + src/DelegatePool.m, src/MappedCollector.m, src/MutableString.m, + src/MutableCString.m, src/Queue.m, src/RBTree.m, src/Set.m, + src/SplayTree.m, src/Stack.m, src/objects/Array.h, + src/objects/Bag.h, src/objects/BinaryTree.h, + src/objects/BinaryTreeNode.h, src/objects/Collecting.h, + src/objects/Collection.h, src/objects/CollectionPrivate.h, + src/objects/Dictionary.h, src/objects/Heap.h, + src/objects/IndexedCollecting.h, src/objects/IndexedCollection.h, + src/objects/KeyedCollecting.h, src/objects/KeyedCollection.h, + src/objects/LinkedList.h, src/objects/LinkedListNode.h, + src/MallocAddress.m, src/objects/MappedCollector.h, + src/MutableString.m, src/MutableCString.m, src/NSString.m, + src/NSGSet.m, src/NSGCString.m, src/NSGDictionary.m, + src/NSGCountedSet.m, src/NSGArray.m, src/NSGArchiver.m, + src/objects/Queue.h, src/objects/Set.h, src/objects/SplayTree.h, + src/objects/Stack.h, src/String.m: Overhaul for new collection + class scheme to improve distributed objects and + NeXT-compatibility. + + * src/DelegatePool.m: Overhaul for new collection class scheme to + improve distributed objects and NeXT-compatibility. Change + several methods to return void. + * src/objects/DelegatePool.h: Change many method return types to + void. + +Thu Feb 15 11:18:33 1996 Andrew McCallum + + * src/Makefile.in (GNU_MFILES): Removed EltNodeCollector.m. + (GNU_HEADERS): Removed objects/EltNodeCollector.h. + +Wed Feb 14 12:23:12 1996 Andrew McCallum + + * Makefile.in (RCS_FILES): Add INSTALL.WIN32. + + * src/Makefile.in (RCS_FILES): Add Makefile.sed.nt. + * checks/Makefile.in (RCS_FILES): Undo last change. + * Makefile.in (RCS_FILES): Undo last change. + +Tue Feb 13 11:00:51 1996 Andrew McCallum + + * src/Makefile.in (GNU_MFILES): Added OrderedCollection.m. + (GNU_HEADERS): Added objects/OrderedCollection.h and + objects/OrderedCollecting.h. + + * checks/Makefile.in (RCS_FILES): Remove Makefile.sed.nt, (which, + as I understand, is supposed to be automatically generated from + Makefile.in by configure.bat). + (SRCS): Fix typo. + + * Makefile.in (RCS_FILES): Remove Makefile.sed.nt, (which, as I + understand, is supposed to be automatically generated from + Makefile.in by configure.bat). + + * doc/install.texi: Mention objc.patch. + * Makefile.in (DIST_FILES): Add objc.patch for thread-safe + runtime. + + * src/RawCStream.m, objects/RawCStream.h: New files. + * src/Makefile.in (GNU_MFILES): Added RawCStream.m. + (GNU_HEADERS): Added objects/RawCStream.h. + + * checks/diningPhilosophers.m (main): Cast (int) to (id) in + detachNewThread... call. + + * src/NSNotification.m, src/NSNotificationCenter.m, + src/Foundation/NSNotification.h: New files from Georg Tuparev. + * src/Makefile.in (GNUSTEP_MFILES): Added NSNotification.m and + NSNotificationCenter.m from Georg Tuparev. + (GNUSTEP_HEADERS): Added Foundation/NSNotification.h from Georg + Tuparev. + +Mon Feb 5 10:08:56 1996 Scott Christley (scottc@net-community.com) + + * checks/diningPhilosophers.m: New file + * checks/Makefile.in: add diningPhilosophers.m + * src/Foundation/NSGeometry.h: Add NSZeroPoint, NSZeroSize, + and NSZeroRect constants. + +Sun Feb 4 18:43:41 1996 Scott Christley (scottc@net-community.com) + + * checks/Makefile.sed.nt: New file + * configure.bat: Added configuration of checks makefile + * checks/Makefile.in (RCS_FILES): Add file Makefile.sed.nt + Add $(EXEEXT), $(OEXT), $(LIBEXT) extensions + * test01.m: Different random() for WIN32 + * src/Foundation/NSZone.h: include + +Sat Feb 3 22:28:52 1996 Scott Christley (scottc@net-community.com) + + * src/NSLock.m: New file + * src/Foundation/NSLock.h: New file + * src/NSThread.m: New file + * src/Foundation/NSThread.h: New file + * src/Makefile.in (GNUSTEP_MFILES): Add NSLock.m, NSThread.m + (GNUSTEP_HEADERS): Add Foundation/NSLock.h, Foundation/NSThread.h + +Fri Feb 2 15:44:20 1996 Scott Christley (scottc@net-community.com) + + * src/Makefile.in (uninstall): Only uninstall NEXTSTEP_HEADERS + +Thu Feb 1 19:42:09 1996 Scott Christley (scottc@net-community.com) + + * src/objects/SocketPort.h: Exclude non-existent headers for WIN32 + * src/objects/Time.h: Likewise + * src/SocketPort.m: Likewise + * src/NSBundle.m: Likewise + * src/objects/NSCoder.h: fixed mispelled file name + * src/NSCoder.m: remove inclusion of non-existent file + * src/Date.m: Exclude non-existent headers for WIN32 + * src/NSProcessInfo.m: Likewise + * src/find_exec.c: Likewise + + * Makefile.in (RCS_FILES): Add file configure.bat, Makefile.sed.nt + Add $(EXEEXT), $(OEXT), $(LIBEXT) extensions + * configure.bat: New file + * Makefile.sed.nt: New file + * src/Makefile.sed.nt: New file + * src/objects/config-nt.h: New file + * src/objects/config-nt.sed: New file + * src/objc-load.c: Runtime include file changed "objc/list.h" + to "objc/objc-list.h" + * src/objects/stdobject.h.in: Likewise + +Mon Feb 12 22:03:05 1996 Andrew McCallum + + * src/Makefile.in: Fix patch rejects. + (GNUSTEP_MFILES): Added NSHashTable.m and NSMapTable.m. + (GNUSTEP_HEADERS): Added Foundation/NSHashTable.h and + Foundation/NSMapTable.h. + +Mon Feb 12 21:14:58 1996 Albin L. Jones + + * src/Makefile.in (GNU_MFILES, GNU_CFILES, GNU_HEADERS): Added + the above to the appropriate lists. (GNU_BASICS_CFILES): Created + this variable to hold a list of `...-basics.c' files to be made. + (GNU_BASICS_HFILES): Similarly. (GNU_CALLBACKS_CFILES): Created + this variable to hold a list of `...-callbacks.c' files to be + make. (GNU_CALLBACKS_HFILES): Similarly. (GNU_OTHER_SRCFILES): + Needed to add `x-basics.c.in', `x-callbacks.c.in', + `objects/x-basics.h.in' and `objects/x-callbacks.h.in' to this + list. (GNUSTEP_HEADERS): Added `Foundation/atoz.h'. (%-basics.c, + %-callbacks.c, objects/%-basics.h, objects/%-callbacks.h): Added + these make targets. (array.o, data.o, hash.o, list.o, map.o, + objects/array.h, objects/data.h, objects/hash.h, objects/list.h, + objects/map.h): Added these make targets. + + * src/NSHashTable.m, src/NSMapTable.m, + src/Foundation/NSHashTable.h, + src/Foundation/NSMapTable.h, + src/Foundation/atoz.h: Added these. + + * src/objects/abort.h, src/objects/allocs.h, + src/objects/array.h, src/objects/bitops.h, + src/objects/callbacks.h, src/objects/data.h, + src/objects/hash.h, src/objects/list.h, src/objects/magic.h, + src/objects/magic.h, src/objects/minmax.h, + src/objects/number.h: Added these. + + * src/abort.c, src/allocs.c, src/array.c, src/atoz.m, + src/callbacks-char_p.c, src/callbacks-id.m, src/callbacks-int.c, + src/callbacks-int_p.c, src/callbacks-void_p.c, src/callbacks.c, + src/hash.c, src/list.c, src/map.c, src/md5.c, src/md5.h, + src/number.c: Added these. + +Mon Feb 12 20:50:05 1996 Andrew McCallum + + * checks/invocation.m: New file. + * checks/Makefile.in (SRCS): Add invocation.m. + + * checks/nsarchiver.m: Add test case from Scott Christley. + + * src/Collection.m ([Collection -withObjectsInvoke:]): New method. + * src/objects/Collection.h: Declare new method. + + * src/Invocation.m ([Invocation -invoke]): Terminate copy of + encoding string. Deal with void return type. + ([Invocation -invokeWithElement:]): Method removed. + ([Invocation -invokeWithObject:]): Make is -subclassResponsibility. + ([Invocation -getReturnValue:]): Make sure return_value is non-NULL. + ([ArgframeInvocation -initWithArgframe:type:]): Use objc_calloc. + ([MethodInvocation -initWithArgframe:selector:]): Try hard to get a + selector with a type string. + ([MethodInvocation -initWithTarget:selector:...]): New method. + ([MethodInvocation -invoke]): Get the target and selector properly. + ([MethodInvocation -invokeWithObject:]): New method. + * src/objects/Invocation.h: Declare new methods. + + * src/NSArchiver.m ([NSUnarchiver +allocWithZone:]): New method. + + * src/Coder.m ([Coder -decodeObject]): Return the object. + ([Coder -initForReadingWithData:]): New method. + +Thu Feb 1 17:04:17 1996 Andrew McCallum + + * NSData.m, NSDictionary.m, NSEnumerator.m, NSMutableData.m, + Port.m, MutableString.m, NSArray.m: + Use -subclassResponsibility instead of -notImplemented + where appropriate. + +Wed Jan 31 22:29:57 1996 Andrew McCallum + + * Makefile.in (DIST_FILES): Add file STATUS. + + * src/Coder.m ([Coder -_coderCreateReferenceForObject:]): + Beginning with this method, put in, but comment out, initial notes + for ideas about "tag-less" coder streams; this will allow for + smaller archives. + +Sat Jan 27 20:58:23 1996 Andrew McCallum + + * examples/textcoding.m (main): Use new Archiver and Unarchiver + classes, use new method names. + + * src/objects/Coding.h (CommonCoding -closeCoding): Renamed from + -coderCoder, so it is not so exclusively associated with the + Coding class, but also all subclasses that implement a *Coding + protocol. + * src/Coder.m ([Coder -closeCoding]): Method renamed from + -closeCoder. + ([Coder +encodeRootObject:withName:toStream:]): Make -closeCoding name + change. + + * src/Coder.m ([Coder +newReadingFromStream:]): Renamed from + coderReadingFromStream:, because, for subclasses of Coder, it's + silly to have different names for this method. Don't autorelease + returned object (I also find this more helpful). All callers + changed. + ([Coder +newReadingFromFile:]): Likewise. + * src/objects/Coder.h: Rename methods. + * src/ConnectedCoder.m ([ConnectedCoder + +newDecodingWithConnection:timeout:]): Rename + coderReadingFromStream to newReadingFromStream, and don't retain. + + * src/Archiver.m: New file. + * src/objects/Archiver.h: New file. + * src/Makefile.in (GNU_MFILES): Add Archiver.m. + (GNU_HEADERS): Add objects/Archiver.h. + +Fri Jan 26 10:48:30 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.2.0. + (OBJECTS_MINOR_VERSION): Version 2. + + * src/Makefile.in (GNU_HEADERS): Added CStreaming.h. + + * src/objects/objects.h: Include BinaryCStream.h and + TextCStream.h, not the old *Coder.h versions. + + * src/objects/ConnectedCoder.h (Coder): Make subclass of Coder, + not BinaryCoder. + + * src/TextCStream.m ([TextCStream + -encodeValueOfCType:at:withName:]): Remove the asserts that + prohibited structs and arrays. + ([TextCStream -decodeValueOfCType:at:withName:]): Likewise. + * src/BinaryCStream.m: Include the code for handling structs and + arrays. + + * src/objects/Streaming.h: Include instead of + . + + Update checks and examples + * checks/server.m: Make it work with the new coding scheme. + * checks/client.m: Likewise. + * checks/pipes.m (main): Use NSString in -initWithPipeFrom + argument. + * checks/Makefile.in (SRCS): Remove test08.m, it was for old-style + archiving. + * examples/textcoding.m (main): Use new coding scheme and @"" + strings properly. + * examples/stdio-stream.m (main): Likewise. + + * src/ConnectedCoder.m ([ConnectedCoder + +newDecodingWithConnection:timeout:]): Use + +coderReadingFromStream, not the deprecated + -initReadingFromStream. + + * src/BinaryCStream.m ([BinaryCStream -decodeName:]): Check for + NULL name. + + * src/Connection.m: encodeObjectBycopy -> encodeBycopyObject (to + better match NeXT). + * src/Proxy.m: Likewise. + + * src/Coder.m ([Coder +initialize]): Make BinaryCStream the + default, not TextCStream. + + * src/Coder.m ([Coder -encodeTag:]): Let the cstream handle it, + if it can. + ([Coder -decodeTag]): Likewise. + ([Coder -encodeClass:]): Perform classname mapping ala + encodeClassName:intoClassName. + ([Coder -_doEncodeBycopyObject:]): Perform callbacks + -replacementObjectForCoder, -replacementObjectForArchiver, + -classForCoder, -classForArchiver. + ([Coder -encodeClassName:intoClassName:]): Fix typos. + ([Coder -encodeConditionalObject:]): Don't encode *forward* + references, only backward references; apparently NeXT-style + decoding + (with -decodeObject, instead of GNU's decodeObjectAt:) can't + handle them. + + * src/Foundation/NSArchiver.h: Move NSUnarchiver declaration here + from NSUnarchiver.h. + * src/NSGArchiver.m: Move implementation of NSGUnarchiver here + from NSGUnarchiver.m. + * src/Foundation/NSGArchiver.h: Remove ivars; behavior code now + handles instance_size. Move NSGUnarchiver here from + NSGUnarchiver.h. + * src/NSArchiver.m: Move NSUnarchiver implementation here from + NSUnarchiver.m. Use subclassResponsibility where correct. + ([NSArchiver +initialize]): Make NSGArchiver the concrete class. + * src/Makefile.in (GNUSTEP_MFILES): NSUnarchiver.m and + NSGUnarchiver.m removed. + (GNUSTEP_HEADERS): Foundation/NSUnarchiver.h and + Foundation/NSGUnarchiver.h removed. + + * src/Foundation/NSObject.h ([NSObject -classForArchiver]): Method + removed; it's now in NSArchiver.m. + ([NSObject -replacementObjectForArchiver:]): Likewise. + + * src/ConnectedCoder.m (Object (ConnectedCoderCallbacks)): + Category methods moved here from Coder.m. + + * checks/nsarchiver.m (main): Use NSUnarchiver properly. + + * src/NSException.m (NSInconsistentArchiveException): String + removed; it's in NSArchiver.m. + + * src/NSGArchiver.m ([NSGArchiver +initialize]): Add the behavior + of the Coder class. All other methods deleted. + + * src/NSObject.m: Some minor formatting changes. + ([NSObject -classForArchiver]): Method removed; it's in NSArchiver.m. + ([NSObject -replacementObjectForArchiver:]): Likewise. + + * src/Makefile.in (GNUSTEP_MFILES): Remove NSGCoder.m. + (GNUSTEP_HEADERS): Remove Foundation/NSGCoder.h. + + Make use of new behavior size matching to avoid ugliness of + forcing ivar layout match when adding behaviors---more robust. + * src/NSGArray.m (self): New macro, cast to (Array*) to reflect + behavior addition. + ([NSGArray -initWithObjects:count:]): Call Array designated initalizer + instead of accessing ivars directly. + ([NSGMutableArray -initWithCapacity:]): Likewise. + ([NSGArray -count]): Method removed, Array behavior will take care + of it. + ([NSGArray -objectAtIndex:]): Use self to access ivars. + * src/Foundation/NSGArray.h: Remove ivars; class_add_behavior now + handles instance_size match. + + * src/behavior.c (class_add_behavior): If necessary, increase + instance_size of class to which behavior is being added. + +Thu Jan 25 10:11:41 1996 Andrew McCallum + + * src/NSArchiver.m ([NSArchiver +initialize]): Set concrete class + to Coder. + ([NSArchiver +allocWithZone:]): New method. + ([NSArchiver -initForWritingWithMutableData:]): Make this a subclass + responsibility. + ([NSArchiver -versionForClassName:]): New method. + ([NSArchiver +unarchiveObjectWithData:data]): New method. + ([NSArchiver +unarchiveObjectWithFile:path]): Call concrete class. + ([NSArchiver +classNameEncodedForTrueClassName:]): Likewise. + + * src/Foundation/NSArchiver.h: Declare new methods. + + * src/Foundation/NSCoder.h: Fix spelling of argument names. + + * src/Foundation/NSSet.h: Fix typo, initWithObjects: takes + objects, not NSArray's. + + * src/NSGData.m ([NSGData -writeToFile:atomically:]): Use + cStringNoCopy for efficiency. + + * src/MemoryStream.m ([MemoryStream -init]): New method, otherwise + naive creation dies with NULL buffer. + + * src/objects/Coding.h (Coding -cStream): New method. + (Coder -encodeArrayOfObjCType:count:at:withName:): Renamed from + -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. + (Coder -decodeArrayOfObjCType:count:at:withName:): Likewise. + + * src/objects/Coder.h (zone): New ivar. + + * src/Coder.m ([Coder -_initWithCStream:formatVersion:isDecoding:]): + Initialize new zone ivar. + ([Coder -encodeBycopyObject:withName:]): Renamed from + -encodeObjectBycopy, to better match NeXT. + ([Coder -decodeObjectAt::name]): Use zone ivar in creating + decoded objects. + ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from + -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. + ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. + ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for + NSCoder compatibility. + ([Coder -encodeClassName:trueNameintoClassName:]): + Likewise. + ([Coder -objectZone]): Likewise. + ([Coder -setObjectZone:]): Likewise. + ([Coder -encodeValueOfObjCType:at:]): Likewise. + ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. + ([Coder -encodeBycopyObject:]): Likewise. + ([Coder -encodeConditionalObject:]): Likewise. + ([Coder -encodeDataObject:]): Likewise. + ([Coder -encodeObject:]): Likewise. + ([Coder -encodePoint:]): Likewise. + ([Coder -encodeRect:]): Likewise. + ([Coder -encodeRootObject:]): Likewise. + ([Coder -encodeSize:]): Likewise. + ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. + ([Coder -decodeValueOfObjCType:at:]): Likewise. + ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. + ([Coder -decodeDataObject]): Likewise. + ([Coder -decodeObject]): Likewise. + ([Coder -decodePropertyList]): Likewise. + ([Coder -decodePoint]): Likewise. + ([Coder -decodeRect]): Likewise. + ([Coder -decodeSize]): Likewise. + ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. + ([Coder -systemVersion]): Likewise. + ([Coder -versionForClassName:]): Likewise. + ([Coder -initForWritingWithMutableData:]): New method, for + NSArchiver compatibility. + ([Coder +archivedDataWithRootObject:]): Likewise. + ([Coder +archiveRootObject:toFile:]): Likewise. + ([Coder +unarchiveObjectWithData:data]): Likewise. + ([Coder +unarchiveObjectWithFile:path]): Likewise. + ([Coder -archiverData]): Likewise. + ([Coder -cStream]): New method. + + * checks/Makefile.in (SRCS): Added nsarchiver.m. + + * checks/nsarchiver.m: New file. + + * examples/textcoding.m (main): Use new [Coder -closeCoder] + method. + + * src/StdioStream.m ([StdioStream -isClosed]): Remove bad + implementation; currently not implemented. + + * src/Coder.m ([Coder + -initForWritingToStream:withFormatVersion:cStreamClass: + cStreamFormatVersion:]): New method. + ([Coder -initForWritingToFile:withFormatVersion:cStreamClass: + cStreamFormatVersion:]): New method. + ([Coder -initForWritingToFile:filenamewithCStreamClass:cStreamClass]): + New method. + ([Coder +encodeRootObject:withName:nametoStream:]): New method. + ([Coder +encodeRootObject:withName:nametoFile:filename]): New method. + ([Coder +decodeObjectWithName:namefromStream:]): New method. + ([Coder +decodeObjectWithName:namefromFile:filename]): New method. + * src/objects/Coder.h: Declare new methods. + + * src/CStream.m: Use "..withFormatVersion" instead of + "formatVersion" in several method names. + * src/objects/CStream.h: Declare new method. + + * src/objects/Coding.h (Coding -closeCoder): New protocol method. + (Coding -isClosed): New protocol method. + * src/Coder.m ([Coder -initForReadingFromFile:filename]): New method. + ([Coder -initForWritingToFile:filename]): New method. + ([Coder -closeCoder]): New method. + ([Coder -isClosed]): New method. + + * src/objects/Streaming.h (Streaming -isClosed): New protocol method. + * src/Stream.m ([Stream -flushStream]): Do nothing, instead of + calling -subclassResponsibility. + ([Stream -closeStream]): Likewise. + ([Stream -isClosed]): New method, return NO. + * src/MemoryStream.m ([MemoryStream -flushStream]): Method removed. + * src/StdioStream.m ([StdioStream -isClosed]): New method. + * src/MemoryStream.m ([MemoryStream -closeStream]): New method, + just flush the stream. + +Wed Jan 24 09:02:02 1996 Andrew McCallum + + * src/objects/Streaming.h (Streaming -closeStream): New method; we + must separate the idea of "closing" a stream and "deallocating" a + stream because of delays in deallocation due to -autorelease. + * src/Stream.m ([Stream -closeStream]): New method. + * src/StdioStream.m ([StdioStream -closeStream]): New method. + + * src/CStream.m ([CStream -encodeWithName:valuesOfCTypes:...]): + New method. + ([CStream -decodeWithName:valuesOfCTypes:...]): New method. + * src/objects/CStreaming.h: Declare new methods. + + * src/String.m ([String -initWithCStringNoCopy:freeWhenDone:]): + New method, needed for protocol. + + * src/Stream.m ([Stream -writeFormat:arguments:]): New method. + ([Stream -readFormat:arguments:]): New method. + + * src/Coder.m (SIGNATURE_FORMAT_STRING): New macro. + ([Coder -writeSignature]): Use it. + ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): + Likewise, and receive (char*) instead of (char**). All callers + changed. + + * src/objects/EltNode-m: Include for @"" in + encoding withName:. Use constant string objects instead of C + strings where appropriate. + + * src/Connection.m: Use constant string objects instead of C + strings where appropriate. + + * src/RBTreeNode.m: Include for @"" in + encoding withName:. + * src/DelegatePool.m: Likewise. + * src/BinaryTreeNode.m: Likewise. + +Tue Jan 23 11:54:54 1996 Andrew McCallum + + * Set.m, SocketPort.m, TreeNode.m, EltNodeCollector.m, + LinkedListNode.m, MutableCString.m, NSGCString.m, Proxy.m, + RBTreeNode.m, BinaryCoder.m, BinaryTreeNode.m, Collection.m, + Connection.m, DelegatePool.m: + Use string objects instead of C strings + for name arguments to encoding methods. + + * src/.cvsignore: Add errs*. + + * examples/textcoding.m: Update for new Coder organization. + + * src/objects/Streaming.h (Streaming -writeFormat:arguments:): New + method. + (Streaming -readFormat:arguments:): New method. + + * src/objects/Coding.h: Don't include + (Coding -encodeValueOfCType:at:withName:): New method. + (Coding -decodeValueOfCType:at:withName:): New method. + * src/objects/Coder.h: Declare new methods. + + * src/objects/CStreaming.h: New file. + * src/CStream.m: New file. + * src/objects/CStream.h: New file. + * src/TextCStream.m: New file. + * src/objects/TextCStream.h: New file. + * src/BinaryCStream.m: New file. + * src/objects/BinaryCStream.h: New file. + * src/Makefile.in (GNU_MFILES): Add BinaryCStream.m, TextCStream.m + and CStream.m. + (GNU_HEADERS): Add objects/BinaryCStream.h, objects/TextCStream.h + and objects/CStream.h. + + * src/NSString.m (handle_printf_atsign): Fix type for va_arg (). + + * src/ConnectedCoder.m ([ConnectedCoder + +newEncodingWithConnection:sequenceNumber:identifier:]): Use new + Coder initializer. + ([ConnectedCoder +newDecodingWithConnection:timeout:]): Likewise. + ([ConnectedCoder -dismiss]): Fix typo: use cstream ivar. + + * src/Coder.m ([Coder -writeSignature]): Write directly to stream + ivar. + ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): + Likewise. + ([Coder -initForReadingFromStream:s]): New method. + ([Coder -initForWritingToStream:s]): New method. + ([Coder +coderWritingToStream:]): New method. + ([Coder +coderWritingToFile:]): New method. + + * src/KeyedCollection.m: Use and protocols + in argument types. + * src/IndexedCollection.m: Likewise. + * src/BinaryTree.m: Likewise. + * src/Array.m: Likewise. + + * src/Makefile.in (GNU_MFILES): Remove BinaryCoder.m. and + TextCoder.m + (GNU_HEADERS): Remove objects/BinaryCoder.h and objects/TextCoder.h. + + * src/Proxy.m, src/RBTreeNode.m, src/Set.m, src/SocketPort.m, + src/TextCoder.m, src/argframe.m, src/IndexedCollection.m, + src/KeyedCollection.m, src/MutableCString.m, src/NSGCString.m, + src/NSGCoder.m, src/NXConnection.m, src/Collection.m, + src/ConnectedCoder.m, src/Connection.m, src/DelegatePool.m, + src/EltNodeCollector.m, src/Array.m, src/BinaryCoder.m: + Use new-style method name "..ValueOfObjCType" + and "..ValueOfCType", instead of "..ValueOfType" and + "..ValueOfSimpleType". + + * src/NSString.m: This new code, #if + HAVE_REGISTER_PRINTF_FUNCTION, a function defined by GNU libc. + (handle_printf_atsign): New function to handle %@ in printf strings. + ([NSString +initialize]): Register the new printf-handler function. + * configure.in (register_printf_function): Check for this + function. + + * src/objects/Coding.h: Use new-style method name + "..ValueOfObjCType", instead of "..ValueOfType". Use (id + ) instead of (char *) where appropriate. + (Encoding -initEncodingOnStream:): Method removed. + (Encoding -initEncoding): Method removed. + (Encoding -encodeValueOfSimpleType:at:withName:): Method removed. + (Decoding -initDecodingOnStream:): Method removed. + (Decoding -initDecoding): Method removed. + (Decoding -decodeValueOfSimpleType:at:withName:): Method removed. + (CommonCoding +defaultFormatVersion): New method. + + * src/Stream.m ([Stream -rewindStream]): Move method lower in + file, to avoid undeclared error. (This is related to creation of + SeekableStream protocol.) + + * src/objects/Streaming.h (Streaming): Include NSObject protocol + in Streaming protocol, so we can use NSObject methods on arguments + passed with type. + + * src/StdioStream.m: Use (id ) instead of (char *) where + appropriate. + ([StdioStream +streamWithFilename:fmode:]): New method. + * src/objects/StdioStream.h: Declare new methods. + + * src/NSCoder.m ([NSCoder -encodeObject:]): Base on + -encodeValueOfObjCType, not -encodeValuesOfObjCTypes. + + * src/Coder.m: Now uses a CStream instance for low-level encoding + of variables of C type. Include many more files. Use new-style + method name "..ValueOfObjCType", instead of "..ValueOfType". Use + (id ) instead of (char *) where appropriate. + (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. + (default_stream_class): Renamed from defaultStreamClass; + (default_cstream_class): New static variable. + ([Coder +initialize]): Initialize above two variables. + ([Coder +setDefaultCStreamClass:]): New method. + ([Coder +defaultCStreamClass]): New method. + ([Coder +setDefaultStreamClass:]): New method. + ([Coder +defaultStreamClass]): New method. + ([Coder +defaultFormatVersion]): New method. + ([Coder -writeSignature]): New method, replaces -encodeSignature. + ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): + New method, replaces decodeSignature. + ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, + replaces _initWithStream:isDecoding. + ([Coder +coderReadingFromStream:stream]): New method. + ([Coder +coderReadingFromFile:filename]): New method. + ([Coder -initForReadingFromStream:formatVersion:]): New method. + ([Coder -initForWritingToStream:sformatVersion:version]): New method. + ([Coder +decodeObjectFromStream:]): New method. + ([Coder +decodeObjectFromFile:filename]): New method. + ([Coder -initEncodingOnStream:]): Method removed. + ([Coder -initDecodingOnStream:]): Method removed. + ([Coder -initEncoding:]): Method removed. + ([Coder -initDecoding:]): Method removed. + ([Coder -encodeBytes:count:withName:]): Now unimplemented. + ([Coder -decodeBytes:count:withName:name]): Likewise. + ([Coder -decodeValueOfCType:at:withName:]): New method. + ([Coder -encodeValueOfCType:at:withName:]): New method. + ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles + arrays and structs; those are now handled in a CStream method. + ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. + ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. + ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. + ([Coder -encodeIndent]): Call cstream to handle this, instead of doing + nothing. + ([Coder -encodeUnindent]): Likewise. + ([Coder -decodeIndent]): Likewise. + ([Coder -decodeUnindent]): Likewise. + ([Coder -encodeName:]): Likewise. + ([Coder -decodeName:]): Likewise. + ([Coder -formatVersion]): Method renamed from coderFormatVersion. + + * src/objects/Coder.h: Declare new methods. + (cstream): New ivar, replacing "stream". + (classname_map): New ivar, but not yet used properly. + (concrete_format_version): ivar removed, this is now in the CStream + classes. + + * src/CString.m: Use new-style method name "..ValueOfObjCType", + instead of "..ValueOfType". + ([CString -initWithCStringNoCopy:freeWhenDone:]): Cast away const + type. + + * src/Stream.m ([Stream -writeLine:]): Replace with more efficient + implementation from MemoryStream class. + * src/MemoryStream.m: Use (id ) instead of (char *) where + appropriate. + ([MemoryStream -writeLine:]): Remove method. + + * src/objects/Collection.h: Don't include ; this + helps prevent circular dependances in include files. + + * src/NSGCString.m ([NSGCString -cStringNoCopy]): New method. + * src/CString.m ([CString -cStringNoCopy]): New method. + * src/String.m: Use -subclassReponsibility instead of + -notImplemented in proper places. + ([String -cStringNoCopy]): New method. + * src/objects/String.h: Declare new method. + + * src/Stream.m: Use string object types instead of C-string types + in method arguments. Use -subclassReponsibility instead of + -notImplemented. + * src/objects/Streaming.h (Streaming): Use string object types + instead of C-string types in method arguments. + + * src/CString.m ([CString -initWithCStringNoCopy:freeWhenDone:]): + New method. + * src/String.m ([String +stringWithCStringNoCopy:freeWhenDone:f]): + New method. + ([String +stringWithCStringNoCopy:]): New method. + * src/objects/String.h: Declare new methods. + + * src/Coder.m: Don't use ivar interconnected_stack_height. + (DOING_ROOT_OBJECT): New macro, defined based on + interconnected_stack_height. + * src/objects/Coder.h (Coder): Get rid of unnecessary ivar + doing_root_object; we can get the same information from ivar + interconnected_stack_height. + +Mon Jan 22 21:32:25 1996 Andrew McCallum + + * src/NSCoder.m ([NSCoder -encodeObject:]): Implemented. + ([NSCoder -decodeObject]): Implemented. + ([NSCoder -encodeValueOfObjCType:at:]): Use -subclassResponsibility, + not -notImplemented. + ([NSCoder -decodeValueOfObjCType:at:]): Likewise. + ([NSCoder -encodeDataObject:]): Likewise. + ([NSCoder -decodeDataObject]): Likewise. + ([NSCoder -versionForClassName:]): Likewise. + +Mon Jan 22 11:08:55 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.19. + +Sat Jan 20 14:27:57 1996 Andrew McCallum + + * doc/install.texi: Mention GNU/Linux and the need for -lieee. + + * aclocal.m4: Don't have the initializer-loading test program + print anything. + (OBJC_SYS_DYNAMIC_FLAGS): Use '' not "" to quote $(CC). + +Fri Jan 19 12:40:49 1996 Adam Fedor + + * src/NSBundle.m (objc_executable_location): New + function. ([NSBundle +mainBundle]): Get path from NSProcessInfo. + + * src/NSProcessInfo.m: Remove NSArgv + definition. (_gnu_process_args): Remove NSArgv code. + + * src/objc-load.c: Remove NSArgv + declaration. (objc_executable_location): Removed + function. (objc_initialize_loading): Make path const char*. + * src/Foundation/objc-load.h: Remove objc_executable_location + function declaration. + + * src/objc/HashTable.h: Include stdobjects.h header for + LibObjectsMain definition. + +Fri Jan 19 10:43:32 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.18. + + * configure.in (OBJS_INSTALL): Fix typo NeXT_OBJS -> NEXTSTEP_OBJS + in when running under NeXTSTEP, but not using NeXT runtime. + (Reported by Satoshi Adachi .) + + * src/NSString.m ([NSString -initWithCString:length:]): Handle + case of NULL cString. + ([NSString -initWithCString:]): Likewise. + (Reported by Adam Fedor .) + + * src/find_exec.c (objc_find_executable): Make NSBundle work even + when CWD isn't in PATH. (Fix provided by Matthias Klose + .) + + * src/Makefile.in (libobjects.so.$OBJECTS_VERSION)): Re-add the + -Wl,-soname,libobjects.so.$(OBJECTS_MAJOR_VERSION) argument. + Create a soft link named libobjects.so. + (install): Install a soft link named libobjects.so. + (Fixes sent by Jeremy Bettis .) + + * Makefile.in: Remove -$(MAKEFLAGS) as argument to recursive calls + of $(MAKE); this happens automatically. (Reported by Niels Mvller + .) + +Tue Jan 16 19:33:49 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.17. + +Tue Jan 16 13:57:51 1996 Adam Fedor + + * aclocal.m4 (OBJC_SYS_AUTOLOAD): Define CON_AUTOLOAD if + /usr/include/elf.h exists. Use yes/no rather than 1/0. + + * src/objc-load.c: Update copyright. + (objc_load_module): Use CON_AUTOLOAD instead of SYS_AUTOLOAD. + +Tue Jan 16 12:24:59 1996 Andrew McCallum + + * src/Makefile.in (HEADERS_INSTALL): Remove objects/config.h. + (install): Look for libobjects.so file, not just for configure + variable. Remove unwanted `;'. Install objects/config.h from + build directory. (Fixes provided by Matthias Klose + ). + +Mon Jan 15 17:07:38 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.16. + (OBJECTS_GCC_VERSION): Updated from 2.7.0 to 2.7.2. + (OBJECTS_FTP_MACHINE): Changed to prep. + (OBJECTS_FTP_DIRECTORY): Changed to pub/gnu. + + * NSCharacterSets/Makefile.in (install): Prefix data files with + $(srcdir). + (Makefile): New target. + + * src/Makefile.in ($(NSVALUE_MFILES)): Use sed instead of expr to + extract number. + ($(NSNUMBER_MFILES)): Likewise. + + * checks/Makefile.in (all): Remove target `bundles' for now; + linking them doesn't always work. If people want to test bundles, + they can type `make bundles'. + + * examples/Makefile.in (ALL_CPPFLAGS): -I../src, not -I. + (Makefile): Prefix dependancy with $(srcdir). + * checks/Makefile.in (ALL_CPPFLAGS): -I../src, not -I. + (Makefile): Prefix dependancy with $(srcdir). + + * Makefile.in (dist): Add -9 to gzip args. + (snapshot): Likewise. + + * doc/install.texi: Remove --enable-shared from first example of + installation commands; many people were just copying these + commands, ignorant of whether or not their system supported + dynamically-linked shared libraries. + + * checks/Makefile.in: Remove test09; it doesn't work, but it + doesn't matter. + (SRCS): Remove test09.m. + (test09): Remove target. + + * aclocal.m4: Test whether loading of contructor functions works + by actually compiling and running a program, not by looking for + /usr/include/elf.h. + +Tue Jan 16 00:31:19 1996 Gregor Hoffleit + + * src/NSDate.m ([NSDate -description]): replace strftime() with + sprintf() equivalent for NEXTSTEP. + +Mon Jan 15 15:11:18 1996 Adam Fedor + + * aclocal.m4 (OBJC_SYS_DYNAMIC_LINKER): Expand macro correctly in + dld/defs.h check. + +Fri Jan 12 11:38:58 1996 Andrew McCallum + + * examples/Makefile.in (LIBS): Added -lm. + + * src/NSProcessInfo.m ([NSProcessInfo -globallyUniqueString]): + Don't use the %@ printf format directive, since it isn't + implemented yet; use %s and -cString instead. (Reported by + Gregor Hoffleit .) + + * aclocal.m4 (OBJC_SYS_AUTOLOAD): Don't define SYS_AUTOLOAD #ifdef + mips, gcc doesn't support it, even though elf.h exists. (Perhaps + this should be "sgi" instead of "mips"?) + * src/NSProcessInfo.m: Don't test !(sgi), since SYS_AUTOLOAD is + fixed. + + * src/find_exec.c (objc_find_executable): #ifdef NeXT, use getwd() + instead of getcwd(). + (Reported by Gregor Hoffleit .) + + * src/NSDate.m ([NSDate -description]): Don't use strftime #ifdef + NeXT. (Reported by Gregor Hoffleit + .) + + * src/Makefile.in (objects/stdobjects.h): prepend + objects/stdobjects.h.in with $(srcdir). + + * checks/Makefile.in ($(DYNAMIC_OFILES)): Use $(srcdir). + ($(BUNDLE_NAMEJ)): Likewise. + (Reported by Matthias Klose .) + + * src/Makefile.in (NXStringTable_scan.o): Removed target; let + pattern rule take care of it. + ($(NSVALUE_MFILES)): Use $@ instead of $* in expr argument. + ($(NSNUMBER_MFILES)): Likewise. + (Reported by .) + + * src/NSMethodSignature.m ([NSMethodSignature + +signatureWithObjCTypes:]): Fix typo: change objc_size_of_type to + objc_sizeof_type. (Reported by Gregor Hoffleit + .) + + * src/Makefile.in (libobjects.so.$(OBJECTS_VERSION)): Removed + "-Wl,-soname,libobjects.so.$(OBJECTS_VERSION)"; gcc does this + automatically. (Reported by Matthias Klose + .) + + * src/NSProcessInfo.m: Include for MAXHOSTNAMELEN. + (Reported by Matthias Klose .) + + * src/Makefile.in (ALL_INCLUDE_FLAGS): Add -I. for + objects/config.h. (Reported by Matthias Klose + ) + * checks/Makefile.in (ALL_CPPFLAGS): Likewise. + * examples/Makefile.in (ALL_CPPFLAGS): Likewise. + +Wed Jan 10 10:51:26 1996 Andrew McCallum + + * src/NSProcessInfo.m: Remove #if NeXT and alternate #include's. + * src/Foundation/NSProcessInfo.h: Likewise. + (These caused problems reported by John Boller .) + + * src/Invocation.m ([MethodInvocation -initWithSelector:arguments:]): + New method, not implemented. + +Tue Jan 9 14:07:36 1996 Andrew McCallum + + * src/Storage.m ([Storage -insertElement:at:]): Increment + numElements. (Reported by Revuz Dominique ). + + * Makefile.in (RCS_FILES): Remove out-of-date MACHINES and CREDITS + files. + +Mon Jan 8 11:05:52 1996 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.15. + + * src/NSProcessInfo.m (_GNU_MAX_HOST_NAMELEN): Macro removed; + using MAXHOSTNAMELEN from instead. All users + changed. + (_gnu_process_args): Malloc and fill NSArgv; assignment of char** + from *char[] isn't right. + + * src/NSGCString.m ([NSGCString -emptyCopy]): Use [super + emptyCopy], not [super allocCopy]. + + * src/String.m ([String -emptyCopy]): Method removed; super class + implementation is fine. + ([String -initWithCString:range:]): Use -subclassResponsibility:, not + -notImplemented:. + ([String -empty]): Likewise. + + * configure.in: Remove double-quotes in help string of + --enable-shared handling. + +Sun Jan 7 16:05:04 1996 Andrew McCallum + + * src/Makefile.in: Changed rules for compiling concrete NSValue + and NSNumber classes; the old version no longer worked with shared + library compilation, and didn't use the common pattern rule for + making the object file. + (NSNUMBER_CLUSTER, NSVALUE_CLUSTER): Variables removed. + (NSVALUE_MFILES): New variable, replacing NSVALUE_OFILES. + (NSNUMBER_MFILES): New variable, replacing NSNUMBER_OFILES. + (GNUSTEP_OBJS): Use new vars. + +Fri Jan 5 17:01:35 1996 Andrew McCallum + + Clean up shared library building. Building from another + directory now works. + * configure.in: Add $srcdir where necessary. + (LIBOBJECTS_A_OR_SO): Variable removed. + (LIBOBJECTS_SO): Defined according to --enabled-shared flag. + * src/Makefile.in: (Makeconf): Include it after system + configuration section, and from $(srcdir). + (SHAREDLIB_CFLAGS, SHAREDLIB_ARFLAGS, USING_SHAREDLIB_CFLAGS, + USING_SHAREDLIB_ARFLAGS): Variables removed. + (ALL_CFLAGS, ALL_OBJCFLAGS): Don't use removed vars. + (%_pic.o: %.m): New pattern rule. + (%_pic.o: %.c): New pattern rule. + (all): Always build libobjects.a, optionally build .so version. + (libobjects.so): Use -shared. Link to ..$(OBJECTS_MAJOR_VERSION). + (install): Always install libobjects, optionally install .so version. + Install the headers from the $(srcdir). + (NSVALUE_OFILES, NSNUMBER_OFILES, NXStringTable_scan.c, + dynamic-load.h): Use $(srcdir) properly for these targets. + * checks/Makefile.in: Executables now depend on libobjects.a, not + @LIBOBJECTS_A_OR_SO@. + (LIBS): Don't look in $(srcdir) for library. + (copy-dist): Don't use $(srcdir). + (Makefile): Likewise. + * examples/Makefile.in: Executables now depend on libobjects.a, + not @LIBOBJECTS_A_OR_SO@. + (LIBS): Don't look in $(srcdir) for library. + (OBJECTS_NEXT_INCLUDES): Don't look in non-existant next-includes dir. + (copy-dist): Don't use $(srcdir). + (Makefile): Likewise. + * doc/Makefile.in (TEXT_FILES): New variable. + (info): Use it. + (MAKEINFO_FLAGS): New variable. Use it in TEXT_FILES targets. + (DIST_FILES): Remove version.texi. + (clean): rm version.texi and $(TEXT_FILES). + + * src/NSProcessInfo.m (_gnu_process_args): Use "char **argv" + instead of "char *argv[]". Remove cast in assignment of NSArgv. + +Thu Jan 4 23:12:11 1996 Andrew McCallum + + * src/Set.m ([Set -removeElement:ifAbsentCall:]): Fix typo; method + renamed from -removeElement:ifAbsent:. (Reported by Albert Mietus + .) + +Wed Dec 20 11:30:37 1995 Adam Fedor + + * src/NSGeometry.m (NSMouseInRect): Handle flipped y-axis. + + * src/Foundation/NSException.h: Include NSString interface. + +Fri Nov 24 15:09:22 1995 Andrew McCallum + + * src/NSArray.m ([NSMutableArray -addObject:]): Use + -subclassResponsibility:, not -notImplemented:. + ([NSMutableArray -replaceObjectAtIndex:withObject:]): Likewise. + ([NSMutableArray -insertObject:atIndex:]): Likewise. + ([NSMutableArray -removeObjectAtIndex:]): Likewise. + ([NSMutableArray -removeAllObjects]): Likewise. + +Sun Nov 19 15:29:41 1995 Andrew McCallum + + * src/NSString.m ([NSString +allocWithZone:]): New method. + ([NSString +stringWithCString:byteString]): Use it. + ([NSString +stringWithCString:length:]): Likewise. + ([NSString +stringWithFormat:]): Likewise. + ([NSString +stringWithFormat:arguments:]): Likewise. + ([NSMutableString +allocWithZone:]): New method. + ([NSMutableString +stringWithCapacity:]): Use it. + ([NSMutableString +stringWithCString:length:]): Likewise. + +Tue Nov 14 11:39:41 1995 Andrew McCallum + + Some improvement to shared lib support, but since I can't test it, + I still don't know if it works. + + * src/Makefile.in (CFLAGS): Added -O. + (SHAREDLIB_CFLAGS,SHAREDLIB_ARFLAGS): Set values here, not in + configure.in. + (USING_SHAREDLIB_CFLAGS,USING_SHAREDLIB_ARFLAGS): New vars, set by + configure. + (ALL_CFLAGS, ALL_OBJCFLAGS): Use them. + (libobjects.so.$(OBJECTS_VERSION): New target, replacing + libobjects.so. Use version numbers. + (install): Try to do the right thing with shared/non-shared libs. + * configure.in: Update shared library variable names. + + * checks/Makefile.in: Use configure var, not libobjects.a. + Include ../Version. + + * examples/Makefile.in: Use configure var, not non-existant + Makefile var. Include ../Version. + +Mon Nov 6 12:24:16 1995 Andrew McCallum + + Shared library support; I'm not sure it works, though. + + * configure.in: Look for --enabled-shared. + (LIBOBJECTS_A_OR_SO, SHAREDLIB_CFLAGS, SHAREDLIB_ARFLAGS): New + substitutions. + * src/Makefile.in (SHAREDLIB_CFLAGS): New variable. + (ALL_CFLAGS): Use it. + (ALL_OBJCFLAGS): Likewise. + (SHAREDLIB_ARFLAGS): New variable. + (libobjects.so): Use it; new target. + (all): Depend on configure variable. + (install): Changes to install shared library. + * examples/Makefile.in: Look for LIBOBJECTS_A_OR_SO, not + libobjects.a. + + * src/NSProcessInfo.m (NSArgv): New global. + (_gnu_process_args): Set it. + + * NSMethodSignature.m: New file; not finished, though. + * src/Makefile.in (GNUSTEP_MFILES): Added NSMethodSignature.m. + + * src/Foundation/NSMethodSignature.h (NSArgumentInfo): Declared. + ([NSMethodSignature -argumentInfoAtIndex:]): Uncommented. + + * doc/install.texi: Warn them that compiling in a different + directory than the source will not currently work. + +Fri Nov 3 11:12:11 1995 Andrew McCallum + + * src/NSDictionary.m ([NSDictionary +dictionary]): Use +alloc, not + _concreteClass. This makes [NSMutableDictionary +dictionary] and + friends do the right thing. + ([NSDictionary +dictionaryWithObjects:forKeys:count:]): Likewise. + ([NSMutableDictionary +dictionaryWithCapacity:]): Likewise. + (Problem reported by Kim Shrier .) + + * src/NSSet.m ([NSSet +set]): Use +alloc, not _concreteClass. + This makes [NSMutableSet +set] and friends do the right thing. + ([NSSet +setWithObjects:count:]): Likewise. + ([NSSet +setWithArray:]): Likewise. + ([NSSet +setWithObject:]): Likewise. + ([NSSet +setWithObjects:]): Likewise. + ([NSMutableSet +setWithCapacity:]): Likewise. + + * src/NSArray.m ([NSArray +array]): Use +alloc, not + _concreteClass. This makes [NSMutableArray +array] and friends do + the right thing. + ([NSArray +arrayWithObjects:]): Likewise. + ([NSMutableArray +arrayWithCapacity:]): Likewise. + ([NSArray +arrayWithObject:]): Likewise; and fix condition on + exception. + + * src/NSProcessInfo.m ([NSProcessInfo -hostName]): Remove + unnecessary inefficiency: use stack to hold temporary string, not + malloc/free; just return the string, not a copy. Conform to GNU + coding standards in use of braces. + ([NSProcessInfo -processName]): Likewise. Just return the string, not + a copy. + ([NSProcessInfo -environment]): Likewise. + ([NSProcessInfo -arguments]): Likewise. + (_gnu_arguments, _gnu_environment): Make them constant classes, not + mutable. + (_gnu_process_args): Alloc _gnu_processName NSString, don't get an + autoreleased string and then retain it. Initialize _gnu_arguments + as a constant NSArray, not NSMutableArray. Initialize + _gnu_environment as a constant NSDictionary, not + NSMutableDictionary. Conform to the GNU coding standards in use + of braces. + + * src/Foundation/NSDictionary.h ([NSDictionary + -initWithObjects:forKeys:]): Declare method. + + This is called dissertation-procrastination. + +Sun Oct 29 19:41:16 1995 Andrew McCallum + + * checks/nsset.m: New file. + * checks/Makefile.in (SRCS): Added nsset.m. + (nsset): New target. + + * src/NSGArray.m ([NSGArray -objectAtIndex:]): Fix condition on + exception. + + * src/objects/NSSet.h: Moved method declarations from NSMutableSet + to NSSet. + + * NSCountedSet.m, NSGCountedSet.m: New files. + * src/objects/NSSet.h: Added NSCountedSet interface. + * src/Foundation/NSSet.h: Likewise. + * src/Foundation/NSGSet.h: Added NSGCountedSet interface. + * src/NSGSet.m: Implemented many methods. + * src/Makefile.in (GNUSTEP_MFILES): Added NSCountedSet.m and + NSGCountedSet.m. + + * src/NSArray.m ([NSArray -objectEnumerator]): Autorelease it. + ([NSArray -reverseObjectEnumerator]): Likewise. + + * src/NSGDictionary.m ([NSGDictionary -keyEnumerator]): + Autorelease it. + ([NSGDictionary -objectEnumerator]): Likewise. + +Wed Oct 25 20:37:15 1995 Andrew McCallum + + * src/NSSet.m, src/Foundation/NSSet.h: New files. + * src/NSGSet.m, src/Foundation/NSGSet.h: New files. + * src/Makefile.in (GNU_HEADERS): Added objects/NSSet.h. + (GNUSTEP_MFILES): Added NSGSet.m and NSSet.m. + (GNUSTEP_HEADERS): Added Foundation/NSGSet.h and Foundation/NSSet.h. + + * src/Foundation/NSDictionary.h: Include objects/stdobjects.h, not + objects/Dictionary.h. + * src/Foundation/NSGDictionary.h: Include objects/Dictionary.h. + + * src/collhash.c (coll_hash_next): Set STATE to 0 before returning + when the list is exhausted. This interacts with [Dictionary + -freeEnumState:] and [Set -freeEnumState]. This will all be + cleaned up when we start using Albin Jones' tables. (This bug + found by Allan Clearwaters.) + + * src/NSGDictionary.m ([NSGDictionaryKeyEnumerator + -initWithDictionary:]): Retain dictionary after it is initialized. + + * src/NSString.m ([NSString -cString]): Use + -subclassResponsibility: instead of -notImplemented: + ([NSString -cStringLength]): Likewise. + +Sun Oct 22 13:53:39 1995 Andrew McCallum + + Start adding proper NSException's; not done yet. + * src/NSGArray.m ([NSGArray -initWithObjects:count:]): Raise + exception for nil objects. + ([NSGArray -objectAtIndex:]): Raise exception when index too high. + * src/NSArray.m ([NSArray +arrayWithObject:]): Raise + exception on nil argument. + +Wed Oct 18 09:48:24 1995 Adam Fedor + + * NSBundle.REAMDE: Rewrote documentation. + + * examples/Makefile.example.in: New file. + * examples/configure.example.in: Likewise. + * examples/Makefile.in: Add new files to RCS_FILES. + + * src/Foundation/NSGCString.h: New _free_contents ivar. + * src/Foundation/String.h: Likewise. + * src/CString.m ([CString -initWithCString:range:]): Set + _free_contents to YES. ([CString -initWithCoder:]): Likewise. + ([CString -dealloc]): Free contents if needed. + * src/MutableCString.m ([MutableCString -initWithCapacity:]): Set + _free_contents to YES. ([MutableCString -initWithCoder:]): + Likewise. ([MutableCString -dealloc]): Free contents if needed. + * src/NSGCString ([NSGCString + -initWithCStringNoCopy:length:freeWhenDone:]): set _free_contents. + ([NSGCString -initWithCoder:]): Set _free_contents to YES; + ([NSGCString -dealloc]): Free contents if needed. + ([NSGMutableCString -initWithCapacity:]): Set _free_contents to + YES. ([NSGMutableCString -initWithCoder:]): Likewise. + + * src/NSString.m ([NSString -initWithCString:length:]): Set free + string. ([NSString -compare:options:]): Range should be + maximum of both strings. + + * src/NSGArray.m ([NSGArray -replaceObjectAtIndex:withObject:]): + Implement. + + * src/NSGeometry.m (NSMouseInRect): Point should not touch sides. + +Sat Oct 14 14:16:04 1995 Andrew McCallum + + Remove remnants of "stack of dictionaries"; we only need one. + * src/objects/Coder.h (Coder): Renamed ivars from + root_object_tables to root_object_table, from + forward_object_tables to forward_object_table; changed classes + from Stack (of Dictionary's) to Dictionary. + * src/Coder.m ([Coder -doInitOnStream:isDecoding:]): Use new ivar + names. + ([Coder -_coderPushRootObjectTable]): Use new ivar names and don't use + Stack. + ([Coder -_coderPopRootObjectTable]): Likewise. + ([Coder -_coderTopRootObjectTable]): Likewise. + ([Coder -_coderPushForwardObjectTable]): Likewise. + ([Coder -_coderPopForwardObjectTable]): Likewise. + ([Coder -_coderTopForwardObjectTable]): Likewise. + ([Coder -_coderForwardObjectsAtReference:]): Don't access ivar + directly. + ([Coder -_coderPutForwardObjects:atReference:]): Likewise. + ([Coder -finishDecodingInterconnectedObjects]): Use new ivar name. + ([Coder -dealloc]): Likewise. + +Mon Oct 9 10:33:13 1995 Andrew McCallum + + * src/IndexedCollection.m ([IndexedCollection + -shallowCopyInReverseAs:]): Return newColl, not self. + ([IndexedCollection -withElementsInReverseCall:]): Set flag to YES. + ([IndexedCollection -safeWithElementsInReverseCall:]): Likewise. + Reported by MURATA, Shuuichirou . + + * doc/readme.texi (The Class Heirarchy): Fixes from Aleksey + Sudakov . + +Thu Oct 5 11:31:44 1995 Adam Fedor + + * src/objc-malloc.c (objc_malloc): Declare res before any + statements. + (__objc_valloc): Likewise. + (__objc_realloc): Likewise. + (__objc_calloc): Likewise. + +Sat Sep 30 18:00:22 1995 Andrew McCallum + + * src/objc-malloc.c (CHECK_ZERO_SIZE): New macro; for making sure + we don't pass 0 to malloc and its friends. (Needed on DEC Alpha; + problem reported by Adam Fedor.) + (__objc_malloc): Use it. + (__objc_valloc): Likewise. + (__objc_realloc): Likewise. + (__objc_calloc): Likewise. + +Wed Sep 27 18:45:46 1995 Andrew McCallum + + * Makefile.in (DIST_FILES): Removed DISCUSSION. + + * src/IndexedCollection.m ([IndexedCollection + -getNextElement:withEnumState:]): if isEmpty, return NO. + + * src/NSObject.m ([NSObject +initialize]): Set default + autorelease_class to NSAutoreleasePool. + + * src/NSProcessInfo.m: Don't try to use __attribute__ ((section + ..)) #if (sgi). It doesn't seem to be supported. This probably + means that aclocal.m4 needs to be fixed so that it doesn't define + SYS_AUTOLOAD in this case. No time now. Adam? + + * src/Collection.m: Avoid cache_flush when releasing contents. + (send_release): Remove function. + ([Collection -_releaseContents]): New method. + ([Collection -dealloc]): Use it. + ([Collection -empty]): Likewise. + ([Collection -_safeWithElementsCallNoRetain:]): Use + -getNextElement:withEnumState instead of -withElementsCall: to + avoid cache_flush. + +Thu Sep 21 11:07:38 1995 Adam Fedor + + * src/NSArray.m ([NSArray -indexOfObjectIdenticalTo: + -indexOfObject: -containsObject: -removeObjectIdenticalTo: + -removeObject:]): Use NSNotFound for non-existant objects. + + * src/NSBundle.m ([NSBundle -initWithPath:]): Check if bundle + for path already exists. + + * src/NSGArray.m ([NSGArray -indexOfObject:]): Force message to + go to super rather than behavior class. + + * src/NSGCString.m ([NSGCString -emptyCopy]): start with + allocCopy. + + * NSGData.m ([NSGData -copyWithZone: -mutableCopyWithZone:], + [NSGMutableData -copyWithZone:]): New methods. + +Tue Sep 12 18:33:25 1995 Andrew McCallum + + * Makefile.in (RCS_FILES): Add file aclocal.m4. + +Tue Sep 12 15:30:27 1995 Adam Fedor + + This should make dynamic loading work under Solaris. + + * aclocal.m4: New file. + + * configure.in: Remove dynamic linking checks. Use + OBJC_SYS_DYNAMIC_FLAGS macro from aclocal.m4. + + * src/NSBundle.m: Make sure index is defined. + + * src/NSProcessInfo.m: Check ifdef SYS_AUTOLOAD as well as __ELF__ + * src/objc-load.c: Likewise. + * src/objects/LibobjectsMain.h: Likewise. + +Sun Sep 10 18:17:56 1995 Andrew McCallum + + * src/TextCoder.m ([TextCoder + -decodeValueOfSimpleType:at:withName:]): Assert the data pointer. + + * src/Coder.m ([Coder -doInitOnStream:isDecoding:]): Temporarily + change in_progress_table from a Set to an Array. I need to fix + some problems with Set. + ([Coder -startEncodingInterconnectedObjects]): Deal with + interconnected_stack_height. + ([Coder -finishEncodingInterconnectedObjects]): Likewise. + ([Coder -startDecodingInterconnectedObjects]): Likewise. + ([Coder -finishDecodingInterconnectedObjects]): Likewise. + ([Coder -encodeRootObject:withName:]): Fix bug, whereby we weren't + giving what decodeObjectAt:withName: expected. + ([Coder -encodeArrayOfType:at:count:withName:]): Don't encode the + array count. + ([Coder -decodeArrayOfType:at:count:withName:]): Don't expect the + array count. Change type on 3rd argument. + * src/objects/Coder.h (interconnected_stack_height): New ivar for + Coder. + + * src/objects/Coding.h ([Coding + -decodeArrayOfType:at:count:withName:]): Change the 3rd argument + type; pass the count directly, not as a pointer. The encoding and + decoding of array's no longer records the array count; if + necessary, you must do that yourself ahead of time. + +Fri Sep 8 18:30:54 1995 Andrew McCallum + + * src/objects/Coder.h (in_progress_table): New ivar in Coder. + * src/Coder.m ([Coder -doInitOnStream:isDecoding:]): Init + in_progress_table. + ([Coder -dealloc]): Release in_progress_table. + ([Coder -_encodeObject:withName:isBycopy:isForwardReference:]): + If the object is in progress, treat it like a forward reference. + Add the object to the in_progess_table before really encoding the + object; remove it when done. (NOTE, this isn't an excuse not to + set up "encoding interconnected objects" mode; you still must do + this first.) + +Wed Sep 6 09:30:15 1995 Andrew McCallum + + * Makefile.in (snapshot): Remove the snapshot name so we don't get + nested snapshots on failure. + +Wed Aug 30 09:33:07 1995 Adam Fedor + + * src/NSCTemplateValue.m ([NSCTemplateValue -encodeWithCoder:]): + Code type as a char_ptr. ([NSCTemplateValue -initWithCoder:]): + Leave decoding to NSValueDecoder class. + * src/NSConcreteNumber.m: Likewise. + * src/NSConcreteValue.m: Likewise. + + * src/NSNumber.m: Clarify error message for abstract methods + with "subclassResponsibility". + + * src/NSValue.m: New NSValueDecoder class. Clarify error + message for abstract methods. + + * /src/TextCoder.m ([TextCoder encodeValueOfSimpleType:at:withName:]): + Write reals using "%g". + ([TextCoder decodeValueOfSimpleType:at:withName:]): Decode + double as "%lf". + +Mon Aug 28 16:27:03 1995 Andrew McCallum + + * src/Collection.m ([Collection -empty]): Check if already empty. + This avoids a previous malloc(0). + +Sat Aug 26 13:56:40 CDT 1995 Jeremy Bettis + + * src/NSProcessInfo.m: Added Linux/ELF support. Linux calls the + __libc_subinit functions before the global constructors, therefore + the subinit functions must be just vanilla C. + +Sat Aug 26 12:36:37 1995 Andrew McCallum + + * Makefile.in (snapshot): Put README.first in the snapshot + distribution. + * README.first: New file. + +Thu Aug 24 12:32:54 1995 Andrew McCallum + + * src/Makefile.in (GNUSTEP_MFILES): Added NSObjCRuntime.m. + * src/NSObjCRuntime.m: New file. + (NSStringFromSelector, NSSelectorFromString, NSClassFromString, + NSStringFromClass): New functions. + + * src/NSObject.m: Include + ([NSObject -description]): Implemented. + ([NSObject +description]): Implemented. + + * src/Makefile.in (FILE_AUTHORS): Added Peter Burka. + + * volunteers: No longer a soft link to the http file; now it is a + text file giving the http address and explaining task coordination. + + * Makefile.in (snap): New target. + (snapshot): New target. + (dist): Use new target snap. + +Wed Aug 23 10:39:21 1995 Andrew McCallum + + * src/NSTimeZone.m ([NSTimeZone -encodeWithCoder:]): Avoid warning + by removing type from argument. + ([NSTimeZone -initWithCoder:]): Likewise. + + * Makefile.in (DIST_FILES): Add file README.foundation. + + * src/String.m: Fix bug by which [NSString mutableCopy] returned a + String, not NSString. + ([String -copyWithZone:]): Renamed from -copy. + ([String -mutableCopyWithZone:]): Renamed from -mutableCopy. + + * src/behavior.c: Added comment about superclass methods being + overriden. + + * Makeconf (install, uninstall): New targets. + + * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Removed + question comment. + +Thu Aug 17 17:41:05 1995 Adam Fedor + + * src/NSData.m ([NSData +allocWithZone:]): New method. + ([NSMutableData +allocWithZone:]): Likewise. + ([NSData +data, +dataWithBytes:length:, + +dataWithBytesNoCopy:length:, +dataWithContentsOfFile:, + +dataWithContentsOfMappedFile:]): Allocate using designated + allocator. ([NSMutableData +dataWithCapacity:, + +dataWithLength:]): Likewise. + +Wed Aug 17 19:54:17 1995 Peter Burka + + * src/NSZone.c: malloc.h isn't included on NeXTStep + * src/Foundation/NSZone.h: use NeXT's zones only if we're using + their runtime, too + + * src/Foundation/NSDate.h (NSTimeZone, NSTimeZoneDetail): + interfaces declared + + * src/Makefile.in (GNUSTEP_MFILES): Added NSTimeZone.m. + * src/NSTimeZone.m: New file. + * src/NSTimeZone.m: (NSTimeZone, NSConcreteTimeZone, + NSTimeZoneDetail, NSConcreteTimeZoneDetail): implementations + defined + * src/Foundation/NSDate.h: Added declaration of NSTimeZone. + +Wed Aug 16 11:58:24 1995 Andrew McCallum + + * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.14. + + * checks/Makefile.in (nsprocessinfo): New target. + + * src/objects/LibobjectsMain.h: Comment out args to LibobjectsMain + so we don't get errors from people's "int main ()". + + * admin/Makefile.in (ADMIN_FILES): Added tasks. + (tasks): New target. + * doc/Makefile.in (copy-dist): Remove linking of 'tasks' to admin. + + * src/NSProcessInfo.m (_GNU_MISSING_MAIN_FUNCTION_CALL): Added + Tuparev's email address. + + * admin/Makefile.in (copy-dist): Use cp instead of ln. (Some of + these files are symbolic links themselves, and tar gets confused). + + * src/Makefile.in (FILE_AUTHORS): Added "Georg Tuparev". + + * Makefile.in (DIST_FILES): Remove GNUStep-volunteers. It's now + in admin/volunteers. + + * checks/nsprocessinfo.m: Fix typo in includes. + (main): Fix warnings in while test. + Add newlines to end of printf's. + + * src/NSProcessInfo.m: Fix indentation. + + * src/NSProcessInfo.m: Use ELF _libc_subinit for initialization + instead of LibobjectsMain. + * src/objects/LibobjectsMain.h: Only redefine main if we don't + have __ELF__. + + * src/objects/stdobjects.h.in: Include + + * src/Makefile.in (GNUSTEP_MFILES): Added NSProcessInfo.m. + (GNUSTEP_HEADERS): Added Foundation/NSProcessInfo.h and + LibobjectsMain.h. + * checks/Makefile.in (SRCS): Added nsprocessinfo.m. + + * src/NSProcessInfo.m, src/Foundation/NSProcessInfo.h, + src/objects/LibobjectsMain.h, checks/nsprocessinfo.m: New files + from Georg Tuparev + +Wed Aug 9 11:27:42 1995 Andrew McCallum + + * src/NSString.m: Replaced "notImplemented" with + "subclassResponsibilty" where appropriate. + + * admin/Makefile.in (RCS_FILES): Renamed Makefile to Makefile.in. + (Makefile, ../config.status): New targets. + + * admin/Makefile.in: Renamed from Makefile. + (srcdir, VPATH): new vars. + * configure.in (AC_OUTPUT): Added admin/Makefile. + + * src/NSString.m: Rename NSCString to NSGCString. + ([NXConstantString -release]): Fix return type and return. + ([NSString +_setConcreteClass:]): New method. + ([NSString +_setConcreteCClass:]): New method. + ([NSString +_setMutableConcreteClass:]): New method. + ([NSString +_setMutableConcreteCClass:]): New method. + ([NSString +_concreteClass]): New method. + ([NSString +_concreteCClass]): New method. + ([NSString +_mutableConcreteClass]): New method. + ([NSString +_mutableConcreteCClass]): New method. + ([NSString +initialize]): Initialize new statics that hold concrete + classes. + ([NSString +stringWithCString:byteString]): Use concrete class method. + ([NSString +stringWithCString:length:]): Likewise. + ([NSString +stringWithFormat:]): Likewise. + ([NSString +stringWithFormat:arguments:]): Likewise. + ([NSString -mutableCopyWithZone:]): Likewise. + ([NSMutableString +stringWithCapacity:]): Likewise. + ([NSMutableString +stringWithCString:length:]): Likewise. + + * src/Makefile.in: Rename NSCString to NSGCString. + * src/Foundation/NSString.h: Likewise. + * src/Foundation/NSGCString.h: Likewise. + * src/NSGCString.m, src/Foundation/NSGCString.h: Likewise. + * src/NSGCString.m: Likewise. + + * admin/Makefile: New file. + * Makefile.in (SUBDIRS): Added admin. + + * doc/Makefile.in (TOP_DOC_FILES): Remove TODO. + (DIST_FILES): Add TODO. + (copy-dist): Link TODO to ../snap/admin/tasks. + +Tue Aug 8 11:32:13 1995 Andrew McCallum + + * src/NSDate.m ([NSDate -copyWithZone:]): New method. + ([NSDate -descriptionWithCalendarFormat:timeZone:]): Uncommented. + ([NSDate -dateWithCalendarFormat:timeZone:]): Uncommented. + + * src/NSAutoreleasePool.m ([NSAutoreleasePool -dealloc]): Use + object_get_class() instead of ->isa. + + * src/Makefile.in (GNUSTEP_HEADERS): Added Foundation/NSDate.h. + (GNUSTEP_MFILES): Added NSDate.m. + +Fri Aug 4 13:39:05 1995 Adam Fedor + + * src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]): + Remove double_release checking. Increment released_count after + setting released array. + ([NSAutoreleasePool -dealloc]): Catch release errors. + ([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method. + + * src/NSObject.m ([NSObject -autorelease], [NSObject -release]): + Add double_release checking. + ([NSObject +enableDoubleReleaseCheck:]): New method. + + * src/Foundation/NSAutoreleasePool.h: Remove + +enableDoubleReleaseCheck:, add +autoreleaseCountForObject:. + + * src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:. + + * src/Foundation/objc-load.h: Include objc-api file. + +Fri Aug 4 11:08:05 1995 Andrew McCallum + + * src/MemoryStream.m (debug_memory_stream): Turn debugging off by + default. + + * src/Makefile.in (install): Remove README links before relinking. + + * src/mframe.m (make_method_call) [__mips__]: Add 4 to offset for + float retframe. Yipes, this may be needed for other architectures + too. + + * src/Makefile.in (GNUSTEP_HEADERS): Removed Foundation/NSUser.h. + (GNUSTEP_CFILES): Removed NSUser.c. + +Thu Aug 3 15:48:21 1995 Andrew McCallum + + * src/mframe.m (make_method_call): Added comment about looking + into a problem with returning floats. I need to get back to this + later. + +Mon Jul 31 10:44:22 1995 Adam Fedor + + * configure.in: Check for HP version of dld library. Add new + DYNAMIC_LDFLAGS if hpux version found. + + * checks/Makefile.in (DYNAMIC_LDFLAGS): New macro. (nsbundle): Use + macro in linking. + + * src/hpux-load.h (__objc_dynamic_link): Specify linking flags to + shl_load. (__objc_dynamic_find_symbol): Check for return error + from shl_findsym. + +Fri Jul 28 12:38:22 1995 Adam Fedor + + * configure.in: Added DYNAMIC_CFLAGS and extra test for hpux. + + * checks/Makefile.in (DYNAMIC_BUNDLER_LINKER, DYNAMIC_CFLAGS, + BUNDLE_NAME, DYNAMIC_MFILES, DYNAMIC_HFILES, DYNAMIC_OFILES, + nsbundle, bundles): New macros and targets. + + * checks/LoadMe.[hm], checks/SecondClass.[hm], + checks/MyCategory.[hm], checks/nsbundle.m: New files. + + * src/NSBundle.m (bundle_object_name, bundle_resource_path, + [NSBundle +mainBundle], [NSBundle +setSystemLanguages:]): Remove + dependency on NSString for calculating paths. + +Wed Aug 2 12:04:51 1995 Andrew McCallum + + * NSBundle.README: Remove reference to gcc-dynamic.patch. + +Fri Jul 14 17:11:20 1995 Adam Fedor + + * src/MallocAddress.m ([MallocAddress -dealloc]): Check for object in + dictionary before removing. + + * src/NSArchiver.m: Include NSData header. + + * src/NSAutoreleasePool.m ([NSAutoreleasePool + +autoreleaseCountForObject:]): Initialize count to 0. + + * src/NSGData.m ([NSGMutableData -setLength:]): Reset eofPosition + to size. + +Wed Aug 2 11:21:55 1995 Andrew McCallum + + * src/NSString.m ([NXConstantString -dealloc]): New method. + ([NXConstantString -cString]): New method. + ([NXConstantString -retain]): New method. + ([NXConstantString -release]): New method. + ([NXConstantString -autorelease]): New method. + ([NXConstantString -copyWithZone:]): New method. + (From Jeremy Bettis). + + * src/NSDate.m ([NSDate -isEqual:]): Fix typo. (From Jeremy + Bettis). + +Wed Jul 12 10:22:48 1995 Adam Fedor + + * NSString.m (componentsSeparatedByString:, substringFromRange:, + rangeOfCharacterFromSet:, rangeOfCharacterFromSet:options:, + rangeOfCharacterFromSet:options:range:, rangeOfString:, + rangeOfString:options:, caseInsensitiveCompare:, hasPrefix:, + hasSuffix:, lastPathComponent, pathExtension, + stringByAppendingPathComponent:, stringByAppendingPathExtension:, + stringByDeletingLastPathComponent, stringByDeletingPathExtension): + Implemented methods. + + * Foundation/NSException.h (_NSAssertArgs, _NSCAssertArgs): Made + ',' a separate token to work with ## macro. + + * Foundation/NSRange.h: Added NSMakeRange declaration. + +Fri Jun 30 16:02:12 1995 Adam Fedor + + * NSData.m ([NSData +allocWithZone:]): New method. + (_initWithBytesNoCopy:length): New (designated initializer) method. + (initWithBytesNoCopy:length:): Make subclass responsibility. + (init): Call new designated initializer. ([NSMutableData + +allocWithZone:]) New Method. (dataWithCapacity:, dataWithLength:): + Allocate using designated allocator. (initWithBytesNoCopy:length:): + Make subclass responsibility. + + * NSGData.m (_initWithBytesNoCopy:length:): Make designated + initializer. (initWithBytesNoCopy:length:) Call designated initializer. + +Wed Aug 2 10:35:31 1995 Andrew McCallum + + * src/Makefile.in (FILE_AUTHORS): Added "Martin Michlmayr". + + * NSUser.c, Foundation/NSUser.h: New files from Martin Michlmayr + . + * src/Makefile.in (GNUSTEP_HEADERS): Added Foundation/NSUser.h. + (GNUSTEP_MFILES): Added NSUser.c. + +Thu Jul 6 10:11:11 1995 Adam Fedor + + * src/MemoryStream.m ([MemoryStream -writeBytes:length]): Realloc + buffer to at least minimum required length. + + * src/NSCString.m ([NSCString -cString]): Malloc extra byte for + '\0' terminator. + + * src/NSGArray.m ([NSGArray -initWithObjects:count:]): Set + _capacity to minimum of 1. + ([NSGMutableArray -initWithCapacity:]): Likewise. + +Wed Jul 5 17:19:21 1995 Andrew McCallum + + Released version 0.1.13. + + * src/NSString.m ([NSString -getCharacters:range:]): Decrement, + not increment in loop. (Reported by Harmut + ). + +Mon Jul 3 18:10:50 1995 Andrew McCallum + + * src/NSMethodSignature.m ([NSMethodSignature -dealloc]): Free + returnTypes. + + * src/NSUnarchiver.m: Allow easy user-modification of concrete class. + ([NSUnarchiver +_setConcreteClass:]): New method. + ([NSUnarchiver +_concreteClass]): New method. + ([NSUnarchiver +initialize]): New method. + + * src/NSArchiver.m: Allow easy user-modification of concrete + class. Removed references to NSGData. + ([NSArchiver +_setConcreteClass:]): New method. + ([NSArchiver +_concreteClass]): New method. + ([NSArchiver +initialize]): New method. + + * src/NSData.m: Allow easy user-modification of concrete class. + ([NSData +_setConcreteClass:]): New method. + ([NSData +_setMutableConcreteClass:]): New method. + ([NSData +_concreteClass]): New method. + ([NSData +_mutableConcreteClass]): New method. + ([NSData +initialize]): New method. + +Sat Jul 1 14:32:52 1995 Andrew McCallum + + * src/objects/README: Capitalize Foundation. + + * src/NSArray.m: Moved NSArrayEnumerator interface and + implementation from separate files to here. + * src/Makefile.in (GNUSTEP_MFILES): Remove NSArrayEnumerator.m. + (GNUSTEP_HEADERS): Remove Foundation/NSArrayEnumerator.h. + + * src/Foundation/NSZone.h: Update copyright. + * src/Foundation/NSValue.h: Likewise. + * src/Foundation/NSGeometry.h: Likewise. + * src/Foundation/NSException.h: Likewise. + * src/Foundation/NSUnarchiver.h: Likewise. + * src/Foundation/NSTimer.h: Likewise. + * src/Foundation/NSString.h: Likewise. + * src/Foundation/NSSerialization.h: Likewise. + * src/Foundation/NSRange.h: Likewise. + * src/Foundation/NSObject.h: Likewise. + * src/Foundation/NSObjCRuntime.h: Likewise. + * src/Foundation/NSMethodSignature.h: Likewise. + * src/Foundation/NSInvocation.h: Likewise. + * src/Foundation/NSDictionary.h: Likewise. + * src/Foundation/NSData.h: Likewise. + * src/Foundation/NSCoder.h: Likewise. + * src/Foundation/NSCharacterSet.h: Likewise. + * src/Foundation/NSBundle.h: Likewise. + * src/Foundation/NSBitmapCharSet.h: Likewise. + * src/Foundation/NSAutoreleasePool.h: Likewise. + * src/Foundation/NSArray.h: Likewise. + * src/Foundation/NSArchiver.h: Likewise. + * src/Foundation/NSDate.h: Likewise. + * src/NSDate.m: Likewise. + +Fri Jun 30 16:42:10 1995 Andrew McCallum + + * src/Foundation/NSRange.h (NSLocationInRange): Added + __attribute__ ((unused)). + (NSMaxRange): Likewise. + +Fri Jun 30 13:19:24 1995 Adam Fedor + + * Makefile.in (install): Fixed directory typo. + + * NSCharacterSets/Makefile.in (INSTALL, INSTALL_PROGRAM, + INSTALL_DATA): New variables. + (install): Depend on installdirs. + +Fri Jun 30 09:45:14 1995 Andrew McCallum + + * (install-sh, mkinstalldirs): Change file permissions to group + and all can read and execute. (Reported by Paul Kunz.) + + * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.13. + + * doc/news.texi (Noteworthy changes since version 0.1.12): New + section. + + The "concrete class" configuration idea was proposed by Albin + Jones , 10 Jun 1995. + + * src/NSDictionary.m: Allow easy user-modification of concrete class. + ([NSDictionary +_setConcreteClass:]): New method. + ([NSDictionary +_setMutableConcreteClass:]): New method. + ([NSDictionary +_concreteClass]): New method. + ([NSDictionary +_mutableConcreteClass]): New method. + ([NSDictionary +initialize]): New method. + (NSDictionary_concrete_class, NSMutableDictionary_concrete_class): New + static variables. + ([NSDictionary -copyWithZone:]): Make a deep copy to conform to spec; + it was a shallow copy. + + * src/NSArray.m: Allow easy user-modification of concrete class. + ([NSArray +_setConcreteClass:]): New method. + ([NSArray +_setMutableConcreteClass:]): New method. + ([NSArray +_concreteClass]): New method. + ([NSArray +_mutableConcreteClass]): New method. + ([NSArray +initialize]): New method. + (NSArray_concrete_class): New static variable. + (NSMutableArray_concrete_class): New static variable. + ([NSArray +arrayWithObject:]): Don't use addObject:. + ([NSArray -copyWithZone:]): Make a deep copy to conform to spec; it + was a shallow copy. + +Wed Jun 28 18:31:36 1995 Andrew McCallum + + * Makefile.in (rcs-list-locked): Fix typo. + + Released Version 0.1.12. + + * Makefile.in (DIST_FILES): Remove gcc patch files. + * doc/install.texi: Remove instructions for gcc patches. + + * examples/Makefile.in (ALL_CPPFLAGS): Look in ../src for includes. + + * examples/second-server.m: Use release instead of free. + * examples/textcoding.m: Likewise. + * examples/stdio-stream.m: Likewise. + + * src/objects/Dictionary.h ([Dictionary + initWithType:keyType:capacity]): Declare it. + ([Dictionary initWithType:capacity]): Likewise. + + * Makefile.in (RCS_FILES): Added Makeconf. + + * checks/Makefile.in (DIST_FILES): Added RCS_FILES. + + * src/Time.m: Include Sequent support. (Thanks to Matt Nelson + ). + * src/objects/Time.h: Likewise. + + * checks/test09.m: Add _SEQUENT_ to lrand48 conditional. + * checks/test04.m: Likewise. + * checks/test01.m: Likewise. + + * checks/client.m (main): Use -invalidate, not -release. + * examples/first-client.m (main): Likewise. + * examples/second-client.m (main): Likewise. + + * src/Connection.m ([Connection + +newForInPort:outPort:ancestorConnection:]): Add comment. I need + to fix retain/release for Connection. + + * checks/Makefile.in: Put src in all dependencies on libobjects.a. + (OBJECTS_NEXT_INCLUDES): Look in src directory. + (LIBS): Likewise. + (ALL_CPPFLAGS): Likewise. + + * checks/test08.m: Use libobjects' Coder instead of GNU + TypedStream. Comment out BinaryTree testing. + + * src/BinaryTree.m ([BinaryTree -_initCollectionWithCoder:]): + Disabled with -notImplemented. I need to fix decoding of this + class. + + * src/LinkedList.m: Added comment. I need to fix decoding of this + class. + + * src/Collection.m ([Collection -_safeWithElementsCallNoRetain:]): + Use malloc not alloca. + + * src/Dictionary.m ([Dictionary -putElement:atKey:]): Release + previous element. (Thanks to Paul Burchard ). + + * src/NSObject.m (NSDecrementExtraRefCountWasZero): Return correct + value. (Thanks to Paul Burchard ). + + * src/Makefile.in (CFLAGS): Remove -Wall. + + * doc/announce.texi: Use machines.texi. + * doc/advertisement.texi: Likewise. + + * doc/machines.texi: New file. + * doc/Makefile.in (TEXI_FILES): Added machines.texi. + (info): Removed libobjects.texi and objective-c.texi. + (objective-c): Print apology about makeinfo. + +Sun Jun 25 18:08:26 1995 Andrew McCallum + + * src/Makefile.in (objects/stdobjects.h): Depend on ../Version, + not Makefile.in. + (AUTHORS): Fix echo'ing of newlines. + + * Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.12. + (OBJECTS_GCC_VERSION): Upped from 2.6.3 to 2.7.0. + +Tue Jun 20 12:06:36 1995 Andrew McCallum + + * Makefile.in (rcs-list-locked): Print subdir names. + + * checks/Makefile.in: Include $(srcdir)/../Makeconf. + (RCS_FILES): New variable. + (install, uninstall): New targets. + (copy-dist): Converted to new scheme. + * examples/Makefile.in: Likewise. + + * doc/Makefile.in: Change the way top-level dir info files are + handled. + (TOP_FILES): Variable removed. + (.SUFFIXES): Removed. + (prefix, infodir): New variables. + (copy-dist): Converted to new scheme. + + * doc/news.texi (Noteworthy changes since version 0.1.10): New + section. + + * src/NSGArchiver.m ([NSGArchiver -initForWritingWithMutableData:]): + New method. + + * src/Makefile.in (prefix, exec_prefix, libdir, includedir): New + variables. + + * Makefile.in: Convert to new scheme with subdirs. Many variable + and targets moved to subdir Makefiles. + (maintainer-clean, %-subdirs): New targets. + + * configure.in (AC_OUTPUT): Added NSCharacterSets/Makefile. + + * NSCharacterSets/Makefile.in (prefix, datadir, charsetdir, + INSTALL_FILES): New variables. + (installdirs, install, uninstall): New targets. + +Fri May 26 11:17:54 1995 Adam Fedor + + * src/objc-load.c (objc_load_module): Don't execute ctor_list on + __ELF__ systems. + +Fri May 19 11:22:42 1995 Andrew McCallum + + * doc/Makefile.in (copy-dist): Renamed from "dist". + * examples/Makefile.in (copy-dist): Renamed from "dist". + * checks/Makefile.in (copy-dist): Renamed from "dist". + + * configure.in (AC_OUTPUT): Prepend "src/" to "objects/config.h". + + * configure.in (AC_OUTPUT): Added src/Makefile. Changed + INSTALL_HEADERS to HEADERS_INSTALL. Changed INSTALL_OBJS to + OBJS_INSTALL. + +Thu May 11 16:09:36 1995 Andrew McCallum + + * Makefile.in (datadir): According to new standards, use "share" + instead of "lib". + +Mon May 8 16:39:42 1995 Andrew McCallum + + * Makefile.in (dist): Rename "share" to "NSCharacterSets". + (datadir): New variable. + (charsetdir): New variable. + (install): Install files from NSCharacterSets directory. + (installdirs): Make $(datadir) and $(charsetdir). + * NSCharacterSets: Directory renamed from "share". + +Fri May 5 10:46:37 1995 Andrew McCallum + + * doc/Makefile.in (TOP_FILES): New variable. + (dist): Copy TOP_FILES. + (version.texi): Remove $(MAKEFLAGS). + + * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.11. + (dist): mkdir src and config. Copy share and contents. + + * configure.in: Use config/ directory prefix where needed. + + * config: New subdirectory. + * config.*: Files moved there. + + * src/NSException.m (encodeWithCoder:, initWithCoder:): Remove + class names from arg type to avoid bogus warnings about protocol + conformance. + + * Makefile.in: Use doc/ and src/ directories. Many changes. + * src: New subdirectory. Move source files there. + + * configure.in: Look for src/Collection.m, not Collection. + + * configure.in: Create doc/Makefile. + * doc: New subdirectory. + * doc/Makefile.in: New file. + + * checks/nsdictionary.m: New file. + * checks/Makefile.in (SRCS): Added nsdictionary.m. + + * Foundation/NSDictionary.h: Uncomment -keyEnumerator and + -objectEnumerator. + * NSDictionary.m [NSDictionary] (+allocWithZone, +dictionary, + +dictionaryWithObjects:forKeys:count:, -initWithObjects:forKeys:, + +dictionaryWithObjects:forKeys:, -initWithObjects,forKeys:count:, + -init, -initWithDictionary, -count, -objectForKey, -keyEnumerator, + -isEqual:, -isEqualToDictionary, -descriptionWithIndent, -allKeys, + -allValues, allKeysForObject:, -objectEnumerator, -copyWithZone, + -mutableCopyWithZone): Implemented. + [NSMutableDictionary] (+allocWithZone:, +dictionaryWithCapacity:, + -initWithCapacity:, -initWithObjects:forKeys:count:, + -setObject:forKey:, -removeObjectForKey:, removeAllObjects, + -removeObjectsForKeys:, addEntriesFromDictionary:): Implemented. + (NSGDictionaryKeyEnumerator, NSGDictionaryObjectEnumerator): New + classes. + * NSGDictionary.m, Foundation/NSGDictionary.h, + objects/NSDictionary.h: New files. + * Makefile.in (GNU_HEADERS): Added NSDictionary.h. + (GNUSTEP_MFILES): Added NSGDictionary.m. + (GNUSTEP_HEADERS): Added NSGDictionary.h. + + * objects/NSArray.h: Fix #ifndef macro name; NSArray, not NSString! + + * NSString.m (-compare:options:range:): Simple implementation; not + complete. + + * NSArray.m (NSArray +allocWithZone:): Implemented. + (NSMutableArray +allocWithZone:): Implemented. + + * NSGArray.m (-initWithObjects:count:): Retain objects. + +Thu May 4 11:51:04 1995 Adam Fedor + + * NSBitmapCharSet.m, Foundation/NSBitmapCharSet.h: Replaced NSData + instance variable with char array and rewrote methods to reflect + this. + + * NSCharacterSet.m (characterSetWithCharactersInString:): Create + mutable data object for bitmap. (characterSetWithRange:): Added + error checking. (deepen): removed. (copyWithZone:, + mutableCopyWithZone:): More efficient implementation. + (characterSetWithBitmapRepresentation:): Override implementation + from super. + +Wed May 3 15:05:17 1995 Adam Fedor + + * Makefile.in (GNUSTEP_MFILES, GNUSTEP_HEADERS): Added + NSBitmapCharSet. + + * NSCTemplateValue.m, NSConcreteNumber: Added #line macro so gdb + knows which file source came from. + + * NSBitmapCharSet.m, Foundation/NSBitmapCharSet.h: New files. + + * NSCharacterSet.m (all methods): Implemented. + + * NSDictionary.m, Foundation/NSDictionary.h (keyEnumerator, + objectEnumerator): Uncommented but left unimplemeneted. + + * NSNumber.m (valueClassWithObjCType:): Added break's to avoid + falling through case statements. + + * Foundation/NSException.h (_NSAssertArgs, _NSCAssertArgs): Made + ',' a separate token to work with ## macro. + +Wed Apr 26 10:15:51 1995 Adam Fedor + + * Makefile.in (GNUSTEP_MFILES, GNUSTEP_HEADERS): Added + NSCharacterSet. + + * NSCharacterSet.m, Foundation/NSCharacterSet.h: New files. + + * NSString.m (componentsSeparatedByString:, substringFromRange:, + rangeOfCharacterFromSet:, rangeOfCharacterFromSet:options:, + rangeOfCharacterFromSet:options:range:, rangeOfString:, + rangeOfString:options:, caseInsensitiveCompare:, hasPrefix:, + hasSuffix:, lastPathComponent, pathExtension, + stringByAppendingPathComponent:, stringByAppendingPathExtension:, + stringByDeletingLastPathComponent, stringByDeletingPathExtension): + Implemented methods. + + * Foundation/NSRange.h: Added NSMakeRange declaration. + +Wed Apr 26 15:01:07 1995 Andrew McCallum + + * install.texi: Fixed typo in patch instructions. Too many "..". + (Reported by Daniel L. Green .) + +Thu Apr 20 20:11:23 1995 Andrew McCallum + + * NSData.m: Include + + * NSData.m (dataWithBytesNoCopy:length:): Send alloc to NSGData + class, not self. + +Sun Apr 16 02:41:39 1995 Albin L. Jones + + * NSData.m([NSData -getBytes:range:], + [NSData -subdataWithRange:]): Coded these, including the range + checking bits. The proper exception is raised. + + * NSData.m([NSData -dataWithContentsOfFile:], + [NSData -dataWithContentsOfMappedFile:], + [NSData -initWithContentsOfFile:], + [NSData -initWithContentsOfMappedFile:], + [NSData -writeToFile:atomically:]): Filled + these out, made them do what they were suppossed to. + + * NSData.m: Added many comments. Maybe I shouldn't have. + +Thu Apr 20 11:26:45 1995 Adam Fedor + + * NSCTemplateValue.m, NSConcreteNumber.m, NSConcreteValue.m, + NSException.m, NSNumber.m, NSValue.m (encodeWithCoder:, + initWithCoder:): Include call to super since NSObject now + implements these methods. + +Mon Apr 17 16:37:06 1995 Andrew McCallum + + * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.10. + + * examples/second-client.h: Make AppellationObject inherit from + NSObject, not Object. + + * examples/second-server.h: Include NSObject.h from Foundation, + not objc. + + * NSData.m (replaceBytesInRange:withBytes:): Get pointer with + -mutableBytes, not -bytes. + + * Makefile.in (FILE_AUTHORS): Added Jeremy Bettis. + + * Makefile.in: Change "foundation" to "Foundation". + + * Foundation: Directory renamed from "foundation". + + * Connection.m, NSArchiver.m, NSArray.m, NSArrayEnumerator.m, + NSAssertionHandler.m, NSAutoreleasePool.m, NSBundle.m, + NSCString.m, NSCTemplateValue.m, NSCoder.m, NSConcreteNumber.m, + NSConcreteValue.m, NSData.m, NSDate.m, NSDictionary.m, + NSEnumerator.m, NSException.m, NSGArchiver.m, NSGArray.m, + NSGCoder.m, NSGData.m, NSGUnarchiver.m, NSGeometry.m, NSNumber.m, + NSObject.m, NSRange.m, NSString.m, NSUnarchiver.m, NSValue.m, + NSZone.c, objc-load.c: Include from , not + . + * objects/Collection.h, objects/NSCoder.h, objects/String.h, + objects/stdobjects.h.in: Likewise. + * foundation/NSArchiver.h, foundation/NSArray.h, + foundation/NSArrayEnumerator.h, foundation/NSAutoreleasePool.h, + foundation/NSBundle.h, foundation/NSCString.h, + foundation/NSCoder.h, foundation/NSConcreteNumber.h, + foundation/NSConcreteValue.h, foundation/NSData.h, + foundation/NSDate.h, foundation/NSException.h, + foundation/NSGArchiver.h, foundation/NSGArray.h, + foundation/NSGCoder.h, foundation/NSGData.h, + foundation/NSGUnarchiver.h, foundation/NSMethodSignature.h, + foundation/NSObject.h, foundation/NSRange.h, + foundation/NSString.h, foundation/NSUnarchiver.h, + foundation/NSUtilities.h, foundation/NSValue.h: Likewise. + * examples/first-server.h: Likewise. + * checks/nsarchiving.m, checks/nsarray.m, checks/string.m, + checks/values.m: Likewise. + + * objects/NSCoder.h: Fix typo: We're declaring methods of NSCoder, + not NSConcreteCoder. + + * foundation/NSData.h: Insert the interface for NSMutableData. + + * NSData.m: Insert the implementation of NSMutableData. + + * foundation/NSGData.h: Don't include + . The interface can now be found in + + +Sat Apr 15 14:12:57 1995 Andrew McCallum + + * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.9. + + * checks/Makefile.in (SRCS): Comment out nsarchiving.m. It's + not done yet. + + * Makefile.in (GNUStep-volunteers): New target to deal with "ln" + and disparate filesystem problems. + (DIST-FILES): Use the local GNUStep-volunteers file, not the remote + volunteers-gnustep file. + (dist): Switch back to "ln", not "ln -s". + + * Stream.m (-initWithMode:, -streamMode): Methods removed. + (-isWritable): New method. + (-initWithCoder): Renamed from +newWithCoder.m. + * objects/Stream.h: Method removed and put into Streaming + protocol. Included from objects/Streaming.h. + (mode): Instance variable removed. + (STREAM_READONLY, STREAM_WRITEONLY, STREAM_READWRITE): enum removed. + * objects/Streaming.h: New file. + * Makefile.in (GNU_HEADERS): Added objects/Streaming.h. + + * objects/StdioStream.h (mode): New instance variable, to replace + one removed from Stream class. + * StdioStream.m (-isWriteable): New method. + (-initWithCoder): Renamed and rewritten from +newWithCoder. + (-isAtEof): Renamed from -streamEof. + (-initWithFilePointer:fmode:): Use new mode ivar. + + * objects/MemoryStream.h: New protocol . Make + MemoryStream class conform to it. + * MemoryStream.m (-setStreamBufferCapacity:): Renamed from + -setStreamBufferSize. + (-streamBufferCapacity): Renamed from -streamBufferSize. + (-isWriteable): New method. + (-streamBufferPrefix): Renamed from -streamPrefix. + + * NSArchiver.m, foundation/NSArchiver.m, NSGArchiver.m, + NSUnarchiver.m, foundation/NSUnarchiver.h, + foundation/NSGArchiver.h, NSGData.m, foundation/NSGData.h: New + files. + * Makefile.in (GNUSTEP_MFILES): Added NSArchiver.m, NSGArchiver.m, + NSGData.m, NSGUnarchiver.m, NSUnarchiver.m. + (GNUSTEP_HEADERS): Added foundation/NSArchiver.h, + foundation/NSGArchiver.h, foundation/NSGData.h, + foundation/NSGUnarchiver.h, foundation/NSUnarchiver.h. + + * checks/nsarchiving.m: New file. + * checks/Makefile.in (SRCS): Added nsarchiving.m. + + * Makefile.in (GNU_HEADERS): Added objects/NSCoder.h. + + The GNU-interoperating concrete subclasses of NS classes have the + prefix NSG. If people want to write other concrete subclasses + (some of which could be more lowlevel-compatible with NeXT's + classes, such as in the low-level format used by NSConcreteCoder), + they can do so, and use NeXT's classnames, or their own. + * NSGArray.m, foundation/NSGArray.h: Renamed from NSConcreteArray. + * NSGCoder.m, foundation/NSGCoder.h: Renamed form NSGNUCoder. + * Makefile.in: Renamed appropriate files for NSG prefix. + * NSCoder.m: Change names from "Concrete"-style to "G"-style. + * NSGCoder.m: Likewise. + * foundation/NSGArray.h: Likewise. + * NSArray.m: Likewise. + * NSGArray.m: Likewise. + +Fri Apr 14 10:59:41 1995 Andrew McCallum + + * NSAutoreleasePool.m (+enableRelease:, +enableDoubleReleaseCheck:, + +setPoolCountThreshhold:): New methods. + * foundation/NSAutoreleasePool.h: Declare new methods. + + * Makefile.in (GNUSTEP_MFILES): Removed NSDate.m; it causes a bunch + of compilation errors. + (GNUSTEP_OTHER_SRCFILES): Added NSDate.m. + +Thu Apr 13 11:03:13 1995 Andrew McCallum + + * NSDate.m: Compare against [NSDate class], not NSDate. + + * NSDate.m: Fixed indentation. Added some calls to + -notImplemented:. + + * NSDate.m, foundation/NSDate.h: New files from Jeremy Bettis + . + * Makefile.in (GNUSTEP_HEADERS): Added foundation/NSDate.h. + (GNUSTEP_MFILES): Added NSDate.m. + + * readme.texi: Updated for changes since addition of string + classes and retain/release. + + * NSData.m (-getBytes:range:): Implemented. + (-isEqual:): New method. + + * Now using new ObjC Emacs mode from cc-mode.el (to be included + with emacs 19.29), with (c-set-style "GNU"). This will change the + way multi-line methods are indented: I used to indent with three + spaces, now colons are lined up. All contributors should use the + same style. Note that (c-set-style "GNU") has different + c-basic-offset than the default. + +Wed Apr 12 11:15:57 1995 Andrew McCallum + + * BinaryTree.m (removeElement:): Fix bug whereby the deleted + node's parent still had the deleted node as a right child. + (Reported by Stephen Peters ). + + * Collection.m (write:, read:): Put back these old-style archiving + methods. (Reported by Stephen Peters ). + +Sun Apr 9 20:34:32 1995 Andrew McCallum + + * NSAssertionHandler.m: Fix copyright date and indentation. + +Sun Apr 9 16:43:03 1995 Adam Fedor (fedor@boulder.colorado.edu) + + * Makefile.in (GNUSTEP_MFILES): Added NSAssertionHandler.m. + + * NSAssertionHandler.m: New file. + + * foundaton/NSException.h: Added NSAssert macros and + NSAssertionHandler interface. + +Sun Apr 9 13:55:28 1995 Andrew McCallum + + * MallocAddress.m (objectForAddress:): Return nil if address is + not maintained by a MallocAddress object. (Used to simply die.) + +Sat Apr 8 13:04:08 1995 Andrew McCallum + + * Makefile.in (GNUSTEP_MFILES): Added NSGNUCoder.m. + (GNUSTEP_HEADERS): Added foundation/NSGNUCoder.h. + (GNUSTEP_OTHER_SRCFILES): Added files NSArchiver.m, + foundation/NSArchiver.h. + * NSGNUCoder.m, foundation/NSGNUCoder.h, NSArchiver, + foundation/NSArchiver.h: New files. + + * Makefile.in: Rearranged source variables to put + GNU/NEXTSTEP/GNUStep files close together. + (GNUSTEP_OTHER_SRCFILES): Added NSData.m, foundation/NSData.h. + * NSData.m, foundation/NSData.h: New files. + + * Array.m, BinaryTree.m, BinaryTreeNode.m, CString.m, + CircularArray.m, Collection.m, Connection.m, DelegatePool.m, + Dictionary.m, EltNodeCollector.m, GapArray.m, LinkedList.m, + LinkedListNode.m, MappedCollector.m, MemoryStream.m, + MutableCString.m, NSCString.m, NSCoder.m, NSObject.m, NSString.m, + Port.m, RBTreeNode.m, RNGAdditiveCongruential.m, RNGBerkeley.m, + Random.m, Set.m, Stream.m, TextCoder.m, Time.m: Convert to new + Coder scheme. Use -initWithCoder instead of +newWithCoder where + appropriate. Remove arguments typed (Coder*). Replace + +_newCollectionWithCoder with -_initCollectionWithCoder. + + * objects/Coding.h (CommonCoding, Encoding, Decoding): New + protocols. + (SelfCoding): New category of NSObject, interface only, no + implementation. This takes the place of the Coding Protocol. + (Coding): Protocol removed. + + * objects/IndexedCollecting.h: Use ConstantIndexedCollecting + protocol where appropriate. + * objects/Collecting.h: Use ConstantCollecting protocol where + appropriate. + + * objects/KeyedCollection.h: Move protocol conformance to category + to avoid bogus gcc complaints. + * objects/IndexedCollection.h: Likewise. + + * Coder.m (-decodeObjectAt:withName:): Create the instance and + send -initWithCoder if the object doesn't respond to + +newWithCoder. Convert to new protocol and method type scheme. + + * Proxy.m (RemoteSelfCoding): Renamed category from RemoteCoding. + * objects/Proxy.h: Likewise. + * objects/Connection.h (ConnectedSelfCoding): Renamed protocol + from ConnectedCoding. + + * objects/Collection.h: Removed Coding protocol. It's already + provided by NSObject. + * objects/BinaryTreeNode.h: Likewise. + * objects/Port.h: Likewise. + * objects/LinkedListNode.h: Likewise. + + * objects/IndexedCollecting.h (ConstantIndexedCollecting): New + protocol extracted from IndexedCollecting. + * objects/KeyedCollecting.h (ConstantKeyedCollecting): New + protocol extracted from KeyedCollecting. + * objects/Collecting.h (ConstantCollecting): New protocol + extracted from Collecting. + +Fri Apr 7 16:36:08 1995 Andrew McCallum + + * checks/nsarray.m (main): Fix serious bug by including `nil' at + end of contents list. Test forward and reverse enumerator + objects. + + * NSArray.m (-objectEnumerator, -reverseObjectEnumerator): + Implemented methods. + * Makefile.in (GNUSTEP_MFILES): Added NSArrayEnumerator.m, + NSEnumerator.m. + (GNUSTEP_HEADERS): Added foundation/NSArrayEnumerator.h. + * NSEnumerator.m, NSArrayEnumerator.m, + foundation/NSArrayEnumerator.h: New files. + + * Connection.m (-dealloc): Remove dealloc of remote_proxies + contents. + + * NSArray.m (-componentsJoinedByString:): Implemented method. + + * NSCString.m (initWithCapacity:): Make sure that capacity is + greater than zero. + + * Makefile.in (DIST_FILES): Added volunteers-gnustep. + +Fri Apr 7 15:41:46 1995 Mark Lakata (lakata@nsdssp.lbl.gov) + + * foundation/NSZone.h: Fixed clash with linux unistd.h. + +Thu Apr 6 14:47:09 1995 Andrew McCallum + + * Makefile.in (FILE_AUTHORS): New variable. + (AUTHORS): New target. + (DIST_FILES): Added AUTHORS. + + * Makefile.in (DIST_FILES): Add objective-c.texi objective-c.info. + (RCS_FILES): Add objective-c.texi. + (objective-c.info): New target. + (info): Add objective-c.info. + + * Array.m (-_encodeCollectionWithCoder:): Fix typo. Fix super call. + (+_newCollectionWithCoder:): Fix super call. + (Reported by allan-europa@mct.co.uk (Allan Clearwaters)). + +Wed Apr 5 11:22:30 1995 Andrew McCallum + + * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.8. + + * Makefile.in (NEXTSTEP_DERIVED_CFILES): New variable. + (NEXTSTEP_CFILES): NXStringTable_scan.c moved to above. + (NEXTSTEP_OBJS): Use NEXTSTEP_DERIVED_CFILES. + (DIST_FILES): Add NEXTSTEP_DERIVED_CFILES. + (objects/stdobjects.h): Target overhauled. + (libobjects.a): Add dependancy on objects/stdobjects.h. + (GNU_HEADERS): Remove objects/config.h, objects/stdobjects.h. + (INSTALL_HEADERS): Add objects/config.h, objects/stdobjects.h. + (NEXTSTEP_HEADERS): Removed README. + (GNUSTEP_HEADERS): Likewise. + (RCS_FILES): New variable. + (rcs-list-locked): New target. + (dynamic-load.h): Depend on config.status, for less re-making. + (version.texi): Depend on Makefile.in, not Makefile. + (realclean): Add objects/stdobjects.h objects/config.h. + + * objects/stdobjects.h.in: New file. + + * Makefile.in (GNUSTEP_OTHER_SRCFILES): Added NSConcreteNumber.m, + NSCTemplateValue.m. + + * objects/DelegatePool.h (_last_message_had_receivers): New + instance variable. + * DelegatePool.m (-delegatePoolLastMessageHadReceivers): New method. + (-forward::, init): Set new ivar. + + * objects/behavior.h (CALL_METHOD_IN_CLASS): Fix typo. + + * NSArray.m (allocWithZone): Removed method. + (arrayWithObjects:, initWithObjects:, initWithArray:, count, + indexOfObjectIdenticalTo:, indexOfObject:, isEqualToArray:, + makeObjectsPerform:, makeObjectsPerform:withObject:, lastObject, + firstObjectCommonWithArray:, arrayWithCapacity:, addObject:, + replaceObjectAtIndex:, removeLastObject, insertObject:atIndex:, + removeObjectAtIndex:, removeObjectIdenticalTo:, removeObject:, + removeAllObjects, addObjectsFromArray:, + removeObjectsFromIndices:numIndices:, removeObjectsInArray:, + copyWithZone:, mutableCopyWithZone:): Newly implemented or + overhauled. + + * behavior.c (class_add_methods_if_not_there): Only put method + implementation in dtable if the dtable is already installed, + otherwise, just add it to the class's methods list and let + __objc_install_dispatch_table_for_class put it in. Also, change + arguments. All callers updated. + (check_class_methods): New function. + + * NSString.m (+initialize): Use static "done". + * NSCString.m: Likewise. + + * checks/test01.m (main): "release" collections intead of + "emtpy"ing them. + + * NSDeallocateObject.m (NSDeallocateObject): Set + anObject->class_pointer to 0xdeadface, to help catch message-sends + to deallocated objects. + + * Collection.m (_safeWithElementsCallNoRetain:): New method. + (dealloc, empty): Use it. + (send_release): New function. + (Problem reported by allan-europa@mct.co.uk (Allan Clearwaters)). + + * Time.m (CLK_TCK): Use _CS_CLK_TCK instead of 3. + +Tue Apr 4 18:48:59 1995 Andrew McCallum + + * NSObject.m (+retain, +retainCount, +release, +autorelease): New + methods. + + * checks/Makefile.in (SRCS): Added nsarray.m. + + * foundation/NSArray.h: Inherit from NSObject, not Array. + + * NSConcreteArray.m, foundation/NSConcreteArray.h, + foundation/NSUtilities.h, objects/NSArray.h: New files. + * Makefile.in (GNUSTEP_MFILES): Added NSConcreteArray.m. + (GNUSTEP_HEADERS): Added foundation/NSConcreteArray.h, + foundation/NSUtilities.h. + (GNU_HEADERS): Added objects/NSArray.h. + + * objects/behavior.h: Added warning in comments. + (CALL_METHOD_IN_CLASS): New macro. + + * objects/String.h: Add Protocol to String + Protocol. + +Tue Apr 4 10:56:02 1995 Andrew McCallum + + * NSDictionary.m: Fix indentation. + * NSCoder.m: Likewise. + + * NSArray.m: Fixed indentation. + (arrayWithObject, arrayWithObjects, initWithArray, initWithObjects, + initWithObjects:count:, indexOfObjectIdenticalTo:, + firstObjectCommonWithArray, isEqualToArray, + sortedArrayUsingFunction, sortedArrayUsingSelector): Implemented. + + * Time.m (#ifndef CLK_TCK): Define it using sysconf() if not + already defined. (CLK_TCK wasn't defined on Solbourne S4000 + running OS/MP 4.1B. Reported by Pekka Yrjola .) + +Mon Apr 3 19:02:37 1995 Andrew McCallum + + * NSString.m (initialize): No need to add IndexedCollection + behavior to NSString, we already added String, and String inherits + from IndexedCollection. + + * Makefile.in (dynamic-load.h): New target, replacing the + "one-step" target, which got invoked too often. + + * Makefile.in (GNUSTEP_HEADERS): Add foundation/NSArray.h, + foundation/NSCoder.h, foundation/NSDictionary.h. + +Mon Apr 3 16:36:36 1995 Adam Fedor (fedor@boulder.colorado.edu) + + Placeholder non-implementations from Fedor until McCallum does + real implementations (that will be aided by and coexist with GNU + versions). + + * NSArray.m, NSCoder.m, NSDictionary.m, foundation/NSArray.h, + foundation/NSCoder.h, foundation/NSDictionary.h: new files. + +Mon Apr 3 15:58:35 1995 Adam Fedor (fedor@boulder.colorado.edu) + + * configure.in: check for dynamic linking libraries to figure out + which *-load.h file to include in objc-load.c. + + * Makefile.in (one-time): new target. + +Mon Apr 3 14:55:47 1995 Adam Fedor (fedor@boulder.colorado.edu) + + * Makefile.in (GNUSTEP_MFILES, GNUSTEP_CFILES, GNUSTEP_HEADERS): + Added files from corresponding FEDOR_ lists, removed FEDOR_ lists. + (DIST_FILES): added gcc-dynamic.patch, NSBundle.README and + GNUSTEP_OTHER_SRCFILES. (NSVALUE_OFILES, NSNUMBER_OFILES): removed + multiple target declarations. + + * NSBundle.m (_bundle_load_callback): Changed Class* to Class. + + * find_exec.c: new file. + + * checks/Makefile (LIBS): added math library. (SRCS): Added values.m. + +Mon Apr 3 11:17:18 1995 Adam Fedor (fedor@boulder.colorado.edu) + + * Makefile.in: New class cluster targets NSVALUE_OFILES and + NSNUMBER_OFILES. + + * NSBundle.README, NCSTemplateValue.m, + NSConcreteNumber.m, NSConcreteValue.m: new files. + + * NSBundle.m: Use @"" constructs, change Class to a pointer. + + * NSException.m (encodeWithCoder:, initWithCoder:): take out calls + to super until NSCoder gets implemented. + + * NSGeometry.m: Change includes to look in foundation subdir. + + * NSNumber.m, NSValue.m: Rewrote as class cluster. + + * NSRange.m (NSUnionRange): fixed typo - point should be range. + (NSMaxRange, NSLocationInRange): Moved to header file. + (NSStringFromRange): use @"" construct. + + * String.m (contentType) : new method. + + * checks/values.m: new file. + + * dld-load.h, null-load.h, simple-load.h, hpux-load.h: new files. + * foundation/NSArray.h, foundation/NSConcreteNumber.h, + foundation/NSConcreteValue.h, foundation/objc-load.h: new files. + * gcc-dynamic.patch: likewise. + + * foundation/NSValue.h: Added methods valueClassWithObjCType: and + initValue:withObjCType: for class clusters. + + * objc-load.c: new file. + +Mon Apr 3 10:43:11 1995 Andrew McCallum + + * String.m (initWithType:): Fix previous attempt at avoiding + infinite loop. (Reported by Jeremy Bettis ) + +Sun Apr 2 20:05:04 1995 Andrew McCallum + + * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.7. + + * checks/string.m: Test mutable strings and "strings as + collections of char's". + + * Connection.m, MutableString.m, NSString.m, Port.m, SocketPort.m, + String.m, objects/Connection.h, objects/Invocation.h, + objects/Port.h, objects/SocketPort.h, objects/ValueHolding.h, + objects/stdobjects.h: Use (id ) instead of (String*). + + * objects/String.h: Use (id ) instead of (String*) Have + String protocol include NSString protcol. + + * foundation/NSString.h: Define NSString and NSMutableString as + protocols. Make the classes conform to them. + + * NSCString.m: Have increment and decrement functions take int + arguments instead of unsigned because I was getting (0 >= -234) == 1. + + * NSString.m: Added implementations. + + * foundation/NSString.h: Uncomment method declarations. Now + subclass of NSObject, not String. + (stringWithFormat:arguments:): Added method. + (NSMutableString): Added declaration for class. + (NXConstantString): Moved declaration for class to here from + objects/String.h. Now subclass of NSCString, not ConstantString. + + * NSObject.m (perform:with:with:): New method added to (NEXTSTEP) + category. + + * NSException.m: Fix #include's. Fix @"" strings. + + * ConstantString.m: #if'ed out NXConstantString implementation. + Moved to NSString.m + * objects/String.h (NXConstantString): Declaration #if'ed out. + Moved to foundation/NSString.h. + + * MallocAddress.m, objects/MallocAddress.h, NSCString.m, + foundation/NSCString.m: New files. + + * Makefile.in (GNU_MFILES): Added MallocAddress.m. + (GNU_HEADERS): Added objects/MallocAddress.h, objects/NSString.h. + (GNUSTEP_MFILES): Added NSCString.m. + (GNUSTEP_HEADERS): Added foundation/NSCString.h. + (objects/stdobjects.h): Fixed typo. + +Sat Apr 1 16:09:04 1995 Andrew McCallum + + * String.m (initWithType:): Avoid infinite loop by calling + designated initializer instead of init. (Reported by + Jeremy Bettis ) + +Sat Apr 1 12:19:13 1995 Andrew McCallum + + * Makefile.in (OBJECTS_SUBMINOR_VERSION): Version 0.1.6. + + * NSObject.m (+superclass): New method. + + * behavior.c (behavior_debug): Fix typo in variable name use. + + * NSObject.m (+conformsToProtocol:): For now, send conformsTo: to + Protocol object. + + * objects/stdobjects.h (OBJECTS_MAJOR_VERSION, + OBJECTS_MINOR_VERSION, OBJECTS_SUBMINOR_VERSION): New #define's. + * Makefile.in (OBJECTS_MAJOR_VERSION, + OBJECTS_MINOR_VERSION, OBJECTS_SUBMINOR_VERSION): New variables. + (OBJECTS_VERSION): define in terms of above. + (objects/stdobjects): Set values for OBJECTS_MAJOR_VERSION, + OBJECTS_MINOR_VERSION, OBJECTS_SUBMINOR_VERSION. + +Fri Mar 31 09:10:50 1995 Adam Fedor + + * NXStringTable.m (readFromFile:): Return the return value from + readFromSteam so that errors get passed along. + + * NXStringTable_scan.l (main): Restart the parser for each new + file. This fix works correctly with flex, but is a bad hack and + still doesn't work right with lex. + +Fri Mar 31 10:28:52 1995 Andrew McCallum + + * configure.in: Added check for times(). + * Time.m (HAVE_TIMES): Use this instead of test for solaris and + hpux. + + * configure.in: Added check for valloc(). + * objc-malloc.c (HAVE_VALLOC): if not defined, #define valloc + malloc. (Reported by Mike Perik for HPUX). + +Tue Mar 28 12:37:22 1995 Andrew McCallum + + * gcc-string.patch: New version from Pieter Schoenmakers + that should fix patching problems. From + ftp://ftp.es.ele.tue.nl/pub/tiggr/gcc-2.6.3-statics.patch. + +Mon Mar 27 09:35:30 1995 Andrew McCallum + + * NSObject.m (+conformsToProtocol:): Renamed from + -conformsToProtocol. + (-conformsToProtocol:): New method. + (-conformsTo:): New method. + + * Time.m (__hpux): Add this to #if for using times(). (Reported + by Jan Springer .) + +Fri Mar 24 12:33:27 1995 Mark Lakata (lakata@nsdssp.lbl.gov) + + * NSZone.c : added #define WORDSIZE sizeof(double) + (NSZoneMalloc): returns machine word aligned pointers. Actually, + the word size is assumed to be equal to or smaller than + sizeof(double). + +Fri Mar 24 10:04:54 1995 Andrew McCallum + + * Makefile.in (GNU_HEADERS): Added new file behavior.h. + (GNU_CFILES): Added new file behavior.c. + * behavior.c, objects/behavior.h: New files. + + * NSObject.m (retain): Call NSIncrementExtraRefCount(), not + NSShouldRetainWithZone(). (Of course!) (Reported by Adam Fedor + ) + + * Invocation.m (invoke): Fix typo. (Reported by hjl@nynexst.com + (H.J. Lu).) + +Wed Mar 22 16:37:06 1995 Andrew McCallum + + * Makefile.in (OBJECTS_VERSION): Version 0.1.5. + (OBJECTS_FTP_DIRECTORY): Fixed for alpha.gnu. + Added many GNUSTEP files. + + * checks/test06.m: Inherit from NSObject, not Object. + * checks/test13.m: Likewise. + * checks/server.h: Likewise. + * checks/server.m: Likewise. + * examples/first-server.h: Likewise. + * foundation/NSInvocation.h: Likewise. + * examples/second-server.h: Likewise. + + * checks/client.m: Inherit from NSObject, not Object. Don't free + connection object, release it. + + * IndexedCollection.m: Cast aCollectionClass to (id) so we can + send NSObject protocol messages that aren't in Collecting. + + * Stack.m (initialize): Return void. + + * examples/port-client.m: Use @"" constant strings. + * examples/second-server.m: Likewise. + * examples/first-client.m: Likewise. + * examples/first-server.m: Likewise. + * examples/second-client.m: Likewise. + + * checks/test03.m (main): Added some #if 0'ed out new tests. + + * objects/CollectionPrivate.h (DeallocationHelpers): New category + containing _empty and _collectionDeallocate. + + * BinaryCoder.m (encodeValueOfSimpleType:at:withName:): Use + #ifndef __CHAR_UNSIGNED__ to prevent compiler warning. + + * Magnitude.m (compare:): Implemented. + + * foundation/NSAutoreleasePool.h: Comment fixes. + * foundation/NSBundle.h: Likewise. + * foundation/NSException.h: Likewise. + * foundation/NSGeometry.h: Likewise. + * foundation/NSRange.h: Likewise. + * foundation/NSValue.h: Likewise. + * NSZone.c: Include objects/objc-malloc. Likewise. + * objects/String.h: Additional comments. + * Invocation.m: Add header comment. + + * foundation/NSArray.h (arrayWithObjects): Add missing s. + + * NSBundle.m: Don't include NSObjectPrivate.h. + + * SocketPort.m: Include objects/String.h. + + * foundation/NSMethodSignature.h (argumentInfoAtIndex:): Comment + out for now. + + * Set.m (_collectionDealloc): Fix super call. + * Dictionary.m (_collectionDealloc): Likewise. + * Array.m (_collectionDealloc): Likewise. + + * RetainingNotifier.m (autorelease): Implemented. + + * Collection.m (shallowCopyAs:, emptyCopyAs:, copyAs:): Change arg + type to (Class). + (dealloc, empty): Don't use safe version of makeObjectsPerform:. + (_empty, _collectionDealloc): Move to a category. + + * objects/Collecting.h (shallowCopyAs:, emptyCopyAs:, copyAs:): + Change arg type to (Class). + * KeyedCollection.m: Likewise. + + * foundation/NSObject.h (compare:, autoreleaseClass, + setAutoreleaseClass, read:, write:): Declare new category methods. + + * NSObject.m (class): Fix return value. + (encodeWithCoder:) #ifdef out for now, until we fix compatibility with + GNU Coder. + (perform:with:): New method in NEXTSTEP category. + + * objects/Coder.h (isProxy): Method removed from + NSObject(CoderAdditions). + + * Proxy.m (zone): New method. + (isProxy): Remove method from NSObject category. + Don't include objects/AutoreleasePool.h. + + * Coder.m (encodeSelector:withName:): Use sel_get_any_uid() to get + sel type if we can't get it the normal way. + (newWithCoder:): Use NSAllocateObject. + (isProxy): Removed from NSObject category. + + * objects/Collecting.h (releaseObjects, release): Methods removed. + +Sat Mar 18 10:38:06 1995 Andrew McCallum + + * NSObject.m (zone): Implemented. + + * Makefile.in (GNUSTEP_MFILES): New files NSAllocateObject.m, + NSBundle.m, NSCopyObject.m, NSDeallocateObject.m, NSException.m, + NSGeometry.m, NSNumber.m. + (GNUSTEP_HEADERS): New files foundation/NSBundle.h, + foundation/NSException.h, foundation/NSGeometry.h, + foundation/NSNumber.h. + + * NSZone.c: Base on objc_malloc and friends, not malloc. Reformat + header comment. + + * NSAllocateObject.m, NSDeallocateObject.m, NSCopyObject.m: New + files. + * NSObject.m (NSAllocateObject, NSDeallocateObject, NSCopyObject): + These functions moved to separate files. + + * objc-malloc.c (objc_valloc): New function pointer. + (__objc_valloc): New function. + * objects/objc-malloc.h (objc_valloc): New function declared. + (OBJC_VALLOC): New macro. + + * Proxy.m (dealloc): Call NSDeallocateObject(). + + * KeyedCollection.m (dealloc): Deleted. + + * Dictionary.m (_collectionDealloc): Renamed from dealloc. + * Set.m (_collectionDealloc): Likewise. + * Array.m (_collectionDealloc): Likewise. + + * Connection.m: Removed Object(Retaining) category. + + * Set.m (_empty): Renamed from emtpy. + * LinkedList.m (_empty): Likewise. + * GapArray.m (_empty): Likewise. + * EltNodeCollector.m (_empty): Likewise. + * Dictionary.m (_empty): Likewise. + * CircularArray.m (_empty): Likewise. + * BinaryTree.m (_empty): Likewise. + * Bag.m (_empty): Likewise. + * Array.m (_empty): Likewise. + +Fri Mar 17 11:09:29 1995 Andrew McCallum + + * Coder.m (dealloc): Remove unneccesary releaseObjects. + * EltNodeCollector.m (dealloc): Likewise. + + * Collection.m: Rename method "empty" to "_empty". Rename + "releaseObjects" to "empty". + + * Set.m: Do retain/release/autorelease of contents as appropriate. + * BinaryTree.m: Likewise. + * CircularArray.m: Likewise. + * SplayTree.m: Likewise. + * RBTree.m: Likewise. + * LinkedList.m: Likewise. + * Heap.m: Likewise. + * GapArray.m: Likewise. + * Dictionary.m: Likewise. + + * Proxy.m (autorelease): Ask NSObject for autoreleaseClass. + +Wed Mar 15 17:56:57 1995 Andrew McCallum + + * Array.m: Do retain/release/autorelease of contents as appropriate. + * Bag.m: Likewise. + + * Makefile.in (DIST_FILES): Added gcc-class.patch and + gcc-string.patch. + (OBJECTS_GCC_VERSION): Changed from version 2.6.1 to 2.6.3. + +Tue Mar 14 11:50:23 1995 Andrew McCallum + + * objects/CollectionPrivate.h (RETAIN_ELT, RELEASE_ELT, + AUTORELEASE_ELT): New macros. + +Sun Mar 12 11:37:10 1995 Andrew McCallum + + * objects/stdobjects.h: Declare @class String; + + * objects/Collecting.h (alloc, respondsToSelector:, + conformsToProtocol:) removed. + + * objects/Connection.h: Use String* instead of char*. + * objects/SocketPort.h: Likewise. + * objects/Port.h: Likewise. + * Connection.m: Likewise. + * SocketPort.m: Likewise. + * Port.m: Likewise. + * checks/client.m, checks/server.m: Likewise. + + * objects/IndexedCollecting.h (IndexRange): changed to + location/length from start/end. + * IndexedCollection.m: Use location/length instead of start/end. + + * *.[hm]: Use `release' and `dealloc' instead of `free'. + * *.[hm] (initialize): return void. + + * objects/Collecting.h: Use `release' and `dealloc' instead of `free'. + (write:, read:): Removed. + (respondsToSelector:, conformsToProtocol:) Renamed from old Object + method names to NSObject method names. + + * NSZone.c: New file, renamed from zone.c. Include + foundation/NSZone, not foundation/zone.h. + + * Makefile.in (GNU_MFILES): Remove AutoreleasePool.m, + AutoreleaseStack.m, ObjectRetaining.m. + (GNU_HEADERS): Remove AutoreleasePool.h, AutoreleaseStack.h, + ObjectRetaining.h + + * checks/Makefile.in (string): New test program. + + * objects/Coder.h: Changed superclass from Object to NSObject. + * objects/Collection.h: Likewise. + * objects/Stream.h: Likewise. + * objects/RNGAdditiveCongruential.h: + * objects/RNGBerkeley.h: Likewise + * objects/Random.h: Likewise. + * objects/Magnitude.h: Likewise. + * objects/RetainingNotifier.h: Likewise. + * objects/BinaryTreeNode.h: Likewise. + * objects/LinkedListNode.h: Likewise. + * objects/Lock.h: Likewise. + + * objects/stdobjects.h: Include foundation/NSObject.h instead of + objc/Object.h. + +Sat Mar 11 16:39:18 1995 Andrew McCallum + + * Makefile.in (NEXTSTEP_MFILES): Renamed from NeXT_MFILES. + (NEXTSTEP_CFILES): Renamed from NeXT_CFILES. + (NEXTSTEP_OTHER_SRCFILES): Renamed from NeXT_OTHER_SRCFILES. + (GNUSTEP_MFILES, GNUSTEP_CFILES, GNUSTEP_HEADERS, GNUSTEP_OBJS): New + variables. + (GNU_MFILES): Added CString.m, ConstantString.m, MutableCString.m, + MutableString.m, String.m. + (GNU_HEADERS): Added String.h. + (GNUSTEP_HEADERS): Added NSAutoreleasePool.h, NSObjCRuntime.h, + NSString.h. + (DIST_FILES): Added GNUSTEP files. + * configure.in: Renamed variables from NeXT... to NEXTSTEP. Added + GNUSTEP variables. + + * objects/ValueHolding.h (ValueSetting): Methods now return `void' + instead of `self'. + + * foundation/NSZone.h: Renamed from foundation/zone.h. + +Thu Mar 9 15:05:45 1995 Andrew McCallum + + * zone.c, foundation/zone.h: New files from Mark Lakata. + * Makefile.in (GNUSTEP_HEADERS): Added foundation/NSZone.h. + +Wed Mar 8 17:35:01 1995 Andrew McCallum + + * Coder.m: `CLASS' #define no longer necessary, using `Class'. + * Proxy.m: Likewise. + * Connection.m: Likewise. + + * objects/stdobjects.h (CLASS): #define removed. + + * objects/Proxy.h (class): use "Class" instead of "Class*" to + match new runtime. + + * Makefile.in (GNUSTEP_HEADERS): New variable. + (DIST_FILES): Added GNUSTEP_HEADERS. + * configure.in: Likewise. + + * configure.in: Renamed NeXT_HEADERS to NEXTSTEP_HEADERS. + * Makefile.in: Likewise. + + * Makefile.in (NeXT_HEADERS): Move from objects/next-includes up + to top. + (OBJECTS_NEXT_INCLUDES): Look directly in top level directory. + (dist, mostlyclean, installdirs): Likewise. + +Sat Feb 11 16:20:49 1995 Andrew McCallum + + * Makefile.in (OBJECTS_VERSION): Version 0.1.4. + +Wed Feb 1 15:26:11 1995 Andrew McCallum + + * checks/test01.m: Use lrand48() instead of random() if + defined(__hpux). + * checks/test09.m: Likewise. + * checks/test04.m: Likewise. + (Patch from Timothy Mooney ) + +Thu Jan 26 12:52:33 1995 Andrew McCallum + + * objc-gnu2next.m: Convert Class* to Class. + * Proxy.m: Likewise. + * Coder.m: Likewise. + +Fri Jan 13 12:57:50 1995 Andrew McCallum + + * Makefile.in (OBJECTS_VERSION): Version 0.1.3. + + * ConnectedCoder.m (newDecodingWithConnection:timeout:): On + timeout use objc_free to free the buffer. + + * checks/client.m (main): Only release remote_peer_obj if it + really is a remote object. + + * examples/second-client.m (main): Only free appellation string if + it's from a remote object. + +Mon Jan 9 12:14:03 1995 Andrew McCallum + + * RetainingNotifier.m (autorelease): New (unimplemented) method. + (Reported by Peter Kristensen ). + +Fri Jan 6 17:57:08 1995 Andrew McCallum + + * Makefile.in (DIST_FILES): Added file MACHINES. + +Tue Dec 13 11:53:54 1994 Andrew McCallum + + * Makefile.in (OBJECTS_VERSION): Version 0.1.2. + + * Coder.m (Object (CoderAdditions)): Removed methods retainCount, + dealloc, release, retain. + * objects/Coder.h (Object (CoderAdditions)): Likewise. + +Mon Dec 12 14:13:58 1994 Andrew McCallum + + * Makefile.in (dvi): Now points at libobjects.dvi. + (libobjects.dvi): New target, disabled until texinfo.tex is fixed. + +Fri Dec 9 20:00:56 1994 Andrew McCallum + + * Makefile.in (ANNOUNCE): depends on news.texi. + + * Makefile.in (version.texi): Output FTP vars only if non-empty. + + * Makefile.in (OBJECTS_FTP_MACHINE,OBJECTS_FTP_DIRECTORY): New vars. + (version.texi): set OBJECTS_FTP_MACHINE and OBJECTS_FTP_DIRECTORY. + + * Makefile.in (OBJECTS_VERSION): Bumped to 0.1.1. + +Wed Dec 7 12:59:32 1994 Andrew McCallum + + * SocketPort.m: Include #if _AIX. (Reported by + Todd B. Templeton .) + +Sun Nov 20 19:19:13 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) + + * Connection.m (connectionForward,connectionPerformAndDismissCoder): + Removed old #if'ed-out versions. + +Mon Nov 14 10:58:46 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * objects/objc-gnu2next.h: (sel_get_uid): Fix typo. + (class_is_class, class_is_meta_class, object_is_class, + object_is_instance, object_is_meta_class): New functions. + The above from a patch by Matthias Klose + +Sun Nov 13 14:29:37 1994 Andrew McCallum (mccallum@moose.cs.rochester.edu) + + * Makefile.in (diff): Fix tar call. Add proper arguments to diff. + +Thu Nov 10 16:51:48 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * news.texi (Noteworthy changes since version @samp{0.1.0}): New + section. + + * Makefile.in (TAGS): Use DIST_FILES, not non-existant SRCS. + +Wed Nov 9 18:34:53 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * configure.in: Remove duplicate NeXT_runtime=0. + +Tue Nov 8 10:44:30 1994 Andrew McCallum (mccallum@moose.cs.rochester.edu) + + * libobjects.texi (Organization): Updated inheritance tree. + * checks/test12.m (main): Free "rng", not "r" twice. + * TextCoder.m (encodeName): Do right thing for NULL name. + (Above three reported by Stephen Peters ) + + * Proxy.m (autorelease): New method. + + * Time.m: Patch for Solaris 2.4. Use times() instead of + getrusage(). (Patch from Stephen Peters ) + + * Makefile.in (GNU_MFILES,GNU_HEADERS): Added AutoreleasePool, + AutoreleaseStack and ObjectRetaining. + + * AutoreleasePool.m: Removed retain_count stuff. Now setting + autorelease_class. + + * ObjectRetaining.m: Removed stack release code. + (autorelease_class): New variable. + + * objects/Retaining.h (autorelease): New method. + Added comments. + + * objects/objc-gnu2next.h: Moved Object(GNUExtentions) category + from stdobject.h to here. + + * Makefile.in (DIST_FILES): Added README.ULTRIX. + + * Makefile.in (install,installdirs,includedir): Make NEXT_HEADERS + install to proper place: objects/next-include/. + +Fri Nov 4 01:32:27 1994 Andrew McCallum (mccallum@moose.cs.rochester.edu) + + * Makefile.in (diff): New target. + + * Makefile.in (ADVERTISEMENT): New target. + + * Version 0.1.0 released. + +Thu Nov 3 19:20:28 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) + + * Connection.[hm] (connectionForward:::): Added object argument. + Use selectorTypeForProxy: if defined (NeXT_runtime). + * Proxy.m (forward::): Added object argument to connectionForward. + (selectorTypeForProxy:): Add an Object Category with this method. + + * Coder.m (decodeName:): Terminate char* with 0. + + * collhash.c: Use objc_malloc and friends instead of + __objc_xmalloc and friends. + + * StdioStream.m (writeBytes:length:): Use fwrite, not write. + (readBytes:length:): Use fread, not read. + +Wed Nov 2 20:59:36 1994 Andrew McCallum (mccallum@leopard.cs.rochester.edu) + + * configure.in: Updated for Autoconf 2.0 + * Makefile.in (DIST_FILES): Changed install.sh to install-sh. + (distclean): Added config.log, config.cache. + (prefix, exec_prefix): Updated for Autoconf 2.0 + +Fri Oct 28 18:20:28 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) + + * *.[hm]: Change many "NeXT_cc" to "NeXT_runtime" + * Proxy.[hm]: Add and use _method_types ivar if NeXT_runtime. + * objects/objc-gnu2next.h: Many addtional functions #define'd. + * objc-gnu2next.m: New file. + * Makefile.in (GNU_MFILES): Added objc-gnu2next.m. + + * BinaryCoder.m (encode,decodeValueOfSimpleType:...): Added code + to write to stream directly (i.e. it does its own architecture + independent coding). This replaces previous messy code that + interfaced with the internals of GNU TypedStream's. + * Makefile.in (GNU_MFILES,GNU_HFILES): Removed bcoder-stream.[hm]. + +Thu Oct 27 17:39:49 1994 Andrew McCallum (mccallum@mustang.cs.rochester.edu) + + * SocketPort.m (sendPacket:toPort:timeout:, + newRemoteWithNumber:onHost:): Added casts to (char*) to prevent + warnings on systems that don't have "const" on args to + gethostbyname() and sendto(). + + * ConnectedCoder.h: New #define's METHODTYPE_REQUEST, + METHODTYPE_REPLY. + * Connection.m (_typeForSelector:remoteTarget:): New method. + (_handleMethodTypeRequest:): New method. + (doReceivedRequestsWithTimeout:): Watch for METHODTYPE_* msgs. + (newReceivedReplyRmcWithSequenceNumber:): Likewise. + * Proxy.m (selectorTypeForProxy:): New method. + * Proxy.h (_method_types): New instance variable. + + * mframe.[hm], mtypes.[hm]: New files. + * Makefile.in (GNU_MFILES): Added mframe.m + (GNU_HFILES): Added mframe.h. + (GNU_CFILES): mtypes.c. + (GNU_OTHER_SRCFILES): Added mtypes.h. + * Connection.m (connectionForward,connectionPerformAndDismissCoder): + Use functions in mframe.m instead of previous DO-specific method + frame code. + +Mon Oct 24 18:41:35 1994 Andrew McCallum (mccallum@leopard.cs.rochester.edu) + + * configure.in: Added AC_HEADER_CHECK for sys/rusage.h and + ucbinclude/sys/resource.h needed in Time.m on various SYSV + systems. + + * *.[hm]: Changed method name encodeType: to encodeValueOfType:. + Likewise for decodeType and SimpleType method names. + + Makefile.in (GNU_OTHER_SRCFILES): Removed bzero.c. + (DIST_FILES): Added README.BZERO. + configure.in: Removed bzero stuff. + +Thu Oct 20 13:10:50 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * IndexedCollection.m (putElement:atKey:): New method, needed for + KeyedCollecting protocol. (reported by Niels Mvller + ) + +Wed Oct 19 19:35:32 1994 Andrew McCallum (mccallum@zebra.cs.rochester.edu) + + * configure.in: Look for libraries "socket" and "nsl", needed for + the distributed objects check/example programs on Solaris machine. + + * checks/test01.m,test04.m,test09.m: Use lrand48 instead of random + if on Solaris machine. + +Tue Oct 18 10:27:29 1994 Andrew McCallum (mccallum@graphite.cs.rochester.edu) + + * Set.[hm] (*WithCollection:): Renamed from *With:. + + * *.[hm]: Changed method name "initCapacity" to + "initWithCapacity". Changed method names "...Encoding:" to + "...(With)Type:" to match Coder method names. + +Fri Oct 7 17:08:57 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * DelegatePool.[hm], Makefile.in: Renamed "DelegateList" to + "DelegatePool" to avoid false association with List object. + +Thu Sep 22 10:06:19 1994 Andrew McCallum (mccallum@llama.cs.rochester.edu) + + * configure.in: Check for bzero, and include bzero.o in the + library if not. (This works around a bug in libobjc.) + * Makefile.in (GNU_OBJS): Added @BZERO@. + (GNU_OTHER_SRCFILES): Added bzero.c. + + * *.m: Added methods for Coding where necessary; a few just send + -notImplemented: for now. + +Tue Sep 20 20:11:57 1994 Andrew McCallum (mccallum@llama.cs.rochester.edu) + + * objects/ValueHolding.h: Divided ValueHolding protocol into + ValueGetting and ValueSetting. + + * GCC-BUGS, CREDITS: new files. + * Makefile.in (DIST_FILES): Added GCC-BUGS, CREDITS. + +Mon Sep 19 14:42:26 1994 Andrew McCallum (mccallum@llama.cs.rochester.edu) + + * LinkedList.m (successorOfElement,predecessorOfElement): return + nil when there is no such element because arg was first or last in + list; previously it raised an error. + +Mon Sep 12 18:54:47 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * HashTable.[hm]: Changed GNUHashState to NXHashState. + +Tue Sep 6 21:11:38 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * LinkedList.m, LinkedListNode.m EltNode-m: Added methods for + Coding. + +Sat Aug 20 18:34:38 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * examples/*: Added example files: Makefile.in, dictionary.m, + port-server.m, port-client.m, first-server.[hm], first-client.m, + second-server.[hm], second-client.[hm], textcoding.m + +Fri Aug 19 18:39:06 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collection.m, Set.m: Added new methods for Coding. + + * Makefile.in: Include new files in the distribution. Add new + classes: Stream, StdioStream, MemoryStream, Coder, TextCoder, + BinaryCoder, Port, SocketPort, Connection, Proxy, ConnectedCoder, + Lock, RetainingNotifier. New protocols: Coding, Retaining, + Locking. New text files: announce.texi, ANNOUNCE, readme.texi, + README. + +Thu Aug 11 12:30:20 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * checks/Makefile.in (CC): Changed from gcc to @CC@. + + * CircularArray.m (insertElement:atIndex:): Swapped order of + incrementCount and CIRCULAR_TO_BASIC. (Test case crash reported + by Matthias Klose .) + +Wed Aug 10 12:30:45 1994 Andrew McCallum (mccallum@raccoon.cs.rochester.edu) + + * Makefile.in: Defined GNU_MFILES, NeXT_MFILES, GNU_CFILES, + NeXT_CFILES, GNU_HEADERS, NeXT_HEADERS, GNU_OTHER_SRCFILES, + NeXT_OTHER_SRCFILES. Removed *OFILES. Renamed DISTFILES to + DIST_FILES. + +Tue Aug 9 15:21:43 1994 Andrew McCallum (mccallum@mink.cs.rochester.edu) + + * Changed name to libobjects. All files changed accordingly. + + * Makefile.in (DISTFILES): Added install.sh. + +Mon Aug 8 13:15:46 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Makefile.in (GOBJC_HDRS): Removed gobjc/ReferenceCounting.h. + Will be replaced by Retaining protocol. + +Sun Aug 7 17:13:08 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * config.nextcc.h: Created. + * configure.in: Update to use config.nextcc.h, define NeXT_cc + instead of NXcc. + Flipped the logic on NeXT32plus. (Reported by Matthias Klose + ) + + * Time.[hm]: Hack to make it work with Solaris rusage. + +Fri Jul 22 11:41:32 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Makefile.in (dist): Makefile.depend and Makefile.local forced to + be empty files by touch. + +Sat Jul 16 13:18:10 1994 R. Andrew McCallum (mccallum@ngoma) + + * configure.in: Define NXcc if using NeXT's cc. Sources + #ifdef'ing (NeXT) don't distinguish between NeXT cc and gcc on a + NeXT. + *.[hm]: Change #ifdef (NeXT) to #ifdef (NXcc) + + * Makefile.in: include Makefile.local. + * zone.c, gobjc/next-includes/zone.h: New files. + +Wed Jul 6 16:23:16 1994 Andrew McCallum (mccallum@swan.cs.rochester.edu) + + Changed name to from libcoll to libgobjc: + * All files: Changed name to "GNU Objective-C Class Library" in all + header comments. + * gobjc: Renamed coll to gobjc. + * gobjc/stdgobjc.h: Renamed from coll/collstd.h. Removed some + declarations that were already in gobjc/objc-malloc.h. + * gobjc/next-includes/objc: Created + * gobjc/next-includes/objc/ + {List.h,HashTable.h,Storage.h,NXStringTable.h}: Moved from gobjc. + * Makefile.in: Names changed from libcoll to libgobjc. + * gobjc/next-include/objc/*.h: Look in objc instead of coll. + + * gobjc/next-include/objc/List.h: Changed GNU_ to NX_. + +Tue Jul 5 15:51:58 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Storage.m (_makeRoomForAnotherIfNecessary): Added self-> to find + ivar in assert() call. Reported by ratlifc@ctron.com (Christian + A. Ratliff). + +Tue Jun 7 16:21:57 1994 Andrew McCallum (mccallum@raccoon.cs.rochester.edu) + + * List.m (incrementCount): Compare numElements and maxElements by + >= instead of ==. (Reported by Paul Kunz.) + +Fri Jun 3 13:26:42 1994 Andrew McCallum (mccallum@zebra.cs.rochester.edu) + + * LinkedList.m (successorOfElement:,predecessorOfElement:): Added. + * (removeElementAtIndex:): Return old element. + (Both reported by nisse@lysator.liu.se) + +Tue May 24 10:13:38 1994 Andrew McCallum (mccallum@brain.cs.rochester.edu) + + * coll/objc-gnu2next.h (objc_read_types): Removed ## from + NXWriteTypes() and NXReadTypes(). -cpp-traditional doesn't like + it, and 'args' should never be emtpy anyway. (Reported by Stefan + Reich ) + + * checks/Makefile.in (LIBS): Removed -lobjc, added LIBOBJC, made + it conditional on NeXT cc test from configure.in. + + * configure.in: Added LIBOBJC substitution. + + * collstd.m: Added missing semicolon to coll_NeXT_cc_version line. + + * Storage.m (_makeRoomForAnotherIfNecessary): Added assert() + checking for non-zero maxElements. + + * Makefile.in (install): Changed HDRS to INSTALLHDRS. (Reported + by Matthias Klose ) + +Mon May 9 18:30:05 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Storage.m (initCount:elementSize:description): Make sure + maxElements >= 1. (Reported by Paul Kunz.) + + These from Kresten Thorup: + * collstd.[hm] (#if NeXT): Added @interface/@end. Added + -shouldNotImplement:. + * configure.in, collstd.m: Changed NX_COMPILER_RELEASE to + NX_CURRENT_COMPILER_RELEASE. + +Sun May 8 19:40:40 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * configure.in: Added check for nested function support. + * config.nested.c: Created. + + * Makefile.in: Removed "-include Makefile.depend". Removed + "-include Makefile.local". + + * List.m (removeObjectAt:): Now returns old object. (Reported by + Paul Kunz.) + +Fri May 6 11:11:17 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * collstd.[hm]: Defined coll_NeXT_cc_version. + * checks/test11.m: Modified from NXStringTable test code provided + by + * checks/Makefile.in: Added test11.m, NXStringTable.example. + * Makefile.in: Added support for NXStringTable_scan.lex + * eltfuncs.m (elt_get_encoding): Fixed bug by adding char_ptr_u. + (__init_comp_func_hashtable(): Passing elt_{hash,compare}... to + coll_hash_new. + +Thu May 5 09:47:08 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Makefile.in, configure.in: Automatically check if using NeXT's + compiler. If so, add -cpp-traditional, don't compile or install + NeXT compatibility classes. If not, compile and install NeXT + compatibility classes. MAKEDEFINES now includes $(INCLUDEFLAGS). + + * StringTable*: Changed name to NXStringTable*. + + * collstd.[hm]: #ifdef NeXT -compare:. Added. + + * eltfuncs.m: Changed to use coll/collhash.[hc] instead of + objc/hash.[hc]. Added (void*) casts to __objcx[mc]alloc. + +Tue May 3 14:09:03 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Makefile.in: Removed Makefile.depend target. + +Tue Apr 19 17:55:45 1994 Andrew McCallum (mccallum@zebra.cs.rochester.edu) + + * Storage.m (initCount:elementSize:description, setNumSlots): + Clear the allocated memory. Patch contributed by Adam Fedor + + + * List.m (addObject:): Now calls insertObject:at:, as does NeXT's. + (removeLastObject): Now calls removeObjectAt:, as does NeXT's. + + The following are minor changes to enable compilation with + NeXTSTEP 3.3 cc. Thanks to Kresten Krab Thorup. + + * Collection.m (allocCopy): #ifdef NeXT object_copy takes 2 args. + * DelegateList.m (+initialize): Added. + * eltfuncs.m: Define _C_ATOM. Fix hash function types. #ifdef + NeXT add definitions for assert, objc_fatal, __objc_xmalloc, + __objc_xcalloc. + +Sat Feb 26 11:39:26 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * DelegateList.[hm] (delegateListCollection): Changed name from + delegateListList. Changed because what's returned is not a List. + (delegateListAddObjectIfAbsent:) Created. + +Fri Jan 21 13:29:48 1994 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collection.m (safeWithElementsCall:, + safeWithElementsCall:whileTrue:): Removed extra -addContentsOf:. + (Reported by Allan Clearwaters ) + +Fri Dec 17 14:45:30 1993 Andrew McCallum (mccallum@raccoon.cs.rochester.edu) + + * List.m (insertObject:at:): Fixed bug that occured when trying to + insert at index zero on an empty list. (Reported by Paul Kunz) + +Tue Nov 16 18:40:12 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collecting.h, Collection.m, *.m: Renamed -includesSameContents: + to -contentsEqual:. "Equal" reminds the programmer that "isEqual" + is called on content objects. I think "Same" is used by Brad + Cox's code to mean something different from "isEqual". Later we + could add "contentsSame:" if it proves useful. Don't use + "includes" because programmers might think that we are talking + about a subset operation here---no this method tests for complete + membership equality. + IndexedCollecting.h, IndexedCollection.m: Renamed + -includesSameContentsInOrder: to -contentsEqualInOrder:. + + Collection.m (isEqual:): Removed. Now we just let Object take + care of equality testing. If you want to test equality of + contents, use -hasEqualContents:. + +Thu Nov 11 17:01:37 1993 Andrew McCallum (mccallum@llama.cs.rochester.edu) + + * coll/KeyedCollecting.h, KeyedCollection.m: Changed + -insertObject:atKey: to putObject:atKey:. In KeyedCollection + "insert" doesn't really insert. If there already an object at + that key, it replaces. But we can't use replace because there + might not be an object at that key yet. "Insert" was a bad name + because the method replaces an element if there already is one at + that key. "Put" is different from "replace" because "put" can + place elements at keys that don't already have elements associated + with them. This naming scheme also has the advantage that we can + later use "insertObject:atKey: for a collection that allows + multiple elements at a single key. + + * Makefile.in, coll/collstd.h, collstd.m: Moved version + information from version.c to collstd files. + (version.c): Removed. + + * Time.m: (indexOf...Name, nameOf...Index): Implemented. + +Wed Nov 10 13:36:06 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collection.m: (-includesSameContents:): Added a check for same + comparisonFunction. + (-compare:): Implemented. + + * IndexedCollection.m (-indexOfFirstIn:, -indexOfFirstNotIn:): + Implemented. + + * readme.texi, news.texi: Created. Changed Makefile to support + these. + + * checks, checks/Makefile.in: Renamed tests directory to checks. + Created autoconf Makefile.in for checks directory. + +Wed Nov 3 10:27:52 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * coll/Collecting.h: (newEnumState, freeEnumState:) Added. Now + we can avoid memory leaks. Later we can built an Iterator class + on top of these methods if we like. + *.m: Make use of new enum state methods. + + * IndexedCollection.m (indexOfFirstDifference:) Implemented. + +Tue Nov 2 13:40:34 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * RBTree.m (removeElement:,_RBTreeDeleteFixup): Added. RBTree + should now be operational. + + * BinaryTree.m, RBTree (nilNode): Added. Now using this sentinal + to make a few operations more efficient. + +Mon Nov 1 15:07:48 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * *.m: Made sure all function pointers are dereferenced when + called. + + * SplayTree.m (-splayNode:, -sortAddElement:byCalling:, + -insertElement:after:, -insertElement:before:, + -insertElement:atIndex:, -removeElement:, + -_doSplayOperationOnNode:): Added. SplayTree should now be + operational. + + * eltfuncs.m (elt_fprintf_elt): Now passing "l" when fprintf'ing + ... long elements. + + * coll/CollectionPrivate.h (RETURN_BY_CALLING_EXCEPTION_FUNCTION): + No longer uses __builtin_apply and __builtin_return unnecessarily. + +Sun Oct 31 12:34:55 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * BinaryTree.m (-leftRotateAroundNode:, -rightRotateAroundNode:): + Fixed bug occurring when rotation child is nil. + (rootNode): Added. + + * Collection.m, KeyedCollection.m, IndexedCollection.m + (-...Object:...): Added CHECK_CONTAINS_OBJECTS_ERROR; + +Fri Oct 29 14:22:41 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * KeyedCollection.m, Collection.m: Removed use of LAMBDA(). + +Thu Oct 28 15:44:23 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * coll/Time.h: Removed from @interface line. + +Tue Oct 26 8:32:48 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Released version 931026. + +Mon Oct 25 12:41:28 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * coll/*Collecting.h: Removed shallowCopy... methods with weird + options. These can be done easily and more flexibly with + enumerations. + + * coll/*Collecting.h, *Colletion.m: Removed definition and use of + COLL_NO_ELEMENT, COLL_NO_OBJECT, COLL_NO_KEY, COLL_NO_INDEX. + Added ...ifAbsentCall: methods to replace this functionality. + + * coll/Collecting.h, Collection.m: ...AllOccurrences... methods + now return self. + +Thu Oct 21 17:41:49 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * libcoll.texi: Created. + +Tue Oct 19 10:25:34 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * coll/Collecting.h: Changed method name -freeContents to + -freeObjects. Both names are pretty clear, and the later has the + advantage of compatibility with NeXT. + + * coll/Collecting.h: Changed method name -containsObjects to + -contentsAreObjects. The previous name could be interpretted as + testing whether or not the collection was empty; in fact this + method just tests whether or not the collection was initialized to + hold objects (i.e. initEncoding:@encode(id)). + + * coll/collstd.h: Added #define's for defining nested functions + in the argument position: LAMBDA, LAMBDA_VOID_PERFORM, + LAMBDA_ID_PERFORM, LAMBDA_BOOL_PERFORM. + + * coll/Collecting.h, KeyedCollecting.h, IndexedCollecting.h: + Removed many methods for various combinations of perform:, + perform:with:, perform:in, perform:in:with:. All these can now be + replaced with ...ByCalling: methods now that we can easily define + nested functions with the LAMBDA macro's. These methods really + ballooned the size of the protocols, and they still didn't provide + all the potentially useful conbinations. This new scheme is far + more flexible. I left the -makeObjectsPerform: and + -makeObjectsPerform:with: for compatibility with NeXT. + +Mon Oct 18 15:18:01 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * eltfuncs.m: Fixed overflow bug in compare functions. + +Fri Oct 8 11:47:56 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * List.m (replaceObjectAt:): Now returns oldObject. + (makeObjectsPerform:with:): Now uses perform:with:. + Removed -sortUsingMethod:inObject:. + + * coll/SortedArray.h: removed. + +Thu Sep 30 10:52:14 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * List.m (makeObjectsPerform:, makeObjectsPerform:with:): Removed + dependence on _makeObjects...:reverseOrder:. Using #if instead. + + * Bag.m (removeElement:occurrences:): Added. Bag will now cause + error if you try to remove an element that's not there, or not + there enough times. + +Tue Sep 28 11:49:42 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * List.m, Storage.m: Now use objc_malloc/OBJC_MALLOC and friends + instead of malloc and friends. + + * Makefile.in, configure.in: Created. Now libcoll works with + autoconf. Also made some changes to *.m to take advantage of + autoconf. + + * collstd.m: Changed definition of free(). (thanks to + krab@iesd.auc.dk) + +Mon Sep 27 09:59:25 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Bag.m (-uniqueCount): Added. + + * HashTable.m (-initKeyDesc:valueDesc:capacity:) Increased + portability for {long, unsigned} ints. + + * IndexedCollecting.h, IndexedCollection.m: Added + -safe...InReverse methods. + + * List.m (copy): Added. In order to force -shallowCopy for + compatibility with NeXT. + + * collhash.[hc] (coll_hash_empty): Added. + + * Collecting.h, Collection.m: (-safe...) Added these enumerators + for doing enumerations while changing the contents of the + collection. + + * Collecting.h, Collection.m: (-initWithContentsOf:) Added. This + allows for certain efficiencies, like init'ing an Array with the + needed capacity from the start. + +Sat Sep 25 12:20:18 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collection.m, KeyedCollection, IndexedCollection.m: Extracted + message -comparisonFunction from inside loops to improve + efficiency. + + * Collecting.h, Collection.m: Removed the -shallowCopySelect..., + etc methods and replaced them with -withElementsTrueBy..., etc + methods. These shallowCopy methods make lots of sense in + SmallTalk where garbage collection makes enumeration on + temporary collections useful for iteration, but in ObjC I think + methods with a little more flexibility would be more helpful. I + also wanted to add more options to those {select,reject,collect} + methods: 1) the option of deep or shallow copies, 2) the option of + changing the class of the new copy. But if done in the old + framework this would have exploded the number of methods. The new + framework allows all the old functionality, plus the new options, + plus the option to do something useful without creating a new + collection. + +Tue Sep 21 11:52:46 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * *.m: Added -emptyCopy based on -allocCopy. Subclasses override + to take care of instance vars that must change. + + * Collecting.h, Collection.m: Changed -addCount:... to + -addObjectsCount:... and -addElementsCount:... + +Mon Sep 20 17:05:10 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * *.[hm]: Added code for archiving: -write:, writeInit:, + writeContents:, -read:, readInit:, readContents:. I'm not sure + this division of labor is the best. I'm open to suggestions for + different implementations. + + * *.[hm]: Changed all instances of the word "description" to + "encoding". Objective-C already uses @encode() for these things. + We shouldn't introduce new vocabulary for refering to the same + thing. + + * *.[hm]: Removed methods that allowed specification of + comparison function independent of encoding. This will allow us + to archive the comparison function by archiving the encoding. + Most people will be able to get custom comparisons by overriding + -compare:. If you really, really need some new weird comparisons + for non-objects, you can still subclass the collection and + override -comparisonFunction. If people think that we will want + to want custom comparisons of non-objects *very often*, then we + come up with another scheme that still allows meaningful archiving + of comparison functions. + +Sun Sep 19 19:30:02 1993 Andrew McCallum (mccallum@swan.cs.rochester.edu) + + * coll/eltfuncs.[hm]: Created. Moved functions for manipulating + elt's from CollectionPrivate.h to eltfuncs.h. This makes elt a + little more separate from libcoll, so others can use it too. I + changed the prefix on the names accordingly from coll_ to elt_. + Also, added function for getting encoding from comparison + function. Also, declared all elt_compare_ and elt_hash_ functions + extern. + +Thu Sep 9 09:49:29 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * LinkedListEltNode.[hm], BinaryTreeEltNode.[hm], + RBTreeEltNode.[hm]: Created these files and moved EltNode code + into them. This cleanly separates the basic LinkedList code from + the EltNodeCollector stuff (and similarly for BinaryTree and + RBTree). The EltNode stuff strikes me as being a little messy; + with this separation we can easily replace it later with something + cleaner (if we can think of something cleaner). + + * elt.h, *.m: Changed elt union names from *_t to *_u, following + suggestion of Burchard: *_t should be reserved for type names. + +Tue Aug 31 11:40:29 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Storage.[hm], List.[hm]: Removed many extra features that + aren't in the NeXT implementations. Our goal for these NeXT-based + objects should be compatibility, not kitchen-sink features. Let + people add features in Categories if they need them. + + * Storage.[hm]: Fixed return type for -removeLastElement to match + NeXT. Unfortunately this conflicts with the IndexedCollecting + declaration (NeXT's returns self, IndexedCollecting returns the + removed element). I really think methods that remove elemements + should return that element. We're just going to have to live with + this conflict. + + * Storage.[hm]: Changed declaration of instance var 'dataPtr' + from void** to void*, to match NeXT. + + * IndexedCollecting.h, IndexedCollection.m: Added -sortContents; + +Thu Aug 26 17:47:59 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * List.m: Changed default order of -makeObjectsPerform... and + fixed comment to match NeXTSTEP reality. + +Wed Jul 10 14:38:23 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * BinaryTree.m, RBTree.m, EltNodeCollector.[hm]: Created. + +Wed Jun 2 11:48:08 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * IndexedCollecting.h: Added + - successorOfObject: anObject; + - predecessorOfObject: anObject; + - (elt) successorOfElement: (elt)anElement; + - (elt) predecessorOfElement: (elt)anElement; + + * BinaryTree.h, RBTree.h: Created. + +Mon May 31 13:33:42 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Time.[hm]: Threw a Time object I wrote a while ago into the + .tar file. Maybe someone will find it useful. + + * IndexedCollecting.h, IndexedCollection.m: Added methods: + - (unsigned) indexOfFirstDifference: (id )aColl; + - (unsigned) indexOfFirstIn: (id )aColl; + - (unsigned) indexOfFirstNotIn: (id )aColl; + They fit well with desired functionality for Strings, but may also + be generally useful. + + * Created preliminary String class. It's very preliminary; I just + want to see how it will fit with IndexedCollecting. + + * Overhauled instance variables in heirarchy. Removed all + instance variables from abstract superclasses. This makes + subclassing an abstract superclass a bit more of a pain, but it + helps keep memory requirements down, especially for String, + LinkList and all IndexedCollections. + +Sat May 29 11:27:01 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * IndexedCollection.m: Made cast of void* to unsigned more + portable. + +Fri May 28 17:00:14 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * IndexedCollecting.h, IndexedCollection.m: Added + -insertContentsOf:atIndex: modified from Kresten Krab Thorup. + + * Collecting.h, Collection.m: Added {Object,Element} to inject, + detect, max and min methods. + +Wed May 26 12:20:21 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Overhauled error generation. Changed #define's so error + generation is easier to change again later, if necessary. Error + methods now have forwarding capability. See CollectionPrivate.h, + Collection.m, IndexedCollectionPrivate.h, IndexedCollection.m. + + * *.m: Fixed many small bugs found with -Wall. + + * Created Heap object. + + * Collection.m: Fixed -includesSameContents. + + * Collecting.h, Collection.m: Added -isSubsetOf: as written by + Kresten Krab Thorup. Removed -includesSubsetOf:. + +Tue May 25 14:14:33 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Removed ComparedCollecting protocol. Its only purpose was to + allow the user to manage a comparison function---this was silly, + though, because there already was a comparison function inherited + from Collection! No need to have two of them. Now that there is + a general interface for user-specified comparison functions, we + don't need the ComparedCollecting methods. This is a big help + because we no longer have the problem of trying to combine a + ComparedCollection class and Array class with some ugly multiple + inheritance issues. One disadvantage, however, is that it is + slightly more complicated to specify a comparator that is a + selector. + + * Overhauled comparison and hash functions. More changes than I + want to describe in detail here... 1) Created temporary versions + of hash.[hc] that do what I want, hopefully Kresten's new versions + of hash.[hc] will do something like this. Created collhash.[hc]. + 2) Added -init... methods that allow the users to specify their own + comparison and hash functions instead of accepting the defaults. + +Mon May 24 10:46:21 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collecting.h, Collection.m: Removed -initWith:,... and + -initDescription:with:,... methods. I don't want to add ..with: + version of all -init... methods. People can use addCount,... + instead. + + * Created IdListLink.[hm]. Changed -linkClass in ListedList.m to + return [IdListLink class] if LinkedList contains objects. + + * Collecting.h, elt.h: Moved definition of elt union to + + + * List.m: -isEqual: now checks [List count] at beginning. + + * List.m: -empty no longer realloc()'s. (for compatibility with + NeXT.) + + * List.[hm]: Added + - makeObjectsPerform:(SEL)aSel reverseOrder:(BOOL)flag; + - makeObjectsPerform:(SEL)aSel with:anObject reverseOrder:(BOOL)flag; + and changed -makeObjectsPerform: and -makeObjectsPerform:with: to + call them. This gives the option of compatibility with + pre-NeXTSTEP 3.0 List's. + +Sat May 22 13:53:25 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * Collection.m, Collecting.h: Changed type of initialArg from + void* to elt in inject.. methods. + +Fri May 21 18:52:03 1993 Andrew McCallum (mccallum@vein.cs.rochester.edu) + + * First alpha release announced on gnu-objc@prep.ai.mit.edu + diff --git a/Headers/gnustep/base/NSValue.h b/Headers/gnustep/base/NSValue.h index 8ea837f23..00763a90f 100644 --- a/Headers/gnustep/base/NSValue.h +++ b/Headers/gnustep/base/NSValue.h @@ -42,6 +42,7 @@ #ifndef STRICT_OPENSTEP + valueFromString: (NSString *)string; +- (BOOL) isEqualToValue: (NSValue*)other; #endif // Accessing Data @@ -56,7 +57,7 @@ @end -@interface NSNumber : NSValue +@interface NSNumber : NSValue // Allocating and Initializing diff --git a/Source/NSArray.m b/Source/NSArray.m index 7d202a130..021761c36 100644 --- a/Source/NSArray.m +++ b/Source/NSArray.m @@ -85,30 +85,6 @@ static Class NSMutableArray_concrete_class; return NSAllocateObject ([self _concreteClass], 0, z); } -/* This is the designated initializer for NSArray. */ -- initWithObjects: (id*)objects count: (unsigned)count -{ - [self subclassResponsibility:_cmd]; - return nil; -} - -- (unsigned) count -{ - [self subclassResponsibility:_cmd]; - return 0; -} - -- objectAtIndex: (unsigned)index -{ - [self subclassResponsibility:_cmd]; - return nil; -} - -@end - - -@implementation NSArrayNonCore - + array { return [[[self alloc] init] @@ -134,6 +110,30 @@ static Class NSMutableArray_concrete_class; autorelease]; } +/* This is the designated initializer for NSArray. */ +- initWithObjects: (id*)objects count: (unsigned)count +{ + [self subclassResponsibility:_cmd]; + return nil; +} + +- (unsigned) count +{ + [self subclassResponsibility:_cmd]; + return 0; +} + +- objectAtIndex: (unsigned)index +{ + [self subclassResponsibility:_cmd]; + return nil; +} + +@end + + +@implementation NSArrayNonCore + - (NSArray*) arrayByAddingObject: anObject { id na; @@ -622,12 +622,29 @@ static Class NSMutableArray_concrete_class; { /* a deep copy */ unsigned count = [self count]; - id objects[count]; + id oldObjects[count]; + id newObjects[count]; + id newArray; unsigned i; + BOOL needCopy = [self isKindOfClass: [NSMutableArray class]]; + + if (NSShouldRetainWithZone(self, zone) == NO) + needCopy = YES; + [self getObjects: oldObjects]; for (i = 0; i < count; i++) - objects[i] = [[self objectAtIndex:i] copyWithZone:zone]; - return [[[[self class] _concreteClass] allocWithZone:zone] - initWithObjects:objects count:count]; + { + newObjects[i] = [oldObjects[i] copyWithZone:zone]; + if (newObjects[i] != oldObjects[i]) + needCopy = YES; + } + if (needCopy) + newArray = [[[[self class] _concreteClass] allocWithZone:zone] + initWithObjects:newObjects count:count]; + else + newArray = [self retain]; + for (i = 0; i < count; i++) + [newObjects[i] release]; + return newArray; } /* The NSMutableCopying Protocol */ diff --git a/Source/NSCTemplateValue.m b/Source/NSCTemplateValue.m index 4a98b05d0..514588533 100644 --- a/Source/NSCTemplateValue.m +++ b/Source/NSCTemplateValue.m @@ -77,6 +77,49 @@ memcpy( value, &data, objc_sizeof_type([self objCType]) ); } +- (BOOL) isEqual: (id)other +{ + if ([other isKindOfClass: [self class]]) { + return [self isEqualToValue: other]; + } + return NO; +} + +- (BOOL) isEqualToValue: (NSValue*)aValue +{ + typedef _dt = data; + if ([aValue isKindOfClass: [self class]]) { + _dt val = [aValue TYPE_METHOD]; +#if TYPE_ORDER == 0 + return [data isEqual: val]; +#elif TYPE_ORDER == 1 + if (data.x == val.x && data.y == val.y) + return YES; + else + return NO; +#elif TYPE_ORDER == 2 + if (data == val) + return YES; + else + return NO; +#elif TYPE_ORDER == 3 + if (data.origin.x == val.origin.x && + data.origin.y == val.origin.y && + data.size.width == val.size.width && + data.size.height == val.size.height) + return YES; + else + return NO; +#elif TYPE_ORDER == 4 + if (data.width == val.width && data.height == val.height) + return YES; + else + return NO; +#endif + } + return NO; +} + - (const char *)objCType { typedef _dt = data; diff --git a/Source/NSCalendarDate.m b/Source/NSCalendarDate.m index 7fa72d40a..73e9606c2 100644 --- a/Source/NSCalendarDate.m +++ b/Source/NSCalendarDate.m @@ -24,9 +24,10 @@ #include #include #include -#include -#include -#include +#include +#include +#include +#include #ifndef __WIN32__ #include @@ -145,6 +146,27 @@ static id long_day[7] = {@"Sunday", return [d autorelease]; } +- (void) encodeWithCoder: (NSCoder*)aCoder +{ + [super encodeWithCoder: aCoder]; + [aCoder encodeObject: calendar_format]; + [aCoder encodeObject: time_zone]; +} + +- (id) initWithCoder: (NSCoder*)aCoder +{ + self = [super initWithCoder: aCoder]; + calendar_format = [aCoder decodeObject]; + time_zone = [aCoder decodeObject]; + return self; +} + +- (void) dealloc +{ + [calendar_format release]; + [super dealloc]; +} + // Initializing an NSCalendar Date - (id)initWithString:(NSString *)description { @@ -972,7 +994,7 @@ static id long_day[7] = {@"Sunday", - (void)setCalendarFormat:(NSString *)format { - calendar_format = format; + calendar_format = [format copyWithZone: [self zone]]; } // Getting and Setting Time Zones diff --git a/Source/NSConcreteNumber.m b/Source/NSConcreteNumber.m index fabb5d64e..b968c2f32 100644 --- a/Source/NSConcreteNumber.m +++ b/Source/NSConcreteNumber.m @@ -304,6 +304,21 @@ return [super isEqual: o]; } +- (id) copy +{ + return [self copyWithZone: NSDefaultMallocZone()]; +} + +- copyWithZone: (NSZone*)zone +{ + if (NSShouldRetainWithZone(self, zone)) { + return [self retain]; + } + else { + return NSCopyObject(self, 0, zone); + } +} + - (NSString *)descriptionWithLocale: (NSDictionary*)locale { return [NSString stringWithFormat:TYPE_FORMAT, data]; diff --git a/Source/NSConcreteValue.m b/Source/NSConcreteValue.m index b3feb85aa..746bde945 100644 --- a/Source/NSConcreteValue.m +++ b/Source/NSConcreteValue.m @@ -113,6 +113,11 @@ memcpy( value, data, objc_sizeof_type([objctype cString]) ); } +-(BOOL) isEqualToValue: (NSValue*)aValue +{ + return NO; +} + - (const char *)objCType { return [objctype cString]; diff --git a/Source/NSData.m b/Source/NSData.m index 6c8300765..21571140f 100644 --- a/Source/NSData.m +++ b/Source/NSData.m @@ -744,8 +744,12 @@ readContentsOfFile(NSString* path, void** buf, unsigned* len) - (id) copyWithZone: (NSZone*)zone { - [self subclassResponsibility:_cmd]; - return nil; + if (NSShouldRetainWithZone(self, zone) && + [self isKindOfClass: [NSMutableData class]] == NO) + return [self retain]; + else + return [[NSDataMalloc allocWithZone: zone] + initWithBytes: [self bytes] length: [self length]]; } - (id) mutableCopy @@ -755,8 +759,8 @@ readContentsOfFile(NSString* path, void** buf, unsigned* len) - (id) mutableCopyWithZone: (NSZone*)zone { - [self subclassResponsibility:_cmd]; - return nil; + return [[NSMutableDataMalloc allocWithZone: zone] + initWithBytes: [self bytes] length: [self length]]; } - (void) encodeWithCoder:(NSCoder*)coder @@ -1183,11 +1187,6 @@ readContentsOfFile(NSString* path, void** buf, unsigned* len) return [NSDataMalloc class]; } -- (id) copyWithZone: (NSZone*)zone -{ - return [self retain]; -} - - (void) dealloc { if (bytes) @@ -1311,12 +1310,6 @@ readContentsOfFile(NSString* path, void** buf, unsigned* len) return length; } -- (id) mutableCopyWithZone: (NSZone*)zone -{ - return [[NSMutableDataMalloc allocWithZone:zone] initWithBytes: bytes - length: length]; -} - - (void*) relinquishAllocatedBytes { void *buf = bytes; @@ -1552,11 +1545,6 @@ readContentsOfFile(NSString* path, void** buf, unsigned* len) return [NSMutableDataMalloc class]; } -- (id) copyWithZone: (NSZone*)zone -{ - return [[NSDataMalloc allocWithZone:zone] initWithBytes:bytes length:length]; -} - - (void) dealloc { if (bytes) @@ -1706,12 +1694,6 @@ readContentsOfFile(NSString* path, void** buf, unsigned* len) return bytes; } -- (id) mutableCopyWithZone: (NSZone*)zone -{ - return [[NSMutableDataMalloc allocWithZone:zone] initWithBytes: bytes - length: length]; -} - - (id) setCapacity: (unsigned int)size { if (size != capacity) diff --git a/Source/NSDictionary.m b/Source/NSDictionary.m index a0539cb22..9c7a4ea48 100644 --- a/Source/NSDictionary.m +++ b/Source/NSDictionary.m @@ -367,22 +367,41 @@ compareIt(id o1, id o2, void* context) - copyWithZone: (NSZone*)z { /* a deep copy */ - int count = [self count]; - id objects[count]; - NSObject *keys[count]; - id enumerator = [self keyEnumerator]; + unsigned count = [self count]; + id oldKeys[count]; + id newKeys[count]; + id oldObjects[count]; + id newObjects[count]; + id newDictionary; + unsigned i; id key; - int i; + NSEnumerator *enumerator = [self keyEnumerator]; + BOOL needCopy = [self isKindOfClass: [NSMutableDictionary class]]; + if (NSShouldRetainWithZone(self, z) == NO) + needCopy = YES; for (i = 0; (key = [enumerator nextObject]); i++) { - keys[i] = [key copyWithZone:z]; - objects[i] = [[self objectForKey:key] copyWithZone:z]; + oldKeys[i] = key; + oldObjects[i] = [self objectForKey:key]; + newKeys[i] = [oldKeys[i] copyWithZone:z]; + newObjects[i] = [oldObjects[i] copyWithZone:z]; + if (oldKeys[i] != newKeys[i] || oldObjects[i] != newObjects[i]) + needCopy = YES; } - return [[[[self class] _concreteClass] alloc] - initWithObjects:objects - forKeys:keys + if (needCopy) + newDictionary = [[[[self class] _concreteClass] alloc] + initWithObjects:newObjects + forKeys:newKeys count:count]; + else + newDictionary = [self retain]; + for (i = 0; i < count; i++) + { + [newKeys[i] release]; + [newObjects[i] release]; + } + return newDictionary; } - mutableCopyWithZone: (NSZone*)z diff --git a/Source/NSGString.m b/Source/NSGString.m index b479ad514..2d0ce03c9 100644 --- a/Source/NSGString.m +++ b/Source/NSGString.m @@ -145,7 +145,8 @@ char *r; OBJC_MALLOC(r, char, _count+1); - ustrtostr(r,_contents_chars, _count); + if (_count > 0) + ustrtostr(r,_contents_chars, _count); r[_count] = '\0'; [[[MallocAddress alloc] initWithAddress:r] autorelease]; return r; diff --git a/Source/NSHost.m b/Source/NSHost.m index 8371f7580..cb49cf5c5 100644 --- a/Source/NSHost.m +++ b/Source/NSHost.m @@ -224,22 +224,32 @@ static NSMutableDictionary *_hostCache = nil; [super encodeWithCoder: aCoder]; [aCoder encodeObject: [self address]]; } + +#if 1 /* GNUstep specific method for more efficient decoding. */ + (id) newWithCoder: (NSCoder*)aCoder { NSString *address = [aCoder decodeObject]; return [NSHost hostWithAddress: address]; } -/* OpenStep method for decoding (not used) */ +#else +/* OpenStep methods for decoding (not used) */ +- (id) awakeAfterUsingCoder: (NSCoder*)aCoder +{ + return [NSHost hostWithAddress: [addresses objectAtIndex: 0]]; +} + - (id) initWithCoder: (NSCoder*)aCoder { NSString *address; [super initWithCoder: aCoder]; address = [aCoder decodeObject]; - [self dealloc]; - return [NSHost hostWithAddress: address]; + addresses = [NSArray arrayWithObject: address]; + [address release]; + return self; } +#endif - (BOOL)isEqualToHost:(NSHost *)aHost { diff --git a/Source/NSNumber.m b/Source/NSNumber.m index 760c74506..32ebe545a 100644 --- a/Source/NSNumber.m +++ b/Source/NSNumber.m @@ -260,6 +260,18 @@ return self=[[NSUShortNumber alloc] initValue:&value withObjCType:NULL]; } +- (id) copy +{ + [self subclassResponsibility:_cmd]; + return nil; +} + +- copyWithZone: (NSZone*)zone +{ + [self subclassResponsibility:_cmd]; + return nil; +} + - (NSString*) description { return [self descriptionWithLocale: nil]; diff --git a/Source/NSString.m b/Source/NSString.m index 584d73bfd..36885dd62 100644 --- a/Source/NSString.m +++ b/Source/NSString.m @@ -557,7 +557,7 @@ handle_printf_atsign (FILE *stream, - (id) init { - [super init]; + self = [super init]; return self; } @@ -1325,7 +1325,7 @@ if (mask & NSLiteralSearch) [aString getCharacters:s2]; s2[s2len] = (unichar)0; end = s1len+1; - if (s2len > s1len) + if (s2len < s1len) end = s2len+1; if (mask & NSCaseInsensitiveSearch) @@ -1346,7 +1346,12 @@ if (mask & NSLiteralSearch) if (s1[i] > s2[i]) return NSOrderedDescending; } } - return NSOrderedSame; + if (s1len > s2len) + return NSOrderedDescending; + else if (s1len < s2len) + return NSOrderedAscending; + else + return NSOrderedSame; } /* if NSLiteralSearch */ else { @@ -1362,9 +1367,9 @@ else while(myCount < end) { if(strCount>=[aString length]) - return NSOrderedAscending; - if(myCount>=[self length]) return NSOrderedDescending; + if(myCount>=[self length]) + return NSOrderedAscending; myRange = [self rangeOfComposedCharacterSequenceAtIndex: myCount]; myCount += myRange.length; strRange = [aString rangeOfComposedCharacterSequenceAtIndex: strCount]; @@ -1379,7 +1384,7 @@ else return result; } /* while */ if(strCount<[aString length]) - return NSOrderedDescending; + return NSOrderedAscending; return NSOrderedSame; } /* else */ } @@ -2590,7 +2595,12 @@ else - copyWithZone: (NSZone*)zone { - return [[[self class] allocWithZone:zone] initWithString:self]; + if ([self isKindOfClass: [NSMutableString class]] || + NSShouldRetainWithZone(self, zone) == NO) + return [[[[self class] _concreteClass] allocWithZone:zone] + initWithString:self]; + else + return [self retain]; } /* xxx Temporarily put this NSObject-like implementation here, so diff --git a/Source/NSTimeZone.m b/Source/NSTimeZone.m index 59f0a546a..02d1ea859 100644 --- a/Source/NSTimeZone.m +++ b/Source/NSTimeZone.m @@ -327,14 +327,25 @@ decode (const void *ptr) - (void)encodeWithCoder: aCoder { [super encodeWithCoder: aCoder]; - [aCoder encodeObject: name]; + if (self == localTimeZone) + [aCoder encodeObject: @"NSLocalTimeZone"]; + else + [aCoder encodeObject: name]; +} + +- (id) awakeAfterUsingCoder: aCoder +{ + if ([name isEqual: @"NSLocalTimeZone"]) { + return localTimeZone; + } + return [NSTimeZone timeZoneWithName: name]; } - initWithDecoder: aDecoder { - /* FIXME?: is this right? */ self = [super initWithCoder: aDecoder]; - return (self = (id)[NSTimeZone timeZoneWithName: [aDecoder decodeObject]]); + name = [aDecoder decodeObject]; + return self; } - (NSTimeZoneDetail*)timeZoneDetailForDate: (NSDate*)date diff --git a/Source/NSValue.m b/Source/NSValue.m index cf3f2abc8..44e7000c6 100644 --- a/Source/NSValue.m +++ b/Source/NSValue.m @@ -88,6 +88,11 @@ return self; } +- (id)copy +{ + return [self copyWithZone: NSDefaultMallocZone()]; +} + - (id)copyWithZone:(NSZone *)zone { if (NSShouldRetainWithZone(self, zone)) @@ -203,6 +208,20 @@ [self subclassResponsibility:_cmd]; } +- (BOOL)isEqual: (id)other +{ + if ([other isKindOfClass: [self class]]) { + return [self isEqualToValue: other]; + } + return NO; +} + +- (BOOL)isEqualToValue: (NSValue*)other +{ + [self subclassResponsibility:_cmd]; + return NO; +} + - (const char *)objCType { [self subclassResponsibility:_cmd]; diff --git a/Source/TcpPort.m b/Source/TcpPort.m index f5d7908fb..c7cb050b4 100644 --- a/Source/TcpPort.m +++ b/Source/TcpPort.m @@ -1439,8 +1439,10 @@ static NSMapTable *out_port_bag = NULL; sockaddr, sizeof (p->_remote_in_port_address)); NSMapInsert (out_port_bag, (void*)p, (void*)p); +/* NSLog(@"Out port changed from %@ to %@\n", od, [p description]); +*/ } #endif }