1998-03-30  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* Arguments.m ([Arguments +createArgc:Argv:]): glibc or not,
	set program_invocation_name with expanded absolute path.

1998-03-19  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* MessageProbe.m ([MessageProbe -setArg:ToString:], [MessageProbe
	-dynamicCallOn:]): Add _C_CHARPTR support.

	* objectbase.h: Add const char * slot to val_t union.

1998-03-18  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* Arguments.m: Include unistd.h and stdlib.h.
	Define swarm_version to be equal to VERSION.
	Define global Arguments object.
	([Arguments -getExecutablePath]): New method.
	([Arguments +createArgc:Argv:]): Use find_executable to
	get value for program_invocation_name instead of using
	theArgv[0] directly.
	(dropDirectory, findDirectory, findSwarm): New functions.
	([Arguments -getSwarmHome]): Use SWARMHOME or findSwarm
	to find source tree.

	* Arguments.h: Declare a global variable for an Argument
	object (previously in simtools).
	(Arguments): swarmHome new variable.
	Declare getExecutablePath and getSwarmHome methods.

	* objectbase.h: Declare swarm_version.

1998-03-13  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* Makefile (version.h): New rule to create version.h.  
	Arguments.o depends on it.

	* Arguments.m: Include computed file version.h (from
	Makefile.conf's VERSION).
	Use VERSION to define argp_program_version.

1998-03-09  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* Arguments.m:  Include misc.h for strdup.
	(getApplicationValue): Truncate return at `.'.

1998-03-02  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* objectbase.h (MessageProbe): Declare doubleDynamicCallOn:.

1998-02-26  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* objectbase.h (val_t): Add _uchar.

	* MessageProbe.m ([MessageProbe -dynamicCallOn:]): Add a version
	for libffi.  Only use avcall if USE_AVCALL is defined.  The
	internal functions for both versions of push_argument now take a
	pointer because libffi uses pointers instead of values for
	arguments.
	([MessageProbe -doubleDynamicCallOn:]): Add int,uchar->double coercion
	capability (motivated by Bank).
	([MessageProbe -dynamicCallOn:]): Add unsigned char support
	to both versions.

1998-02-23  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* swarm_rts_routines.[hm] (swarm_method_get_number_of_arguments):
	Remove.  Remove my_objc prefixes.  Change skip_argspec to
	return NULL when current type character is \0.

	* objectbase.h (val_t): Define.  Change declarations per 
	MessageProbe.h changes below.

	* MessageProbe.h: Include objectbase.h.
	Remove Imp types and use of Imp types.
	Remove probedMessage, argNum and argLabels. 
	arguments is now of type val_t.  
	Hide result flag is now boolean and named hideResultFlag (not hr).
	Remove setProbedMessage and setArg:ToObjectName. 
	Rename setArg:To: to setArg:ToString.
	hideResult accessors are boolean, as are isResultId and isArgumentId:
	Rename getArgNum to getArgCount.

	* MessageProbe.m:  Rewritten to use avcall library.

1998-02-20  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* MessageProbe.m ([MessageProbe -_trueDynamicCallOn_:resultStorage:]):
	For now, abort(3) for USE_JAVA case where tkobjc_dynamicEval would
	otherwise be used.

1998-02-18  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* Makefile (OBJECTS, HEADERS): Add Arguments.

	* Arguments.[hm]: New files.

1998-02-04  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* objectbase.h: Change header comment to objectbase.h.
	Include from swarmobject/ to objectbase/.

	* Makefile (install-headers):  Remove.

1998-01-24  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* MessageProbe.m: Include tkobjc/common.h instead of tkobjc/control.h.
	Don't include tclObjc.h.

	* objectbase.h: In MesageProbe protocol, declare
	setArg:ToObjectName:.  Constify To: argument of setArg:To:.
	Constify second arugment to dynamicCallOn:resultStorage:.

	* SwarmObject.m ([SwarmObject -getIdName]): New method (return
	value of getInstanceName).

	* SwarmObject.h: Declare getIdName.

	* MessageProbe.m ([MessageProbe -createEnd], [MessageProbe
	-_setImp_:]): Replace accesses to imps with imp.IMPTYPE.
	([MessageProbe -createEnd]): New return category 3 for _C_ID, and
	category 4 for _C_CLASS.
	([MessageProbe -setArg:ToObjectName:]): New method.
	([MessageProbe -_setImp_:]): Handle category 3 and 4.  Abort on
	bad category.
	([MessageProbe -dynamicCallOn:]): Likewise.
	([MessageProbe -intDynamicCallOn:]): Abort on category 3 or 4.
	([MessageProbe -floatDynamicCallOn:]): Likewise.
	([MessageProbe -doubleDynamicCallOn:]): Likewise.
	([MessageProbe -dynamicCallOn:resultStorage:]): Likewise.
	([MessageProbe -_trueDynamicCallOn_:resultStorage:]): Use strcpy
	instead of strcat for first item; use getObjectName instead of
	tclObjc_objectName.

	* MessageProbe.h: New types IdImp and ClassImp.
	(MessageProbe): Put all the imps in a union.
	Declare new method setArg:ToObjectName:.
	Remove declaration of _trueDynamicCallOn_:resultStorage:.

	* CompleteProbeMap.m:  Reformatting throughout.

1998-01-20  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* CustomProbeMap.m: Add @end.

1997-12-17  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* VarProbe.m ([VarProbe -createEnd]): Remove cast for assignment
	to probedType.
	([VarProbe -probeAsInt:]): Constify p.  Reformatting.
	([VarProbe -probeAsDouble:]): Likewise.
	([VarProbe -probeAsString:Buffer:withFullPrecision:]): Constify p.
	([VarProbe -setData:To:]): Constify p.

	* MessageProbe.m ([MessageProbe -createEnd]): Modify for const
	arguments (several casts).
	([MessageProbe -getArg:which]): Constify return.
	([MessageProbe -setArg:To:]): Constify To argument.
	([MessageProbe -_trueDynamicCallOn_:resultStorage:]): Constify
	resultStorage argument.
	([MessageProbe -_trueDynamicCallOn_:resultStorage:]): Remove cast
	to *result for tkobjc_dynamicEval.
	([MessageProbe -dynamicCallOn:]): Constify tmp. Cast argument to
	free to void * to avoid warning.  Reformatting.
	([MessageProbe -dynamicCallOn:resultStorage:]): Constify
	resultStorage argument.  Write to non-const buf, and then assign
	to *result.  Reformatting.
	([MessageProbe -intDynamicCallOn:]): Constify tmp.
	([MessageProbe -intDynamicCallOn:]): Cast argument to free to
	void* to avoid warning.
	([MessageProbe -floatDynamicCallOn:]): Constify tmp.  Cast
	argument to free to void * to avoid warning.
	
	* MessageProbe.h (MessageProbe): Constify arguments.  Constify To
	argument of setArg.  Constify return of getArg.  Constify
	resultStorage argument of _trueDynamicCallOn_ and dynamicCallOn.

1997-12-16  Alex Lancaster  <alex@wijiji.santafe.edu>

	* tests: Added subdirectory to repository.

1997-12-10  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* swarm_rts_routines.m (isDigit): Add macro to cast isdigit 
	argument char to int (to avoid array index using char compiler 
	warning). Reformatting throughout.
	(my_objc_skip_typespec, my_objc_skip_offset): Use new macro isDigit. 

	* VarProbe.m ([VarProbe -probeAsPointer:]): Initialize q to NULL
	to prevent warning.
	([VarProbe -probeAsInt:]): Initialize i to 0 to prevent warning.
	([VarProbe -probeAsDouble:]): Initialize d to 0.0 to prevent warning.
	([VarProbe -setData:ToString:]): Initialize rc to 0 to prevent warning.

	* MessageProbe.m: Include tclObjc.h instead of tkobjc.h.
	Minor reformatting. 
	([MessageProbe -_trueDynamicCallOn_:resultStorage:result]): 
	Update to renamed tkobjc_dynamicEval.
	
1997-12-09  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* objectbase.h: Constify argument to getProbedForVariable and
	getProbeForMessage (SwarmObject). 
	Constify return of getProbedType (Probe).
	Constify argument to setProbedVariable (VarProbe).
	Constify return of getProbedVariable (VarProbe).
	Constify argument to setFloatFormat (VarProbe).
	Constify return of probeAsString (VarProbe, both).
	Constify ToString argument to setData (VarProbe).
	Constify argument to setProbedMessage (MessageProbe).
	Constify return of getArgName (MessageProbe).
	Constify argument to getProbeForVariable
	and getProbeForMessage (ProbeMap).
	Constify argument to dropProbeForVariable
	and dropProbeForMessage (ProbeMap).
	Constify first argument to getProbeForVariable and getProbeForMessage
	(ProbeLibrary).
	Reformatting throughout.

	* VarProbe.m ([VarProbe -setProbedVariable:]): Constify argument.
	([VarProbe -getProbedVariable]): Constify return.
	([VarProbe -createEnd]): Use intermediate pointer for the sake
	of consting.
	([VarProbe -free]): Cast to argument to free as void* to avoid warning.
	([VarProbe -probeAsString:Buffer:buf]): Constify return.
	([VarProbe -probeAsString:Buffer:withFullPrecision:]): Constify return.
	([VarProbe -setData:ToString:]): Constify ToString: argument.
	([VarProbe -setData:ToString:]): Cast withData: argument to void*
	to avoid warning (twice).
	([VarProbe -setFloatFormat:]): Constify argument.
	Reformatting throughout.

	* VarProbe.h (VarProbe): Constify probedVariable and floatFormat.
	
	* VarProbe.h: Constify argument to setProbedVariable and
	setFloatFormat.  Constify return of getProbedVariable.  Constify
	ToString: argument of setData.
	Reformatting throughout.
	
	* SwarmObject.m ([SwarmObject -getProbeForVariable:]): 
	Constify argument.
	([SwarmObject -getProbeForMessage:]): Likewise.
	([SwarmObject -eventOccurredOn:anObjectvia:aProbewithProbeType:
	aProbeTypeon:probedElementofType:withData:]): Constify :on argument.
	Reformatting throughout.

	* SwarmObject.h: Constify argument to getProbeForVariable,
	getProbeForMessage.  Constify on: argument to eventOccurredOn.
	Reformatting throughout.

	* Swarm.m ([Swarm -getProbeForVariable:]): Constify argument.
	Reformatting througout.

	* Swarm.h: Constify argument to getProbeForVariable.
	Reformatting throughout.

	* ProbeMap.m ([ProbeMap -dropProbeForVariable:]): Constify argument.
	([ProbeMap -dropProbeForMessage:]): Likewise.
	([ProbeMap -getProbeForMessage:]): Likewise.
	([ProbeMap -getProbeForVariable:]): Likewise.
	Reformatting throughout.

	* ProbeMap.h: Constify argument to dropProbeForVariable,
	dropProbeForMessage, getProbeForVariable, and getProbeForMessage.
	Reformatting throughout.

	* ProbeLibrary.m ([ProbeLibrary
	-getProbeForVariable:inClass:aClass]): Constify first argument.
	([ProbeLibrary -getProbeForMessage:inClass:aClass]): Constify
	first argument. 
	Reformatting throughout.

	* ProbeLibrary.h: Constify first argument to getProbeForVariable
	and getProbeForMessage.  Reformatting throughout.

	* Probe.m ([Probe -getProbedType]): Constify return.
	([Probe -probeAsString:anObject:buf]): Constify return.
	([Probe -probeAsString:Buffer:withFullPrecision:precision]):
	Constify return.
	([Probe -setFloatFormat:]): Constify argument.
	Reformatting throughout.

	* Probe.h: Constify return of getProbedType.
	Constify return of probedAsString methods.
	Constify argument of setFloatFormat.

	* Probe.h (Probe): Constify probedType.
	
	* MessageProbe.m: Include <tkobjc/control.h>.
	(copy_to_nth_colon): Constify return.
	([MessageProbe -setProbedMessage:aMessage]): Constify argument.
	([MessageProbe -createEnd]): Constify argLabels.
	([MessageProbe -_trueDynamicCallOn_:resultStorage:result]): Use
	new tkobjc function dynamicEval.
	Reformatting throughout.

	* MessageProbe.h (MessageProbe): Constify probedMessage and
	argLabels.  

	* MessageProbe.h: Constify argument to setProbedMessage. 
	Constify return of getArgName.  Reformatting throughout.  

	* DefaultProbeMap.m: 
	([DefaultProbeMap -createEnd]): Constification of probe instance
	variable names. 
	Reformatting throughout.

	* MessageProbe.m (copy_to_nth_colon): Constify return.
	([MessageProbe -setProbedMessage:aMessage]): Constify argument.
	Refomratting throughout.

	* Makefile (install-headers): Augment target to create symlinks
	from objectbase{.h} to swarmobject{.h} (an alternative to nameswap).

Mon Dec  8 22:30:43 1997  glen e. p. ropella  <gepr@swarm.com>

	* nameswap.sh: Added a simple sed script to replace swarmobject.h
	with objectbase.h and swarmobject/ with objectbase/ in users
	apps.  Invoked via "make nameswap".

	* objectbase.h: Moved all swarmobject files from swarmobject
	directory to objectbase directory.  Renamed swarmobject.h to
	objectbase.h.  Changed all instances of swarmobject.h to 
	objectbase.h and all instances of swarmobject/ to objectbase/.

1997-12-08  Alex Lancaster  <alex@wijiji.santafe.edu>

	* Makefile: Removed references to obsolete test program (main.m) and
	also removed main.m from the repository. Modified test program
	now called (ProbeTest.m) is located in subdirectory (tests/)

	* swarmobject.h: Changed protocols for Probe, VarProbe and 
	ProbeLibrary to support the changes to the interface introduced
	below.

	* ProbeLibrary.[hm] Added a number of user-level methods:
	([ProbeLibrary get/setDisplayPrecision:): sets and gets
	integers for the number of significant figures for floats and doubles
	displayed on a widget for any probes checked out of the ProbeLibrary.
	Can be overrwritten by an individual probe.
	([ProbeLibrary get/setSavedPrecision:): sets and gets the number 
	of significant figures for floats and doubles when saving any objects 
	through ObjectSaver. This is global for all probes checked and cannot
	be overriden by an individual probe.

	* Probe.[hm]: Added ([Probe -setFloatFormat]) and ([Probe 
	probeAsString: .. withFullPrecision:]) to give superclass Probe 
	these method. Currently only VarProbe implements them.

	* VarProbe.[hm]: Added ([VarProbe -setFloatFormat]) to support
	custom formatting of floats and doubles.
	Added ([VarProbe probeAsString: .. withFullPrecision:]) to support
	probing for different precision for floats and doubles in object 
	saving rather than the displayed precision. 
	

Mon Dec  8 14:32:50 1997  glen e. p. ropella  <gepr@seamus.trail.com>

	* swarmobject.h: Added the ProbeConfig protocol to handle
	muliple inheritence of these methods across ProbeLibrary, 
	ProbeMap, and Probe.

	* VarProbe.m: Added probe creation call to method -clone:.
	Added objectToNotify handling to -setData:To: and -setData:ToString:.
	

	* SwarmObject.m: Added subclass redirection for probe hook method.

	* SwarmObject.h: Added default method 
	(-eventOccurredOn:via:withProbeType:on:ofType:withData:
	for SwarmObjects as receiver for probe hook.

	* ProbeMap.m: Added overriding method +createBegin: in order
	to initialize objectToNotify.
	Added method -setObjectToNotify:.
	Added method -getObjectToNotify.
	Added inheritance of objectToNotify from ProbeLibrary to 
	method -createEnd.
	Added probe creation call to methods -createEnd, -addProbe:,
	and -_fastAddProbe_:.

	* ProbeMap.h: Added IVar objectToNotify.  Added overriding 
	+createBegin: method in order to initialize objectToNotify.
	Added methods -setObjectToNotify: and -getObjectToNotify.

	* ProbeLibrary.m: Added overriding method +createBegin: in 
	order to initialize IVar objectToNotify.
	Added method -setObjectToNotify:.
	Added method -getObjectToNotify.
	Added probemap creation call for objectToNotify to methods
	-getProbeMapFor:, -getCompleteProbeMapFor:, and -getCompleteVarMapFor:.
	
	
	* ProbeLibrary.h: Added IVar objectToNotify.
	Added methods -setObjectToNotify: and -getObjectToNotify.
	
	* Probe.m: Added override method +createBegin in order to 
	initialize IVar objectToNotify.
	Added a call to the superclass' createEnd.
	Added method -setObjectToNotify:.
	Added method -getObjectToNotify.

	* Probe.h: Added IVar objectToNotify.
	Added overriding method +createBegin and -createEnd.
	Added methods -setObjectToNotify: and -getObjectToNotify.

	* MessageProbe.m: Added temporary variable to catch the return
	of [super createEnd] call in order to initialize objectToNotify.
	Added probe creation setup call.
	Added objectToNotify handling to _trueDynamicCallOn_.
	
	* CompleteProbeMap.m: added probe creation setup call
	* DefaultProbeMap.m: added probe creation setup call

1997-11-18  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* VarProbe.m: Return "<NULL>" if CHARPTR points to NULL.

1997-11-16  Marcus G. Daniels  <mgd@wijiji.santafe.edu>

	* ProbeMap.m ([ProbeMap -addProbe:], [ProbeMap
	-dropProbeMap:aProbeMap],[ProbeMap -_fastAddProbe_:]): Use
	isKindOf instead of isMemberOf so that it is possible to use
	subclasses of VarProbe.

