libs-base/ChangeLog.1

10872 lines
416 KiB
Groff
Raw Permalink Normal View History

Wed Mar 11 17:11:23 1998 Adam Fedor <fedor@doc.com>
* Version: Version 0.5.0;
Wed Mar 11 11:02:49 1998 Scott Christley <scottc@net-community.com>
* doc/gnustep-howto.tmpl.texi: Update.
* GNUstep-HOWTO: Regenerate.
Tue Mar 10 9:40:00 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* 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 <david@dementia.wupper.de>).
Thu Feb 26 8:12:00 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* 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 <scottc@stetson.net-community.com>
* 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 <fedor@ultra.doc.com>
* 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 <scottc@net-community.com>
* src/include/config.h.in: Create and add back into repository.
Thu Feb 12 13:31:00 1998 Adam Fedor <fedor@doc.com>
* src/NSDictionary.m ([-copy]): New method.
Mon Feb 9 13:08:27 1998 Adam Fedor <fedor@doc.com>
* 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 <ulrich@mis.mpg.de>
* src/NSHost.m: Remove arpa/inet.h
* src/TcpPort.m: Likewise.
* src/UnixFileHandle.m: Likewise.
patches from Paul Kunz <Paul_Kunz@slac.stanford.edu>
Thu Feb 5 10:12:00 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* 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 <fedor@ultra.doc.com>
* 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 <fedor@ultra.doc.com>
* 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 <mkienen@arsc.edu>)
Fri Jan 30 20:38:56 1998 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* src/NSPage.m (NSRealMemoryAvailable): Add implementation for
GNU/Linux (Patch from Matt Jenkins <mdj@arcadia.cs.rmit.EDU.AU>).
* 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 <masata-y@aist-nara.ac.jp>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@spanky.doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* Version: Release 0.4.0.
Thu Jan 8 09:42:39 1998 Adam Fedor <fedor@doc.com>
* 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 <stevo@btinternet.com>
* 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 <scottc@net-community.com>
* 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 <Matthias.Klose@cs.tu-berlin.de>).
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* src/Random.m ([Random -randomFloatBetween:and:]): Add lowBound
(Fix suggested by Masatake Yamato <masata-y@is.aist-nara.ac.jp>).
Fri Dec 26 10:25:00 1997 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <wacko@laplace.snu.ac.kr>
* src/NSProcessInfo.m (_gnu_process_noobjc_args): Use malloc().
(_gnu_noobjc_free_vars): Use free().
Thu Dec 11 13:58:39 1997 Adam Fedor <fedor@doc.com>
* configure.in: Remove unneeded tests.
* GNUmakefile (SUBPROJECTS): Remove checks and examples.
Tue Dec 9 17:47:21 1997 Yoo C. Chung <wacko@laplace.snu.ac.kr>
* src/include/behavior.h: Include <objc/objc-api.h>.
* src/NSProcessInfo.m: Include <unistd.h>.
* src/NSPipe.m: Include <unistd.h>.
* src/NSPage.m: Include <string.h>.
* src/NSLog.m: Include <unistd.h>.
* src/NSHost.m: Include <unistd.h>.
* src/NSDistributedLock.m: Include <string.h>.
* src/NSDictionary.m: Include <gnustep/base/behavior.h>.
* src/NSBundle.m ([NSBundle
+_bundleResourcePathsWithRootPath:subPath:]): Removed unused
variables.
* src/NSArray.m: Include <gnustep/base/behavior.h>
([NSArrayNonCore -descriptionWithIndent:]): Changed argument to
unsigned.
* src/UnixFileHandle.m: Include <arpa/inet.h> and <string.h>.
* src/UdpPort.m: Include <unistd.h>.
* src/StdioStream.m: Include <string.h>.
* src/Coder.m: Include <gnustep/base/behavior.h>.
* 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 <stevo@btinternet.com>
* 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
<richard@brainstorm.co.uk>
* src/NSGCString.m ([NSGMutableCString
-initWithCStringNoCopy:length:freeWhenDone:]): Changed to fix
memory leak in this method. Code by Richard Frith-Macdonald
<richard@brainstorm.co.uk>
* 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 <scottc@net-community.com>
* 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 <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <anoq@vip.cybercity.de>.
Tue Nov 18 14:13:13 1997 Adam Fedor <fedor@doc.com>
* src/include/NSNotification.h: Correct placeholder size (bug
submitted by Ville-Pertti Keinonen <will@cc.hut.fi>.
Wed Nov 12 10:10:33 1997 Adam Fedor <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <scottc@speedy.net-community.com>
* 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 <fedor@doc.com>
* 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 <wacko@laplace.snu.ac.kr>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <scottc@stetson.net-community.com>
* 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 <fedor@spanky.doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@oc.com>
* 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 <wacko@laplace.snu.ac.kr>
* src/StdioStream.m ([StdioStream -dealloc]): Check fp before
closing.
Wed Oct 22 19:54:07 1997 Yoo C. Chung <wacko@laplace.snu.ac.kr>
* 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 <fedor@doc.com>
* 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 <scottc@net-community.com>
* 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 <scottc@net-community.com>
* 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 <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>.
* src/NSTimeZone.m: Reformat with better spacing.
([NSTimeZone +initialize]): Find local time zone.
Changes from Yoo C. Chung <wacko@laplace.snu.ac.kr>.
Thu Oct 16 16:14:31 1997 Scott Christley <scottc@net-community.com>
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <scottc@net-community.com>
* 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 <fedor@doc.com>
* 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 <scottc@net-community.com>
* src/NSArray (initWithObjects:rest:): Fix count.
Tue Sep 16 15:50:39 1997 Adam Fedor <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <scottc@net-community.com>
* 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 <richard@brainstorm.co.uk>
* src/NSString.m: Added [-classForPortCoder:]) method for
NXConstantString to prevent minor DO memory leak.
Fri Sep 12 6:15:00 1997 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* 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 <scottc@net-community.com>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@doc.com>
* 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 <fedor@doc.com>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@spanky.doc.com>
* src/NSUser.m (NSUserName): Check for login_name in other places
(bug submitted by Manuel Guesdon <mguesdon@sbuilders.com>.
Tue Jul 15 13:55:19 1997 Gregor Hoffleit <flight@mathi.uni-heidelberg.DE>
* 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 <richard@brainstorm.co.uk>
* 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 <gcb@acpub.duke.edu>
* src/NSString.m ([NSString -componentsSeparatedByString:]):
Fixed calculation of new search range.
Mon Jun 9 16:05:26 1997 ANOQ of the sun <anoq@vip.cybercity.dk>
* 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 <wacko@laplace.snu.ac.kr>
* src/include/preface.h.in: Include <sys/param.h>.
* 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 <stevoc@lotus.mpt.com.mk>
* 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 <wacko@laplace.snu.ac.kr>
* 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 <stevoc@lotus.mpt.com.mk>
* 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 <fedor@doc.com>
* 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 <stevoc@lotus.mpt.com.mk>
* 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 <stevoc@lotus.mpt.com.mk>
* 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 <wacko@laplace.snu.ac.kr>
* src/NSString.m ([NSString -initWithFormat:arguments:]): Skip
arguments dealt with in vsprintf().
Sun May 11 10:12:11 1997 Stevo Crvenkovski <stevoc@lotus.mpt.com.mk>
* 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 <richard@brainstorm.co.uk>
* 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 <wacko@laplace.snu.ac.kr>
* 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 <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <jstevens@bamboo.verinet.com>
* 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 <richard@brainstorm.co.uk>
* 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 <mccallum@jprc.com>
* src/Makefile.in (GNUSTEP_OTHER_SRCFILES): Add gdomap.c and
gdomap.h.
* checks/NSData-test.m: New file from John Stevens
<jstevens@bamboo.verinet.com>.
* 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 <signal.h>. 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 <libc.h>. Include
<Foundation/NSDictionary.h>.
* src/Connection.m: Include <Foundation/NSConnection> 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 <richard@brainstorm.co.uk>.)
* 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
<richard@brainstorm.co.uk>>)
* src/NSCharacterSet.m ([NSCharacterSet_PATH]): Value of global
variable changed to absolute path. (Reported by Richard
Frith-Macdonald <richard@brainstorm.co.uk>.)
* 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
<richard@brainstorm.co.uk>.)
* 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 <stevoc@lotus.mpt.com.mk>.)
Fri Apr 25 01:30:00 1997 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* 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 <richard@brainstorm.co.uk>
* 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 <wacko@laplace.snu.ac.kr>
* src/NSZone.m: New e-mail address. Default default zone
alignment problems fixed.
Sun Mar 23 19:55:19 1997 Mark Kettenis <kettenis@phys.uva.nl>
* 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 <kettenis@phys.uva.nl>
* 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 <stevoc@lotus.mpt.com.mk>
* 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 <wacko@power1.snu.ac.kr>
* src/NSZone.m: Use [NSString -cStringNoCopy].
Wed Feb 12 13:51:42 1997 Yoo C. Chung <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* examples/custom-zone.m: New file.
Sun Feb 9 20:28:00 1997 Yoo C. Chung <wacko@power1.snu.ac.kr>
* 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 <scottc@net-community.com>
* 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 <scottc@net-community.com>
* 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 <scottc@net-community.com>
* 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 <Jeremy@hksys.com>
* 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 <mccallum@jprc.com>
* 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 <mccallum@jprc.com>
* 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
<lukeh@xedoc.com.au>.
Tue Feb 25 17:12:52 1997 Scott Christley <scottc@net-community.com>
* 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 <wacko@power1.snu.ac.kr>
* src/NSZone.m (fcheck): Implemented.
(fstats): Likewise.
(ncheck): Likewise.
(nstats): Likewise.
* src/include/NSZone.h: New declarations of 'NSZoneRegisterChunk'
and 'NSZoneChunkOverhead'.
Include <objc/objc.h> instead of <objc/thr.h>.
* 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 <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* src/NSZone.m (nmalloc): Return NULL when size is 0.
Tue Feb 4 09:16:05 1997 Yoo C. Chung <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* src/NSZone.m: Spell checked comments.
Tue Jan 21 13:31:11 1997 Yoo C. Chung <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* 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 <wacko@power1.snu.ac.kr>
* 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 <mccallum@cs.cmu.edu>
* 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 <Foundation/NSString.h>
instead of <gnustep/base/String.h>.
* 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 <gnustep/base/preface.h>
Sat Jan 11 16:34:57 1997 Andrew McCallum <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* checks/client.m: Include <Foundation/NSString.h> instead of
<gnustep/base/String.h>.
(main): Use class NSString instead of String.
* checks/server.m: Include <Foundation/NSString.h> instead of
<gnustep/base/String.h>.
* 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
<richard@brainstorm.co.uk>.)
* 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 <richard@brainstorm.co.uk>.)
Thu Jan 9 17:06:00 1996 Richard frith-Macdonald <richard@brainstorm.co.uk>
* 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 <scottc@net-community.com>
* 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 <scottc@net-community.com>
* 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 <richard@brainstorm.co.uk>
* 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 <mccallum@cs.cmu.edu>
* src/NSDictionary.m ([NSDictionary -initWithContentsOfFile:]):
Implemented. (By David Wetzel <dave@turbocat.de>.)
* src/NSAssertionHandler.m [NSAssertionHandler
-handleFailureInMethod:object:file: lineNumber:description:]: Use
the FORMAT argument! (Reported by Wolfgang Baron
<wbaron@ixpoint.de>.)
* src/NSString.m ([NSString -hasPrefix:]): Fix logic to return
correct value.
(Reported by David Wetzel <dave@turbocat.de>.)
* src/NSString.m ([NSString -description]): Free DEST to prevent
memory leak!
(Reported by Wolfgang Baron <wbaron@ixpoint.de>.)
* src/NSException.m (_NSUncaughtExceptionHandler): Don't declare
it static. (Reported by John Hethcox <johnhe@vnet.net>.)
* 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 <wacko@power1.snu.ac.kr>
* src/NSPage.m (NSLogPageSize): Fix logic to return correct value.
Wed Nov 13 16:27:39 1996 Adam Fedor <fedor@wave.Colorado.edu>
* 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 <richard@brainstorm.co.uk>
* 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 <fedor@boulder.Colorado.edu>
* 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 <fedor@wave.Colorado.edu>
* src/objc-load.c: Include <gnustep/base/config.h>.
Sat Sep 21 15:18:47 1996 Yoo C. Chung <wacko@power1.snu.ac.kr>
* src/NSZone.m: Use constructor attribute with initialize().
Thu Sep 19 22:09:08 1996 Yoo C. Chung <wacko@power1.snu.ac.kr>
* 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 <nwc@mindspring.com>
* 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 <mccallum@cs.cmu.edu>
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 <String>.
* 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 <gnustep/base/String.h>
* 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 <mccallum@cs.cmu.edu>
* 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 <gnustep/base/String.h>
and <gnustep/base/IndexCollection.h>.
[!NO_GNUSTEP]: Declare -cStringNoCopy.
* src/UdpPort.m: Don't include <gnustep/base/String.h>
* 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
<String>).
* 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 <gnustep/base/String.h>.
([NSString +initialize]): Don't use static variable to prevent getting
run twice.
Mon Nov 18 11:30:39 1996 Andrew McCallum <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* 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 <gnustep/base/config.h>, and
do it first.
* src/NSUser.m (NSUserName): Make is work for SOLARIS. (Reported
by M. Decugis <mds@sepgifbr.sep.de.edf.fr>.)
* 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
<mds@sepgifbr.sep.de.edf.fr>.)
* 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
<mds@sepgifbr.sep.de.edf.fr>.)
* src/NSPage.m (getpagesize) [__SOLARIS__]: Define as macro making
proper sysconf call. (Reported by M. Decugis
<mds@sepgifbr.sep.de.edf.fr>.)
(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 <richard@brainstorm.co.uk>.)
* Heap.m: Fix index comparisons. (From Richard Frith-Macdonald
<richard@brainstorm.co.uk>.)
* 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 <richard@brainstorm.co.uk>.
* src/RunLoop.m: Added implementation of new methods for
notification of readiness of file descriptors for reading and
writing. Done by Richard Frith-Macdonald
<richard@brainstorm.co.uk>.
* examples/first-server.m: Added test of RunLoop FD listening.
Done by Richard Frith-Macdonald <richard@brainstorm.co.uk>.
* 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 <richard@brainstorm.co.uk>.)
* src/RunLoop.m ([RunLoop -acceptInputForMode:beforeDate:]): Fix
assignment of TIMEOUT.TV_USEC. (Reported by Richard
Frith-Macdonald <richard@brainstorm.co.uk>.)
Wed Oct 23 11:19:05 1996 Scott Christley <scottc@net-community.com>
* 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 <fedor@wave.Colorado.edu>
* 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 <scottc@net-community.com>
* 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 <scottc@net-community.com>
* 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 <nwc@gun.com>
* NSString.m: Implemented -initWithContentsOfFile: and
-propertyListFromStringsFileFormat:.
* stringsfile.l, stringsfile.y: New files.
Fri Oct 25 20:22:37 1996 Andrew McCallum <mccallum@cs.cmu.edu>
* src/StdioStream.m (strerror) [!HAS_STRERROR]: New function from
Richard Frith-Macdonald <richard@brainstorm.co.uk>.
* configure.in: Check for strerror().
Fri Sep 27 10:33:07 1996 Adam Fedor <fedor@pulse.Colorado.edu>
* 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 <fedor@pulse.Colorado.edu>
* src/ostream.m (ostream_close_memory): Change to
OSTREAM_SAVEBUFFER constant.
Wed Sep 25 18:32:14 1996 Scott Christley <scottc@net-community.com>
* 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 <mccallum@cs.cmu.edu>
* src/NSSet.m ([NSSet -anyObject]): Implemented.
* src/NSDictionary.m ([NSDictionary
+dictionaryWithObjectsAndKeys:]): New method.
Wed Sep 25 08:47:33 1996 Andrew McCallum <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* 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
<erich@uruk.org>.)
* 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 <values.h>; use <sys/types.h> if we don't.
* configure.in: Add check for <values.h> needed by
BinaryCStream.m.
(Reported by Gregor Hoffleit <flight@mathi.uni-heidelberg.de>.)
* src/NSUserDefaults.m: Don't try to include NeXT's headers; just
include GNUstep headers.
* src/include/NSUserDefaults.h: Likewise.
(Reported by Gregor Hoffleit <flight@mathi.uni-heidelberg.de>.)
* 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 <fedor@wave.Colorado.edu>.)
* 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 <nwc@wsc.com>.)
* 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 <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* 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 <fedor@pulse.Colorado.edu>
* 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 <mccallum@cs.cmu.edu>
* 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 <Eric.Norum@usask.ca>.
* src/NSObject.m ([NSObject -doesNotRecognizeSelector:]): Raise
NSInvalidArgumentException, not NSGenericException. (Reported by
Jeremy Bettis <jeremy@tddi.inetnebr.com>.)
Mon Sep 16 20:11:54 CDT 1996 Jeremy Bettis <jeremy@hksys.com>
* 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 <mccallum@cs.cmu.edu>
* aclocal.m4 (DYNAMIC_LINKER): Put double quotes around some
$-variable dereferences. (Reported by Richard Frith-Macdonald
<richard@brainstorm.co.uk>.)
* src/o_vscanf.c: Include <objc/objc-api.h>. (Reported by Richard
Frith-Macdonald <richard@brainstorm.co.uk>.)
* 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 <mccallum@cs.cmu.edu>
* 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 <Eric.Norum@usask.ca>.)
* 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 <fedor@wave.Colorado.edu>
* src/NSCharacterSet.m ([NSCharacterSet -_bitmapForSet:number:]):
Retain cached set.
Wed Sep 4 11:29:31 1996 Andrew McCallum <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* 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 <fedor@pulse.Colorado.edu>
* 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 <fedor@pulse.Colorado.edu>
* src/include/NSException.h (NS_HANDLER): Change local exception
variable name.
Wed Jul 17 16:04:29 1996 Adam Fedor <fedor@wave.Colorado.edu>
* 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 <mccallum@cs.cmu.edu>
* 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 <Eric.Norum@usask.ca>.)
([NSString -rangeOfString:aStringoptions:maskrange:aRange]):
Implemented. (By Eric Norum.)
* src/NSUser.m: Include <Foundation/NSPathUtilities.h>.
Sun Aug 25 16:12:49 1996 Andrew McCallum <mccallum@cs.cmu.edu>
* 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 <gnustep/base/preface.h>. 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 <mccallum@cs.cmu.edu>
* src/NSUser.m (NSHomeDirectory): Use NSHomeDirectoryForUser
instead of the HOME environment variable.
* src/NSUserDefaults.m: #include <Foundation/NSPathUtilities.h> 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 <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* src/include/NSArray.h: Remove declaration of NonCore classes;
just the category is sufficient.
Mon Sep 2 09:11:34 1996 Andrew McCallum <mccallum@cs.cmu.edu>
* 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 <mccallum@cs.cmu.edu>
* src/Dictionary.m ([Dictionary -removeObject:]): Implemented
method. (Needs testing!)
Thu Jul 11 21:12:41 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* Version (SUBMINOR_VERSION): Version 0.2.6.
Tue Jun 25 12:56:01 1996 Scott Christley <scottc@ocbi.com>
* 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 <scottc@ocbi.com>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mds@sepgifbr.sep.de.edf.fr>.)
Mon Jul 8 21:55:11 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <fedor@wave.Colorado.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mds@sepgifbr.sep.de.edf.fr>.)
([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 <string.h> 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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
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 <mccallum@pad>
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 <string.h>.
(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 <mccallum@pad>
* src/gnustep/base/preface.h.in: Fix comment.
Mon Jun 3 12:07:16 1996 Andrew McCallum <mccallum@pad>
* src/Makefile.in (gnustep/base): Remove `gnustep' and `base'
before trying to recreate them.
Fri May 31 10:06:05 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <Foundation/NSException.h>. Fix typo.
* src/proplist.l (unescstr): Bug fix from Nathan Urban
<nurban@csugrad.cs.vt.edu>.
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 <gnustep/base/Array.h>.
* 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 <fedor@wave.Colorado.edu>
* src/NSProcessInfo.m (main): Pass `env' variable to
gnustep_base_user_main.
Tue May 28 09:37:19 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <string.h> and <String.h> 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 <gnustep/base/preface.h> 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 <mccallum@cs.rochester.edu>
* 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 <fedor@wilma.Colorado.EDU>
* 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 <scottc@net-community.com>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <objc/thr.h>, not
<objc/thread.h>.
* src/include/NSThread.h: Include renamed <objc/thr.h>, not
<objc/thread.h>. Prepend ivars with underscore. Formatting
cleanups.
* src/Makefile.in (gnustep/base): Use -r test for file existance,
not -e. (Reported by Adam Fedor <fedor@mode.colorado.edu>.)
* src/BinaryCStream.m: Include <netinet/in.h> for byte-conversion;
needed on Solaris. (Reported by Adam Fedor
<fedor@mode.colorado.edu>.)
* src/Makefile.in (AUTHORS): Also search for "Rewritten by"
string.
Sun May 12 19:57:53 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* src/BinaryCStream.m: #include <values.h> to get BITSPERBYTE on
Solaris. (Reported by M. Decugis <mds@sepgifbr.sep.de.edf.fr>.)
Wed May 8 10:53:07 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* src/objc-load.c (objc_load_module): Uncomment local vars when
needed. (Provided by Bill Bumgarner <bbum@friday.com>.)
* src/BinaryCStream.m (BITSPERBYTE): Define if not defined and on
NeXT. (Provided by Bill Bumgarner <bbum@friday.com>.)
Tue May 7 10:55:11 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <chapman@cs.washington.edu>.)
* 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
<sattler@volker.cs.Uni-Magdeburg.DE>.)
Tue Apr 30 10:19:40 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
Major renaming!
"GNU Objective C Class Library" -> "Gnustep Base Library"
libobjects.a -> libgnustep-base.a
libobjects.tar.gz -> gstep-base.tar.gz
<objects/*.h> -> <gnustep/base/*.h>
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 <Foundation/NSString.h>
* 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 <Foundation/NSString.h>.
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 <objects/*.h> to #include <gnustep/base/*.h>.
* 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
<objects/NSString.h>
* src/Foundation/NSSet.h: Insert contents of <objects/NSSet.h>
* src/Foundation/NSDictionary.h: Insert contents of
<objects/NSDictionary.h>
* src/Foundation/NSCoder.h: Insert contents of <objects/NSCoder.h>
* src/Foundation/NSArray.h: Insert contents of <objects/NSArray.h>
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 <mccallum@cs.rochester.edu>
* 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
<objects/objc-malloc.h> to be included in non-ObjC files, i.e. C
files.
* src/NSZone.m: Include <objects/stdobjects.h> 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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
<rquillen@csugrad.cs.vt.edu>).
Sun Mar 31 16:43:42 1996 Andrew McCallum <mccallum@cs.rochester.edu>
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
<objects/Notification.h>
(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 <objects/stdobjects.h>.
(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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <objects/Proxy.h> 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 <math.h>
(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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <sys/param.h> for MAXHOSTNAMELEN.
([UdpInPort -newPacketReceivedBeforeDate:]): Return nil.
Sun Mar 24 17:04:24 1996 Andrew McCallum <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <Albin.L.Jones@Dartmouth.EDU>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* src/Makefile.in (CC): Added -pipe.
Tue Mar 19 12:10:44 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
Miscellaneous small fixes, found with -Wall.
* src/NSThread.m: Fix indentation.
([NSThread +currentThread]): Add parenthesis around assignment inside
while.
* src/NSString.m: Include <objects/behavior.h>.
([NSString -componentsSeparatedByString:]): Initialize ARRAY!
* src/List.m: Include <objects/stdobjects.h> 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 <scottc@net-community.com>
* checks/nsarray.m (main): Filled out tests for NSArray and
NSMutableArray classes.
Sun Mar 17 18:20:17 1996 Andrew McCallum <mccallum@cs.rochester.edu>
Many miscellaneous small bug fixes, found with -Wall:
* src/objects/objects.h: Don't include <objects/SocketPort.h>
* 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 <string.h> 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 <behavior.h>
* src/NSNotification.m: Include <behavior.h>
* 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 <string.h>
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 <string.h> 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <objc/Object.h>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* src/Makefile.in (FILE_AUTHORS): Added "Albin L. Jones".
Sat Feb 24 13:47:40 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <objects/eltfuncs.h>.
* 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 <objc/List.h>
* 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 <mccallum@cs.rochester.edu>
* src/Makefile.in (GNU_MFILES): Removed EltNodeCollector.m.
(GNU_HEADERS): Removed objects/EltNodeCollector.h.
Wed Feb 14 12:23:12 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <objects/config.h>
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 <mccallum@cs.rochester.edu>
* 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 <ajones@coos.dartmouth.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@eeyore.cs.rochester>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <objects/NSString.h> instead of
<objects/String.h>.
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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <objects/NSString.h> 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 <objects/NSString.h> for @"" in
encoding withName:.
* src/DelegatePool.m: Likewise.
* src/BinaryTreeNode.m: Likewise.
Tue Jan 23 11:54:54 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <objects/String.h>
(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 <Encoding> and <Decoding> 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
<String>) 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 <Streaming> type.
* src/StdioStream.m: Use (id <String>) 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 <String>) 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 <String>) instead of (char *) where
appropriate.
([MemoryStream -writeLine:]): Remove method.
* src/objects/Collection.h: Don't include <objects/Coder.h>; 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.19.
Sat Jan 20 14:27:57 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <fedor@mode.Colorado.EDU>
* 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 <mccallum@cs.rochester.edu>
* 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 <adachi@wisdom.aa.ap.titech.ac.jp>.)
* src/NSString.m ([NSString -initWithCString:length:]): Handle
case of NULL cString.
([NSString -initWithCString:]): Likewise.
(Reported by Adam Fedor <fedor@mode.Colorado.EDU>.)
* src/find_exec.c (objc_find_executable): Make NSBundle work even
when CWD isn't in PATH. (Fix provided by Matthias Klose
<doko@cs.tu-berlin.de>.)
* 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 <jbettis@cse.unl.edu>.)
* Makefile.in: Remove -$(MAKEFLAGS) as argument to recursive calls
of $(MAKE); this happens automatically. (Reported by Niels Mvller
<nisse@lysator.liu.se>.)
Tue Jan 16 19:33:49 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* Version (OBJECTS_SUBMINOR_VERSION): libobjects version 0.1.17.
Tue Jan 16 13:57:51 1996 Adam Fedor <fedor@mode.Colorado.EDU>
* 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 <mccallum@cs.rochester.edu>
* 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
<doko@cs.tu-berlin.de>).
Mon Jan 15 17:07:38 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <flight@mathi.uni-heidelberg.DE>
* src/NSDate.m ([NSDate -description]): replace strftime() with
sprintf() equivalent for NEXTSTEP.
Mon Jan 15 15:11:18 1996 Adam Fedor <fedor@mode.Colorado.EDU>
* aclocal.m4 (OBJC_SYS_DYNAMIC_LINKER): Expand macro correctly in
dld/defs.h check.
Fri Jan 12 11:38:58 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <flight@mathi.uni-heidelberg.DE>.)
* 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 <flight@mathi.uni-heidelberg.DE>.)
* src/NSDate.m ([NSDate -description]): Don't use strftime #ifdef
NeXT. (Reported by Gregor Hoffleit
<flight@mathi.uni-heidelberg.DE>.)
* 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 <doko@cs.tu-berlin.de>.)
* 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 <pfuchs@tag01.acnet.net>.)
* src/NSMethodSignature.m ([NSMethodSignature
+signatureWithObjCTypes:]): Fix typo: change objc_size_of_type to
objc_sizeof_type. (Reported by Gregor Hoffleit
<flight@mathi.uni-heidelberg.DE>.)
* src/Makefile.in (libobjects.so.$(OBJECTS_VERSION)): Removed
"-Wl,-soname,libobjects.so.$(OBJECTS_VERSION)"; gcc does this
automatically. (Reported by Matthias Klose
<doko@cs.tu-berlin.de>.)
* src/NSProcessInfo.m: Include <netdb.h> for MAXHOSTNAMELEN.
(Reported by Matthias Klose <doko@cs.tu-berlin.de>.)
* src/Makefile.in (ALL_INCLUDE_FLAGS): Add -I. for
objects/config.h. (Reported by Matthias Klose
<doko@cs.tu-berlin.de>)
* checks/Makefile.in (ALL_CPPFLAGS): Likewise.
* examples/Makefile.in (ALL_CPPFLAGS): Likewise.
Wed Jan 10 10:51:26 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* src/NSProcessInfo.m: Remove #if NeXT and alternate #include's.
* src/Foundation/NSProcessInfo.h: Likewise.
(These caused problems reported by John Boller <jboller@panix.com>.)
* src/Invocation.m ([MethodInvocation -initWithSelector:arguments:]):
New method, not implemented.
Tue Jan 9 14:07:36 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* src/Storage.m ([Storage -insertElement:at:]): Increment
numElements. (Reported by Revuz Dominique <dr@univ-mlv.fr>).
* Makefile.in (RCS_FILES): Remove out-of-date MACHINES and CREDITS
files.
Mon Jan 8 11:05:52 1996 Andrew McCallum <mccallum@cs.rochester.edu>
* Version (OBJECTS_SUBMINOR_VERSION): Version 0.1.15.
* src/NSProcessInfo.m (_GNU_MAX_HOST_NAMELEN): Macro removed;
using MAXHOSTNAMELEN from <sys/param.h> 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
* src/Set.m ([Set -removeElement:ifAbsentCall:]): Fix typo; method
renamed from -removeElement:ifAbsent:. (Reported by Albert Mietus
<albert@gamp.hacom.nl>.)
Wed Dec 20 11:30:37 1995 Adam Fedor <fedor@mode.Colorado.EDU>
* src/NSGeometry.m (NSMouseInRect): Handle flipped y-axis.
* src/Foundation/NSException.h: Include NSString interface.
Fri Nov 24 15:09:22 1995 Andrew McCallum <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
* 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 <kim@media.com>.)
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
* 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 <mccallum@cs.rochester.edu>
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 <fedor@mode.Colorado.EDU>
* 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 <mccallum@cs.rochester.edu>
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 <mccallum@cs.rochester.edu>
* src/IndexedCollection.m ([IndexedCollection
-shallowCopyInReverseAs:]): Return newColl, not self.
([IndexedCollection -withElementsInReverseCall:]): Set flag to YES.
([IndexedCollection -safeWithElementsInReverseCall:]): Likewise.
Reported by MURATA, Shuuichirou <mrt@mickey.ai.kyutech.ac.jp>.
* doc/readme.texi (The Class Heirarchy): Fixes from Aleksey
Sudakov <zander@cnext.crec.mipt.ru>.
Thu Oct 5 11:31:44 1995 Adam Fedor <fedor@mode.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* Makefile.in (RCS_FILES): Add file aclocal.m4.
Tue Sep 12 15:30:27 1995 Adam Fedor <fedor@mode.colorado.edu>
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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <jeremy@hksys.com>
* 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 <mccallum@vein.cs.rochester.edu>
* Makefile.in (snapshot): Put README.first in the snapshot
distribution.
* README.first: New file.
Thu Aug 24 12:32:54 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
* src/Makefile.in (GNUSTEP_MFILES): Added NSObjCRuntime.m.
* src/NSObjCRuntime.m: New file.
(NSStringFromSelector, NSSelectorFromString, NSClassFromString,
NSStringFromClass): New functions.
* src/NSObject.m: Include <NSString.h>
([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 <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <peter@bert.psyc.upei.ca>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <objects/LibobjectsMain.h>
* 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 <Tuparev@EMBL-Heidelberg.de>
Wed Aug 9 11:27:42 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* NSBundle.README: Remove reference to gcc-dynamic.patch.
Fri Jul 14 17:11:20 1995 Adam Fedor <fedor@mode.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* 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 <fedor@colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* src/Makefile.in (FILE_AUTHORS): Added "Martin Michlmayr".
* NSUser.c, Foundation/NSUser.h: New files from Martin Michlmayr
<tbm@ihq.com>.
* src/Makefile.in (GNUSTEP_HEADERS): Added Foundation/NSUser.h.
(GNUSTEP_MFILES): Added NSUser.c.
Thu Jul 6 10:11:11 1995 Adam Fedor <fedor@colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
Released version 0.1.13.
* src/NSString.m ([NSString -getCharacters:range:]): Decrement,
not increment in loop. (Reported by Harmut
<benz@sophie-scholl.dbag.ulm.DaimlerBenz.COM>).
Mon Jul 3 18:10:50 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@artery.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* src/Foundation/NSRange.h (NSLocationInRange): Added
__attribute__ ((unused)).
(NSMaxRange): Likewise.
Fri Jun 30 13:19:24 1995 Adam Fedor <fedor@colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* (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 <ajones@oxy.edu>, 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 <mccallum@graphite.cs.rochester.edu>
* 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
<nelsonm@ctron.com>).
* 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 <burchard@math.utah.edu>).
* src/NSObject.m (NSDecrementExtraRefCountWasZero): Return correct
value. (Thanks to Paul Burchard <burchard@math.utah.edu>).
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* 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 <fedor@mode.colorado.edu>
* src/objc-load.c (objc_load_module): Don't execute ctor_list on
__ELF__ systems.
Fri May 19 11:22:42 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@moose.cs.rochester.edu>
* Makefile.in (datadir): According to new standards, use "share"
instead of "lib".
Mon May 8 16:39:42 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@colorado.edu>
* 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 <fedor@colorado.edu>
* 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 <fedor@colorado.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* install.texi: Fixed typo in patch instructions. Too many "..".
(Reported by Daniel L. Green <dang@mcs.com>.)
Thu Apr 20 20:11:23 1995 Andrew McCallum <mccallum@zebra.cs.rochester.edu>
* NSData.m: Include <Foundation/NSException.h>
* NSData.m (dataWithBytesNoCopy:length:): Send alloc to NSGData
class, not self.
Sun Apr 16 02:41:39 1995 Albin L. Jones <ajones@oxy.edu>
* 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 <fedor@boulder.colorado.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <Foundation/...>, not
<foundation/...>.
* 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
<foundation/NSMutableData.h>. The interface can now be found in
<foundation/NSData.h>
Sat Apr 15 14:12:57 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <MemoryStreaming>. 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* 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
<jeremy@hksys.com>.
* 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 <mccallum@vein.cs.rochester.edu>
* BinaryTree.m (removeElement:): Fix bug whereby the deleted
node's parent still had the deleted node as a right child.
(Reported by Stephen Peters <SPETERS@us.oracle.com>).
* Collection.m (write:, read:): Put back these old-style archiving
methods. (Reported by Stephen Peters <SPETERS@us.oracle.com>).
Sun Apr 9 20:34:32 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <IndexedCollecting> Protocol to String
Protocol.
Tue Apr 4 10:56:02 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
* 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 <py@fipnet.fi>.)
Mon Apr 3 19:02:37 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* String.m (initWithType:): Fix previous attempt at avoiding
infinite loop. (Reported by Jeremy Bettis <jbettis@cse.unl.edu>)
Sun Apr 2 20:05:04 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <String>) instead of (String*).
* objects/String.h: Use (id <String>) 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 <mccallum@vein.cs.rochester.edu>
* String.m (initWithType:): Avoid infinite loop by calling
designated initializer instead of init. (Reported by
Jeremy Bettis <jbettis@cse.unl.edu>)
Sat Apr 1 12:19:13 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <fedor@boulder.colorado.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* 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 <mikep@crt.com> for HPUX).
Tue Mar 28 12:37:22 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* gcc-string.patch: New version from Pieter Schoenmakers
<tiggr@es.ele.tue.nl> 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 <mccallum@vein.cs.rochester.edu>
* 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 <springer@nessi.informatik.hab-weimar.de>.)
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 <mccallum@vein.cs.rochester.edu>
* 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
<fedor@mode.Colorado.EDU>)
* Invocation.m (invoke): Fix typo. (Reported by hjl@nynexst.com
(H.J. Lu).)
Wed Mar 22 16:37:06 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@graphite.cs.rochester.edu>
* objects/CollectionPrivate.h (RETAIN_ELT, RELEASE_ELT,
AUTORELEASE_ELT): New macros.
Sun Mar 12 11:37:10 1995 Andrew McCallum <mccallum@graphite.cs.rochester.edu>
* 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 <mccallum@tbird.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* 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 <mccallum@mustang.cs.rochester.edu>
* Makefile.in (OBJECTS_VERSION): Version 0.1.4.
Wed Feb 1 15:26:11 1995 Andrew McCallum <mccallum@leopard.cs.rochester.edu>
* checks/test01.m: Use lrand48() instead of random() if
defined(__hpux).
* checks/test09.m: Likewise.
* checks/test04.m: Likewise.
(Patch from Timothy Mooney <mooney@golem.phys.ndsu.NoDak.edu>)
Thu Jan 26 12:52:33 1995 Andrew McCallum <mccallum@vein.cs.rochester.edu>
* objc-gnu2next.m: Convert Class* to Class.
* Proxy.m: Likewise.
* Coder.m: Likewise.
Fri Jan 13 12:57:50 1995 Andrew McCallum <mccallum@moose.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* RetainingNotifier.m (autorelease): New (unimplemented) method.
(Reported by Peter Kristensen <pkr@kom.auc.dk>).
Fri Jan 6 17:57:08 1995 Andrew McCallum <mccallum@leopard.cs.rochester.edu>
* Makefile.in (DIST_FILES): Added file MACHINES.
Tue Dec 13 11:53:54 1994 Andrew McCallum <mccallum@mustang.cs.rochester.edu>
* 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 <mccallum@leopard.cs.rochester.edu>
* 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 <mccallum@edsel.cs.rochester.edu>
* 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 <mccallum@vein.cs.rochester.edu>
* SocketPort.m: Include <sys/select.h> #if _AIX. (Reported by
Todd B. Templeton <toddt@phelpsd.com>.)
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 <doko@cs.tu-berlin.de>
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 <SPETERS@us.oracle.com>)
* Proxy.m (autorelease): New method.
* Time.m: Patch for Solaris 2.4. Use times() instead of
getrusage(). (Patch from Stephen Peters <speters@us.oracle.com>)
* 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
<nisse@lysator.liu.se>)
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 <doko@cs.tu-berlin.de>.)
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
<doko@cs.tu-berlin.de>)
* 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 <reich@wmax60.mathematik.uni-wuerzburg.de>)
* 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 <doko@cs.tu-berlin.de>)
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 <fedor@focus.Colorado.EDU>
* 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
<fedor@focus.Colorado.EDU>
* 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 <allan%mct.uucp@britain.eu.net>)
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 <Ordering> 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 <IndexedCollecting>)aColl;
- (unsigned) indexOfFirstIn: (id <Collecting>)aColl;
- (unsigned) indexOfFirstNotIn: (id <Collecting>)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
<coll/elt.h>
* 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
Copyright @copyright{} 2005 Free Software Foundation
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.