[cig-commits] commit: Make it compile with C++ and C compilers

Mercurial hg at geodynamics.org
Wed May 11 14:49:46 PDT 2011


changeset:   798:4a864caece0b
tag:         tip
user:        Walter Landry <wlandry at caltech.edu>
date:        Wed May 11 13:26:45 2011 -0700
files:       Base/Automation/src/CallGraph.c Base/Automation/src/CallGraph.h Base/Automation/src/DocumentationComponentFactory.c Base/Automation/src/DocumentationComponentFactory.h Base/Automation/src/Finalise.h Base/Automation/src/Init.h Base/Automation/src/LiveComponentRegister.h Base/Automation/src/Meta.h Base/Automation/src/Stg_Component.c Base/Automation/src/Stg_Component.h Base/Automation/src/Stg_ComponentFactory.c Base/Automation/src/Stg_ComponentFactory.h Base/Automation/src/Stg_ComponentRegister.c Base/Automation/src/Stg_ComponentRegister.h Base/Automation/tests/CallGraphSuite.c Base/Automation/tests/ComponentCopySuite.c Base/Container/src/AbsArray.c Base/Container/src/ChunkArray.c Base/Container/src/HashTable.c Base/Container/src/HashTable.h Base/Container/src/IndexMap.c Base/Container/src/IndexMap.h Base/Container/src/IndexSet.c Base/Container/src/IndexSet.h Base/Container/src/LinkedList.c Base/Container/src/List.c Base/Container/src/MPIRoutines.c Base/Container/src/MemoryPool.c Base/Container/src/PtrMap.c Base/Container/src/PtrMap.h Base/Container/src/RangeSet.c Base/Container/src/RangeSet.h Base/Container/src/STree.c Base/Container/src/UIntMap.c Base/Container/src/UIntMap.h Base/Container/tests/BTreeSuite.c Base/Container/tests/HashTableSuite.c Base/Container/tests/ListSuite.c Base/Container/tests/MPIRoutinesSuite.c Base/Container/tests/PtrSetSuite.c Base/Container/tests/SetSuite.c Base/Context/src/AbstractContext.c Base/Context/src/AbstractContext.h Base/Context/src/Codelet.c Base/Context/src/Codelet.h Base/Context/src/CompositeVC.c Base/Context/src/CompositeVC.h Base/Context/src/ContextEntryPoint.c Base/Context/src/DictionaryCheck.c Base/Context/src/DictionaryCheck.h Base/Context/src/DynamicVC.c Base/Context/src/DynamicVC.h Base/Context/src/Finalise.h Base/Context/src/Init.c Base/Context/src/Init.h Base/Context/src/SetVC.c Base/Context/src/SetVC.h Base/Context/src/Variable.c Base/Context/src/Variable.h Base/Context/src/VariableAllVC.c Base/Context/src/VariableAllVC.h Base/Context/src/VariableCondition.c Base/Context/src/VariableCondition.h Base/Context/src/VariableDumpStream.c Base/Context/src/VariableDumpStream.h Base/Context/src/Variable_Register.c Base/Context/src/Variable_Register.h Base/Context/tests/DictionaryCheckSuite.c Base/Context/tests/VariableDumpStreamSuite.c Base/Context/tests/VariableSuite.c Base/Context/tests/Variable_RegisterSuite.c Base/Extensibility/src/ClassHook.c Base/Extensibility/src/ClassHook.h Base/Extensibility/src/ClassPtrExtensionInfo.c Base/Extensibility/src/ClassPtrExtensionInfo.h Base/Extensibility/src/EntryPoint.c Base/Extensibility/src/EntryPoint.h Base/Extensibility/src/ExtensionInfo.c Base/Extensibility/src/ExtensionInfo.h Base/Extensibility/src/ExtensionManager.c Base/Extensibility/src/ExtensionManager.h Base/Extensibility/src/Hook.c Base/Extensibility/src/Hook.h Base/Extensibility/src/Module.c Base/Extensibility/src/Module.h Base/Extensibility/src/ModulesManager.c Base/Extensibility/src/ModulesManager.h Base/Extensibility/src/Plugin.c Base/Extensibility/src/Plugin.h Base/Extensibility/src/SimpleExtensionInfo.c Base/Extensibility/src/SimpleExtensionInfo.h Base/Extensibility/src/Toolbox.c Base/Extensibility/src/Toolbox.h Base/Extensibility/src/ToolboxesManager.c Base/Extensibility/src/ToolboxesManager.h Base/Extensibility/tests/EntryPointSuite.c Base/Extensibility/tests/ExtensionSuite.c Base/FlattenXML/src/main.c Base/Foundation/src/Class.c Base/Foundation/src/Class.h Base/Foundation/src/ClassDefIsSuper.h Base/Foundation/src/ClassHdrProto.h Base/Foundation/src/ClassHdrType.h Base/Foundation/src/CommonRoutines.c Base/Foundation/src/CommonRoutines.h Base/Foundation/src/Finalise.h Base/Foundation/src/Init.c Base/Foundation/src/Init.h Base/Foundation/src/Log.c Base/Foundation/src/Log.h Base/Foundation/src/MemMonitor.c Base/Foundation/src/MemMonitor.h Base/Foundation/src/Memory.c Base/Foundation/src/Memory.h Base/Foundation/src/MemoryField.c Base/Foundation/src/MemoryField.h Base/Foundation/src/MemoryPointer.c Base/Foundation/src/MemoryPointer.h Base/Foundation/src/MemoryReport.c Base/Foundation/src/MemoryReport.h Base/Foundation/src/NamedObject_Register.c Base/Foundation/src/NamedObject_Register.h Base/Foundation/src/NewObject.c Base/Foundation/src/NewObject.def Base/Foundation/src/Numerics.c Base/Foundation/src/Object.c Base/Foundation/src/Object.h Base/Foundation/src/ObjectAdaptor.c Base/Foundation/src/ObjectAdaptor.h Base/Foundation/src/ObjectList.c Base/Foundation/src/ObjectList.h Base/Foundation/src/PrimitiveObject.c Base/Foundation/src/PrimitiveObject.h Base/Foundation/src/TestSuite.c Base/Foundation/src/TestSuite.h Base/Foundation/src/TimeMonitor.c Base/Foundation/src/TimeMonitor.h Base/Foundation/src/forwardDecl.h Base/Foundation/src/shortcuts.h Base/Foundation/src/types.h Base/Foundation/tests/MemMonitorSuite.c Base/Foundation/tests/MemoryReportSuite.c Base/Foundation/tests/NamedObject_Register2Suite.c Base/Foundation/tests/NamedObject_RegisterSuite.c Base/Foundation/tests/ObjectListSuite.c Base/Foundation/tests/Stg_asprintfSuite.c Base/IO/src/BinaryStream.c Base/IO/src/BinaryStream.h Base/IO/src/CFile.c Base/IO/src/CFile.h Base/IO/src/CStream.c Base/IO/src/CStream.h Base/IO/src/CmdLineArgs.c Base/IO/src/Dictionary.c Base/IO/src/Dictionary.h Base/IO/src/Dictionary_Entry.c Base/IO/src/Dictionary_Entry.h Base/IO/src/Dictionary_Entry_Value.c Base/IO/src/Dictionary_Entry_Value.h Base/IO/src/Finalise.h Base/IO/src/IO_Handler.c Base/IO/src/IO_Handler.h Base/IO/src/IndentFormatter.c Base/IO/src/IndentFormatter.h Base/IO/src/Init.h Base/IO/src/Journal.c Base/IO/src/Journal.h Base/IO/src/JournalFile.h Base/IO/src/LineFormatter.c Base/IO/src/LineFormatter.h Base/IO/src/MPIFile.c Base/IO/src/MPIFile.h Base/IO/src/MPIStream.c Base/IO/src/MPIStream.h Base/IO/src/PathUtils.c Base/IO/src/PathUtils.h Base/IO/src/RankFormatter.c Base/IO/src/Stream.c Base/IO/src/Stream.h Base/IO/src/StreamFormatter.c Base/IO/src/StreamFormatter.h Base/IO/src/XML_IO_Handler.c Base/IO/src/XML_IO_Handler.h Base/IO/src/shortcuts.c Base/IO/src/shortcuts.h Base/IO/src/types.h Base/IO/tests/DictionarySuite.c Base/IO/tests/IO_HandlerSuite.c Base/IO/tests/JournalSuite.c Base/IO/tests/MPIStreamSuite.c Base/IO/tests/PathUtilsSuite.c Regresstor/ClientPrograms/checkDiff/main.c Regresstor/ClientPrograms/checkExecution/main.c Regresstor/ClientPrograms/endRun/main.c Regresstor/ClientPrograms/startRun/main.c Regresstor/ClientPrograms/submitBuild/main.c Regresstor/libRegresstor/src/FailedSubTest.c Regresstor/libRegresstor/src/FailedSubTest.h Regresstor/libRegresstor/src/RegressionTest.c Regresstor/libRegresstor/src/RegressionTest.h Regresstor/libRegresstor/src/UnitTest.c Regresstor/libRegresstor/src/UnitTest.h Regresstor/libRegresstor/src/forwardDecl.h StgSCons Utils/src/Progress.c Utils/src/Progress.h Utils/tests/ProgressSuite.c libStGermain/src/main.c libStGermain/tests/LibStGermainSuite.c pcu/src/source.c pcu/src/textoutput.h pcu/src/utils.c script/convert.py src/main.c
description:
Make it compile with C++ and C compilers


diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/CallGraph.c
--- a/Base/Automation/src/CallGraph.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/CallGraph.c	Wed May 11 13:26:45 2011 -0700
@@ -190,7 +190,7 @@ static void _Stg_CallGraph_Copy_Stack_De
 	if( dst && !src ) {
 		*dst = src;
 	}
-	else if( dst && (*dst = PtrMap_Find( map, src )) == NULL ) {
+	else if( dst && (*dst = (_Stg_CallGraph_Stack*)PtrMap_Find( map, src )) == NULL ) {
 		*dst = Memory_Alloc( _Stg_CallGraph_Stack, "Stg_CallGraph->_stack" );
 		(*dst)->functionPtr = src->functionPtr;
 		(*dst)->name = src->name;
@@ -214,7 +214,7 @@ static void _Stg_CallGraph_Copy_Stack_Sh
 	_Stg_CallGraph_Copy_Stack_ShallowIncr( *dst );
 }
 
-void* _Stg_CallGraph_Copy( void* callGraph, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_CallGraph_Copy( const void* callGraph, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_CallGraph*	self = (Stg_CallGraph*)callGraph;
 	Stg_CallGraph*	newCallGraph;
 	PtrMap*		map = ptrMap;
@@ -225,14 +225,14 @@ void* _Stg_CallGraph_Copy( void* callGra
 		ownMap = True;
 	}
 	
-	newCallGraph = _Stg_Class_Copy( callGraph, dest, deep, nameExt, ptrMap );
+	newCallGraph = (Stg_CallGraph*)_Stg_Class_Copy( callGraph, dest, deep, nameExt, ptrMap );
 	
 	/* Virtual methods */
 	newCallGraph->_tableSize = self->_tableSize;
 	newCallGraph->_tableCount = self->_tableCount;
 
 	if( deep ) {
-		if( self->table && (newCallGraph->table = PtrMap_Find( map, self->table )) == NULL ) {
+          if( self->table && (newCallGraph->table = (_Stg_CallGraph_Entry*)PtrMap_Find( map, self->table )) == NULL ) {
 			newCallGraph->table = Memory_Alloc_Array( _Stg_CallGraph_Entry, newCallGraph->_tableSize, 
 				"Stg_CallGraph->table" );
 			_Stg_CallGraph_Copy_Table( newCallGraph->table, self->table, newCallGraph->_tableSize, 
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/CallGraph.h
--- a/Base/Automation/src/CallGraph.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/CallGraph.h	Wed May 11 13:26:45 2011 -0700
@@ -42,9 +42,9 @@
 	/* Templates of virtual functions */
 	typedef struct {
 		void*			functionPtr;
-		Type			name;			/* assume its a const char* (i.e. we just need to copy ptr */
+		Type			name;			/* assume its a Name (i.e. we just need to copy ptr */
 		void*			parentPtr;
-		Type			parentName;		/* assume its a const char* (i.e. we just need to copy ptr */
+		Type			parentName;		/* assume its a Name (i.e. we just need to copy ptr */
 		double			time;
 		SizeT			memory;
 		Index			called;
@@ -54,7 +54,7 @@
 	typedef struct __Stg_CallGraph_Stack _Stg_CallGraph_Stack;
 	struct __Stg_CallGraph_Stack {
 		void*			functionPtr;
-		Type			name;			/* assume its a const char* (i.e. we just need to copy ptr */
+		Type			name;			/* assume its a Name (i.e. we just need to copy ptr */
 		double			time;
 		SizeT			memory;
 		Index			entry_I;
@@ -115,7 +115,7 @@
 	void _Stg_CallGraph_Print( void* callGraph, Stream* stream );
 	
 	/* Copy implementation */
-	void* _Stg_CallGraph_Copy( void* callGraph, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_CallGraph_Copy( const void* callGraph, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/DocumentationComponentFactory.c
--- a/Base/Automation/src/DocumentationComponentFactory.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/DocumentationComponentFactory.c	Wed May 11 13:26:45 2011 -0700
@@ -202,7 +202,7 @@ Bool _DocumentationComponentFactory_GetR
 	return Default;
 }	
 
-char* _DocumentationComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* const Default ) {
+char* _DocumentationComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, Name const Default ) {
 	DocumentationComponentFactory* self = (DocumentationComponentFactory*) cf;
 	Journal_Printf( self->infoStream, "Root Dictionary Parameter - Key '%s' - Type 'string' - ", key );
 	Journal_PrintString( self->infoStream, Default );
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/DocumentationComponentFactory.h
--- a/Base/Automation/src/DocumentationComponentFactory.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/DocumentationComponentFactory.h	Wed May 11 13:26:45 2011 -0700
@@ -96,7 +96,7 @@
 	int _DocumentationComponentFactory_GetRootDictInt( void* cf, Dictionary_Entry_Key key, const int defaultVal ) ;
 	unsigned int _DocumentationComponentFactory_GetRootDictUnsignedInt( void* cf, Dictionary_Entry_Key key, const unsigned int defaultVal);
 	Bool _DocumentationComponentFactory_GetRootDictBool( void* cf, Dictionary_Entry_Key key, const Bool defaultVal ) ;
-	char* _DocumentationComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* defaultVal ) ;
+	char* _DocumentationComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, Name defaultVal ) ;
 
 	Stg_Component* _DocumentationComponentFactory_ConstructByName( 
 		void*			componentFactory, 
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Finalise.h
--- a/Base/Automation/src/Finalise.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Finalise.h	Wed May 11 13:26:45 2011 -0700
@@ -41,6 +41,6 @@
 #ifndef __StGermain_Base_Automation_Finalise_h__
 #define __StGermain_Base_Automation_Finalise_h__
 	
-	Bool Automation_Finalise( void );
+	Bool BaseAutomation_Finalise( void );
 	
 #endif /* __StGermain_Base_Automation_Finalise_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Init.h
--- a/Base/Automation/src/Init.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Init.h	Wed May 11 13:26:45 2011 -0700
@@ -42,6 +42,6 @@
 #ifndef __StGermain_Base_Automation_Init_h__
 #define __StGermain_Base_Automation_Init_h__
 	
-	Bool Automation_Init( int* argc, char** argv[] );
+	Bool BaseAutomation_Init( int* argc, char** argv[] );
 	
 #endif /* __StGermain_Base_Automation_Init_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/LiveComponentRegister.h
--- a/Base/Automation/src/LiveComponentRegister.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/LiveComponentRegister.h	Wed May 11 13:26:45 2011 -0700
@@ -106,5 +106,6 @@
 	LiveComponentRegister* LiveComponentRegister_GetLiveComponentRegister();
 
 	void LiveComponentRegister_PrintSimilar( void* liveComponentRegister, Name name, Stream* stream, unsigned int number ) ;
+        void LiveComponentRegister_DestroyAll( void* lcReg );
 #endif /* __StGermain_Base_Automation_LiveComponentRegister_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Meta.h
--- a/Base/Automation/src/Meta.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Meta.h	Wed May 11 13:26:45 2011 -0700
@@ -66,5 +66,5 @@
 	char* Stg_Meta_GetAssociationType( Dictionary* dictionary, Index i );
 	char* Stg_Meta_GetAssociationNillable( Dictionary* dictionary, Index i );
 	char* Stg_Meta_GetAssociationDocumentation( Dictionary* dictionary, Index i );
-	
+        void Stg_Meta_Print( Dictionary* dictionary, Stream* stream );
 #endif /* __StGermain_Base_Automation_Stg_ComponentMeta_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Stg_Component.c
--- a/Base/Automation/src/Stg_Component.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Stg_Component.c	Wed May 11 13:26:45 2011 -0700
@@ -143,11 +143,11 @@ void _Stg_Component_Print( void* compone
 	Journal_Printf( (void*) stream, "\tdestroy function name: %s\n", self->destroyType );
 }
 
-void* _Stg_Component_Copy( void* component, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_Component_Copy( const void* component, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_Component*	self = (Stg_Component*)component;
 	Stg_Component*	newComponent;
 	
-	newComponent = _Stg_Object_Copy( component, dest, deep, nameExt, ptrMap );
+	newComponent = (Stg_Component*)_Stg_Object_Copy( component, dest, deep, nameExt, ptrMap );
 	
 	/* Virtual methods */
 	newComponent->_defaultConstructor = self->_defaultConstructor;
@@ -437,10 +437,11 @@ void Stg_Component_SetupStreamFromDictio
 			streamType = strtok( NULL, JOURNAL_DELIMITER );
 
 			if ( streamType == NULL ) {
-				streamType = Info_Type;
+                          stream = Journal_MyStream( Info_Type, self );
 			}
-
-			stream = Journal_MyStream( streamType, self );
+                        else {
+                          stream = Journal_MyStream( streamType, self );
+                        }
 
 			valid = True;
 			if ( strcmp( operation, JOURNAL_ENABLE_KEY ) == 0 ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Stg_Component.h
--- a/Base/Automation/src/Stg_Component.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Stg_Component.h	Wed May 11 13:26:45 2011 -0700
@@ -76,11 +76,11 @@
 		Bool													isInitialised; \
 		Bool													hasExecuted; \
 		Bool													isDestroyed; \
-		Type													constructType; \
-		Type													buildType; \
-		Type													initialiseType; \
-		Type													executeType; \
-		Type													destroyType;
+		char*													constructType; \
+		char*													buildType; \
+		char*													initialiseType; \
+		char*													executeType; \
+		char*													destroyType;
 	struct Stg_Component { __Stg_Component };
 
 
@@ -126,7 +126,7 @@
 	/* Print boundary condition layout implementation */
 	void _Stg_Component_Print( void* component, Stream* stream );
 	
-	void* _Stg_Component_Copy( void* component, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_Component_Copy( const void* component, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
@@ -172,7 +172,7 @@
 	/** Disowns the component from the current source, leaving the Live Stg_Component Register to 
 	    destroy it */
 	#define Stg_Component_Disown( component ) \
-		( Memory_CountGet( component ) > 1 ? Memory_CountDec( component ) : Stg_Class_Delete( component ) )
+( Memory_CountGet( component ) > 1 ? Memory_CountDec( component ) : (Stg_Class_Delete( component ),0) )
 
 	void Stg_Component_SetupStreamFromDictionary( void* component, Dictionary* dictionary );
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Stg_ComponentFactory.c
--- a/Base/Automation/src/Stg_ComponentFactory.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Stg_ComponentFactory.c	Wed May 11 13:26:45 2011 -0700
@@ -185,7 +185,7 @@ void Stg_ComponentFactory_CreateComponen
 	Dictionary_Entry*                      componentDictEntry           = NULL;
 	Dictionary*                            currComponentDict            = NULL;
 	Type                                   componentType                = NULL;
-	Name                                   componentName                = NULL;
+	char*                                  componentName                = NULL;
 	Stg_Component_DefaultConstructorFunction*  componentConstructorFunction;
 	Index                                  component_I;
 	Stream*                                stream;
@@ -226,7 +226,7 @@ void Stg_ComponentFactory_CreateComponen
 					Stg_ComponentRegister_Get_ComponentRegister(), componentType, "0" );
 
 			/* Add to register */
-			LiveComponentRegister_Add( self->LCRegister, componentConstructorFunction( componentName ) );
+			LiveComponentRegister_Add( self->LCRegister, (Stg_Component*)componentConstructorFunction( componentName ) );
 		}
 
 		/* now add the rest of the components */	
@@ -258,7 +258,7 @@ void Stg_ComponentFactory_CreateComponen
 					Stg_ComponentRegister_Get_ComponentRegister(), componentType, "0" );
 
 			/* Add to register */
-			LiveComponentRegister_Add( self->LCRegister, componentConstructorFunction( componentName ) );
+			LiveComponentRegister_Add( self->LCRegister, (Stg_Component*)componentConstructorFunction( componentName ) );
 		}
 
 		Stream_UnIndent( stream );
@@ -605,11 +605,11 @@ Bool _Stg_ComponentFactory_GetRootDictBo
 	assert( self->rootDict );
 	return Dictionary_GetBool_WithDefault( self->rootDict, key, defaultVal );
 }	
-char* Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* const defaultVal ) {
+char* Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, Name const defaultVal ) {
 	Stg_ComponentFactory*    self              = (Stg_ComponentFactory*)cf;
 	return self->getRootDictString( self, key, defaultVal );
 }
-char* _Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* const defaultVal ) {
+char* _Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, Name const defaultVal ) {
 	Stg_ComponentFactory*    self              = (Stg_ComponentFactory*)cf;
 
 	Journal_PrintfL( self->infoStream, 2, "Getting string from root dictionary with key '%s' and default value '%s'\n",
@@ -681,7 +681,7 @@ Stg_Component* _Stg_ComponentFactory_Con
 
 Stg_Component* _Stg_ComponentFactory_ConstructByKey( 
 		void*			cf, 
-		Name			parentComponentName, 
+		Name		parentComponentName, 
 		Dictionary_Entry_Key	componentKey,
 		Type			type, 
 		Bool 			isEssential,
@@ -737,7 +737,7 @@ Stg_Component* _Stg_ComponentFactory_Plu
 	Stg_Component*				plugin = (Stg_Component*)codelet;
 	Dictionary*					thisPluginDict = NULL;
 	Dictionary*					pluginDict = (Dictionary*)Dictionary_Get( self->rootDict, "plugins" );
-	Name							componentName, redirect, pluginType;
+	char							*componentName, *redirect, *pluginType;
 	Dictionary_Entry_Value*	componentEntryVal;
 	Index							pluginIndex;
 	Stream*						errorStream = Journal_Register( Error_Type, self->type );
@@ -782,7 +782,7 @@ Dictionary_Entry_Value* _Stg_ComponentFa
 	Stg_Component*	          plugin	       = (Stg_Component*)codelet;
 	Dictionary*		          thisPluginDict = NULL;
 	Dictionary*		          pluginDict     = (Dictionary*)Dictionary_Get( self->rootDict, "plugins" );
-	Name			             pluginType;
+	char*			             pluginType;
 	Index		pluginIndex;
 	Dictionary_Entry_Value* returnVal;
 	Bool                    usedDefault       = False;
@@ -911,7 +911,7 @@ Bool Stg_ComponentFactory_PluginGetBool(
                                                                 Dictionary_Entry_Value_FromBool( defaultVal ) ) );
 }
 
-char* Stg_ComponentFactory_PluginGetString( void* cf, void* codelet, Dictionary_Entry_Key key, const char* const defaultVal ) {
+char* Stg_ComponentFactory_PluginGetString( void* cf, void* codelet, Dictionary_Entry_Key key, Name const defaultVal ) {
 	return Dictionary_Entry_Value_AsString( 
             _Stg_ComponentFactory_PluginGetDictionaryValue( cf, codelet, key,
                                                             Dictionary_Entry_Value_FromString( defaultVal ) ) );
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Stg_ComponentFactory.h
--- a/Base/Automation/src/Stg_ComponentFactory.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Stg_ComponentFactory.h	Wed May 11 13:26:45 2011 -0700
@@ -62,7 +62,7 @@
 			void*                cf, 
 			Name                 componentName, 
 			Dictionary_Entry_Key key, 
-			const char*          defaultVal ) ;
+			Name          defaultVal ) ;
 
 	
 	typedef double (Stg_ComponentFactory_GetRootDictDoubleFunc) (
@@ -84,7 +84,7 @@
 	typedef char* (Stg_ComponentFactory_GetRootDictStringFunc) ( 
 			void*                cf, 
 			Dictionary_Entry_Key key, 
-			const char*          defaultVal ) ;
+			Name          defaultVal ) ;
 
 	typedef Stg_Component* (Stg_ComponentFactory_ConstructByNameFunc) ( 
 			void*                cf, 
@@ -257,8 +257,8 @@
 	unsigned int _Stg_ComponentFactory_GetRootDictUnsignedInt( void* cf, Dictionary_Entry_Key key, const unsigned int defaultVal);
 	Bool Stg_ComponentFactory_GetRootDictBool( void* cf, Dictionary_Entry_Key key, const Bool defaultVal ) ;
 	Bool _Stg_ComponentFactory_GetRootDictBool( void* cf, Dictionary_Entry_Key key, const Bool defaultVal ) ;
-	char* Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* defaultVal ) ;
-	char* _Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, const char* defaultVal ) ;
+	char* Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, Name defaultVal ) ;
+	char* _Stg_ComponentFactory_GetRootDictString( void* cf, Dictionary_Entry_Key key, Name defaultVal ) ;
 
 	#define Stg_ComponentFactory_ConstructByName( cf, componentName, type, isEssential, data ) \
 		(type*) ( (Stg_ComponentFactory*) cf )->constructByName( cf, componentName, type ## _Type, isEssential, data )
@@ -269,7 +269,7 @@
 			cf, parentComponentName, componentKey, type ## _Type, isEssential, data )
 	Stg_Component* _Stg_ComponentFactory_ConstructByKey( 
 		void*			cf, 
-		Name			parentComponentName, 
+		Name		parentComponentName, 
 		Dictionary_Entry_Key	componentKey, 
 		Type			type, 
 		Bool			isEssential,
@@ -292,7 +292,7 @@
 
 	Bool Stg_ComponentFactory_PluginGetBool( void* cf, void *codelet, Dictionary_Entry_Key key, Bool defaultVal );
 
-        char* Stg_ComponentFactory_PluginGetString( void* cf, void* codelet, Dictionary_Entry_Key key, const char* const defaultVal );
+        char* Stg_ComponentFactory_PluginGetString( void* cf, void* codelet, Dictionary_Entry_Key key, Name const defaultVal );
 
 	#define Stg_ComponentFactory_ConstructByNameWithKeyFallback( \
 		cf, parentComponentName, componentTrialName, componentFallbackKey, type, isEssential, data ) \
@@ -314,8 +314,8 @@
 
 	Stg_Component** _Stg_ComponentFactory_ConstructByList( 
 		void*			cf, 
-		Name			parentComponentName, 
-		Name			listName, 
+		Type			parentComponentName, 
+		Type			listName, 
 		unsigned int		maxComponents,
 		Type			type,
 		Bool			isEssential,
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Stg_ComponentRegister.c
--- a/Base/Automation/src/Stg_ComponentRegister.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Stg_ComponentRegister.c	Wed May 11 13:26:45 2011 -0700
@@ -133,8 +133,8 @@ void _Stg_ComponentRegister_Print( void*
 /* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 int Stg_ComponentRegister_AddFunc( 
 		Stg_ComponentRegister *self,
-		const Name componentType,
-		const Name version,
+		Name componentType,
+		Name version,
 		Stg_Component_DefaultConstructorFunction *func,
 		Stg_Component_MetaAsDictionaryFunction* metadata )
 {
@@ -185,7 +185,7 @@ Stg_Component_DefaultConstructorFunction
 {
 	assert( self );
    /* Get the element object */
-	Stg_ComponentRegisterElement *element = Stg_ObjectList_Get(self->constructors, componentType); 
+	Stg_ComponentRegisterElement *element = (Stg_ComponentRegisterElement*)Stg_ObjectList_Get(self->constructors, componentType); 
 	if ( element )
       /* Return the constructor function pointer */
 	   return element->defaultConstructor;
@@ -224,9 +224,9 @@ Dictionary* Stg_ComponentRegister_GetMet
 {
 	Stg_ComponentRegisterElement *element = NULL;
 	assert( self );
-	element = Stg_ObjectList_Get(self->constructors, componentType); 
+	element = (Stg_ComponentRegisterElement*)Stg_ObjectList_Get(self->constructors, componentType); 
 	if( element ){
-		return (void*) element->metadata();
+		return (Dictionary*) element->metadata();
 	}
 
 	return NULL;
@@ -274,7 +274,7 @@ void _Stg_ComponentRegisterElement_Delet
       _Stg_Class_Delete( element ); /* element's parent is a class so delete it */
 	}
 }
-Stg_ComponentRegisterElement* Stg_ComponentRegister_GetByIndex( void* componentRegister, int index ) {
+Stg_ComponentRegisterElement* Stg_ComponentRegister_GetByIndex( void* componentRegister, Index index ) {
 	Stg_ComponentRegister* self = (Stg_ComponentRegister*)componentRegister;
    assert(index < self->constructors->count);
 	return (Stg_ComponentRegisterElement*)self->constructors->data[index]; 
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/src/Stg_ComponentRegister.h
--- a/Base/Automation/src/Stg_ComponentRegister.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/src/Stg_ComponentRegister.h	Wed May 11 13:26:45 2011 -0700
@@ -47,10 +47,10 @@
 	/*struct Stg_Component_DefaultConstructorFunction;*/
 	#define __Stg_ComponentRegisterElement \
 		__Stg_Object						\
-		Type								componentType; \
+		char*								componentType; \
 		Stg_Component_DefaultConstructorFunction*			defaultConstructor; \
 		Stg_Component_MetaAsDictionaryFunction*                         metadata; \
-		Name								version;
+		char*								version;
 
 	struct Stg_ComponentRegisterElement{ __Stg_ComponentRegisterElement };
 
@@ -128,8 +128,8 @@
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 	int Stg_ComponentRegister_AddFunc( 
 			Stg_ComponentRegister *self,
-			const Name componentType,
-			const Name version,
+			Name componentType,
+			Name version,
 			Stg_Component_DefaultConstructorFunction *func,
 			Stg_Component_MetaAsDictionaryFunction* metadata );
 
@@ -178,7 +178,7 @@
 
 	/* Functions for iterating through the component element list ---------------------------------------------------*/
    int Stg_ComponentRegister_GetCount( void* componentRegister );
-   Stg_ComponentRegisterElement* Stg_ComponentRegister_GetByIndex( void* componentRegister, int index );
+   Stg_ComponentRegisterElement* Stg_ComponentRegister_GetByIndex( void* componentRegister, Index index );
 
 	/** Obtain the component type from the component list element */
 	Type Stg_ComponentRegisterElement_GetType( Stg_ComponentRegisterElement* element );
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/tests/CallGraphSuite.c
--- a/Base/Automation/tests/CallGraphSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/tests/CallGraphSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -64,8 +64,8 @@ void CallGraphSuite_TestPushPopBasics( C
    Stg_CallGraph_Init( &cg1 );
    
    /* Test 2: Can we push the first call on the stack? */
-   Stg_CallGraph_Push( cg0, TestFunc1, TestFunc1_Type );
-   Stg_CallGraph_Push( &cg1, TestFunc1, TestFunc1_Type );
+   Stg_CallGraph_Push( cg0, (void*)TestFunc1, TestFunc1_Type );
+   Stg_CallGraph_Push( &cg1, (void*)TestFunc1, TestFunc1_Type );
    pcu_check_true( 
       cg0->_stack && 
       !cg0->_stack->pop && 
@@ -117,15 +117,15 @@ void CallGraphSuite_TestFuncParentNameHa
    cg2 = Stg_CallGraph_New();
    
    /* Test 4: Ensure that each function pointer - parent pointer - name is a unique entry */
-   Stg_CallGraph_Push( cg2, TestFunc1, TestFunc1_Type ); /* p0: f:1 n:1  Should add */
-   Stg_CallGraph_Push( cg2, TestFunc2, TestFunc2_Type ); /* p1: f:2 n:2  Should add */
+   Stg_CallGraph_Push( cg2, (void*)TestFunc1, TestFunc1_Type ); /* p0: f:1 n:1  Should add */
+   Stg_CallGraph_Push( cg2, (void*)TestFunc2, TestFunc2_Type ); /* p1: f:2 n:2  Should add */
    Stg_CallGraph_Pop( cg2 );
-   Stg_CallGraph_Push( cg2, TestFunc2, TestFunc2_Type ); /* p1: f:2 n:2  Should increment */
+   Stg_CallGraph_Push( cg2, (void*)TestFunc2, TestFunc2_Type ); /* p1: f:2 n:2  Should increment */
    Stg_CallGraph_Pop( cg2 );
-   Stg_CallGraph_Push( cg2, TestFunc1, TestFunc2_Type ); /* p1: f:1 n:2  Should add (recursive case) */
+   Stg_CallGraph_Push( cg2, (void*)TestFunc1, TestFunc2_Type ); /* p1: f:1 n:2  Should add (recursive case) */
    Stg_CallGraph_Pop( cg2 );
-   Stg_CallGraph_Push( cg2, TestFunc2, TestFunc1_Type ); /* p1: f:2 n:1  Should add */
-   Stg_CallGraph_Push( cg2, TestFunc1, TestFunc1_Type ); /* p2: f:1 n:1  Should add */
+   Stg_CallGraph_Push( cg2, (void*)TestFunc2, TestFunc1_Type ); /* p1: f:2 n:1  Should add */
+   Stg_CallGraph_Push( cg2, (void*)TestFunc1, TestFunc1_Type ); /* p2: f:1 n:1  Should add */
    Stg_CallGraph_Pop( cg2 );
    Stg_CallGraph_Pop( cg2 );
    Stg_CallGraph_Pop( cg2 );
@@ -149,9 +149,9 @@ void CallGraphSuite_TestFuncParentNameHa
 
 void CallGraphSuite_TestTableRealloc( CallGraphSuiteData* data ) {
    Stg_CallGraph*	cg3;
-   int  		count=0;
+   Index  		count=0;
    Index		size=0;
-   int  		ii=0;
+   Index  		ii=0;
 
    cg3 = Stg_CallGraph_New();
    /* Test 5: Force a realloc of the table */
@@ -159,7 +159,7 @@ void CallGraphSuite_TestTableRealloc( Ca
    size = cg3->_tableSize;
    for( ii = 0; ii < count; ii++ ) {
       /* Use "i" as a unique string (unique pointer value)... don't try to print! */
-     Stg_CallGraph_Push( cg3, TestFunc1, (Name)(NULL + ii) );
+     Stg_CallGraph_Push( cg3, (void*)TestFunc1, NULL);
    }
    pcu_check_true( cg3->_tableCount == count && cg3->_tableSize == (size * 2) ); 
 
@@ -177,11 +177,11 @@ void CallGraphSuite_TestCopy( CallGraphS
    count = (int)((double)1.5 * cg3->_tableSize);
    for( ii = 0; ii < count; ii++ ) {
       /* Use "i" as a unique string (unique pointer value)... don't try to print! */
-     Stg_CallGraph_Push( cg3, TestFunc1, (Name)(NULL + ii) );
+     Stg_CallGraph_Push( cg3, (void*)TestFunc1, NULL);
    }
 
    /* Shallow copying not yet implemented */
-   cg3deep = Stg_Class_Copy( cg3, 0, True, 0, 0 );
+   cg3deep = (Stg_CallGraph*)Stg_Class_Copy( cg3, 0, True, 0, 0 );
    pcu_check_true(
       cg3->_tableCount == cg3deep->_tableCount &&
       cg3->_tableSize == cg3deep->_tableSize &&
diff -r 7c15b31c769d -r 4a864caece0b Base/Automation/tests/ComponentCopySuite.c
--- a/Base/Automation/tests/ComponentCopySuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Automation/tests/ComponentCopySuite.c	Wed May 11 13:26:45 2011 -0700
@@ -61,9 +61,9 @@ Type Stg_ComponentB_Type = "Stg_Componen
 Type Stg_ComponentB_Type = "Stg_ComponentB";
 Type Stg_ComponentC_Type = "Stg_ComponentC";
 
-const char* Stg_ComponentA_Type_GetMetadata() { return  ""; }
-const char* Stg_ComponentB_Type_GetMetadata() { return  ""; }
-const char* Stg_ComponentC_Type_GetMetadata() { return  ""; }
+Name Stg_ComponentA_Type_GetMetadata() { return  ""; }
+Name Stg_ComponentB_Type_GetMetadata() { return  ""; }
+Name Stg_ComponentC_Type_GetMetadata() { return  ""; }
 
 
 #define __Stg_ComponentA \
@@ -73,9 +73,9 @@ struct Stg_ComponentA { __Stg_ComponentA
 struct Stg_ComponentA { __Stg_ComponentA };
 
 void* Stg_ComponentA_NewDefault( Name name );
-void Stg_ComponentA_Delete( void* class );
-void Stg_ComponentA_Print( void* class, Stream* s );
-void* Stg_ComponentA_Copy( void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+void Stg_ComponentA_Delete( void*  );
+void Stg_ComponentA_Print( void* , Stream* s );
+void* Stg_ComponentA_Copy( const void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 void Stg_ComponentA_AssignFromXML( void* component, Stg_ComponentFactory* cf, void* data );
 void Stg_ComponentA_Build( void* component, void* data );
 void Stg_ComponentA_Initialise( void* component, void* data );
@@ -100,16 +100,16 @@ void* Stg_ComponentA_NewDefault( Name na
 
 	return _Stg_Component_New(  STG_COMPONENT_PASSARGS  );
 }
-void Stg_ComponentA_Delete( void* class ) {
-	Stg_ComponentA* self = (Stg_ComponentA*)class;
+void Stg_ComponentA_Delete( void* clss ) {
+	Stg_ComponentA* self = (Stg_ComponentA*)clss;
 	
 	Stg_Class_Delete( self->c );
 	Stg_Class_Delete( self->b );
 
 	_Stg_Component_Delete( self );
 }
-void Stg_ComponentA_Print( void* class, Stream* s ) {
-	Stg_ComponentA* self = (Stg_ComponentA*)class;
+void Stg_ComponentA_Print( void* clss, Stream* s ) {
+	Stg_ComponentA* self = (Stg_ComponentA*)clss;
 
 	Journal_Printf(
 		s,
@@ -117,15 +117,15 @@ void Stg_ComponentA_Print( void* class, 
 	Stg_Class_Print( self->b, s );
 	Stg_Class_Print( self->c, s );
 }
-void* Stg_ComponentA_Copy( void* class, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	Stg_ComponentA* self = (Stg_ComponentA*)class;
+void* Stg_ComponentA_Copy( const void* clss, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+	Stg_ComponentA* self = (Stg_ComponentA*)clss;
 	Stg_ComponentA* newCopy;
 	
-	newCopy = _Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
+	newCopy = (Stg_ComponentA*)_Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
 	PtrMap_Append( ptrMap, self, newCopy );
 	
-	newCopy->b = Stg_Class_Copy( self->b, dest, deep, nameExt, ptrMap );
-	newCopy->c = Stg_Class_Copy( self->c, dest, deep, nameExt, ptrMap );
+	newCopy->b = (Stg_ComponentB*)Stg_Class_Copy( self->b, dest, deep, nameExt, ptrMap );
+	newCopy->c = (Stg_ComponentC*)Stg_Class_Copy( self->c, dest, deep, nameExt, ptrMap );
 	
 	return newCopy;
 }
@@ -159,9 +159,9 @@ struct Stg_ComponentB { __Stg_ComponentB
 struct Stg_ComponentB { __Stg_ComponentB };
 
 void* Stg_ComponentB_NewDefault( Name name );
-void Stg_ComponentB_Delete( void* class );
-void Stg_ComponentB_Print( void* class, Stream* s );
-void* Stg_ComponentB_Copy( void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+void Stg_ComponentB_Delete( void* );
+void Stg_ComponentB_Print( void* , Stream* s );
+void* Stg_ComponentB_Copy( const void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 void Stg_ComponentB_AssignFromXML( void* component, Stg_ComponentFactory* cf, void* data );
 void Stg_ComponentB_Build( void* component, void* data );
 void Stg_ComponentB_Initialise( void* component, void* data );
@@ -186,23 +186,23 @@ void* Stg_ComponentB_NewDefault( Name na
 
 	return _Stg_Component_New(  STG_COMPONENT_PASSARGS  );
 }
-void Stg_ComponentB_Delete( void* class ) {
-	Stg_ComponentB* self = (Stg_ComponentB*)class;
+void Stg_ComponentB_Delete( void* clss ) {
+	Stg_ComponentB* self = (Stg_ComponentB*)clss;
 	
 	_Stg_Component_Delete( self );
 }
-void Stg_ComponentB_Print( void* class, Stream* s ) {
-	Stg_ComponentB* self = (Stg_ComponentB*)class;
+void Stg_ComponentB_Print( void* clss, Stream* s ) {
+	Stg_ComponentB* self = (Stg_ComponentB*)clss;
 
 	Journal_Printf(
 		s,
 		"%s %s %d,\n", self->name, self->type, Memory_CountGet( self ) );
 }
-void* Stg_ComponentB_Copy( void* class, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	Stg_ComponentB* self = (Stg_ComponentB*)class;
+void* Stg_ComponentB_Copy( const void* clss, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+	Stg_ComponentB* self = (Stg_ComponentB*)clss;
 	Stg_ComponentB* newCopy;
 	
-	newCopy = _Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
+	newCopy = (Stg_ComponentB*)_Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
 	PtrMap_Append( ptrMap, self, newCopy );
 	
 	return newCopy;
@@ -229,9 +229,9 @@ struct Stg_ComponentC { __Stg_ComponentC
 struct Stg_ComponentC { __Stg_ComponentC };
 
 void* Stg_ComponentC_NewDefault( Name name );
-void Stg_ComponentC_Delete( void* class );
-void Stg_ComponentC_Print( void* class, Stream* s );
-void* Stg_ComponentC_Copy( void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+void Stg_ComponentC_Delete( void* clss );
+void Stg_ComponentC_Print( void* clss, Stream* s );
+void* Stg_ComponentC_Copy( const void* self, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 void Stg_ComponentC_AssignFromXML( void* component, Stg_ComponentFactory* cf, void* data );
 void Stg_ComponentC_Build( void* component, void* data );
 void Stg_ComponentC_Initialise( void* component, void* data );
@@ -256,29 +256,29 @@ void* Stg_ComponentC_NewDefault( Name na
 
 	return _Stg_Component_New(  STG_COMPONENT_PASSARGS  );
 }
-void Stg_ComponentC_Delete( void* class ) {
-	Stg_ComponentC* self = (Stg_ComponentC*)class;
+void Stg_ComponentC_Delete( void* clss ) {
+	Stg_ComponentC* self = (Stg_ComponentC*)clss;
 	
 	Stg_Class_Delete( self->b );
 
 	_Stg_Component_Delete( self );
 }
-void Stg_ComponentC_Print( void* class, Stream* s ) {
-	Stg_ComponentC* self = (Stg_ComponentC*)class;
+void Stg_ComponentC_Print( void* clss, Stream* s ) {
+	Stg_ComponentC* self = (Stg_ComponentC*)clss;
 
 	Journal_Printf(
 		s,
 		"%s %s %d,\n", self->name, self->type, Memory_CountGet( self ) );
 	Stg_Class_Print( self->b, s );
 }
-void* Stg_ComponentC_Copy( void* class, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
-	Stg_ComponentC* self = (Stg_ComponentC*)class;
+void* Stg_ComponentC_Copy( const void* clss, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+	Stg_ComponentC* self = (Stg_ComponentC*)clss;
 	Stg_ComponentC* newCopy;
 	
-	newCopy = _Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
+	newCopy = (Stg_ComponentC*)_Stg_Component_Copy( self, dest, deep, nameExt, ptrMap );
 	PtrMap_Append( ptrMap, self, newCopy );
 
-	newCopy->b = Stg_Class_Copy( self->b, dest, deep, nameExt, ptrMap );
+	newCopy->b = (Stg_ComponentB*)Stg_Class_Copy( self->b, dest, deep, nameExt, ptrMap );
 
 	return newCopy;
 }
@@ -369,7 +369,7 @@ void ComponentCopySuite_TestCopy( Compon
       a->c != NULL &&
       a->b == a->c->b  );
 
-   aCopy = Stg_Class_Copy( a, NULL, True, "_dup", NULL );
+   aCopy = (Stg_ComponentA*)Stg_Class_Copy( a, NULL, True, "_dup", NULL );
 
    /* Disown the copy. Why? Because main() doesn't own the original neither.
     * The instance counting then matches up.
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/AbsArray.c
--- a/Base/Container/src/AbsArray.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/AbsArray.c	Wed May 11 13:26:45 2011 -0700
@@ -151,7 +151,7 @@ const int* AbsArray_GetPtr( const void* 
 const int* AbsArray_GetPtr( const void* _self ) {
    AbsArray* self = Class_Cast( _self, AbsArray );
 
-   return self->ptr;
+   return (const int*)(self->ptr);
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/ChunkArray.c
--- a/Base/Container/src/ChunkArray.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/ChunkArray.c	Wed May 11 13:26:45 2011 -0700
@@ -173,7 +173,7 @@ ChunkArray_CreateChunk
         int  i = 0;
 
         chunkArray->maxChunkEntries += CHUNK_ARRAY_DELTA;
-        chunkArray->chunks = realloc(chunkArray->chunks, sizeof(Chunk)*chunkArray->maxChunkEntries );
+          chunkArray->chunks = (Chunk*)realloc(chunkArray->chunks, sizeof(Chunk)*chunkArray->maxChunkEntries );
 
         assert(chunkArray->chunks);
     	memset(&chunkArray->chunks[chunkArray->maxChunkEntries-CHUNK_ARRAY_DELTA], 0, sizeof(Chunk)*CHUNK_ARRAY_DELTA);
@@ -186,8 +186,8 @@ ChunkArray_CreateChunk
 
     {
         int        idx     = 0;
-        int        i       = 0;
-        int        j       = 0;
+        Index        i       = 0;
+        Index        j       = 0;
         
         idx = pos;
 
@@ -228,11 +228,11 @@ ChunkArray_NewObjectFunc
     char                        *result     = NULL;
     int                objectID    = ChunkArray_NewObjectIDFunc(elementSize, chunkArray);
     int                chunkID     = objectID >> 16;
-    int                arrayIdx    = objectID & TWO_EXP16;
+    Index                arrayIdx    = objectID & TWO_EXP16;
 
     if(chunkID < chunkArray->maxChunkEntries && chunkArray->chunks[chunkID].numFree != INVALID){
         if(arrayIdx < chunkArray->numElementsPerChunk*chunkArray->elementSize){
-            result = (void*) ChunkArray_ObjectAt(chunkArray, objectID);
+            result = (char*) ChunkArray_ObjectAt(chunkArray, objectID);
         }
         else{
             assert(0);
@@ -392,7 +392,7 @@ ChunkArray_DeleteObjectID
 )
 {
     int chunkID  = objectId >> 16;
-    int arrayIdx = objectId & TWO_EXP16;
+    Index arrayIdx = objectId & TWO_EXP16;
     char         *objPtr  = NULL;
         
     if(chunkID < chunkArray->maxChunkEntries && chunkArray->chunks[chunkID].numFree != INVALID){
@@ -482,7 +482,7 @@ label:  shrinkChunkArray = 1;
                 assert(0);
             }
             
-            chunkArray->chunks = realloc(chunkArray->chunks, sizeof(Chunk)*(chunkArray->maxChunkEntries));
+              chunkArray->chunks = (Chunk*)realloc(chunkArray->chunks, sizeof(Chunk)*(chunkArray->maxChunkEntries));
 
             chunkArray->chunkToUse = ChunkArray_GetChunkWithFreeSlots(chunkArray);
             
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/HashTable.c
--- a/Base/Container/src/HashTable.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/HashTable.c	Wed May 11 13:26:45 2011 -0700
@@ -146,7 +146,7 @@ void _HashTable_DeleteFunc( void *ht )
 {
 	HashTable *self = NULL;
 	HashTable_Entry *he = NULL, *heTemp = NULL;
-	int i = 0;
+	Index i = 0;
 
 	self = (HashTable*)ht;
 	assert (self);
@@ -179,13 +179,13 @@ void _HashTable_DeleteFunc( void *ht )
 	_Stg_Class_Delete( self );
 }
 
-void* _HashTable_CopyFunc( void* source, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _HashTable_CopyFunc( const void* source, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	HashTable* self = (HashTable*)source;
 	HashTable* newTable;
 	HashTable_Index* hi;
 	void* key;
 
-	newTable = _Stg_Class_Copy( self, NULL, deep, nameExt, ptrMap ) ;
+	newTable = (HashTable*)_Stg_Class_Copy( self, NULL, deep, nameExt, ptrMap ) ;
 
 	newTable->hashFunction = self->hashFunction;
 	newTable->dataCopyFunction = self->dataCopyFunction;
@@ -200,7 +200,7 @@ void* _HashTable_CopyFunc( void* source,
 	memset( newTable->entries, 0, sizeof( HashTable_Entry* ) * (self->max+1) );
 
 	for ( hi = HashTable_First( self ); hi; hi = HashTable_Next( hi ) ) {
-		void* dataPtr = PtrMap_Find( ptrMap, hi->curr->data );
+		const void* dataPtr = PtrMap_Find( ptrMap, hi->curr->data );
 		if ( dataPtr == NULL ) {
 			if ( self->dataCopyFunction ) {
 				/* data copy */
@@ -349,7 +349,7 @@ unsigned int hashStringFunction( const v
 /*----------------------------------------------------------------------------------------------------------------------------------
 ** Public Functions
 */
-int HashTable_InsertEntry ( HashTable *ht, const void *voidKey, unsigned int keyLen, void *data, SizeT dataSize )
+int HashTable_InsertEntry ( HashTable *ht, const void *voidKey, unsigned int keyLen, const void *data, SizeT dataSize )
 {
 	unsigned int hash = 0;
 	HashTable_Entry *he = NULL, **hep = NULL;
@@ -501,7 +501,7 @@ int HashTable_DeleteEntry( HashTable* ht
 		*hep = he->next;
 		ht->count--;
 		if( ht->dataDeleteFunction ){
-			ht->dataDeleteFunction( he->data );
+                  ht->dataDeleteFunction( (void*)(he->data) );
 		}
 		else{
 			/* Leaving the data inside the entry */
@@ -525,7 +525,7 @@ void HashTable_ParseTable( HashTable *ht
 {
 	HashTable *self = NULL;
 	HashTable_Entry *he = NULL;
-	int i = 0;
+	Index i = 0;
 
 	self = (HashTable*)ht;
 	assert( self );
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/HashTable.h
--- a/Base/Container/src/HashTable.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/HashTable.h	Wed May 11 13:26:45 2011 -0700
@@ -62,7 +62,7 @@
 		/** This is a function type to be provided by the user, which can be applied to each node on the tree later on.
 		 * The first argument is the data stored inside a node and the second argument can be a single argument or a 
 		 * struct of arguments that need to be passed to the user-supplied function */
-	typedef void	(HashTable_parseFunction)			( void *, void * );
+	typedef void	(HashTable_parseFunction)			( const void *, void * );
 
 	/** \def HashTable_Entry see __HashTable_Entry */
 	#define __HashTable_Entry \
@@ -70,7 +70,7 @@
 		unsigned int 			hash; \
 		const void 			*key; \
 		size_t 				keyLength; \
-		void				*data; \
+		const void			*data; \
 		size_t				dataSize;	
 
 	struct HashTable_Entry { __HashTable_Entry };
@@ -138,11 +138,11 @@
 		/** Class print function */
 	void _HashTable_PrintFunc ( void *ht, Stream* stream );
 
-	void* _HashTable_CopyFunc( void* source, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _HashTable_CopyFunc( const void* source, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	/** Public functions */
 	/** Inserts a new entry into the hashTable  */
-	int HashTable_InsertEntry ( HashTable *ht, const void *voidKey, unsigned int keyLen, void *data, SizeT dataSize );
+	int HashTable_InsertEntry ( HashTable *ht, const void *voidKey, unsigned int keyLen, const void *data, SizeT dataSize );
 		
 	/** Public functions */
 	/** Inserts a new entry into the hashTable copying the data with the copy function if any */
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/IndexMap.c
--- a/Base/Container/src/IndexMap.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/IndexMap.c	Wed May 11 13:26:45 2011 -0700
@@ -42,7 +42,7 @@
 #include <string.h>
 #include <math.h>
 #include <assert.h>
-
+#include <limits.h>
 
 /* Textual name of this class */
 const Type IndexMap_Type = "IndexMap";
@@ -165,7 +165,7 @@ void _IndexMap_Print( void* indexMap, St
 }
 
 
-void* _IndexMap_Copy( void* indexMap, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _IndexMap_Copy( const void* indexMap, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	IndexMap*	self = (IndexMap*)indexMap;
 	IndexMap*	newIndexMap;
 	PtrMap*		map = ptrMap;
@@ -176,7 +176,7 @@ void* _IndexMap_Copy( void* indexMap, vo
 		ownMap = True;
 	}
 	
-	newIndexMap = _Stg_Class_Copy( self, dest, deep, nameExt, map );
+	newIndexMap = (IndexMap*)_Stg_Class_Copy( self, dest, deep, nameExt, map );
 	
 	newIndexMap->dictionary = self->dictionary;
 	newIndexMap->delta = self->delta;
@@ -184,7 +184,7 @@ void* _IndexMap_Copy( void* indexMap, vo
 	newIndexMap->tupleCnt = self->tupleCnt;
 	
 	if( deep ) {
-		if( (newIndexMap->tupleTbl = PtrMap_Find( map, self->tupleTbl )) == NULL && self->tupleTbl ) {
+          if( (newIndexMap->tupleTbl = (IndexMapTuple*)PtrMap_Find( map, self->tupleTbl )) == NULL && self->tupleTbl ) {
 			newIndexMap->tupleTbl = Memory_Alloc_Array( IndexMapTuple, self->maxTuples, "IndexMap->tupleTbl" );
 			memcpy( newIndexMap->tupleTbl, self->tupleTbl, sizeof(IndexMapTuple) * self->maxTuples );
 			PtrMap_Append( map, self->tupleTbl, newIndexMap->tupleTbl );
@@ -210,9 +210,9 @@ void IndexMap_Append( void* indexMap, In
 	IndexMap*		self = (IndexMap*)indexMap;
 	unsigned		newTupleCnt;
 	
-	assert( self && key != -1 && idx != -1 );
+	assert( self && key != (unsigned)(-1) && idx != (unsigned)(-1) );
 	
-	if( IndexMap_Find( self, key ) != -1 ) {
+	if( IndexMap_Find( self, key ) != (unsigned)(-1) ) {
 		return;
 	}
 	
@@ -245,14 +245,14 @@ Index IndexMap_Find( void* indexMap, Ind
 	
 	assert( self );
 	
-	if( key != -1 ) {
+	if( key != (unsigned)(-1) ) {
 		for( tuple_I = 0; tuple_I < self->tupleCnt; tuple_I++ ) {
 			if( self->tupleTbl[tuple_I].key == key )
 				return self->tupleTbl[tuple_I].idx;
 		}
 	}
 	
-	return -1;
+	return (unsigned)(-1);
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/IndexMap.h
--- a/Base/Container/src/IndexMap.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/IndexMap.h	Wed May 11 13:26:45 2011 -0700
@@ -128,7 +128,7 @@
 	#define IndexMap_DeepCopy( self ) \
 		(IndexMap*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _IndexMap_Copy( void* indexMap, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _IndexMap_Copy( const void* indexMap, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/*--------------------------------------------------------------------------------------------------------------------------
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/IndexSet.c
--- a/Base/Container/src/IndexSet.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/IndexSet.c	Wed May 11 13:26:45 2011 -0700
@@ -165,7 +165,7 @@ void _IndexSet_Print( void* indexSet, St
 }
 
 
-void* _IndexSet_Copy( void* indexSet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _IndexSet_Copy( const void* indexSet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	IndexSet*	self = (IndexSet*)indexSet;
 	IndexSet*	newIndexSet;
 	
@@ -232,15 +232,15 @@ Bool IndexSet_IsMember( void* indexSet, 
 
 IndexSet_Index IndexSet_GetIndexOfNthMember( void* indexSet, const Index nthMember ) {
 	IndexSet*		self = (IndexSet*)indexSet;
-	int		membersSoFar = -1;
+	Index		membersSoFar = 0;
 	IndexSet_Index	index_I;
 	
 	for( index_I = 0; index_I < self->size; index_I++ ) {
 		if( IS_MEMBER( self, index_I ) ) {
-			membersSoFar++;
 			if ( nthMember == membersSoFar ) {
 				return index_I;
 			}
+			membersSoFar++;
 		}
 	}
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/IndexSet.h
--- a/Base/Container/src/IndexSet.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/IndexSet.h	Wed May 11 13:26:45 2011 -0700
@@ -124,7 +124,7 @@
 	#define IndexSet_DeepCopy( self ) \
 		(IndexSet*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _IndexSet_Copy( void* indexSet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _IndexSet_Copy( const void* indexSet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	/** "Add" an index - i.e., set a particular index into the set's value as
 	True. If true already, value is unchanged. */
@@ -193,7 +193,7 @@
 	void _IndexSet_Duplicate( void* indexSet, void* newIndexSet );
 	
 	/** Prints message and exits properly when bad access/write detected. */
-	void _IndexSet_Abort( IndexSet* indexSet, const char* const funcName, IndexSet_Index index );
+	void _IndexSet_Abort( IndexSet* indexSet, Name const funcName, IndexSet_Index index );
 
 #endif /* __StGermain_Base_Container_IndexSet_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/LinkedList.c
--- a/Base/Container/src/LinkedList.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/LinkedList.c	Wed May 11 13:26:45 2011 -0700
@@ -379,5 +379,3 @@ void *LinkedList_ReturnNodeDataAtFunc( L
 	}
 	return NULL;
 }
-
-
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/List.c
--- a/Base/Container/src/List.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/List.c	Wed May 11 13:26:45 2011 -0700
@@ -49,7 +49,7 @@ const Type List_Type = "List";
 ** Constructors
 */
 
-List* List_New( Name name ) {
+List* List_New() {
 	/* Variables set in this function */
 	SizeT                      _sizeOfSelf = sizeof(List);
 	Type                              type = List_Type;
@@ -240,9 +240,9 @@ void List_Expand( List* self ) {
 void List_Expand( List* self ) {
 	self->maxItems += self->delta;
 	if( !self->items )
-		self->items = Memory_Alloc_Array_Bytes( self->itemSize, self->maxItems, "", "List::items" );
+          self->items = (Stg_Byte*)Memory_Alloc_Array_Bytes( self->itemSize, self->maxItems, "", "List::items" );
 	else
-		self->items = Memory_Realloc_Array_Bytes( self->items, self->itemSize, self->maxItems );
+          self->items = (Stg_Byte*)Memory_Realloc_Array_Bytes( self->items, self->itemSize, self->maxItems );
 }
 
 void List_Contract( List* self ) {
@@ -254,7 +254,7 @@ void List_Contract( List* self ) {
 	if( !self->maxItems )
 		KillArray( self->items );
 	else
-		self->items = Memory_Realloc_Array_Bytes( self->items, self->itemSize, self->maxItems );
+          self->items = (Stg_Byte*)Memory_Realloc_Array_Bytes( self->items, self->itemSize, self->maxItems );
 }
 
 void List_Destruct( List* self ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/MPIRoutines.c
--- a/Base/Container/src/MPIRoutines.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/MPIRoutines.c	Wed May 11 13:26:45 2011 -0700
@@ -106,7 +106,7 @@ void MPIArray_Gather( unsigned arraySize
 		}
 
 		if( netSize )
-			tmpArray = Memory_Alloc_Array_Bytes_Unnamed( itemSize, netSize, "unknown" );
+                  tmpArray = (Stg_Byte*)Memory_Alloc_Array_Bytes_Unnamed( itemSize, netSize, "unknown" );
 		else
 			tmpArray = NULL;
 	}
@@ -229,7 +229,7 @@ void MPIArray_Alltoall( unsigned* arrayS
 	}
 
 	if( netSize )
-		tmpDstArray1D = Memory_Alloc_Array_Bytes_Unnamed( itemSize, netSize, "unknown" );
+          tmpDstArray1D = (unsigned*)Memory_Alloc_Array_Bytes_Unnamed( itemSize, netSize, "unknown" );
 	else
 		tmpDstArray1D = NULL;
 
@@ -336,7 +336,7 @@ void Array_2DTo1D( unsigned nBlocks, uns
 			tmpArray = Memory_Alloc_Array_Bytes_Unnamed( itemSize, netSize, "" );
 
 			for( b_i = 0; b_i < nBlocks; b_i++ ) {
-				dest = tmpArray;
+                          dest = (char*)tmpArray;
 				dest += (tmpDisps[b_i] * itemSize);
 				memcpy( dest, srcArrays[b_i], itemSize * sizes[b_i] );
 			}
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/MemoryPool.c
--- a/Base/Container/src/MemoryPool.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/MemoryPool.c	Wed May 11 13:26:45 2011 -0700
@@ -92,12 +92,12 @@ void _MemoryPool_Init( MemoryPool* self 
 	assert( self->numMemChunks == 1 );
 
 	self->chunks = (MemChunk*)Memory_Alloc_Bytes_Unnamed( sizeof(MemChunk)*self->numMemChunks, "char*" );
-	self->chunks[self->numMemChunks-1].memory = Memory_Alloc_Bytes_Unnamed( self->elementSize * self->numElements, "char" );
+	self->chunks[self->numMemChunks-1].memory = (char*)Memory_Alloc_Bytes_Unnamed( self->elementSize * self->numElements, "char" );
 	memset( self->chunks[self->numMemChunks-1].memory, 0, self->elementSize * self->numElements );
 	self->chunks[self->numMemChunks-1].numFree = self->numElements;
 	self->chunks[self->numMemChunks-1].maxFree = self->numElements;
 
-	self->pool = Memory_Alloc_Bytes_Unnamed( sizeof( char* ) * self->numElements, "char*" );
+	self->pool = (char**)Memory_Alloc_Bytes_Unnamed( sizeof( char* ) * self->numElements, "char*" );
 	memset( self->pool, 0, sizeof(char*) * self->numElements );
 	
 	for( i=0; i<self->numElements; i++ ){
@@ -177,7 +177,7 @@ label:	index = memPool->numElementsFree 
 		goto label;
 	}
 
-	result = (void*)(memPool->pool[--memPool->numElementsFree]);
+	result = (char*)(memPool->pool[--memPool->numElementsFree]);
 
 	for( i=0; i<memPool->numMemChunks; i++ ){
 		int numObjs = 0;
@@ -215,14 +215,14 @@ Bool MemoryPool_DeleteObject( MemoryPool
 			memset( (char*)object, 0, memPool->elementSize );
 			memPool->pool[memPool->numElementsFree++] = (char*)object;
 			MemoryPool_Shrink( memPool );
-			return 1;
+			return True;
 		}
 		else{
-			return 0;
+			return False;
 		}
 	}
 	else{
-		return 0;
+		return False;
 	}
 }
 
@@ -238,12 +238,12 @@ void MemoryPool_Extend( MemoryPool *memP
 	memPool->chunks = (MemChunk*)Memory_Realloc( memPool->chunks, sizeof(MemChunk)*memPool->numMemChunks );
 	assert( memPool->chunks );
 
-	memPool->chunks[memPool->numMemChunks-1].memory = Memory_Alloc_Bytes_Unnamed( memPool->elementSize * memPool->delta, "int" );
+	memPool->chunks[memPool->numMemChunks-1].memory = (char*)Memory_Alloc_Bytes_Unnamed( memPool->elementSize * memPool->delta, "int" );
 	memset( memPool->chunks[memPool->numMemChunks-1].memory, 0, memPool->elementSize * memPool->delta );
 	memPool->chunks[memPool->numMemChunks-1].numFree = memPool->delta;
 	memPool->chunks[memPool->numMemChunks-1].maxFree = memPool->delta;
 
-	newPool = Memory_Alloc_Bytes_Unnamed( sizeof(char*) * (memPool->numElements+memPool->delta), "char*" );
+	newPool = (char**)Memory_Alloc_Bytes_Unnamed( sizeof(char*) * (memPool->numElements+memPool->delta), "char*" );
 	assert( newPool );
 
 	memcpy( newPool+memPool->delta, memPool->pool, sizeof(char*)*memPool->numElements );
@@ -265,7 +265,7 @@ void MemoryPool_Shrink( MemoryPool *memP
 void MemoryPool_Shrink( MemoryPool *memPool )
 {
 	int i = 0;
-	Bool deleteFlag = 0;
+	Bool deleteFlag = False;
 	int chunkIdx = 0;
 	char **newPool = (char**)0;
 	int eCounter = 0;
@@ -289,7 +289,7 @@ void MemoryPool_Shrink( MemoryPool *memP
 		int numObjs = 0;
 		numObjs = memPool->chunks[chunkIdx].maxFree*memPool->elementSize;
 
-		newPool = Memory_Alloc_Bytes_Unnamed( sizeof(char*) * (memPool->numElements-memPool->chunks[chunkIdx].maxFree), "char*" );
+		newPool = (char**)Memory_Alloc_Bytes_Unnamed( sizeof(char*) * (memPool->numElements-memPool->chunks[chunkIdx].maxFree), "char*" );
 
 		eCounter = 0;
 		for( i=0; i<memPool->numElements; i++ ){
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/PtrMap.c
--- a/Base/Container/src/PtrMap.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/PtrMap.c	Wed May 11 13:26:45 2011 -0700
@@ -197,7 +197,7 @@ void PtrMap_Append( void* ptrMap, void* 
 }
 
 
-void* PtrMap_Find( void* ptrMap, void* key ) {
+void* PtrMap_Find( void* ptrMap, const void* key ) {
 	PtrMap*			self = (PtrMap*)ptrMap;
 	unsigned		tuple_I;
 	
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/PtrMap.h
--- a/Base/Container/src/PtrMap.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/PtrMap.h	Wed May 11 13:26:45 2011 -0700
@@ -123,7 +123,7 @@
 	
 	void PtrMap_Append( void* ptrMap, void* key, void* ptr );
 	
-	void* PtrMap_Find( void* ptrMap, void* key );
+	void* PtrMap_Find( void* ptrMap, const void* key );
 	
 	
 	/*--------------------------------------------------------------------------------------------------------------------------
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/RangeSet.c
--- a/Base/Container/src/RangeSet.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/RangeSet.c	Wed May 11 13:26:45 2011 -0700
@@ -113,7 +113,7 @@ void _RangeSet_Print( void* rangeSet, St
 	_Stg_Class_Print( self, stream );
 }
 
-void* _RangeSet_Copy( void* rangeSet, void* destProc_I, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _RangeSet_Copy( const void* rangeSet, void* destProc_I, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	RangeSet*	self = (RangeSet*)rangeSet;
 	RangeSet*	newRangeSet;
 	unsigned	nInds, *inds;
@@ -280,7 +280,7 @@ Bool RangeSet_HasIndex( void* rangeSet, 
 	node = BTree_FindNode( self->btree, &rng );
 
 	if( node )
-		return RangeSet_Range_HasIndex( node->data, index );
+          return RangeSet_Range_HasIndex( (RangeSet_Range*)(node->data), index );
 	else
 		return False;
 }
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/RangeSet.h
--- a/Base/Container/src/RangeSet.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/RangeSet.h	Wed May 11 13:26:45 2011 -0700
@@ -91,7 +91,7 @@
 		(RangeSet*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	#define RangeSet_DeepCopy( self )				\
 		(RangeSet*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	void* _RangeSet_Copy( void* rangeSet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _RangeSet_Copy( const void* rangeSet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Public functions
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/STree.c
--- a/Base/Container/src/STree.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/STree.c	Wed May 11 13:26:45 2011 -0700
@@ -169,7 +169,7 @@ void STree_Remove( void* _self, const vo
       cur->right->left = cur->left;
    }
    else if ( self->flip ) {
-      STreeNode *last = cur->left, *preLast;
+      STreeNode *last = cur->left, *preLast=NULL;
       while ( last->right ) {
 	 preLast = last;
 	 last = last->right;
@@ -181,7 +181,7 @@ void STree_Remove( void* _self, const vo
       self->flip = 0;
    }
    else {
-      STreeNode *last = cur->right, *preLast;
+      STreeNode *last = cur->right, *preLast=NULL;
       while ( last->left ) {
 	 preLast = last;
 	 last = last->left;
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/UIntMap.c
--- a/Base/Container/src/UIntMap.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/UIntMap.c	Wed May 11 13:26:45 2011 -0700
@@ -114,7 +114,7 @@ void _UIntMap_Print( void* generator, St
 	_Stg_Class_Print( self, stream );
 }
 
-void* _UIntMap_Copy( void* generator, void* destProc_I, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _UIntMap_Copy( const void* generator, void* destProc_I, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 #if 0
 	UIntMap*	self = (UIntMap*)generator;
 	UIntMap*	newUIntMap;
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/src/UIntMap.h
--- a/Base/Container/src/UIntMap.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/src/UIntMap.h	Wed May 11 13:26:45 2011 -0700
@@ -91,7 +91,7 @@
 		(Mesh*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	#define UIntMap_DeepCopy( self ) \
 		(Mesh*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	void* _UIntMap_Copy( void* map, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _UIntMap_Copy( const void* map, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Public functions
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/tests/BTreeSuite.c
--- a/Base/Container/tests/BTreeSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/tests/BTreeSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -131,7 +131,7 @@ void BTreeSuite_TestInsert( BTreeSuiteDa
 
    /* Inserting data into the Tree\n */
    for(ii=0; ii<NUM_DATA; ii++){
-      array[ii] = malloc(sizeof(int));
+     array[ii] = (int*)malloc(sizeof(int));
       *array[ii] = NUM_DATA - ii;
       BTree_InsertNode(data->numList, (void*)array[ii], sizeof(int));
    }
@@ -161,7 +161,7 @@ void BTreeSuite_TestDelete( BTreeSuiteDa
 
    /* Inserting data into the Tree\n */
    for(ii=0; ii<NUM_DATA; ii++){
-      array[ii] = malloc(sizeof(int));
+     array[ii] = (int*)malloc(sizeof(int));
       *array[ii] = NUM_DATA - ii;
       BTree_InsertNode(data->numList, (void*)array[ii], sizeof(int));
    }
@@ -197,7 +197,7 @@ void BTreeSuite_TestFindNode( BTreeSuite
 
    /* Inserting data into the Tree\n */
    for(ii=0; ii<NUM_DATA/2; ii++){
-      array[ii] = malloc(sizeof(int));
+     array[ii] = (int*)malloc(sizeof(int));
       *array[ii] = NUM_DATA - ii;
       BTree_InsertNode(data->numList, (void*)array[ii], sizeof(int));
    }
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/tests/HashTableSuite.c
--- a/Base/Container/tests/HashTableSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/tests/HashTableSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -77,21 +77,21 @@ void ptrPrintFunction( void *entry, void
 	Journal_Printf( (Stream*)stream, "\t\t(ptr)%p\n", (void*)entry );
 }
 
-void checkFunction( void *entry, void *arg ){
+void checkFunction( const void *entry, void *arg ){
    int*     wordFoundArray = (int*)arg;
    Index    ii;
 	
 	assert( entry );
 
    for (ii=0; ii<NumWords_Global; ii++) {
-	   if ( 0 == strcmp( entry, WordList_Global[ii] ) ) {
+     if ( 0 == strcmp( (Name)entry, WordList_Global[ii] ) ) {
          wordFoundArray[ii] = True;
          break;
       }
    }
 }
 
-void checkPtrFunction( void *entry, void *arg ){
+void checkPtrFunction( const void *entry, void *arg ){
    DataRef*    dataRefs = (DataRef*)arg;
    Index       ii;
 	
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/tests/ListSuite.c
--- a/Base/Container/tests/ListSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/tests/ListSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -71,7 +71,7 @@ void ListSuite_TestAppend( ListSuiteData
 
    pcu_check_true( data->list->nItems == NUM_ITEMS );
    for( idx = 0; idx < NUM_ITEMS; idx++ ) {
-      pcu_check_true( *(int*)List_GetItem( data->list, idx ) == idx );
+      pcu_check_true( *(unsigned*)List_GetItem( data->list, idx ) == idx );
    }
 }
 
@@ -85,7 +85,7 @@ void ListSuite_TestPrepend( ListSuiteDat
 
    pcu_check_true( data->list->nItems == NUM_ITEMS );
    for( idx = 0; idx < NUM_ITEMS; idx++ ) {
-      pcu_check_true( *(int*)List_GetItem( data->list, idx ) == ((NUM_ITEMS-1) - idx) );
+      pcu_check_true( *(unsigned*)List_GetItem( data->list, idx ) == ((NUM_ITEMS-1) - idx) );
    }
 }
 
@@ -105,10 +105,10 @@ void ListSuite_TestInsert( ListSuiteData
    pcu_check_true( data->list->nItems == NUM_ITEMS );
 
    for( idx = 0; idx < NUM_ITEMS/2; idx++ ) {
-      pcu_check_true( *(int*)List_GetItem( data->list, idx ) == idx );
+      pcu_check_true( *(unsigned*)List_GetItem( data->list, idx ) == idx );
    }
    for( idx = NUM_ITEMS/2; idx < NUM_ITEMS; idx++ ) {
-      pcu_check_true( *(int*)List_GetItem( data->list, idx ) == ((NUM_ITEMS-1) - (idx - NUM_ITEMS/2)) );
+      pcu_check_true( *(unsigned*)List_GetItem( data->list, idx ) == ((NUM_ITEMS-1) - (idx - NUM_ITEMS/2)) );
    }
 }
 
@@ -143,7 +143,7 @@ void ListSuite_TestRemove( ListSuiteData
    listIndex=0;
    for( idx = 0; idx < NUM_ITEMS; idx++ ) {
       if ( idx % 2 == 1 ) {
-         pcu_check_true( *(int*)List_GetItem( data->list, listIndex ) == idx );
+         pcu_check_true( *(unsigned*)List_GetItem( data->list, listIndex ) == idx );
          listIndex++;
       }
    }
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/tests/MPIRoutinesSuite.c
--- a/Base/Container/tests/MPIRoutinesSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/tests/MPIRoutinesSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -76,7 +76,7 @@ void MPIRoutinesSuite_TestArrayConv( MPI
        dst2D[1][0] == 2 && dst2D[1][1] == 3 && dst2D[1][2] == 4 && dst2D[1][3] == 5 && 
        dst2D[2][0] == 6 );
 
-   Array_2DTo1D( nBlocks, sizes, (void**)dst2D, (void*)&dst1D, sizeof(unsigned), &disps );
+   Array_2DTo1D( nBlocks, sizes, (void**)dst2D, (void**)&dst1D, sizeof(unsigned), &disps );
    pcu_check_true( dst1D[0] == 0 && dst1D[1] == 1 && dst1D[2] == 2 && dst1D[3] == 3 && 
        dst1D[4] == 4 && dst1D[5] == 5 && dst1D[6] == 6 && 
        disps[0] == 0 && disps[1] == 2 && disps[2] == 6 );
@@ -87,7 +87,7 @@ void MPIRoutinesSuite_TestArrayConv( MPI
    pcu_check_true( dst2D[0][0] == 0 && dst2D[0][1] == 1 && 
        dst2D[2][0] == 2 );
 
-   Array_2DTo1D( nBlocks, sizes, (void**)dst2D, (void*)&dst1D, sizeof(unsigned), &disps );
+   Array_2DTo1D( nBlocks, sizes, (void**)dst2D, (void**)&dst1D, sizeof(unsigned), &disps );
    pcu_check_true( dst1D[0] == 0 && dst1D[1] == 1 && dst1D[2] == 2 && 
        disps[0] == 0 && disps[1] == 2 && disps[2] == 2 );
 
@@ -126,8 +126,8 @@ void MPIRoutinesSuite_TestGather( MPIRou
    unsigned     src[200];
    unsigned*    dstSizes = NULL;
    unsigned**   dstArrays = NULL;
-   Index        ii;
-   Index        watch;
+   int        ii;
+   int        watch;
 
    fillArray( src, size, data->rank );
 
@@ -177,7 +177,7 @@ void MPIRoutinesSuite_TestAllgather( MPI
    unsigned    src[200];
    unsigned*   dstSizes;
    unsigned**  dstArrays;
-   Index       ii;
+   int       ii;
 
    fillArray( src, size, data->rank );
 
@@ -221,7 +221,7 @@ void MPIRoutinesSuite_TestAlltoall_1D( M
    unsigned**  srcArrays;
    unsigned*   dstSizes;
    unsigned**  dstArrays;
-   Index       procNum;
+   int       procNum;
    unsigned    procMulti = 100;
 
    srcSizes = Memory_Alloc_Array_Unnamed( unsigned, data->nProcs );
@@ -256,7 +256,7 @@ void MPIRoutinesSuite_TestAlltoall_2D( M
    unsigned**  srcArrays;
    unsigned*   dstSizes;
    unsigned**  dstArrays;
-   Index       procNum;
+   int       procNum;
    Index       ii;
    unsigned    procMulti = 100;
    Index       SecondDimSize=10;
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/tests/PtrSetSuite.c
--- a/Base/Container/tests/PtrSetSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/tests/PtrSetSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -106,7 +106,7 @@ void PtrSetSuite_TestUnion( PtrSetSuiteD
       Set_Insert( data->setB, &data->dataArray[ptr_I] );
    }
 
-   setC = Set_Union( data->setA, data->setB );
+   setC = (Set*)Set_Union( data->setA, data->setB );
    Set_Traverse( setC, markArray, data );
    
    for( ptr_I = 0; ptr_I < NUM_ITEMS*1/4; ptr_I++ ) {
@@ -132,7 +132,7 @@ void PtrSetSuite_TestIntersection( PtrSe
       Set_Insert( data->setB, &data->dataArray[ptr_I] );
    }
 
-   setC = Set_Intersection( data->setA, data->setB );
+   setC = (Set*)Set_Intersection( data->setA, data->setB );
    Set_Traverse( setC, markArray, data );
    
    for( ptr_I = 0; ptr_I < NUM_ITEMS*3/8; ptr_I++ ) {
@@ -158,7 +158,7 @@ void PtrSetSuite_TestSubtraction( PtrSet
       Set_Insert( data->setB, &data->dataArray[ptr_I] );
    }
 
-   setC = Set_Subtraction( data->setA, data->setB );
+   setC = (Set*)Set_Subtraction( data->setA, data->setB );
    Set_Traverse( setC, markArray, data );
    
    for( ptr_I = 0; ptr_I < NUM_ITEMS*1/4; ptr_I++ ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Container/tests/SetSuite.c
--- a/Base/Container/tests/SetSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Container/tests/SetSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -132,7 +132,7 @@ void SetSuite_TestUnion( SetSuiteData* d
       Set_Insert( data->setB, &int_I );
    }
 
-   setC = Set_Union( data->setA, data->setB );
+   setC = (Set*)Set_Union( data->setA, data->setB );
    Set_Traverse( setC, markArray, data );
    
    for( int_I = 0; int_I < NUM_ITEMS*1/4; int_I++ ) {
@@ -158,7 +158,7 @@ void SetSuite_TestIntersection( SetSuite
       Set_Insert( data->setB, &int_I );
    }
 
-   setC = Set_Intersection( data->setA, data->setB );
+   setC = (Set*)Set_Intersection( data->setA, data->setB );
    Set_Traverse( setC, markArray, data );
    
    for( int_I = 0; int_I < NUM_ITEMS*3/8; int_I++ ) {
@@ -184,7 +184,7 @@ void SetSuite_TestSubtraction( SetSuiteD
       Set_Insert( data->setB, &int_I );
    }
 
-   setC = Set_Subtraction( data->setA, data->setB );
+   setC = (Set*)Set_Subtraction( data->setA, data->setB );
    Set_Traverse( setC, markArray, data );
    
    for( int_I = 0; int_I < NUM_ITEMS*1/4; int_I++ ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/AbstractContext.c
--- a/Base/Context/src/AbstractContext.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/AbstractContext.c	Wed May 11 13:26:45 2011 -0700
@@ -158,7 +158,7 @@ void _AbstractContext_Init( AbstractCont
 	
 	/* Set up the registers and managers */
 	self->variable_Register = Variable_Register_New();
-	self->extensionMgr = ExtensionManager_New_OfExistingObject( self->type, self );
+	self->extensionMgr = ExtensionManager_New_OfExistingObject( (char*)(self->type), self );
 	ExtensionManager_Register_Add( extensionMgr_Register, self->extensionMgr );
 	self->pointer_Register = Stg_ObjectList_New();
 	self->plugins = PluginsManager_New();
@@ -166,30 +166,30 @@ void _AbstractContext_Init( AbstractCont
 	/* Build the entryPoint table */
 	self->entryPoint_Register = EntryPoint_Register_New(); 
 	/* For the construct EP, override the run function such that the context/ptrToContext remain in sync in the loop. */
-	self->constructK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_AssignFromXML, EntryPoint_2VoidPtr_CastType ) );
+	self->constructK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_AssignFromXML, EntryPoint_2VoidPtr_CastType ) );
 	AbstractContext_GetEntryPoint( self, AbstractContext_EP_AssignFromXML )->_getRun = _AbstractContext_Construct_EP_GetRun;
 	AbstractContext_GetEntryPoint( self, AbstractContext_EP_AssignFromXML )->run = EntryPoint_GetRun( AbstractContext_GetEntryPoint( self, AbstractContext_EP_AssignFromXML ) );
 
-	self->constructExtensionsK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_AssignFromXMLExtensions, EntryPoint_VoidPtr_CastType ) );
-	self->buildK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Build, EntryPoint_VoidPtr_CastType ) );
-	self->initialiseK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Initialise, EntryPoint_VoidPtr_CastType ) );
-	self->executeK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Execute, EntryPoint_VoidPtr_CastType ) );
-	self->destroyK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Destroy, EntryPoint_VoidPtr_CastType ) );
-	self->destroyExtensionsK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_DestroyExtensions, EntryPoint_VoidPtr_CastType ) );
+	self->constructExtensionsK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_AssignFromXMLExtensions, EntryPoint_VoidPtr_CastType ) );
+	self->buildK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Build, EntryPoint_VoidPtr_CastType ) );
+	self->initialiseK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Initialise, EntryPoint_VoidPtr_CastType ) );
+	self->executeK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Execute, EntryPoint_VoidPtr_CastType ) );
+	self->destroyK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Destroy, EntryPoint_VoidPtr_CastType ) );
+	self->destroyExtensionsK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_DestroyExtensions, EntryPoint_VoidPtr_CastType ) );
 	
-	self->dtK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Dt, ContextEntryPoint_Dt_CastType ) );
-	self->stepK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Step, ContextEntryPoint_Step_CastType ) );
-	self->updateClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_UpdateClass, EntryPoint_Class_VoidPtr_CastType ) );
-	self->solveK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Solve, EntryPoint_VoidPtr_CastType ) );
-	self->postSolveK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_PostSolvePreUpdate, EntryPoint_VoidPtr_CastType ) );
-	self->syncK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Sync, EntryPoint_VoidPtr_CastType ) );
-	self->frequentOutputK =	Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_FrequentOutput, EntryPoint_VoidPtr_CastType ) );
-	self->dumpK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Dump, EntryPoint_VoidPtr_CastType ) );
-	self->dumpClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_DumpClass, EntryPoint_Class_VoidPtr_CastType ) );
-	self->saveK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_Save, EntryPoint_VoidPtr_CastType ) );
-	self->saveClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_SaveClass, EntryPoint_Class_VoidPtr_CastType ) );
-	self->dataSaveK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_DataSave, EntryPoint_VoidPtr_CastType ) );
-	self->dataSaveClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( AbstractContext_EP_DataSaveClass, EntryPoint_Class_VoidPtr_CastType ) );
+	self->dtK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Dt, ContextEntryPoint_Dt_CastType ) );
+	self->stepK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Step, ContextEntryPoint_Step_CastType ) );
+	self->updateClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_UpdateClass, EntryPoint_Class_VoidPtr_CastType ) );
+	self->solveK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Solve, EntryPoint_VoidPtr_CastType ) );
+	self->postSolveK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_PostSolvePreUpdate, EntryPoint_VoidPtr_CastType ) );
+	self->syncK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Sync, EntryPoint_VoidPtr_CastType ) );
+	self->frequentOutputK =	Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_FrequentOutput, EntryPoint_VoidPtr_CastType ) );
+	self->dumpK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Dump, EntryPoint_VoidPtr_CastType ) );
+	self->dumpClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_DumpClass, EntryPoint_Class_VoidPtr_CastType ) );
+	self->saveK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_Save, EntryPoint_VoidPtr_CastType ) );
+	self->saveClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_SaveClass, EntryPoint_Class_VoidPtr_CastType ) );
+	self->dataSaveK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_DataSave, EntryPoint_VoidPtr_CastType ) );
+	self->dataSaveClassK = Context_AddEntryPoint( self, ContextEntryPoint_New( (char*)AbstractContext_EP_DataSaveClass, EntryPoint_Class_VoidPtr_CastType ) );
 	
 	/* add initial hooks */
    /* don't need now Stg_ComponentFactory_ConstructComponents, 13Nov09 JG, plan to rejig the context
@@ -660,7 +660,7 @@ EntryPoint_Index AbstractContext_AddEntr
 }
 
 
-EntryPoint* AbstractContext_GetEntryPoint( void* abstractContext, const Name entryPointName ) {
+EntryPoint* AbstractContext_GetEntryPoint( void* abstractContext, Name entryPointName ) {
 	AbstractContext*	self = (AbstractContext*)abstractContext;
 	EntryPoint_Index	ep_I;
 
@@ -712,13 +712,13 @@ void AbstractContext_Step( void* context
 }
 
 
-void AbstractContext_WarnIfNoHooks( void* context, EntryPoint_Index epIndex, const char* caller ) {
+void AbstractContext_WarnIfNoHooks( void* context, EntryPoint_Index epIndex, Name caller ) {
 	AbstractContext* self = (AbstractContext*)context;
 	EntryPoint_WarnIfNoHooks( EntryPoint_Register_At( self->entryPoint_Register, epIndex ), caller );
 }
 
 
-void AbstractContext_ErrorIfNoHooks( void* context, EntryPoint_Index epIndex, const char* caller ) {
+void AbstractContext_ErrorIfNoHooks( void* context, EntryPoint_Index epIndex, Name caller ) {
 	AbstractContext* self = (AbstractContext*)context;
 	EntryPoint_ErrorIfNoHooks( EntryPoint_Register_At( self->entryPoint_Register, epIndex ), caller );
 }
@@ -1071,7 +1071,7 @@ void _AbstractContext_SaveTimeInfo( void
 
 
 Bool AbstractContext_CheckPointExists( void* context, Index timeStep ) {
-	AbstractContext*       self = context;	
+  AbstractContext*       self = (AbstractContext*)context;	
 	char*                  timeInfoFileName = NULL;
 	char*                  timeInfoFileNamePart = NULL;   
 	struct stat            statInfo;
@@ -1097,7 +1097,7 @@ Bool AbstractContext_CheckPointExists( v
 }
 
 char* Context_GetCheckPointReadPrefixString( void* context ) {
-	AbstractContext*	self = context;	
+  AbstractContext*	self = (AbstractContext*)context;	
 	char*					readPathString = NULL;
 
    if ( self->checkpointAppendStep ) {
@@ -1120,7 +1120,7 @@ char* Context_GetCheckPointReadPrefixStr
 }
 
 char* Context_GetCheckPointWritePrefixString( void* context ) {
-	AbstractContext*	self = context;	
+  AbstractContext*	self = (AbstractContext*)context;	
 	char*					writePathString = NULL;
 
    if ( self->checkpointAppendStep ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/AbstractContext.h
--- a/Base/Context/src/AbstractContext.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/AbstractContext.h	Wed May 11 13:26:45 2011 -0700
@@ -118,7 +118,7 @@
 		unsigned int				saveDataEvery; \
 		double						checkpointAtTimeInc; \
 		double						nextCheckpointTime; \
-		Name							experimentName; \
+		char*							experimentName; \
 		char*							outputPath; \
 		char*							checkpointReadPath; \
 		char*							checkpointWritePath; \
@@ -237,7 +237,7 @@
 	
 	EntryPoint_Index AbstractContext_AddEntryPoint( void* abstractContext, void* entryPoint );
 	
-	EntryPoint* AbstractContext_GetEntryPoint( void* abstractContext, const Name entryPointName ); 
+	EntryPoint* AbstractContext_GetEntryPoint( void* abstractContext, Name entryPointName ); 
 	
 	/* Runs the AbstractContext_EP_FrequentOutput Entry Point */
 	void AbstractContext_FrequentOutput( void* context ) ;
@@ -265,10 +265,10 @@
 	void AbstractContext_Step( void* context, double dt );
 	
 	/* function to warn if no hooks to an entrypoint defined */
-	void AbstractContext_WarnIfNoHooks( void* context, EntryPoint_Index epIndex, const char* caller );
+	void AbstractContext_WarnIfNoHooks( void* context, EntryPoint_Index epIndex, Name caller );
 	
 	/* function to error if no hooks to an entrypoint defined */
-	void AbstractContext_ErrorIfNoHooks( void* context, EntryPoint_Index epIndex, const char* caller );
+	void AbstractContext_ErrorIfNoHooks( void* context, EntryPoint_Index epIndex, Name caller );
 	
 	Bool AbstractContext_CheckPointExists( void* context, Index timeStep );
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Codelet.c
--- a/Base/Context/src/Codelet.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Codelet.c	Wed May 11 13:26:45 2011 -0700
@@ -101,7 +101,7 @@ void  _Codelet_Print( void* codelet, Str
 	Journal_Printf( stream, "Codelet: %s, Type %s\n", self->name, self->type );
 	_Stg_Component_Print( self, stream );
 }
-void* _Codelet_Copy( void* codelet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _Codelet_Copy( const void* codelet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	return _Stg_Component_Copy( codelet, dest, deep, nameExt, ptrMap );
 }
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Codelet.h
--- a/Base/Context/src/Codelet.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Codelet.h	Wed May 11 13:26:45 2011 -0700
@@ -76,7 +76,7 @@
 
 	void  _Codelet_Delete( void* codelet );
 	void  _Codelet_Print( void* codelet, Stream* stream );
-	void* _Codelet_Copy( void* codelet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _Codelet_Copy( const void* codelet, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	void  _Codelet_Build( void* codelet, void* data );
 	void  _Codelet_Initialise( void* codelet, void* data );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/CompositeVC.c
--- a/Base/Context/src/CompositeVC.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/CompositeVC.c	Wed May 11 13:26:45 2011 -0700
@@ -244,7 +244,9 @@ void _CompositeVC_AssignFromXML( void* c
 
 	initData = Stg_ComponentFactory_ConstructByKey( cf, self->name, (Dictionary_Entry_Key)"Data", Stg_Component, False, data  );
 	
-	_VariableCondition_Init( self, context, variableRegister, conditionFunctionRegister, vcDict );
+	_VariableCondition_Init( self, context,
+                                 (Variable_Register*)variableRegister,
+                                 (ConditionFunction_Register*)conditionFunctionRegister, vcDict );
 	_CompositeVC_Init( self, initData );
 }
 
@@ -320,7 +322,7 @@ void _CompositeVC_Print(void* compositeV
 }
 
 
-void* _CompositeVC_Copy( void* compositeVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _CompositeVC_Copy( const void* compositeVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	CompositeVC*	self = (CompositeVC*)compositeVC;
 	CompositeVC*	newCompositeVC;
 	PtrMap*		map = ptrMap;
@@ -340,7 +342,7 @@ void* _CompositeVC_Copy( void* composite
 	newCompositeVC->data = self->data;
 	
 	if( deep ) {
-		if( (newCompositeVC->itemTbl = PtrMap_Find( map, self->itemTbl )) == NULL && self->itemTbl ) {
+          if( (newCompositeVC->itemTbl = (VariableCondition**)PtrMap_Find( map, self->itemTbl )) == NULL && self->itemTbl ) {
 			Index	item_I;
 			
 			newCompositeVC->itemTbl = Memory_Alloc_Array( VariableCondition*, newCompositeVC->_size, "CompositeCV->itemTbl" );
@@ -351,13 +353,13 @@ void* _CompositeVC_Copy( void* composite
 			PtrMap_Append( map, newCompositeVC->itemTbl, self->itemTbl );
 		}
 		
-		if( (newCompositeVC->iOwnTbl = PtrMap_Find( map, self->iOwnTbl )) == NULL && self->iOwnTbl ) {
+          if( (newCompositeVC->iOwnTbl = (Bool*)PtrMap_Find( map, self->iOwnTbl )) == NULL && self->iOwnTbl ) {
 			newCompositeVC->iOwnTbl = Memory_Alloc_Array( Bool, newCompositeVC->_size, "CompositeCV->iOwnTbl" );
 			memcpy( newCompositeVC->iOwnTbl, self->iOwnTbl, sizeof(Bool) * newCompositeVC->_size );
 			PtrMap_Append( map, newCompositeVC->iOwnTbl, self->iOwnTbl );
 		}
 		
-		if( (newCompositeVC->attachedSets = PtrMap_Find( map, self->attachedSets )) == NULL && self->attachedSets ) {
+          if( (newCompositeVC->attachedSets = (IndexSet**)PtrMap_Find( map, self->attachedSets )) == NULL && self->attachedSets ) {
 			Index	item_I;
 			
 			self->attachedSets = Memory_Alloc_Array( IndexSet*, newCompositeVC->itemCount, "CompositeCV->attachedSets" );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/CompositeVC.h
--- a/Base/Context/src/CompositeVC.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/CompositeVC.h	Wed May 11 13:26:45 2011 -0700
@@ -122,7 +122,7 @@
 	#define CompositeVC_Copy( self ) \
 		(VariableCondition*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	
-	void* _CompositeVC_Copy( void* compositeVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _CompositeVC_Copy( const void* compositeVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Macros
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/ContextEntryPoint.c
--- a/Base/Context/src/ContextEntryPoint.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/ContextEntryPoint.c	Wed May 11 13:26:45 2011 -0700
@@ -50,7 +50,7 @@ const Type ContextEntryPoint_Type = "Con
 const Type ContextEntryPoint_Type = "ContextEntryPoint";
 
 
-ContextEntryPoint* ContextEntryPoint_New( const Name name, unsigned int castType ) {
+ContextEntryPoint* ContextEntryPoint_New( Name name, unsigned int castType ) {
 	/* Variables set in this function */
 	SizeT                       _sizeOfSelf = sizeof(ContextEntryPoint);
 	Type                               type = ContextEntryPoint_Type;
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/DictionaryCheck.c
--- a/Base/Context/src/DictionaryCheck.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/DictionaryCheck.c	Wed May 11 13:26:45 2011 -0700
@@ -49,17 +49,17 @@
 
 
 
-void CheckDictionaryKeys( Dictionary* dictionary, const char* errorMessage)
+void CheckDictionaryKeys( Dictionary* dictionary, Name errorMessage)
 {
 	Dictionary_Index index_I, index_J;
 	/* Put in the Journal_Firewall stream */
 	Stream* errStream = Journal_Register( Error_Type, "DictionaryCheck");
-	int errCount;
-	int** keyIndexArray;
+	Index errCount;
+	Index** keyIndexArray;
 	Index errIndex = 0;
 	Bool  alreadyFoundRepeat = False;
 
-	keyIndexArray = Memory_Alloc_2DArray( int, ((dictionary->count)*(dictionary->count - 1)), 
+	keyIndexArray = Memory_Alloc_2DArray( Index, ((dictionary->count)*(dictionary->count - 1)), 
 					2, "Key Index Array" );
 	/* Iterate through the whole dictionary*/
 	errCount = 0;
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/DictionaryCheck.h
--- a/Base/Context/src/DictionaryCheck.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/DictionaryCheck.h	Wed May 11 13:26:45 2011 -0700
@@ -43,6 +43,6 @@
 	
 	void Context_DictionaryCheck( Dictionary* dictionary );
 	
-	void CheckDictionaryKeys(Dictionary* dictionary, const char* errorMessage);
+	void CheckDictionaryKeys(Dictionary* dictionary, Name errorMessage);
 	
 #endif /* __StGermain_Base_Context_DictionaryCheck_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/DynamicVC.c
--- a/Base/Context/src/DynamicVC.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/DynamicVC.c	Wed May 11 13:26:45 2011 -0700
@@ -61,7 +61,7 @@ VariableCondition* DynamicVC_Factory(
 	Dictionary*							dict, 
 	void*									data )
 {
-	return (VariableCondition*)DynamicVC_New( defaultDynamicVCName, context, varReg, conFuncReg, dict );
+  return (VariableCondition*)DynamicVC_New( (char*)defaultDynamicVCName, context, varReg, conFuncReg, dict );
 }
 
 DynamicVC* DynamicVC_New(
@@ -167,7 +167,7 @@ void _DynamicVC_Print( void* vc, Stream*
 	_VariableCondition_Print( vc );
 }
 
-void* _DynamicVC_Copy( void* vc, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _DynamicVC_Copy( const void* vc, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	return NULL;
 }
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/DynamicVC.h
--- a/Base/Context/src/DynamicVC.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/DynamicVC.h	Wed May 11 13:26:45 2011 -0700
@@ -99,7 +99,7 @@ extern const Type DynamicVC_Type;
 	#define DynamicVC_Copy( self )						\
 		(VariableCondition*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 
-	void* _DynamicVC_Copy( void* vc, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _DynamicVC_Copy( const void* vc, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 	void _DynamicVC_AssignFromXML( void* vc, Stg_ComponentFactory* cf, void* data );
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Finalise.h
--- a/Base/Context/src/Finalise.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Finalise.h	Wed May 11 13:26:45 2011 -0700
@@ -41,6 +41,6 @@
 #ifndef __StGermain_Base_Context_Finalise_h__
 #define __StGermain_Base_Context_Finalise_h__
 	
-	Bool Context_Finalise( void );
+	Bool BaseContext_Finalise( void );
 	
 #endif /* __StGermain_Base_Context_Finalise_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Init.c
--- a/Base/Context/src/Init.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Init.c	Wed May 11 13:26:45 2011 -0700
@@ -64,7 +64,7 @@ Bool BaseContext_Init( int* argc, char**
 	VariableCondition_Register_Add( variableCondition_Register, CompositeVC_Type, CompositeVC_Factory );
 	VariableCondition_Register_Add( variableCondition_Register, VariableAllVC_Type, VariableAllVC_Factory );
 
-	typedStream = VariableDumpStream_New( VariableDumpStream_Type );
+	typedStream = VariableDumpStream_New( (char*)VariableDumpStream_Type );
 	Stream_Enable( typedStream, False );
 	Stream_SetLevel( typedStream, 1 );
 	Stream_SetFile( typedStream, stJournal->stdOut );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Init.h
--- a/Base/Context/src/Init.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Init.h	Wed May 11 13:26:45 2011 -0700
@@ -42,6 +42,6 @@
 #ifndef __StGermain_Base_Context_Init_h__
 #define __StGermain_Base_Context_Init_h__
 	
-	Bool Context_Init( int* argc, char** argv[] );
+	Bool BaseContext_Init( int* argc, char** argv[] );
 	
 #endif /* __StGermain_Base_Context_Init_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/SetVC.c
--- a/Base/Context/src/SetVC.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/SetVC.c	Wed May 11 13:26:45 2011 -0700
@@ -62,13 +62,13 @@ VariableCondition* SetVC_Factory(
 	Dictionary*							dictionary,
 	void*									data )
 {
-	return (VariableCondition*)SetVC_New( defaultSetVCName, context, NULL, variable_Register, conFunc_Register, dictionary );
+  return (VariableCondition*)SetVC_New( (char*)defaultSetVCName, context, NULL, variable_Register, conFunc_Register, dictionary );
 }
 
 SetVC* SetVC_New(
 	Name									name,
 	AbstractContext*					context,
-	Name									_dictionaryEntryName, 
+	char*									_dictionaryEntryName, 
 	Variable_Register*				variable_Register, 
 	ConditionFunction_Register*	conFunc_Register,
 	Dictionary*							dictionary )
@@ -331,7 +331,7 @@ void _SetVC_Print(void* setVC, Stream* s
 }
 
 
-void* _SetVC_Copy( void* setVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _SetVC_Copy( const void* setVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	SetVC*	self = (SetVC*)setVC;
 	SetVC*	newSetVC;
 	PtrMap*	map = ptrMap;
@@ -350,7 +350,7 @@ void* _SetVC_Copy( void* setVC, void* de
 	if( deep ) {
 		newSetVC->_vcset = (IndexSet*)Stg_Class_Copy( self->_vcset, NULL, deep, nameExt, map );
 		
-		if( (newSetVC->_entryTbl = PtrMap_Find( map, self->_entryTbl )) == NULL && self->_entryTbl ) {
+		if( (newSetVC->_entryTbl = (SetVC_Entry*)PtrMap_Find( map, self->_entryTbl )) == NULL && self->_entryTbl ) {
 			newSetVC->_entryTbl = Memory_Alloc_Array( SetVC_Entry, newSetVC->_entryCount, "SetVC->_entryTbl");
 			memcpy( newSetVC->_entryTbl, self->_entryTbl, sizeof(SetVC_Entry) * newSetVC->_entryCount );
 			PtrMap_Append( map, newSetVC->_entryTbl, self->_entryTbl );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/SetVC.h
--- a/Base/Context/src/SetVC.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/SetVC.h	Wed May 11 13:26:45 2011 -0700
@@ -40,7 +40,7 @@
 	extern const Type SetVC_Type;
 	
 	#define __SetVC_Entry \
-		Name							varName; \
+		char*							varName; \
 		VariableCondition_Value	value; \
 		
 	struct _SetVC_Entry { __SetVC_Entry };
@@ -73,7 +73,7 @@
 	SetVC* SetVC_New(
 		Name									name,
 		AbstractContext*					context,
-		Name									_dictionaryEntryName, 
+		char*									_dictionaryEntryName, 
 		Variable_Register*				variable_Register, 
 		ConditionFunction_Register*	conFunc_Register,
 		Dictionary*							dictionary );
@@ -111,7 +111,7 @@
 	#define SetVC_Copy( self ) \
 		(VariableCondition*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	
-	void* _SetVC_Copy( void* setVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _SetVC_Copy( const void* setVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Macros
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Variable.c
--- a/Base/Context/src/Variable.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Variable.c	Wed May 11 13:26:45 2011 -0700
@@ -157,10 +157,8 @@ Variable* Variable_NewScalar(
 
 	Variable*			self;
 	SizeT					dataOffsets[] = { 0 };
-	Variable_DataType	dataTypes[] = { 0 };		/* Init value later */
+	Variable_DataType	dataTypes[] = { dataType };		/* Init value later */
 	Index					dataTypeCounts[] = { 1 };
-	
-	dataTypes[0] = dataType;
 	
 	self = _Variable_New(  VARIABLE_PASSARGS  );
 
@@ -201,23 +199,24 @@ Variable* Variable_NewVector(
 
 	Variable*			self;
 	SizeT					dataOffsets[] = { 0 };
-	Variable_DataType	dataTypes[] = { 0 }; /* Init later... */
+	Variable_DataType	dataTypes[] = { dataType }; /* Init later... */
 	Index					dataTypeCounts[] = { 0 }; /* Init later... */
-	Name*					dataNames;
+	char**					dNames;
+        Name* dataNames;
 	Index					vector_I;
 	va_list				ap;
 
-	dataTypes[0] = dataType;
 	dataTypeCounts[0] = dataTypeCount;
 
-	dataNames = Memory_Alloc_Array( Name, dataTypeCount, "dataNames" );
+	dNames = Memory_Alloc_Array( char*, dataTypeCount, "dataNames" );
 
 	va_start( ap, vr );
 	for( vector_I = 0; vector_I < dataTypeCount; vector_I++ ) {
-		dataNames[vector_I] = va_arg( ap, Name );
+		dNames[vector_I] = va_arg( ap, char* );
 	}
 	va_end( ap );
 	
+        dataNames=(Name*)dNames;
 	self = _Variable_New(  VARIABLE_PASSARGS  );
 
 	self->isConstructed = True;
@@ -237,7 +236,7 @@ Variable* Variable_NewVector2(
 	Variable_ArraySizeFunc*	arraySizeFunc,
 	void**						arrayPtrPtr,
 	Variable_Register*		vr,
-	char**						dataNames )
+	Name*						dataNames )
 {
 	/* Variables set in this function */
 	SizeT                                              _sizeOfSelf = sizeof(Variable);
@@ -245,7 +244,7 @@ Variable* Variable_NewVector2(
 	Stg_Class_DeleteFunction*                              _delete = _Variable_Delete;
 	Stg_Class_PrintFunction*                                _print = _Variable_Print;
 	Stg_Class_CopyFunction*                                  _copy = _Variable_Copy;
-	Stg_Component_DefaultConstructorFunction*  _defaultConstructor = (void*)_Variable_DefaultNew;
+	Stg_Component_DefaultConstructorFunction*  _defaultConstructor = (Stg_Component_DefaultConstructorFunction*)_Variable_DefaultNew;
 	Stg_Component_ConstructFunction*                    _construct = _Variable_AssignFromXML;
 	Stg_Component_BuildFunction*                            _build = _Variable_Build;
 	Stg_Component_InitialiseFunction*                  _initialise = _Variable_Initialise;
@@ -259,10 +258,9 @@ Variable* Variable_NewVector2(
 
 	Variable*			self;
 	SizeT					dataOffsets[] = { 0 };
-	Variable_DataType	dataTypes[] = { 0 };
+	Variable_DataType	dataTypes[] = { dataType };
 	Index					dataTypeCounts[] = { 0 };
 
-	dataTypes[0] = dataType;
 	dataTypeCounts[0] = dataTypeCount;
 
 	self = _Variable_New(  VARIABLE_PASSARGS  );
@@ -372,11 +370,10 @@ void _Variable_Init(
 			for( component_I = 0; component_I < self->offsetCount; component_I++ ) {
 				if( dataNames[component_I] ) {
 					SizeT					componentOffsets[] = { 0 };
-					Variable_DataType	componentTypes[] = { 0 };
+					Variable_DataType	componentTypes[] = { self->dataTypes[component_I] };
 					Index					componentTypeCounts[] = { 0 };
 
 					componentOffsets[0] = self->offsets[component_I];
-					componentTypes[0] = self->dataTypes[component_I];
 					componentTypeCounts[0] = self->dataTypeCounts[component_I];
 					
 					/* Assumption: components are scalar or vector, but cannot be complex */
@@ -407,7 +404,7 @@ void _Variable_Init(
 					 * yet. As a consequence we have to manually work out the vector's indecis offsets. Ouch
 					 * only from a code-maintenance point of view. */
 					SizeT					componentOffsets[] = { 0 }; /* Init later... */
-					Variable_DataType	componentTypes[] = { 0 }; /* Init later... */
+					Variable_DataType	componentTypes[] = { self->dataTypes[0] };
 					Index					componentTypeCounts[] = { 1 };
 				
 					componentOffsets[0] = 
@@ -422,7 +419,6 @@ void _Variable_Init(
 							0,
 							Journal_Register( Error_Type, Variable_Type ),
 							"Vector is of a non-builtin type\n" ) );
-					componentTypes[0] = self->dataTypes[0];
 
 					/* Assumption: vector-components are scalar, but cannot be complex */
 					self->components[vector_I] = Variable_New( 
@@ -518,7 +514,7 @@ void _Variable_Print( void* variable, St
 }
 
 
-void* _Variable_Copy( void* variable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _Variable_Copy( const void* variable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	Variable*	self = (Variable*)variable;
 	Variable*	newVariable;
 	PtrMap*		map = ptrMap;
@@ -538,26 +534,26 @@ void* _Variable_Copy( void* variable, vo
 	/* single valued members */
 	
 	if( deep ) {
-		if( (newVariable->offsets = PtrMap_Find( map, self->offsets )) == NULL && self->offsets != NULL ) {
+          if( (newVariable->offsets = (SizeT*)PtrMap_Find( map, self->offsets )) == NULL && self->offsets != NULL ) {
 			newVariable->offsets = Memory_Alloc_Array( SizeT, newVariable->offsetCount, "Variable->offsets" );
 			memcpy( newVariable->offsets, self->offsets, sizeof(SizeT) * newVariable->offsetCount );
 			PtrMap_Append( map, self->offsets, newVariable->offsets );
 		}
 		
-		if( (newVariable->dataTypes = PtrMap_Find( map, self->dataTypes )) == NULL && self->offsets != NULL ) {
+          if( (newVariable->dataTypes = (Variable_DataType*)PtrMap_Find( map, self->dataTypes )) == NULL && self->offsets != NULL ) {
 			newVariable->dataTypes = Memory_Alloc_Array( Variable_DataType, newVariable->offsetCount, "Variable->dataTypes" );
 			memcpy( newVariable->dataTypes, self->dataTypes, sizeof(Variable_DataType) * newVariable->offsetCount );
 			PtrMap_Append( map, self->dataTypes, newVariable->dataTypes );
 		}
 		
-		if( (newVariable->dataTypeCounts = PtrMap_Find( map, self->dataTypeCounts )) == NULL && self->dataTypeCounts != NULL ) {
+          if( (newVariable->dataTypeCounts = (Index*)PtrMap_Find( map, self->dataTypeCounts )) == NULL && self->dataTypeCounts != NULL ) {
 			newVariable->dataTypeCounts = Memory_Alloc_Array( Index, newVariable->offsetCount, "Variable->dataTypeCounts" );
 			memcpy( newVariable->dataTypeCounts, self->dataTypeCounts, sizeof(Index) * newVariable->offsetCount );
 			PtrMap_Append( map, self->dataTypeCounts, newVariable->dataTypeCounts );
 		}
 		
 		if ( self->structSizePtr != NULL ) {
-			if( (newVariable->structSizePtr = PtrMap_Find( map, self->structSizePtr )) == NULL ) {
+                  if( (newVariable->structSizePtr = (SizeT*)PtrMap_Find( map, self->structSizePtr )) == NULL ) {
 				newVariable->structSizePtr = Memory_Alloc_Array( 
 					SizeT, 
 					1, 
@@ -571,7 +567,7 @@ void* _Variable_Copy( void* variable, vo
 		}
 		
 		if ( self->arraySizePtr != NULL ) {
-			if( (newVariable->arraySizePtr = PtrMap_Find( map, self->arraySizePtr )) == NULL ) {
+                  if( (newVariable->arraySizePtr = (Index*)PtrMap_Find( map, self->arraySizePtr )) == NULL ) {
 				newVariable->arraySizePtr = Memory_Alloc_Array(
 					Index,
 					1,
@@ -584,26 +580,30 @@ void* _Variable_Copy( void* variable, vo
 			newVariable->arraySizeFunc = NULL;
 		}
 		if ( self->arraySizeFunc != NULL ) {
-			if( (newVariable->arraySizeFunc = PtrMap_Find( map, self->arraySizeFunc )) == NULL ) {
-				newVariable->arraySizeFunc = Memory_Alloc_Array(
-					Variable_ArraySizeFunc,
-					1,
-					"Variable->arraySizeFunc" );
-				memcpy( newVariable->arraySizeFunc, self->arraySizeFunc, sizeof(Index) );
-				PtrMap_Append( map, self->arraySizeFunc, newVariable->arraySizeFunc );
-			}
+                  if( (newVariable->arraySizeFunc =
+                       (Variable_ArraySizeFunc*)PtrMap_Find( map, (void*)self->arraySizeFunc )) == NULL ) {
+                    newVariable->arraySizeFunc = (Variable_ArraySizeFunc*)
+                      Memory_Alloc_Array(void*,
+                                         1,
+                                         "Variable->arraySizeFunc" );
+                    memcpy((void*)newVariable->arraySizeFunc,
+                           (void*)self->arraySizeFunc, sizeof(Index) );
+                    PtrMap_Append(map,
+                                  (void*)(self->arraySizeFunc),
+                                  (void*)(newVariable->arraySizeFunc));
+                  }
 		}
 		else {
 			newVariable->arraySizeFunc = NULL;
 		}
 		
-		if( (newVariable->dataSizes = PtrMap_Find( map, self->dataSizes )) == NULL && self->dataSizes != NULL ) {
+		if( (newVariable->dataSizes = (SizeT*)PtrMap_Find( map, self->dataSizes )) == NULL && self->dataSizes != NULL ) {
 			newVariable->dataSizes = Memory_Alloc_Array( SizeT, newVariable->offsetCount, "Variable->dataSizes" );
 			memcpy( newVariable->dataSizes, self->dataSizes, sizeof(SizeT) * newVariable->offsetCount );
 			PtrMap_Append( map, self->dataSizes, newVariable->dataSizes );
 		}
 
-		if( (newVariable->arrayPtrPtr = PtrMap_Find( map, self->arrayPtrPtr )) == NULL && self->arrayPtrPtr != NULL ) {	
+		if( (newVariable->arrayPtrPtr = (void**)PtrMap_Find( map, self->arrayPtrPtr )) == NULL && self->arrayPtrPtr != NULL ) {	
 			if( (newVariable->arrayPtr = PtrMap_Find( map, self->arrayPtr )) == NULL && self->arrayPtr != NULL ) {
 				Index memoryToAllocSize = _Variable_GetNewArraySize( self ) * self->structSize;
 				newVariable->arrayPtr = Memory_Alloc_Bytes( 
@@ -622,7 +622,7 @@ void* _Variable_Copy( void* variable, vo
 			memcpy( newVariable->arrayPtr, self->arrayPtr, _Variable_GetNewArraySize(self) * self->structSize );
 		}
 		
-		if( (newVariable->components = PtrMap_Find( map, self->components )) == NULL && self->components != NULL ) {
+		if( (newVariable->components = (Variable**)PtrMap_Find( map, self->components )) == NULL && self->components != NULL ) {
 			Index	comp_I;
 			
 			if( newVariable->offsetCount == 1 && newVariable->dataTypeCounts[0] > 1 ) {
@@ -666,7 +666,7 @@ void* _Variable_Copy( void* variable, vo
 		}
 
 		if ( self->vr ) {
-			newVariable->vr = Stg_Class_Copy( self->vr, NULL, deep, nameExt, map );
+                  newVariable->vr = (Variable_Register*)Stg_Class_Copy( self->vr, NULL, deep, nameExt, map );
 		}
 	}
 	else {
@@ -833,7 +833,7 @@ void _Variable_AssignFromXML( void* vari
 void _Variable_AssignFromXML( void* variable, Stg_ComponentFactory* cf, void* data ) {
 	Variable*			self = (Variable*) variable;
 	SizeT					dataOffsets[] = { 0 };
-	Variable_DataType	dataTypes[] = { 0 };		/* Init value later */
+	Variable_DataType	dataTypes[] = { Variable_DataType_Size };
 	Index					dataTypeCounts[] = { 1 };
 	Dictionary*			componentDict = NULL;
 	Dictionary*			thisComponentDict = NULL;
@@ -843,7 +843,7 @@ void _Variable_AssignFromXML( void* vari
 	unsigned int*		count = NULL;
 	void*					variableRegister = NULL;
 	void*					pointerRegister = NULL;
-	Name*					names = NULL;
+	char**					names = NULL;
 	Stream*				error = Journal_Register( Error_Type, self->type );
 	AbstractContext*	context;	
 	
@@ -868,7 +868,7 @@ void _Variable_AssignFromXML( void* vari
 			
 	/* Get Pointer to number of elements in array */
 	countName = Dictionary_GetString( thisComponentDict, "Count" );
-	count = Stg_ObjectList_Get( pointerRegister, countName );
+	count = (unsigned*)Stg_ObjectList_Get( pointerRegister, countName );
 	//assert( count );
 	
 	/* Get Type of Variable */
@@ -900,7 +900,7 @@ void _Variable_AssignFromXML( void* vari
 			Index entry_I;
 
 			nameCount = Dictionary_Entry_Value_GetCount( list );
-			names = Memory_Alloc_Array( Name, nameCount, "Variable Names" );
+			names = Memory_Alloc_Array( char*, nameCount, "Variable Names" );
 
 			for ( entry_I = 0 ; entry_I < nameCount ; entry_I++ )
 				names[ entry_I ] = Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement(list, entry_I ) );
@@ -919,14 +919,14 @@ void _Variable_AssignFromXML( void* vari
 		dataOffsets,
 		dataTypes,
 		dataTypeCounts, 
-		names, 
+		(Name*)names, 
 		0, 
 		count, 
 		NULL,	/* Note: don't support arraySize being calculated from a Func Ptr through
 		Construct() Yet - PatrickSunter, 29 Jun 2007 */ 
 		(void**)&self->arrayPtr,
 		True,
-		variableRegister );
+		(Variable_Register*)variableRegister );
 
 	/* Clean Up */
 	if (names)
@@ -935,7 +935,7 @@ void _Variable_AssignFromXML( void* vari
 	
 void _Variable_Destroy( void* variable, void* data ) {
 	Variable* self = (Variable*)variable;
-   int ii;
+   Index ii;
 
    for( ii = 0 ; ii < self->subVariablesCount ; ii++ ) {
       Stg_Component_Destroy( self->components[ii], data, False );
@@ -989,7 +989,7 @@ void Variable_SetValue( void* variable, 
 	ArithPointer*	vPtr;
 	Index				component_I;
 	
-	vPtr = value;
+	vPtr = (ArithPointer*)value;
 	for( component_I = 0; component_I < self->offsetCount; component_I++ ) {
 		memcpy( _Variable_GetPtr( self, array_I, component_I, 0 ), (void*)vPtr, self->dataSizes[component_I] );
 		
@@ -1003,7 +1003,7 @@ void Variable_GetValue( void* variable, 
 	ArithPointer*	vPtr;
 	Index		component_I;
 	
-	vPtr = value;
+	vPtr = (ArithPointer*)value;
 	for( component_I = 0; component_I < self->offsetCount; component_I++ ) {
 		memcpy( (void*)vPtr, _Variable_GetPtr( self, array_I, component_I, 0 ), self->dataSizes[component_I] );
 		
@@ -1034,7 +1034,7 @@ void Variable_SetValueDoubleAll( void* v
 }
 		
 
-void Variable_SaveToFileAsDoubles( void* variable, char* filename ) {
+void Variable_SaveToFileAsDoubles( void* variable, Name filename ) {
 	Variable* self       = (Variable*)  variable;
 	Index     arraySize  = self->arraySize;
 	Index     array_I;
@@ -1062,7 +1062,7 @@ void Variable_SaveToFileAsDoubles( void*
 }
 
 
-void Variable_ReadFromFileAsDoubles( void* variable, char* filename ) {
+void Variable_ReadFromFileAsDoubles( void* variable, Name filename ) {
 	Variable* self       = (Variable*)  variable;
 	Index     arraySize  = self->arraySize;
 	Index     array_I;
@@ -1139,7 +1139,7 @@ double Variable_ValueCompare( void* vari
 
 /** Checks whether || variable - comparison || / || variable || < tolerance */
 Bool Variable_ValueCompareWithinTolerance( void* variable, void* comparison, double tolerance ) {
-	return ( Variable_ValueCompare( variable, comparison ) < tolerance );
+  return ( Variable_ValueCompare( variable, comparison ) < tolerance ? True : False);
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Variable.h
--- a/Base/Context/src/Variable.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Variable.h	Wed May 11 13:26:45 2011 -0700
@@ -142,7 +142,7 @@
 	  * This constructor is a shortcut to create a Variable of a scalar in an array. The stride/struct size is the size
 	  * of the dataType. There is no casting. */
 	Variable* Variable_NewScalar( 
-		Name								name,
+                                     Name								name,
 		AbstractContext*				context,
 		Variable_DataType				dataType,
 		Index*							arraySizePtr,
@@ -159,7 +159,7 @@
 	  * optional and are specified via the variable arguement list at the end. A 0 value signifies no name for the associated
 	  * vector component. The stride/struct size is the size of the dataType. There is no casting.*/
 	Variable* Variable_NewVector( 
-		Name								name,
+                                     Name								name,
 		AbstractContext*				context,
 		Variable_DataType				dataType,
 		Index								dataTypeCount,
@@ -170,7 +170,7 @@
 		... 						/* vector component names */ );
 
 	Variable* Variable_NewVector2( 
-		Name								name,
+                                      Name								name,
 		AbstractContext*				context,
 		Variable_DataType				dataType,
 		Index								dataTypeCount,
@@ -178,7 +178,7 @@
 		Variable_ArraySizeFunc*		arraySizeFunc,
 		void**							arrayPtrPtr,
 		Variable_Register*			vr,
-		char**							dataNames );
+		Name*							dataNames );
 	
 	/** Constructor interface. */
 	
@@ -247,7 +247,7 @@
 	#define Variable_DeepCopy( self ) \
 		(Variable*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _Variable_Copy( void* variable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _Variable_Copy( const void* variable, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	/** Build implementation */
 	void _Variable_Build( void* variable, void* data );
@@ -1187,9 +1187,9 @@
 	/** Sets value to all entries in array of variable */
 	void Variable_SetValueDoubleAll( void* variable, double value ) ;
 
-	void Variable_SaveToFileAsDoubles( void* variable, char* filename );
+	void Variable_SaveToFileAsDoubles( void* variable, Name filename );
 
-	void Variable_ReadFromFileAsDoubles( void* variable, char* filename );
+	void Variable_ReadFromFileAsDoubles( void* variable, Name filename );
 	
 	/** Returns || variable - comparison || / || variable ||, 
 	  * where ||x|| indicates the Euclidean Norm which is the square root of the sum of the squares for each component in x
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/VariableAllVC.c
--- a/Base/Context/src/VariableAllVC.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/VariableAllVC.c	Wed May 11 13:26:45 2011 -0700
@@ -62,14 +62,14 @@ VariableCondition* VariableAllVC_Factory
 	Dictionary*							dictionary,
 	void*									data )
 {
-	return (VariableCondition*)VariableAllVC_New( defaultVariableAllVCName, context, NULL, variable_Register, conFunc_Register, dictionary, data );
+  return (VariableCondition*)VariableAllVC_New( (char*)defaultVariableAllVCName, context, NULL, variable_Register, conFunc_Register, dictionary, data );
 }
 
 
 VariableAllVC*	VariableAllVC_New(
 	Name									name,
 	AbstractContext*					context,
-	Name									_dictionaryEntryName, 
+	char*									_dictionaryEntryName, 
 	Variable_Register*				variable_Register, 
 	ConditionFunction_Register*	conFunc_Register,
 	Dictionary*							dictionary,
@@ -334,7 +334,7 @@ void _VariableAllVC_Print( void* allElem
 }
 
 
-void* _VariableAllVC_Copy( void* allElementsVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _VariableAllVC_Copy( const void* allElementsVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	VariableAllVC*		self = (VariableAllVC*)allElementsVC;
 	VariableAllVC*		newVariableAllVC;
 	PtrMap*			map = ptrMap;
@@ -353,7 +353,7 @@ void* _VariableAllVC_Copy( void* allElem
 	if( deep ) {
 		newVariableAllVC->data = Stg_Class_Copy( self->data, NULL, deep, nameExt, map );
 		
-		if( (newVariableAllVC->_entryTbl = PtrMap_Find( map, self->_entryTbl )) == NULL && self->_entryTbl ) {
+		if( (newVariableAllVC->_entryTbl = (VariableAllVC_Entry*)PtrMap_Find( map, self->_entryTbl )) == NULL && self->_entryTbl ) {
 			newVariableAllVC->_entryTbl = Memory_Alloc_Array( VariableAllVC_Entry, newVariableAllVC->_entryCount, "VariableAllVC->_entryTbl");
 			memcpy( newVariableAllVC->_entryTbl, self->_entryTbl, sizeof(VariableAllVC_Entry) * newVariableAllVC->_entryCount );
 			PtrMap_Append( map, newVariableAllVC->_entryTbl, self->_entryTbl );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/VariableAllVC.h
--- a/Base/Context/src/VariableAllVC.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/VariableAllVC.h	Wed May 11 13:26:45 2011 -0700
@@ -78,7 +78,7 @@
 	VariableAllVC* VariableAllVC_New(
 		Name									name,
 		AbstractContext*					context,
-		Name									_dictionaryEntryName, 
+		char*									_dictionaryEntryName, 
 		Variable_Register*				variable_Register, 
 		ConditionFunction_Register*	conFunc_Register,
 		Dictionary*							dictionary,
@@ -117,7 +117,7 @@
 	#define VariableAllVC_Copy( self ) \
 		(VariableCondition*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	
-	void* _VariableAllVC_Copy( void* allElementsVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _VariableAllVC_Copy( const void* allElementsVC, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	void _VariableAllVC_Build( void* allElementsVC, void* data );
 	
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/VariableCondition.c
--- a/Base/Context/src/VariableCondition.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/VariableCondition.c	Wed May 11 13:26:45 2011 -0700
@@ -210,7 +210,7 @@ void _VariableCondition_Print(void* vari
 }
 
 
-void* _VariableCondition_Copy( void* variableCondition, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _VariableCondition_Copy( const void* variableCondition, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	VariableCondition*	self = (VariableCondition*)variableCondition;
 	VariableCondition*	newVariableCondition;
 	PtrMap*			map = ptrMap;
@@ -243,19 +243,19 @@ void* _VariableCondition_Copy( void* var
 	if( deep ) {
 		newVariableCondition->_set = (IndexSet*)Stg_Class_Copy( self->_set, NULL, deep, nameExt, map );
 		
-		if( (newVariableCondition->indexTbl = PtrMap_Find( map, self->indexTbl )) == NULL && self->indexTbl ) {
+		if( (newVariableCondition->indexTbl = (Index*)PtrMap_Find( map, self->indexTbl )) == NULL && self->indexTbl ) {
 			newVariableCondition->indexTbl = (Index*)Memory_Alloc_Array( Index, newVariableCondition->indexCount, "VariableCondition->indexTbl" );
 			memcpy( newVariableCondition->indexTbl, self->indexTbl, sizeof(Index) * newVariableCondition->indexCount );
 			PtrMap_Append( map, newVariableCondition->indexTbl, self->indexTbl );
 		}
 		
-		if( (newVariableCondition->vcVarCountTbl = PtrMap_Find( map, self->vcVarCountTbl )) == NULL && self->vcVarCountTbl ) {
+		if( (newVariableCondition->vcVarCountTbl = (VariableCondition_VariableIndex*)PtrMap_Find( map, self->vcVarCountTbl )) == NULL && self->vcVarCountTbl ) {
 			newVariableCondition->vcVarCountTbl = Memory_Alloc_Array( VariableCondition_VariableIndex, newVariableCondition->indexCount, "VC->vcVarCountTbl" );
 			memcpy( newVariableCondition->vcVarCountTbl, self->vcVarCountTbl, sizeof(VariableCondition_VariableIndex) * newVariableCondition->indexCount );
 			PtrMap_Append( map, newVariableCondition->vcVarCountTbl, self->vcVarCountTbl );
 		}
 		
-		if( (newVariableCondition->vcTbl = PtrMap_Find( map, self->vcTbl )) == NULL && self->vcTbl ) {
+		if( (newVariableCondition->vcTbl = (VariableCondition_Tuple**)PtrMap_Find( map, self->vcTbl )) == NULL && self->vcTbl ) {
 			Index	idx_I;
 			
 			newVariableCondition->vcTbl = Memory_Alloc_2DComplex( VariableCondition_Tuple, newVariableCondition->indexCount, newVariableCondition->vcVarCountTbl, "VC->vcTbl" );
@@ -265,7 +265,7 @@ void* _VariableCondition_Copy( void* var
 			PtrMap_Append( map, newVariableCondition->vcTbl, self->vcTbl );
 		}
 		
-		if( (newVariableCondition->valueTbl = PtrMap_Find( map, self->valueTbl )) == NULL && self->valueTbl ) {
+		if( (newVariableCondition->valueTbl = (VariableCondition_Value*)PtrMap_Find( map, self->valueTbl )) == NULL && self->valueTbl ) {
 			newVariableCondition->valueTbl = Memory_Alloc_Array( VariableCondition_Value, newVariableCondition->valueCount, "VC->valueTbl" );
 			memcpy( newVariableCondition->valueTbl, self->valueTbl, sizeof(VariableCondition_Value) * newVariableCondition->indexCount );
 			PtrMap_Append( map, newVariableCondition->valueTbl, self->valueTbl );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/VariableCondition.h
--- a/Base/Context/src/VariableCondition.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/VariableCondition.h	Wed May 11 13:26:45 2011 -0700
@@ -191,7 +191,7 @@
 	#define VariableCondition_Copy( self ) \
 		(VariableCondition*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	
-	void* _VariableCondition_Copy( void* variableCondition, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _VariableCondition_Copy( const void* variableCondition, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/*--------------------------------------------------------------------------------------------------------------------------
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/VariableDumpStream.c
--- a/Base/Context/src/VariableDumpStream.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/VariableDumpStream.c	Wed May 11 13:26:45 2011 -0700
@@ -109,11 +109,11 @@ void _VariableDumpStream_Print( void* cS
 	Journal_Printf( stream, "numItems: %d\n", self->numItems );
 }
 
-void* _VariableDumpStream_Copy( void* variableDumpStream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _VariableDumpStream_Copy( const void* variableDumpStream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	VariableDumpStream*	self = (VariableDumpStream*)variableDumpStream;
 	VariableDumpStream*	newVariableDumpStream;
 	
-	newVariableDumpStream = _Stream_Copy( self, dest, deep, nameExt, ptrMap );
+	newVariableDumpStream = (VariableDumpStream*)_Stream_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	/* HACK */
 	/* TODO: this should actually copy the data, i think... */
@@ -125,10 +125,10 @@ void* _VariableDumpStream_Copy( void* va
 	return newVariableDumpStream;
 }
 
-Bool _VariableDumpStream_Dump( Stream* stream, void* _loop )
+Bool _VariableDumpStream_Dump( Stream* stream, const void* _loop )
 {
 	VariableDumpStream* self = (VariableDumpStream*)stream;
-	int varI, typeI;
+	Index varI, typeI;
 	int* loop = (int*)_loop;
 	float tmp;
 	
@@ -172,7 +172,7 @@ Bool _VariableDumpStream_Dump( Stream* s
 	return True;
 }
 
-void VariableDumpStream_SetVariable( void* stream, Variable* data, int numItems, unsigned int dumpEvery, const Name const fileName )
+void VariableDumpStream_SetVariable( void* stream, Variable* data, int numItems, unsigned int dumpEvery, Name fileName )
 {
 	VariableDumpStream* self = (VariableDumpStream*)stream;
 	JournalFile* file;
@@ -187,7 +187,7 @@ void VariableDumpStream_SetVariable( voi
 		file = CFile_New2( fileName );
 		Journal_RegisterFile( file );
 	}
-	Stream_SetFile( stream, file );
+	Stream_SetFile( (Stream*)stream, file );
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/VariableDumpStream.h
--- a/Base/Context/src/VariableDumpStream.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/VariableDumpStream.h	Wed May 11 13:26:45 2011 -0700
@@ -90,7 +90,7 @@
 	void _VariableDumpStream_Print( void* vStream, Stream* stream );
 
 	/** Dumps the variable. */ 
-	Bool _VariableDumpStream_Dump( Stream* stream, void* loop );
+	Bool _VariableDumpStream_Dump( Stream* stream, const void* loop );
 	
 	/** Copy interface. */
 	#define VariableDumpStream_Copy( self ) \
@@ -98,10 +98,10 @@
 	#define VariableDumpStream_DeepCopy( self ) \
 		(VariableDumpStream*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _VariableDumpStream_Copy( void* variableDumpStream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _VariableDumpStream_Copy( const void* variableDumpStream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 	/** Sets the information that this stream dumps. */
-	void VariableDumpStream_SetVariable( void* stream, Variable* data, int numItems, unsigned int dumpEvery, const Name const fileName );
+	void VariableDumpStream_SetVariable( void* stream, Variable* data, int numItems, unsigned int dumpEvery, Name fileName );
 	
 	
 #endif /* __Context_VariableDumpStreamFile_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Variable_Register.c
--- a/Base/Context/src/Variable_Register.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Variable_Register.c	Wed May 11 13:26:45 2011 -0700
@@ -155,11 +155,11 @@ void _Variable_Register_Print(void* vari
 	_Stg_Class_Print(self, variable_RegisterStream);
 }
 
-void* _Variable_Register_Copy( void* vr, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _Variable_Register_Copy( const void* vr, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 
 	Variable_Register* self = (Variable_Register*)vr;
 	Variable_Register* newVariableRegister;
-	int ii;
+	Index ii;
 
 	newVariableRegister = (Variable_Register*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
 	PtrMap_Append( ptrMap, self, newVariableRegister );
@@ -170,8 +170,8 @@ void* _Variable_Register_Copy( void* vr,
 	memset(newVariableRegister->_variable, 0, sizeof(Variable*)*self->_size);
 
 	for ( ii = 0; ii < self->count; ++ii ) {
-		if ( (newVariableRegister->_variable[ii] = PtrMap_Find( ptrMap, self->_variable[ii] )) == NULL ) {
-			newVariableRegister->_variable[ii] = Stg_Class_Copy( self->_variable[ii], NULL, deep, nameExt, ptrMap );
+          if ( (newVariableRegister->_variable[ii] = (Variable*)PtrMap_Find( ptrMap, self->_variable[ii] )) == NULL ) {
+            newVariableRegister->_variable[ii] = (Variable*)Stg_Class_Copy( self->_variable[ii], NULL, deep, nameExt, ptrMap );
 		}
 	}
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/src/Variable_Register.h
--- a/Base/Context/src/Variable_Register.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/src/Variable_Register.h	Wed May 11 13:26:45 2011 -0700
@@ -96,7 +96,7 @@
 	
 	void	_Variable_Register_Print(void* variable_Register, Stream* stream);
 
-	void*	_Variable_Register_Copy( void* vr, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void*	_Variable_Register_Copy( const void* vr, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Macros
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/tests/DictionaryCheckSuite.c
--- a/Base/Context/tests/DictionaryCheckSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/tests/DictionaryCheckSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -59,7 +59,7 @@ void DictionaryCheckSuite_TestCheckKeys(
    const Name       testFilename1 = "testDictionaryCheck-1.txt";
    const Name       testFilename2 = "testDictionaryCheck-2.txt";
    char              expectedFilename[PCU_PATH_MAX];
-   const char*       errMessage = "Component dictionary must have unique names\n";
+   Name       errMessage = "Component dictionary must have unique names\n";
    
    Stream_RedirectFile(Journal_Register( Error_Type, (Name)"DictionaryCheck" ), testFilename1 );
    Stream_SetPrintingRank(Journal_Register( Error_Type, (Name)"DictionaryCheck" ), 0 );
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/tests/VariableDumpStreamSuite.c
--- a/Base/Context/tests/VariableDumpStreamSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/tests/VariableDumpStreamSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -74,7 +74,7 @@ void VariableDumpStreamSuite_TestDump( V
    Variable*      vec;
    Stream*        dumpStream = NULL;
    Stream*        dumpStream2 = NULL;
-   int            i;
+   Index            i;
    const Name     scalarDumpFilename = "./scalardump.dat" ;
    const Name     vectorDumpFilename = "./vectordump.dat" ;
    FILE*          scalarDumpFile = NULL;
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/tests/VariableSuite.c
--- a/Base/Context/tests/VariableSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/tests/VariableSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -64,7 +64,7 @@ typedef struct {
 
 void VariableSuite_Setup( VariableSuiteData* data ) {
    Particle                tmpParticle;
-   Name                    pNames[] = { "mass", "force", "info" };
+   const char*                    pNames[] = { "mass", "force", "info" };
    SizeT                   pOffsets[] = { 0, 0, 0 };   /* Init later... */
    Variable_DataType       pDataTypes[] = {
                               Variable_DataType_Int,
@@ -85,7 +85,7 @@ void VariableSuite_Setup( VariableSuiteD
    data->vr = Variable_Register_New();
    Variable_NewScalar( "temperature", NULL, Variable_DataType_Double, &data->aSize[0], NULL, (void**)&data->temperature, data->vr );
    Variable_NewVector( "velocity", NULL, Variable_DataType_Double, 3, &data->aSize[1], NULL, (void**)&data->velocity, data->vr, "vx", "vy", "vz" );
-   Variable_New( "particle", NULL, 3, pOffsets, pDataTypes, pDtCounts, pNames, &pSize, &data->aSize[2], NULL, (void**)&data->particle, data->vr );
+   Variable_New( "particle", NULL, 3, pOffsets, pDataTypes, pDtCounts, (Name*)pNames, &pSize, &data->aSize[2], NULL, (void**)&data->particle, data->vr );
    
    /* Build phase ---------------------------------------------------------------------------------------------------*/
    data->temperature = Memory_Alloc_Array( double, data->aSize[0], "temperature" );
@@ -222,7 +222,7 @@ void VariableSuite_TestVariable_Char( Va
    Variable* var;
    Variable* vec;
    Variable* vecVar[3];
-   int i, j;
+   Index i, j;
 
    array = Memory_Alloc_Array( char, length, "test" );
    structArray = Memory_Alloc_Array( Triple, length, "test" );
@@ -307,7 +307,7 @@ void VariableSuite_TestVariable_Double( 
    Variable* vec;
    Variable* vecVar[3];
 
-   int i, j;
+   Index i, j;
 
    array = Memory_Alloc_Array( double, length, "test" );
    structArray = Memory_Alloc_Array( Triple, length, "test" );
@@ -393,7 +393,7 @@ void VariableSuite_TestVariable_Float( V
    Variable* vec;
    Variable* vecVar[3];
 
-   int i, j;
+   Index i, j;
 
    array = Memory_Alloc_Array( float, length, "test" );
    structArray = Memory_Alloc_Array( Triple, length, "test" );
@@ -481,7 +481,7 @@ void VariableSuite_TestVariable_Int( Var
    Variable* vec;
    Variable* vecVar[3];
 
-   int i, j;
+   Index i, j;
 
    array = Memory_Alloc_Array( int, length, "test" );
    structArray = Memory_Alloc_Array( Triple, length, "test" );
@@ -570,7 +570,7 @@ void VariableSuite_TestVariable_Short( V
    Variable* vec;
    Variable* vecVar[3];
 
-   int i, j;
+   Index i, j;
 
    array = Memory_Alloc_Array( short, length, "test" );
    structArray = Memory_Alloc_Array( Triple, length, "test" );
@@ -695,12 +695,12 @@ void VariableSuite_TestVariableCopy( Var
 		SizeT dataOffsets[] = { 0, 0 };
 		Variable_DataType dataTypes[] = { Variable_DataType_Float, Variable_DataType_Char };
 		Index dataTypeCounts[] = { 1, 1 };
-		Name dataNames[] = { "complexY", "complexZ" };
+		const char* dataNames[] = { "complexY", "complexZ" };
 		
 		dataOffsets[0] = (ArithPointer)&tmp.y - (ArithPointer)&tmp;
 		dataOffsets[1] = (ArithPointer)&tmp.z - (ArithPointer)&tmp;
 
-		Variable_New( "Complex", NULL, 2, dataOffsets, dataTypes, dataTypeCounts, dataNames, &(ctx1->complexStuffSize), &(ctx1->stuffCount), NULL, (void**)&(ctx1->stuff), ctx1->vr );
+		Variable_New( "Complex", NULL, 2, dataOffsets, dataTypes, dataTypeCounts, (Name*)dataNames, &(ctx1->complexStuffSize), &(ctx1->stuffCount), NULL, (void**)&(ctx1->stuff), ctx1->vr );
 	}
 
 	Variable_Register_BuildAll( ctx1->vr );
@@ -718,7 +718,7 @@ void VariableSuite_TestVariableCopy( Var
       Variable_SetValueAtDouble( vector, ii, 2, (double)ii );
    }
    for ( ii = 0; ii < ctx1->stuffCount; ++ii ) {
-      ComplexStuff* stuff = Variable_GetStructPtr( complexStuff, ii );
+     ComplexStuff* stuff = (ComplexStuff*)Variable_GetStructPtr( complexStuff, ii );
       stuff->y = (float)ii;
       stuff->z = '0' + ii;
    }
@@ -741,7 +741,7 @@ void VariableSuite_TestVariableCopy( Var
 	PtrMap_Append( ptrMap, ctx1->stuff, ctx2->stuff );
 
    /* Doing a copy of the whole Variable Register, should trigger a copy of the values in all the variables */
-	ctx2->vr = Stg_Class_Copy( ctx1->vr, NULL, True, NULL, ptrMap );
+	ctx2->vr = (Variable_Register*)Stg_Class_Copy( ctx1->vr, NULL, True, NULL, ptrMap );
 
    /* test equality of copy */
    for ( ii = 0; ii < ctx1->scalarCount; ++ii ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Context/tests/Variable_RegisterSuite.c
--- a/Base/Context/tests/Variable_RegisterSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Context/tests/Variable_RegisterSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -61,13 +61,13 @@ void Variable_RegisterSuite_TestAddGet( 
    #define STRUCT_SIZE	4
    double			array[ARRAY_SIZE];
    Index			   arraySize = ARRAY_SIZE;
-   char*			   name[10] = {"testVar0", "testVar1", "testVar2", "testVar3",
+   Name			   name[10] = {"testVar0", "testVar1", "testVar2", "testVar3",
                   "testVar4", "testVar5", "testVar6", "testVar7",
                   "testVar8", "testVar9"};
    Index		   	i;
 
    for (i = 0; i < 10; i++) {
-      var[i] = Variable_NewVector( name[i], NULL, Variable_DataType_Double, 4, &arraySize, NULL, (void**)&array, 0 );
+     var[i] = Variable_NewVector( (char*)(name[i]), NULL, Variable_DataType_Double, 4, &arraySize, NULL, (void**)&array, 0 );
    }
 
    for (i = 0; i < 10; i++)
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ClassHook.c
--- a/Base/Extensibility/src/ClassHook.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ClassHook.c	Wed May 11 13:26:45 2011 -0700
@@ -49,7 +49,7 @@ const Type ClassHook_Type = "ClassHook";
 const Type ClassHook_Type = "ClassHook";
 
 /** allocate and initialise a new ClassHook. */
-ClassHook* ClassHook_New( Name name, Func_Ptr funcPtr, char* addedBy, void* reference ) {
+ClassHook* ClassHook_New( Name name, Func_Ptr funcPtr, Name addedBy, void* reference ) {
 	/* Variables set in this function */
 	SizeT                      _sizeOfSelf = sizeof(ClassHook);
 	Type                              type = ClassHook_Type;
@@ -63,7 +63,7 @@ ClassHook* ClassHook_New( Name name, Fun
 	return _ClassHook_New(  CLASSHOOK_PASSARGS  );
 }
 
-void ClassHook_Init( void* hook, Name name, Func_Ptr funcPtr, char* addedBy, void* reference ) {
+void ClassHook_Init( void* hook, Name name, Func_Ptr funcPtr, const char* addedBy, void* reference ) {
 	ClassHook* self = (ClassHook*)hook;
 
 	/* General info */
@@ -106,7 +106,7 @@ ClassHook* _ClassHook_New(  CLASSHOOK_DE
 }
 
 
-void _ClassHook_Init( ClassHook* self, Func_Ptr funcPtr, char* addedBy, void* reference ) {
+void _ClassHook_Init( ClassHook* self, Func_Ptr funcPtr, Name addedBy, void* reference ) {
 	/* General and Virtual info should already be set */
 	
 	/* ClassHook info */
@@ -139,11 +139,11 @@ void _ClassHook_Print( void* hook, Strea
 }
 
 
-void* _ClassHook_Copy( void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _ClassHook_Copy( const void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	ClassHook*	self = (ClassHook*)hook;
 	ClassHook*	newClassHook;
 	
-	newClassHook = _Hook_Copy( self, dest, deep, nameExt, ptrMap );
+	newClassHook = (ClassHook*)_Hook_Copy( self, dest, deep, nameExt, ptrMap );
 
 	newClassHook->reference = Stg_Class_Copy( self->reference, dest, deep, nameExt, ptrMap );
 	
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ClassHook.h
--- a/Base/Extensibility/src/ClassHook.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ClassHook.h	Wed May 11 13:26:45 2011 -0700
@@ -52,10 +52,10 @@
 	struct ClassHook { __ClassHook };
 	
 	/* Create a new ClassHook */
-	ClassHook* ClassHook_New( Name name, Func_Ptr funcPtr, char* addedBy, void* reference );
+	ClassHook* ClassHook_New( Name name, Func_Ptr funcPtr, Name addedBy, void* reference );
 	
 	/* Initialise an ClassHook */
-	void ClassHook_Init( void* hook, Name name, Func_Ptr funcPtr, char* addedBy, void* reference );
+	void ClassHook_Init( void* hook, Name name, Func_Ptr funcPtr, Name addedBy, void* reference );
 	
 	/* Creation implementation */
 	
@@ -66,7 +66,7 @@
 	#define CLASSHOOK_DEFARGS \
                 STG_OBJECT_DEFARGS, \
                 Func_Ptr    funcPtr, \
-                char*       addedBy, \
+                Name       addedBy, \
                 void*     reference
 
 	#define CLASSHOOK_PASSARGS \
@@ -78,7 +78,7 @@
 	ClassHook* _ClassHook_New(  CLASSHOOK_DEFARGS  );
 	
 	/* Initialisation implementation */
-	void _ClassHook_Init( ClassHook* self, Func_Ptr funcPtr, char* addedBy, void* reference );
+	void _ClassHook_Init( ClassHook* self, Func_Ptr funcPtr, Name addedBy, void* reference );
 	
 	
 	/* Stg_Class_Delete implementation */
@@ -93,7 +93,7 @@
 	#define ClassHook_DeepCopy( self ) \
 		(ClassHook*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _ClassHook_Copy( void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _ClassHook_Copy( const void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 #endif /* __StGermain_Base_Extensibility_ClassHook_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ClassPtrExtensionInfo.c
--- a/Base/Extensibility/src/ClassPtrExtensionInfo.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ClassPtrExtensionInfo.c	Wed May 11 13:26:45 2011 -0700
@@ -54,7 +54,7 @@ const Type ClassPtrExtensionInfo_Type = 
 
 
 /** allocate and initialise a new ClassPtrExtensionInfo. */
-ClassPtrExtensionInfo* ClassPtrExtensionInfo_New( const Name name, Stg_Class_CopyFunction* copyFunc, Index count ) {
+ClassPtrExtensionInfo* ClassPtrExtensionInfo_New( Name name, Stg_Class_CopyFunction* copyFunc, Index count ) {
 	/* Variables set in this function */
 	SizeT                            _sizeOfSelf = sizeof(ClassPtrExtensionInfo);
 	Type                                    type = ClassPtrExtensionInfo_Type;
@@ -71,7 +71,7 @@ ClassPtrExtensionInfo* ClassPtrExtension
 }
 
 
-void ClassPtrExtensionInfo_Init( void* arrayExtensionInfo, const Name name, Stg_Class_CopyFunction* copyFunc, Index count ) {
+void ClassPtrExtensionInfo_Init( void* arrayExtensionInfo, Name name, Stg_Class_CopyFunction* copyFunc, Index count ) {
 	ClassPtrExtensionInfo* self = (ClassPtrExtensionInfo*)arrayExtensionInfo;
 
 	/* General info */
@@ -86,7 +86,7 @@ void ClassPtrExtensionInfo_Init( void* a
 	self->_dataCopy = _ClassPtrExtensionInfo_DataCopy;
 	
 	/* ClassPtrExtensionInfo info */
-	_ClassPtrExtensionInfo_Init( self, (Name)name, copyFunc, count );
+	_ClassPtrExtensionInfo_Init( self, name, copyFunc, count );
 }
 
 
@@ -148,12 +148,12 @@ void _ClassPtrExtensionInfo_Print( void*
 }
 
 
-void* _ClassPtrExtensionInfo_Copy( void* extensionInfo, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap  ) {
+void* _ClassPtrExtensionInfo_Copy( const void* extensionInfo, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap  ) {
 	ClassPtrExtensionInfo*	self = (ClassPtrExtensionInfo*)extensionInfo;
 	ClassPtrExtensionInfo*	newClassPtrExtensionInfo;
 
 	/* Copy parent */
-	newClassPtrExtensionInfo = _ExtensionInfo_Copy( self, dest, deep, nameExt, ptrMap );
+	newClassPtrExtensionInfo = (ClassPtrExtensionInfo*)_ExtensionInfo_Copy( self, dest, deep, nameExt, ptrMap );
 
 	newClassPtrExtensionInfo->copyFunc = self->copyFunc;
 	
@@ -171,7 +171,7 @@ void* _ClassPtrExtensionInfo_DataCopy(
 	ClassPtrExtensionInfo* self = (ClassPtrExtensionInfo*) extensionInfo;
 	ClassPtrExtensionInfo_PtrClass* srcArray = (ClassPtrExtensionInfo_PtrClass*)source;
 	ClassPtrExtensionInfo_PtrClass* destArray = (ClassPtrExtensionInfo_PtrClass*)dest;
-	int item_I;
+	Index item_I;
 
 	for ( item_I = 0; item_I < self->count; ++item_I ) {
 		destArray[item_I].ptr = Stg_Generic_Copy( self->copyFunc, srcArray[item_I].ptr, NULL, deep, nameExt, ptrMap );
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ClassPtrExtensionInfo.h
--- a/Base/Extensibility/src/ClassPtrExtensionInfo.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ClassPtrExtensionInfo.h	Wed May 11 13:26:45 2011 -0700
@@ -70,10 +70,10 @@
 	
 	
 	/** Create a new ClassPtrExtensionInfo */
-	ClassPtrExtensionInfo* ClassPtrExtensionInfo_New( const Name name, Stg_Class_CopyFunction* copyFunc, Index count );
+	ClassPtrExtensionInfo* ClassPtrExtensionInfo_New( Name name, Stg_Class_CopyFunction* copyFunc, Index count );
 	
 	/** Initialise an ClassPtrExtensionInfo */
-	void ClassPtrExtensionInfo_Init( void* arrayExtensionInfo, const Name name, Stg_Class_CopyFunction* copyFunc, Index count );
+	void ClassPtrExtensionInfo_Init( void* arrayExtensionInfo, Name name, Stg_Class_CopyFunction* copyFunc, Index count );
 	
 	/* Creation implementation */
 	
@@ -101,7 +101,7 @@
 	void _ClassPtrExtensionInfo_Print( void* arrayExtensionInfo, Stream* stream );
 	
 	/** Class_Copy() implementation: derivatives should call this in their implementation */
-	void* _ClassPtrExtensionInfo_Copy( void* extensionInfo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _ClassPtrExtensionInfo_Copy( const void* extensionInfo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 
 	void* _ClassPtrExtensionInfo_DataCopy(
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/EntryPoint.c
--- a/Base/Extensibility/src/EntryPoint.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/EntryPoint.c	Wed May 11 13:26:45 2011 -0700
@@ -61,7 +61,7 @@ static const Type _EntryPoint_Run_Type =
 /** allocate and initialise a new EntryPoint.
  * \param name textual name of the entry point (useful if its to be stored in a list).
  * \return the allocated entry point. */
-EntryPoint* EntryPoint_New( const Name name, unsigned int castType ) {
+EntryPoint* EntryPoint_New( Name name, unsigned int castType ) {
 	/* Variables set in this function */
 	SizeT                       _sizeOfSelf = sizeof(EntryPoint);
 	Type                               type = EntryPoint_Type;
@@ -77,7 +77,7 @@ EntryPoint* EntryPoint_New( const Name n
 }
 
 /** Initialise an existing entry point. See EntryPoint_New() for argument descriptions. */
-void EntryPoint_Init( void* entryPoint, const Name name, unsigned int castType ) {
+void EntryPoint_Init( void* entryPoint, Name name, unsigned int castType ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 
 	/* General info */
@@ -91,7 +91,7 @@ void EntryPoint_Init( void* entryPoint, 
 	self->_copy = _EntryPoint_Copy;
 	self->_getRun = _EntryPoint_GetRun;
 	_Stg_Class_Init( (Stg_Class*)self );
-	_Stg_Object_Init( (Stg_Object*)self, (Name) name, GLOBAL );
+	_Stg_Object_Init( (Stg_Object*)self, name, GLOBAL );
 	
 	/* EntryPoint info */
 	_EntryPoint_Init( self, castType );
@@ -174,7 +174,7 @@ void _EntryPoint_Print( void* entryPoint
 }
 
 
-void* _EntryPoint_Copy( void* entryPoint, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _EntryPoint_Copy( const void* entryPoint, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	EntryPoint*	self = (EntryPoint*)entryPoint;
 	EntryPoint*	newEntryPoint;
 	PtrMap*		map = ptrMap;
@@ -185,7 +185,7 @@ void* _EntryPoint_Copy( void* entryPoint
 		ownMap = True;
 	}
 	
-	newEntryPoint = _Stg_Object_Copy( self, dest, deep, nameExt, map );
+	newEntryPoint = (EntryPoint*)_Stg_Object_Copy( self, dest, deep, nameExt, map );
 	
 	/* Virtual methods */
 	newEntryPoint->_getRun = self->_getRun;
@@ -199,7 +199,7 @@ void* _EntryPoint_Copy( void* entryPoint
 		if( newEntryPoint->hooks ) {
 			if( self->alwaysFirstHook ) {
 				if( nameExt ) {
-					Name	tmpName;
+					char*	tmpName;
 					
 					tmpName = Memory_Alloc_Array( char, strlen( Stg_Object_GetName( self->alwaysFirstHook ) ) + strlen( nameExt ) + 1, "tmpName" );
 					strcpy( tmpName, Stg_Object_GetName( self->alwaysFirstHook ) );
@@ -218,7 +218,7 @@ void* _EntryPoint_Copy( void* entryPoint
 			
 			if( self->alwaysLastHook ) {
 				if( nameExt ) {
-					Name	tmpName;
+					char*	tmpName;
 					
 					tmpName = Memory_Alloc_Array( char, strlen( Stg_Object_GetName( self->alwaysLastHook ) ) + strlen( nameExt ) + 1, "tmpName" );
 					strcpy( tmpName, Stg_Object_GetName( self->alwaysLastHook ) );
@@ -705,21 +705,21 @@ void EntryPoint_PrintConcise( void* entr
 }
 
 
-void EntryPoint_Prepend( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy ) {
+void EntryPoint_Prepend( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr , addedBy );
 
 	_EntryPoint_PrependHook( self, hook );
 }
 
-void EntryPoint_Prepend_AlwaysFirst( void* entryPoint, Name name, Func_Ptr funcPtr, Hook_AddedBy addedBy ) {
+void EntryPoint_Prepend_AlwaysFirst( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr, addedBy );
 
 	_EntryPoint_PrependHook_AlwaysFirst( self, hook );
 }
 
-void EntryPoint_Append( void* entryPoint, Name name, Func_Ptr funcPtr, Hook_AddedBy addedBy ) {
+void EntryPoint_Append( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr, addedBy );
 
@@ -727,7 +727,7 @@ void EntryPoint_Append( void* entryPoint
 }
 
 
-void EntryPoint_Append_AlwaysLast( void* entryPoint, Name name, Func_Ptr funcPtr, Hook_AddedBy addedBy ) {
+void EntryPoint_Append_AlwaysLast( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr, addedBy );
 
@@ -735,7 +735,7 @@ void EntryPoint_Append_AlwaysLast( void*
 }
 
 
-void EntryPoint_InsertBefore( void* entryPoint, Name hookToInsertBefore, Name name, Func_Ptr funcPtr, char* addedBy ) {
+void EntryPoint_InsertBefore( void* entryPoint, Name hookToInsertBefore, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr , addedBy );
 
@@ -743,7 +743,7 @@ void EntryPoint_InsertBefore( void* entr
 }
 
 
-void EntryPoint_InsertAfter( void* entryPoint, Name hookToInsertAfter, Name name, Func_Ptr funcPtr, char* addedBy ) {
+void EntryPoint_InsertAfter( void* entryPoint, Name hookToInsertAfter, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr , addedBy );
 
@@ -751,7 +751,7 @@ void EntryPoint_InsertAfter( void* entry
 }
 
 
-void EntryPoint_ReplaceAll( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy ) {
+void EntryPoint_ReplaceAll( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr , addedBy );
 
@@ -759,14 +759,14 @@ void EntryPoint_ReplaceAll( void* entryP
 }
 
 
-void EntryPoint_Replace( void* entryPoint, Name hookToReplace, Name name, Func_Ptr funcPtr, char* addedBy ) {
+void EntryPoint_Replace( void* entryPoint, Name hookToReplace, Name name, Func_Ptr funcPtr, Name addedBy ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = Hook_New( name, funcPtr , addedBy );
 
 	_EntryPoint_ReplaceHook( self, hookToReplace, hook );
 }
 
-void EntryPoint_PrependClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy, void* reference ) {
+void EntryPoint_PrependClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy, void* reference ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = (Hook*)ClassHook_New( name, funcPtr, addedBy, reference );
 
@@ -777,7 +777,7 @@ void EntryPoint_PrependClassHook_AlwaysF
 	void* entryPoint, 
 	Name name, 
 	Func_Ptr funcPtr, 
-	char* addedBy, 
+	Name addedBy, 
 	void* reference ) {
 	
 	EntryPoint* self = (EntryPoint*)entryPoint;
@@ -786,7 +786,7 @@ void EntryPoint_PrependClassHook_AlwaysF
 	_EntryPoint_PrependHook_AlwaysFirst( self, hook );
 }
 	
-void EntryPoint_AppendClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy, void* reference ) {
+void EntryPoint_AppendClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy, void* reference ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = (Hook*)ClassHook_New( name, funcPtr, addedBy, reference );
 
@@ -798,7 +798,7 @@ void EntryPoint_AppendClassHook_AlwaysLa
 	void* entryPoint, 
 	Name name, 
 	Func_Ptr funcPtr, 
-	char* addedBy, 
+	Name addedBy, 
 	void* reference ) {
 
 	EntryPoint* self = (EntryPoint*)entryPoint;
@@ -812,7 +812,7 @@ void EntryPoint_InsertClassHookBefore(
 	Name hookToInsertBefore, 
 	Name name, 
 	Func_Ptr funcPtr, 
-	char* addedBy, 
+	Name addedBy, 
 	void* reference ) {
 	
 	EntryPoint* self = (EntryPoint*)entryPoint;
@@ -827,7 +827,7 @@ void EntryPoint_InsertClassHookAfter(
 	Name hookToInsertAfter, 
 	Name name, 
 	Func_Ptr funcPtr, 
-	char* addedBy, 
+	Name addedBy, 
 	void* reference ) {
 
 	EntryPoint* self = (EntryPoint*)entryPoint;
@@ -841,7 +841,7 @@ void EntryPoint_ReplaceClassHook(
 	Name hookToReplace, 
 	Name name, 
 	Func_Ptr funcPtr, 
-	char* addedBy, 
+	Name addedBy, 
 	void* reference ) {
 	
 	EntryPoint* self = (EntryPoint*)entryPoint;
@@ -850,7 +850,7 @@ void EntryPoint_ReplaceClassHook(
 	_EntryPoint_ReplaceHook( self, hookToReplace, hook );
 }
 	
-void EntryPoint_ReplaceAllClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy, void* reference ) {
+void EntryPoint_ReplaceAllClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy, void* reference ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 	Hook* hook = (Hook*)ClassHook_New( name, funcPtr, addedBy, reference );
 
@@ -887,7 +887,7 @@ void EntryPoint_Purge( void* entryPoint 
 }
 
 
-void EntryPoint_WarnIfNoHooks( void* entryPoint, const char* parentFunction ) {
+void EntryPoint_WarnIfNoHooks( void* entryPoint, Name parentFunction ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 
 	Journal_Firewall( 
@@ -905,7 +905,7 @@ void EntryPoint_WarnIfNoHooks( void* ent
 }
 
 
-void EntryPoint_ErrorIfNoHooks( void* entryPoint, const char* parentFunction ) {
+void EntryPoint_ErrorIfNoHooks( void* entryPoint, Name parentFunction ) {
 	EntryPoint* self = (EntryPoint*)entryPoint;
 
 	Journal_Firewall( 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/EntryPoint.h
--- a/Base/Extensibility/src/EntryPoint.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/EntryPoint.h	Wed May 11 13:26:45 2011 -0700
@@ -120,10 +120,10 @@
 	struct EntryPoint { __EntryPoint };
 	
 	/** Create a new EntryPoint */
-	EntryPoint* EntryPoint_New( const Name name, unsigned int castType );
+	EntryPoint* EntryPoint_New( Name name, unsigned int castType );
 	
 	/** Initialise an existing EntryPoint */
-	void EntryPoint_Init( void* entryPoint, const Name name, unsigned int castType );
+	void EntryPoint_Init( void* entryPoint, Name name, unsigned int castType );
 	
 	/** Creation implementation */
 	
@@ -158,7 +158,7 @@
 	#define EntryPoint_DeepCopy( self ) \
 		(EntryPoint*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _EntryPoint_Copy( void* entryPoint, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _EntryPoint_Copy( const void* entryPoint, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	/* VIRTUAL FUNCTIONS */
 
@@ -207,39 +207,39 @@
 	void EntryPoint_PrintConcise( void* entryPoint, Stream* stream );
 	
 	/** Prepend a new Hook function at the start of an entry point's list of hooks to run. */
-	void EntryPoint_Prepend( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_Prepend( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/** Prepend a new Hook function at the start of an entry point's list of hooks to run, specifying it
 	should always remain the first hook. */
-	void EntryPoint_Prepend_AlwaysFirst( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_Prepend_AlwaysFirst( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/** Add a new Func_Ptr to an entry point, at the end of the current list of hooks. If there is a hook
 	already specified to always come last, the new hook will be appended to come just before it. */
-	void EntryPoint_Append( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_Append( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/** Add a new Func_Ptr to an entry point, at the end of the list of hooks - and make
 	sure the entry point is always kept at the end. If this is called twice on
 	the same entry point, an assert results. */
-	void EntryPoint_Append_AlwaysLast( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_Append_AlwaysLast( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy );
 
 	/** Add a new Hook function to an entry point, just before the specified hookToInsertBefore in the list of hooks.
 	 * If the specified hook to insert before doesn't exist, then asserts with an error. */
-	void EntryPoint_InsertBefore( void* entryPoint, Name hookToInsertBefore, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_InsertBefore( void* entryPoint, Name hookToInsertBefore, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/** Add a new Hook function to an entry point, just after the specified hookToInsertAfter in the list of hooks.
 	 * If the specified hook to insert after doesn't exist, then asserts with an error. */
-	void EntryPoint_InsertAfter( void* entryPoint, Name hookToInsertAfter, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_InsertAfter( void* entryPoint, Name hookToInsertAfter, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/** Replace a specific named hook with a new hook function.
 	 * If the specified hook to replace doesn't exist, then asserts with an error. */
-	void EntryPoint_Replace( void* entryPoint, Name hookToReplace, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_Replace( void* entryPoint, Name hookToReplace, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/** Replace all existing hooks of an entry point with a new hook. */
-	void EntryPoint_ReplaceAll( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy );
+	void EntryPoint_ReplaceAll( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy );
 
 
 	/** Prepend a new Hook function at the start of an entry point's list of hooks to run. */
-	void EntryPoint_PrependClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy, void* reference );
+	void EntryPoint_PrependClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy, void* reference );
 	
 	/** Prepend a new Hook function at the start of an entry point's list of hooks to run, specifying it
 	should always remain the first hook. */
@@ -247,12 +247,12 @@
 		void* entryPoint, 
 		Name name, 
 		Func_Ptr funcPtr, 
-		char* addedBy, 
+		Name addedBy, 
 		void* reference );
 	
 	/** Add a new Func_Ptr to an entry point, at the end of the current list of hooks. If there is a hook
 	already specified to always come last, the new hook will be appended to come just before it. */
-	void EntryPoint_AppendClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy, void* reference );
+	void EntryPoint_AppendClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy, void* reference );
 	
 	/** Add a new Func_Ptr to an entry point, at the end of the list of hooks - and make
 	sure the entry point is always kept at the end. If this is called twice on
@@ -261,7 +261,7 @@
 		void* entryPoint, 
 		Name name, 
 		Func_Ptr funcPtr, 
-		char* addedBy, 
+		Name addedBy, 
 		void* reference );
 
 	/** Add a new Hook function to an entry point, just before the specified hookToInsertBefore in the list of hooks.
@@ -271,7 +271,7 @@
 		Name hookToInsertBefore, 
 		Name name, 
 		Func_Ptr funcPtr, 
-		char* addedBy, 
+		Name addedBy, 
 		void* reference );
 	
 	/** Add a new Hook function to an entry point, just after the specified hookToInsertAfter in the list of hooks.
@@ -281,7 +281,7 @@
 		Name hookToInsertAfter, 
 		Name name, 
 		Func_Ptr funcPtr, 
-		char* addedBy, 
+		Name addedBy, 
 		void* reference );
 	
 	/** Replace a specific named hook with a new hook function.
@@ -291,11 +291,11 @@
 		Name hookToReplace, 
 		Name name, 
 		Func_Ptr funcPtr, 
-		char* addedBy, 
+		Name addedBy, 
 		void* reference );
 	
 	/** Replace all existing hooks of an entry point with a new hook. */
-	void EntryPoint_ReplaceAllClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, char* addedBy, void* reference );
+	void EntryPoint_ReplaceAllClassHook( void* entryPoint, Name name, Func_Ptr funcPtr, Name addedBy, void* reference );
 
 
 	/** Removes a hook from an entry point
@@ -305,9 +305,9 @@
 	/** "Purge" the entry point of all existing hooks, leaving it blank. */
 	void EntryPoint_Purge( void* entryPoint );
 	
-	void EntryPoint_WarnIfNoHooks( void* entryPoint, const char* parentFunction );
+	void EntryPoint_WarnIfNoHooks( void* entryPoint, Name parentFunction );
 
-	void EntryPoint_ErrorIfNoHooks( void* entryPoint, const char* parentFunction );
+	void EntryPoint_ErrorIfNoHooks( void* entryPoint, Name parentFunction );
 	
 #endif /* __StGermain_Base_Extensibility_EntryPoint_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ExtensionInfo.c
--- a/Base/Extensibility/src/ExtensionInfo.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ExtensionInfo.c	Wed May 11 13:26:45 2011 -0700
@@ -43,7 +43,7 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <string.h>
-
+#include <limits.h>
 
 /* Class Administration members ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
@@ -136,12 +136,12 @@ void _ExtensionInfo_Print( void* extensi
 	Journal_Printf( (void*)stream, "\thandle: %u\n", self->handle );
 }
 
-void* _ExtensionInfo_Copy( void* extensionInfo, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap  ) {
+void* _ExtensionInfo_Copy( const void* extensionInfo, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap  ) {
 	ExtensionInfo*		self = (ExtensionInfo*)extensionInfo;
 	ExtensionInfo*		newExtensionInfo;
 	
 	/* Copy parent */
-	newExtensionInfo = _Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
+	newExtensionInfo = (ExtensionInfo*)_Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	newExtensionInfo->_dataCopy = self->_dataCopy;
 	newExtensionInfo->key = self->key;
@@ -153,7 +153,7 @@ void* _ExtensionInfo_Copy( void* extensi
 	newExtensionInfo->offset = self->offset;
 	newExtensionInfo->handle = self->handle;	
 
-	newExtensionInfo->extensionManager = Stg_Class_Copy( self->extensionManager, NULL, deep, nameExt, ptrMap );
+	newExtensionInfo->extensionManager = (ExtensionManager*)Stg_Class_Copy( self->extensionManager, NULL, deep, nameExt, ptrMap );
 
 	if ( self->data ) {
 		newExtensionInfo->data = PtrMap_Find( ptrMap, self->data );
@@ -276,7 +276,7 @@ void ExtensionInfo_Register(
 			Journal_Register( ErrorStream_Type, ExtensionInfo_Type ), 
 			"Attempting to register an ExtensionInfo with an ExtensionManager that is NULL\n" );
 	Journal_DFirewall( 
-			self->handle != -1,  
+			self->handle != (unsigned)(-1),  
 			Journal_Register( ErrorStream_Type, ExtensionInfo_Type ), 
 			"Attempting to register an ExtensionInfo with a handle that is invalid\n" );
 	
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ExtensionInfo.h
--- a/Base/Extensibility/src/ExtensionInfo.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ExtensionInfo.h	Wed May 11 13:26:45 2011 -0700
@@ -120,7 +120,7 @@
 	void _ExtensionInfo_Print( void* extensionInfo, Stream* stream );
 	
 	/** Class_Copy() implementation: derivatives should call this in their implementation */
-	void* _ExtensionInfo_Copy( void* extensionInfo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _ExtensionInfo_Copy( const void* extensionInfo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ExtensionManager.c
--- a/Base/Extensibility/src/ExtensionManager.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ExtensionManager.c	Wed May 11 13:26:45 2011 -0700
@@ -375,16 +375,16 @@ void _ExtensionManager_Print( void* exte
 }
 
 
-void* _ExtensionManager_Copy( void* extensionManager, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _ExtensionManager_Copy( const void* extensionManager, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	ExtensionManager*	self = (ExtensionManager*)extensionManager;
 	ExtensionManager*	newExtensionManager;
 	PtrMap*			map = ptrMap;
-	int item_I;
-	int ext_I;
+	Index item_I;
+	Index ext_I;
 	void* data;
 	ExtensionInfo* srcInfo;
 
-	newExtensionManager = _Stg_Object_Copy( self, dest, deep, nameExt, map );
+	newExtensionManager = (ExtensionManager*)_Stg_Object_Copy( self, dest, deep, nameExt, map );
 	
 	newExtensionManager->initialSize = self->initialSize;
 	newExtensionManager->finalSize = self->finalSize;
@@ -522,11 +522,11 @@ void* _ExtensionManager_Copy( void* exte
 	}
 
 	newExtensionManager->itemSize = self->itemSize;
-	newExtensionManager->em = Stg_Class_Copy( self->em, NULL, deep, nameExt, ptrMap );
+	newExtensionManager->em = (ExtensionManager*)Stg_Class_Copy( self->em, NULL, deep, nameExt, ptrMap );
 	newExtensionManager->count = self->count;
 
 	/* Must be copied after all the data ptrs have been appended to map */
-	newExtensionManager->objToExtensionMapper = Stg_Class_Copy( self->objToExtensionMapper, NULL, deep, nameExt, ptrMap );
+	newExtensionManager->objToExtensionMapper = (HashTable*)Stg_Class_Copy( self->objToExtensionMapper, NULL, deep, nameExt, ptrMap );
 	
 	/* must be copied last bacause of array case */
 	newExtensionManager->extInfos = (ExtensionInfoList*)Stg_Class_Copy( self->extInfos, NULL, deep, nameExt, ptrMap );
@@ -776,19 +776,19 @@ Bool ExtensionManager_OfExistingFunc( vo
 Bool ExtensionManager_OfExistingFunc( void* extension ) {
 	ExtensionManager*			self = (ExtensionManager*)extension;
 
-	return ExtensionManager_OfExistingMacro( self );
+	return ExtensionManager_OfExistingMacro( self ) ? True : False;
 }
 
 Bool ExtensionManager_OfArrayFunc( void* extension ) {
 	ExtensionManager*			self = (ExtensionManager*)extension;
 
-	return ExtensionManager_OfArrayMacro( self );
+	return ExtensionManager_OfArrayMacro( self ) ? True : False;
 }
 
 Bool ExtensionManager_OfExtendedArrayFunc( void* extension ) {
 	ExtensionManager*			self = (ExtensionManager*)extension;
 
-	return ExtensionManager_OfExtendedArrayMacro( self );
+	return ExtensionManager_OfExtendedArrayMacro( self ) ? True : False;
 }
 
 SizeT ExtensionManager_GetFinalSizeFunc( void* extension ) {
@@ -853,8 +853,8 @@ void* ExtensionManager_CopyAllocation(
 	Bool ownMap = False;
 	void* srcCurrent;
 	void* destCurrent;
-	int item_I;
-	int ext_I;
+	Index item_I;
+	Index ext_I;
 
 	ArithPointer offset;
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ExtensionManager.h
--- a/Base/Extensibility/src/ExtensionManager.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ExtensionManager.h	Wed May 11 13:26:45 2011 -0700
@@ -176,7 +176,7 @@
 	#define ExtensionManager_DeepCopy( self ) \
 		(ExtensionManager*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _ExtensionManager_Copy( void* extensionManager, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _ExtensionManager_Copy( const void* extensionManager, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 
 	/** For original data which was a class or or complex struct which requires its own copy function */
 	void ExtensionManager_SetDataCopyFunc( void* extensionManager, Stg_Class_CopyFunction* dataCopyFunc );
@@ -188,7 +188,7 @@
 
 	ExtensionInfo_Index ExtensionManager_AddArray( 
 		void* extension, 
-		const Name offsetName, 
+		Name offsetName, 
 		SizeT size, 
 		Index count );
 
@@ -197,7 +197,7 @@
 	
 	ExtensionInfo_Index ExtensionManager_AddClassPtrArray(
 		void* extension, 
-		const Name offsetName, 
+		Name offsetName, 
 		Stg_Class_CopyFunction* copyFunc,
 		Index count );
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Hook.c
--- a/Base/Extensibility/src/Hook.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Hook.c	Wed May 11 13:26:45 2011 -0700
@@ -48,7 +48,7 @@ const Type Hook_Type = "Hook";
 const Type Hook_Type = "Hook";
 
 /** allocate and initialise a new Hook. */
-Hook* Hook_New( Name name, Func_Ptr funcPtr, char* addedBy ) {
+Hook* Hook_New( Name name, Func_Ptr funcPtr, Name addedBy ) {
 	/* Variables set in this function */
 	SizeT                      _sizeOfSelf = sizeof(Hook);
 	Type                              type = Hook_Type;
@@ -62,7 +62,7 @@ Hook* Hook_New( Name name, Func_Ptr func
 	return _Hook_New(  HOOK_PASSARGS  );
 }
 
-void Hook_Init( void* hook, Name name, Func_Ptr funcPtr, char* addedBy ) {
+void Hook_Init( void* hook, Name name, Func_Ptr funcPtr, const char* addedBy ) {
 	Hook* self = (Hook*)hook;
 
 	/* General info */
@@ -106,7 +106,7 @@ Hook* _Hook_New(  HOOK_DEFARGS  )
 }
 
 
-void _Hook_Init( Hook* self, Func_Ptr funcPtr, char* addedBy ) {
+void _Hook_Init( Hook* self, Func_Ptr funcPtr, Name addedBy ) {
 	/* General and Virtual info should already be set */
 	
 	/* Hook info */
@@ -142,17 +142,17 @@ void _Hook_Print( void* hook, Stream* st
 }
 
 
-void* _Hook_Copy( void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
+void* _Hook_Copy( const void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap ) {
 	Hook*	self = (Hook*)hook;
 	Hook*	newHook;
 	
-	newHook = _Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
+	newHook = (Hook*)_Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	newHook->funcPtr = self->funcPtr;
 	
 	if( self->addedBy ) {
 		if( nameExt ) {
-			Name	tmpName;
+			char*	tmpName;
 			
 			tmpName = Memory_Alloc_Array( char, strlen( self->addedBy ) + strlen( nameExt ) + 1, "newHook->addedBy" );
 			strcpy( tmpName, self->addedBy );
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Hook.h
--- a/Base/Extensibility/src/Hook.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Hook.h	Wed May 11 13:26:45 2011 -0700
@@ -53,10 +53,10 @@
 	struct Hook { __Hook };
 	
 	/* Create a new Hook */
-	Hook* Hook_New( Name name, Func_Ptr funcPtr, char* addedBy );
+	Hook* Hook_New( Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/* Initialise an Hook */
-	void Hook_Init( void* hook, Name name, Func_Ptr funcPtr, char* addedBy );
+	void Hook_Init( void* hook, Name name, Func_Ptr funcPtr, Name addedBy );
 	
 	/* Creation implementation */
 	
@@ -67,7 +67,7 @@
 	#define HOOK_DEFARGS \
                 STG_OBJECT_DEFARGS, \
                 Func_Ptr  funcPtr, \
-                char*     addedBy
+                Name     addedBy
 
 	#define HOOK_PASSARGS \
                 STG_OBJECT_PASSARGS, \
@@ -77,7 +77,7 @@
 	Hook* _Hook_New(  HOOK_DEFARGS  );
 	
 	/* Initialisation implementation */
-	void _Hook_Init( Hook* self, Func_Ptr funcPtr, char* addedBy );
+	void _Hook_Init( Hook* self, Func_Ptr funcPtr, Name addedBy );
 	
 	
 	/* Stg_Class_Delete implementation */
@@ -92,7 +92,7 @@
 	#define Hook_DeepCopy( self ) \
 		(Hook*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _Hook_Copy( void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _Hook_Copy( const void* hook, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 #endif /* __StGermain_Base_Extensibility_Hook_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Module.c
--- a/Base/Extensibility/src/Module.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Module.c	Wed May 11 13:26:45 2011 -0700
@@ -71,14 +71,13 @@ void* Module_MapStaticSymbol(Module *sel
 
 const Type Module_Type = "Module";
 
-static const char* MODULE_SUFFIX = "module.";
-static const char* MODULE_GETMETADATA_SUFFIX = "_MetaAsDictionary";
-static const char* MODULE_GETNAME_SUFFIX = "_GetName";
-static const char* MODULE_GETVERSION_SUFFIX = "_GetVersion";
+static Name MODULE_GETMETADATA_SUFFIX = "_MetaAsDictionary";
+static Name MODULE_GETNAME_SUFFIX = "_GetName";
+static Name MODULE_GETVERSION_SUFFIX = "_GetVersion";
 
 #ifdef MEMORY_STATS
-	static const char* MODULE_FILENAME = "fileName";
-	static const char* MODULE_SYMBOLNAME = "symbolName";
+	static Name MODULE_FILENAME = "fileName";
+	static Name MODULE_SYMBOLNAME = "symbolName";
 #endif
 
 #ifdef NOSHARED
@@ -211,7 +210,7 @@ void _Module_Print( void* module, Stream
 
 	Index count = 0;
 	Index i;
-	const char* version;
+	Name version;
 
 	Journal_RPrintf( stream, "Module: %s\n", self->name );
 	Stream_Indent( stream );
@@ -243,7 +242,7 @@ Dictionary* Module_GetMetadata( void* mo
 	return self->_meta;
 }
 
-const char* Module_GetName( void* module ) {
+Name Module_GetName( void* module ) {
 	Module* self = (Module*)module;
 
 	if ( self->GetName ) {
@@ -252,7 +251,7 @@ const char* Module_GetName( void* module
 	return self->name;
 }
 
-const char* Module_GetVersion( void* module ) {
+Name Module_GetVersion( void* module ) {
 	Module* self = (Module*)module;
 
 	if ( self->GetVersion ) {
@@ -262,7 +261,7 @@ const char* Module_GetVersion( void* mod
 }
 
 
-void* Module_LoadSymbol( void* module, const char* suffix ) {
+void* Module_LoadSymbol( void* module, Name suffix ) {
 	Module* self = (Module*)module;
 	char*   mangledName;
 	char*   symbolText;
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Module.h
--- a/Base/Extensibility/src/Module.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Module.h	Wed May 11 13:26:45 2011 -0700
@@ -40,12 +40,12 @@
 #define __StGermain_Base_Extensibility_Module_h__
 	
 	/* The prototype for the virtual functions in a module */
-	typedef char*       (Module_MangleNameFunction)         ( char* name );
+	typedef char*       (Module_MangleNameFunction)    ( Name name );
 
 	/* Meta data stuff */
 	typedef Dictionary* (Module_GetMetadataFunction)        ( void );
-	typedef const char* (Module_GetNameFunction)            ( void );
-	typedef const char* (Module_GetVersionFunction)         ( void );
+	typedef Name (Module_GetNameFunction)            ( void );
+	typedef Name (Module_GetVersionFunction)         ( void );
 	
 	/** Textual name of this class */
 	extern const Type Module_Type;
@@ -102,15 +102,15 @@
 
 	Dictionary* Module_GetMetadata( void* module );
 
-	const char* Module_GetName( void* module );
+	Name Module_GetName( void* module );
 
-	const char* Module_GetVersion( void* module );
+	Name Module_GetVersion( void* module );
 
 	/** Return the mangled (symbol and file) name. Note: result needs to be freed */
 	char* Module_MangledName( void* module );
 
 	/** Load a specific symbol of the module, where the symbol is prefixed by the module name */
-	void* Module_LoadSymbol( void* module, const char* suffix );
+	void* Module_LoadSymbol( void* module, Name suffix );
 
 	/** Un load the module */
 	void Module_UnLoad( void* module );
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ModulesManager.c
--- a/Base/Extensibility/src/ModulesManager.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ModulesManager.c	Wed May 11 13:26:45 2011 -0700
@@ -66,7 +66,7 @@ void SingleRegister();
 void SingleRegister();
 
 
-const char* Codelet_GetMetadata();
+Name Codelet_GetMetadata();
 
 /* Define memory for global pointer to moduleDirectories */
 Stg_ObjectList*  moduleDirectories = NULL;	
@@ -335,7 +335,7 @@ Bool ModulesManager_LoadModule( void* mo
 		char* name;
 
 		name = Stg_Meta_GetAssociationType( metadata, dep_I );
-		Journal_Firewall( (Bool)name, stream, "Module name/type not found in dependency/associations meta entry\n" );
+		Journal_Firewall( name!=NULL, stream, "Module name/type not found in dependency/associations meta entry\n" );
 
 		if( !ModulesManager_LoadModule( self, name ) ) {
 			Journal_Printf( stream, "Dependency %s failed to load\n", name );
@@ -359,7 +359,7 @@ Bool ModulesManager_UnloadModule( void* 
 Bool ModulesManager_UnloadModule( void* modulesManager, Name moduleName ) {
 	ModulesManager* self = (ModulesManager*)modulesManager;
 	
-	if( self->_unloadModule( self, Stg_ObjectList_Get( self->modules, moduleName ) ) ) {
+	if( self->_unloadModule( self, (Module*)Stg_ObjectList_Get( self->modules, moduleName ) ) ) {
 		if( Stg_ObjectList_Remove( self->modules, moduleName, DELETE ) ) {
 			return True;
 		}
@@ -377,7 +377,7 @@ void ModulesManager_Unload( void* module
 	}
 }
 
-void ModulesManager_AddDirectory( Name name, char* directory ) {
+void ModulesManager_AddDirectory( Name name, Name directory ) {
 	Bool				found;
 	Index				i;
 	
@@ -389,7 +389,7 @@ void ModulesManager_AddDirectory( Name n
 	/* Check that the directory isn't already added */
 	found = False;
 	for( i =  0; i < moduleDirectories->count; i++ ){
-		if( strcmp( directory, Stg_ObjectList_ObjectAt( moduleDirectories, i ) ) == 0 ) {
+          if( strcmp( directory, (Name)Stg_ObjectList_ObjectAt( moduleDirectories, i ) ) == 0 ) {
 			found = True;
 		}
 	}
@@ -430,12 +430,12 @@ Index ModulesManager_Submit(
 			defaultNew,
 			Codelet_MetaAsDictionary );
 	
-		codeletInstance = defaultNew( codeletName );
+		codeletInstance = defaultNew( (char*)codeletName );
 		result = Stg_ObjectList_Append( self->codelets, codeletInstance );
 
 		/* only submit if not a toolbox */
 		if( LiveComponentRegister_GetLiveComponentRegister() && strcmp( self->type, ToolboxesManager_Type ) ) {
-			LiveComponentRegister_Add( LiveComponentRegister_GetLiveComponentRegister(), codeletInstance );
+                  LiveComponentRegister_Add( LiveComponentRegister_GetLiveComponentRegister(), (Stg_Component*)codeletInstance );
 		}
 		
 		return result;
@@ -446,7 +446,7 @@ Index ModulesManager_Submit(
 		/* Otherwise since this Codelet has already been added to the global ComponentRegister,
 		 * but not to this ModulesManager instance, then just instantiate another Codelet instance
 		 * and add it to this ModulesManager's codelet array. */
-		codeletInstance = defaultNew( codeletName );
+          codeletInstance = defaultNew( (char*)codeletName );
 		result = Stg_ObjectList_Append( self->codelets, codeletInstance );
 		
 		return result;
@@ -468,7 +468,7 @@ Module* ModulesManager_CreateModule( voi
 
 void ModulesManager_ConstructModules( void* modulesManager, Stg_ComponentFactory* cf, void* data ) {
 	ModulesManager* self = (ModulesManager*)modulesManager;
-	int i;
+	Index i;
 
 	for( i = 0; i < self->codelets->count; ++i ) {
 		Stg_Component_AssignFromXML( self->codelets->data[i], cf, data, False );
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ModulesManager.h
--- a/Base/Extensibility/src/ModulesManager.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ModulesManager.h	Wed May 11 13:26:45 2011 -0700
@@ -136,7 +136,7 @@
 	
 	/** Add a directory to the list of prefixes it will try if the "dlopen" fails on a module. It won't add the same dir
 	    twice. */
-	void ModulesManager_AddDirectory( Name name, char* directory );
+	void ModulesManager_AddDirectory( Name name, Name directory );
 	
 	Index ModulesManager_Submit( 
 			void* modulesManager, 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Plugin.c
--- a/Base/Extensibility/src/Plugin.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Plugin.c	Wed May 11 13:26:45 2011 -0700
@@ -52,9 +52,9 @@
 
 const Type Plugin_Type = "Plugin";
 
-static const char* PLUGIN_REGISTER_SUFFIX = "_Register";
+static Name PLUGIN_REGISTER_SUFFIX = "_Register";
 #ifdef MEMORY_STATS
-	static const char* PLUGIN_MANGLEDNAME = "mangledName";
+	static Name PLUGIN_MANGLEDNAME = "mangledName";
 #endif
 
 
@@ -123,7 +123,7 @@ void _Plugin_Print( void* plugin, Stream
 	Stream_UnIndent( stream );
 }
 
-char* _Plugin_MangleName( char* name ) {
+char* _Plugin_MangleName( Name name ) {
 	char* mangledName = Memory_Alloc_Array( char, strlen( name ) + 1, PLUGIN_MANGLEDNAME );
 	sprintf( mangledName, "%s", name );
 	return mangledName;
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Plugin.h
--- a/Base/Extensibility/src/Plugin.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Plugin.h	Wed May 11 13:26:45 2011 -0700
@@ -86,7 +86,7 @@
 	void _Plugin_Print( void* plugin, Stream* stream );
 
 	/* MangleName implementation */
-	char* _Plugin_MangleName( char* name );
+	char* _Plugin_MangleName( Name name );
 
 	/** Get the function pointer the to the plugin's register function */
 	Plugin_RegisterFunction* Plugin_GetRegisterFunc( void* plugin );
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/SimpleExtensionInfo.c
--- a/Base/Extensibility/src/SimpleExtensionInfo.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/SimpleExtensionInfo.c	Wed May 11 13:26:45 2011 -0700
@@ -54,7 +54,7 @@ const Type SimpleExtensionInfo_Type = "S
 
 
 /** allocate and initialise a new SimpleExtensionInfo. */
-SimpleExtensionInfo* SimpleExtensionInfo_New( const Name name, SizeT size, Index count ) {
+SimpleExtensionInfo* SimpleExtensionInfo_New( Name name, SizeT size, Index count ) {
 	/* Variables set in this function */
 	SizeT                            _sizeOfSelf = sizeof(SimpleExtensionInfo);
 	Type                                    type = SimpleExtensionInfo_Type;
@@ -70,7 +70,7 @@ SimpleExtensionInfo* SimpleExtensionInfo
 }
 
 
-void SimpleExtensionInfo_Init( void* simpleExtensionInfo, const Name name, SizeT size, Index count ) {
+void SimpleExtensionInfo_Init( void* simpleExtensionInfo, Name name, SizeT size, Index count ) {
 	SimpleExtensionInfo* self = (SimpleExtensionInfo*)simpleExtensionInfo;
 
 	/* General info */
@@ -145,7 +145,7 @@ void _SimpleExtensionInfo_Print( void* s
 }
 
 
-void* _SimpleExtensionInfo_Copy( void* simpleExtensionInfo, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap  ) {
+void* _SimpleExtensionInfo_Copy( const void* simpleExtensionInfo, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap  ) {
 	SimpleExtensionInfo*	self = (SimpleExtensionInfo*)simpleExtensionInfo;
 	SimpleExtensionInfo*	newSimpleExtensionInfo;
 		
@@ -155,7 +155,7 @@ void* _SimpleExtensionInfo_Copy( void* s
 		"Attempting to \"%s\" copy a pointer of value NULL\n", SimpleExtensionInfo_Type );
 	
 	/* Copy parent */
-	newSimpleExtensionInfo = _ExtensionInfo_Copy( self, dest, deep, nameExt, ptrMap );
+	newSimpleExtensionInfo = (SimpleExtensionInfo*)_ExtensionInfo_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	return newSimpleExtensionInfo;
 }
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/SimpleExtensionInfo.h
--- a/Base/Extensibility/src/SimpleExtensionInfo.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/SimpleExtensionInfo.h	Wed May 11 13:26:45 2011 -0700
@@ -66,10 +66,10 @@
 	
 	
 	/** Create a new SimpleExtensionInfo */
-	SimpleExtensionInfo* SimpleExtensionInfo_New( const Name name, SizeT size, Index count );
+	SimpleExtensionInfo* SimpleExtensionInfo_New( Name name, SizeT size, Index count );
 	
 	/** Initialise an SimpleExtensionInfo */
-	void SimpleExtensionInfo_Init( void* simpleExtensionInfo, const Name name, SizeT size, Index count );
+	void SimpleExtensionInfo_Init( void* simpleExtensionInfo, Name name, SizeT size, Index count );
 	
 	/* Creation implementation */
 	
@@ -95,7 +95,7 @@
 	void _SimpleExtensionInfo_Print( void* simpleExtensionInfo, Stream* stream );
 	
 	/** Class_Copy() implementation: derivatives should call this in their implementation */
-	void* _SimpleExtensionInfo_Copy( void* simpleExtensionInfo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
+	void* _SimpleExtensionInfo_Copy( const void* simpleExtensionInfo, void* dest, Bool deep, Name nameExt, PtrMap* ptrMap );
 	
 	void* _SimpleExtensionInfo_DataCopy( 
 		void* extensionInfo, 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Toolbox.c
--- a/Base/Extensibility/src/Toolbox.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Toolbox.c	Wed May 11 13:26:45 2011 -0700
@@ -51,12 +51,12 @@
 
 const Type Toolbox_Type = "Toolbox";
 
-static const char* TOOLBOX_REGISTER_SUFFIX = "_Register";
-static const char* TOOLBOX_INITIALISE_SUFFIX = "_Initialise";
-static const char* TOOLBOX_FINALISE_SUFFIX = "_Finalise";
-static const char* TOOLBOX_MODULE_SUFFIX = "_Toolbox";
+static Name TOOLBOX_REGISTER_SUFFIX = "_Register";
+static Name TOOLBOX_INITIALISE_SUFFIX = "_Initialise";
+static Name TOOLBOX_FINALISE_SUFFIX = "_Finalise";
+static Name TOOLBOX_MODULE_SUFFIX = "_Toolbox";
 #ifdef MEMORY_STATS
-	static const char* TOOLBOX_MANGLEDNAME = "mangledName";
+	static Name TOOLBOX_MANGLEDNAME = "mangledName";
 #endif
 
 Toolbox* Toolbox_New( Name name, Stg_ObjectList* directories ) {
@@ -130,7 +130,7 @@ void _Toolbox_Print( void* toolbox, Stre
 	Stream_UnIndent( stream );
 }
 
-char* _Toolbox_MangleName( char* name ) {
+char* _Toolbox_MangleName( Name name ) {
 	char* mangledName = Memory_Alloc_Array( char, strlen( name ) + strlen( TOOLBOX_MODULE_SUFFIX ) + 1, TOOLBOX_MANGLEDNAME );
 	sprintf( mangledName, "%s%s", name, TOOLBOX_MODULE_SUFFIX );
 	return mangledName;
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/Toolbox.h
--- a/Base/Extensibility/src/Toolbox.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/Toolbox.h	Wed May 11 13:26:45 2011 -0700
@@ -90,7 +90,7 @@
 	void _Toolbox_Print( void* toolbox, Stream* stream );
 
 	/* MangleName implementation */
-	char* _Toolbox_MangleName( char* name );
+	char* _Toolbox_MangleName( Name name );
 
 	/** Get the function pointer the to the toolbox's register function */
 	Toolbox_RegisterFunction* Toolbox_GetRegisterFunc( void* toolbox );
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ToolboxesManager.c
--- a/Base/Extensibility/src/ToolboxesManager.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ToolboxesManager.c	Wed May 11 13:26:45 2011 -0700
@@ -93,7 +93,6 @@ void _ToolboxesManager_Init( void* toolb
 
 void _ToolboxesManager_Delete( void* toolboxesManager ) {
    ToolboxesManager*         self = (ToolboxesManager*)toolboxesManager;
-   int ii, originalListSize;
 
 	Stg_ObjectList_DeleteAllObjects( self->codelets );
 	Stg_Class_Delete( self->codelets );
@@ -172,7 +171,7 @@ Name _ToolboxesManager_GetModuleName( vo
 	return Dictionary_Entry_Value_AsString( Dictionary_Entry_Value_GetElement( moduleVal, entry_I ) );
 }
 
-Bool ToolboxesManager_IsInitialised( void* initRegister, char* label ) {
+Bool ToolboxesManager_IsInitialised( void* initRegister, Name label ) {
 	ToolboxesManager* self = (ToolboxesManager*)initRegister;
 
    if( Stg_ObjectList_Get( self->initTB, label ) )
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/src/ToolboxesManager.h
--- a/Base/Extensibility/src/ToolboxesManager.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/src/ToolboxesManager.h	Wed May 11 13:26:45 2011 -0700
@@ -111,7 +111,7 @@
 	/** This exists to handle the case where a module is linked into a binary and the user attempts to module load the module too. 
 	   Its expected at modules will check to see if they have been inited already before doing initialisation work in the init 
 	   function. */
-	Bool ToolboxesManager_IsInitialised( void* toolboxesManager, char* label );
+	Bool ToolboxesManager_IsInitialised( void* toolboxesManager, Name label );
 
 #endif /* __StGermain_Base_Extensibility_ToolboxesManager_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/tests/EntryPointSuite.c
--- a/Base/Extensibility/tests/EntryPointSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/tests/EntryPointSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -370,20 +370,20 @@ void EntryPointSuite_TestMinMax( EntryPo
    Stream_Enable( stream, False );
 
    data->ep = EntryPoint_New( testEpName, EntryPoint_Maximum_VoidPtr_CastType );
-   EntryPoint_Append( data->ep, "TestHook0", Return1, "testMinMaxFunc" );
-   EntryPoint_Append( data->ep, "TestHook1", Return89, "testMinMaxFunc" );
-   EntryPoint_Append( data->ep, "TestHook2", ReturnNeg43, "testMinMaxFunc" );
-   EntryPoint_Append( data->ep, "TestHook3", ReturnZero, "testMinMaxFunc" );
+   EntryPoint_Append( data->ep, "TestHook0", (void*)Return1, "testMinMaxFunc" );
+   EntryPoint_Append( data->ep, "TestHook1", (void*)Return89, "testMinMaxFunc" );
+   EntryPoint_Append( data->ep, "TestHook2", (void*)ReturnNeg43,"testMinMaxFunc");
+   EntryPoint_Append( data->ep, "TestHook3", (void*)ReturnZero, "testMinMaxFunc");
    result = ((EntryPoint_Maximum_VoidPtr_CallCast*) data->ep->run)( data->ep, stream );
    pcu_check_true( result == 89.0 );
    Stg_Class_Delete( data->ep );
 
    /* Get Minimum of Values */
    data->ep = EntryPoint_New( testEpName, EntryPoint_Minimum_VoidPtr_CastType );
-   EntryPoint_Append( data->ep, "TestHook0", Return1, "testMinMaxFunc" );
-   EntryPoint_Append( data->ep, "TestHook1", Return89, "testMinMaxFunc" );
-   EntryPoint_Append( data->ep, "TestHook2", ReturnNeg43, "testMinMaxFunc" );
-   EntryPoint_Append( data->ep, "TestHook3", ReturnZero, "testMinMaxFunc" );
+   EntryPoint_Append( data->ep, "TestHook0", (void*)Return1, "testMinMaxFunc" );
+   EntryPoint_Append( data->ep, "TestHook1", (void*)Return89, "testMinMaxFunc" );
+   EntryPoint_Append( data->ep, "TestHook2", (void*)ReturnNeg43,"testMinMaxFunc");
+   EntryPoint_Append( data->ep, "TestHook3", (void*)ReturnZero,"testMinMaxFunc" );
    result = ((EntryPoint_Minimum_VoidPtr_CallCast*) data->ep->run)( data->ep, stream );
    pcu_check_true( result == -43 );
 }
diff -r 7c15b31c769d -r 4a864caece0b Base/Extensibility/tests/ExtensionSuite.c
--- a/Base/Extensibility/tests/ExtensionSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Extensibility/tests/ExtensionSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -529,7 +529,7 @@ void ExtensionSuite_TestExtendOfExtended
    ExtensionManager_Add( arrayExtension, (Name)Pres0, sizeof(ExtensionStruct2) );
 
    for ( array_I = 0; array_I < ArraySize; ++array_I  ) {
-      current = ExtensionManager_At( structExtension, nArray, array_I );
+     current = (BaseClass*)ExtensionManager_At( structExtension, nArray, array_I );
 
       nType0 = (ExtensionStruct0*)ExtensionManager_Get(
          structExtension,
@@ -555,7 +555,7 @@ void ExtensionSuite_TestExtendOfExtended
    }
    
    for ( array_I = 0; array_I < ArraySize; ++array_I  ) {
-      current = ExtensionManager_At( structExtension, nArray, array_I );
+     current = (BaseClass*)ExtensionManager_At( structExtension, nArray, array_I );
       nType0 = (ExtensionStruct0*)ExtensionManager_Get(
          structExtension,
          current,
@@ -617,7 +617,7 @@ void ExtensionSuite_TestCopyExtendedArra
    ExtensionManager_Add( arrayExtension, (Name)Pres0, sizeof(ExtensionStruct2) );
 
    for ( array_I = 0; array_I < ArraySize; ++array_I  ) {
-      current = ExtensionManager_At( structExtension, nArray, array_I );
+     current = (BaseClass*)ExtensionManager_At( structExtension, nArray, array_I );
 
       nType0 = (ExtensionStruct0*)ExtensionManager_Get(
          structExtension,
@@ -645,14 +645,14 @@ void ExtensionSuite_TestCopyExtendedArra
    /* Copy time! */
    
    copyMap = PtrMap_New( 1  );
-   arrayExtensionCopy = Stg_Class_Copy( arrayExtension, NULL, True, "_dup", copyMap );
-   structExtensionCopy = Stg_Class_Copy( structExtension, NULL, True, "_dup", copyMap );
-   nArrayCopy = PtrMap_Find( copyMap, arrayExtension->_array );
+   arrayExtensionCopy = (ExtensionManager*)Stg_Class_Copy( arrayExtension, NULL, True, "_dup", copyMap );
+   structExtensionCopy = (ExtensionManager*)Stg_Class_Copy( structExtension, NULL, True, "_dup", copyMap );
+   nArrayCopy = (BaseClass*)PtrMap_Find( copyMap, arrayExtension->_array );
 
    pcu_check_true( nArrayCopy != NULL && nArrayCopy == arrayExtensionCopy->_array );
 
    for ( array_I = 0; array_I < ArraySize; ++array_I ) {
-      current = ExtensionManager_At( arrayExtensionCopy, nArrayCopy, array_I );
+     current = (BaseClass*)ExtensionManager_At( arrayExtensionCopy, nArrayCopy, array_I );
 
       nType0 = (ExtensionStruct0*)ExtensionManager_Get(
          arrayExtensionCopy,
diff -r 7c15b31c769d -r 4a864caece0b Base/FlattenXML/src/main.c
--- a/Base/FlattenXML/src/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/FlattenXML/src/main.c	Wed May 11 13:26:45 2011 -0700
@@ -49,7 +49,7 @@ int main( int argc, char* argv[] )
 	XML_IO_Handler*			ioHandler;
 	Stream*				msgs;
 
-	char* 				outputFilename = DEFAULT_OUTPUT_FILE;
+	char* 				outputFilename=NULL;
 
 	int ii;
 
@@ -66,11 +66,10 @@ int main( int argc, char* argv[] )
 			if ( strlen( outputFilename ) < 1 ) {
 				Journal_Printf( msgs, "Invalid outputfile name: %s\n", outputFilename );
 				Journal_Printf( msgs, "Exiting...\n" );
-				Stg_Class_Delete( dictionary );
 				StGermainBase_Finalise();
 				return 1;
 			}
-			argv[ii] = " "; /* remove it from the arg list */
+			argv[ii][0] = '\0'; /* remove it from the arg list */
 		}
 	}
 
@@ -80,7 +79,10 @@ int main( int argc, char* argv[] )
 	ioHandler = XML_IO_Handler_New();
 	IO_Handler_ReadAllFromCommandLine( ioHandler, argc, argv, dictionary );
 
-	IO_Handler_WriteAllToFile( ioHandler, outputFilename, dictionary );
+	IO_Handler_WriteAllToFile( ioHandler,
+                                   outputFilename!=NULL ? outputFilename :
+                                   DEFAULT_OUTPUT_FILE,
+                                   dictionary );
 
 	Stg_Class_Delete( dictionary );
 	Stg_Class_Delete( ioHandler );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Class.c
--- a/Base/Foundation/src/Class.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Class.c	Wed May 11 13:26:45 2011 -0700
@@ -114,8 +114,8 @@ void _Stg_Class_Print( void* _class, str
 void _Stg_Class_Print( void* _class, struct Stream* stream ) {
 	Stg_Class* self = (Stg_Class*)_class;
 	
-	Journal_Firewall( (Bool)stream, stream, "Attempting to Print to stream that is NULL\n" );
-	Journal_Firewall( (Bool)self, stream, "Attempting to Print class that is NULL\n" );
+	Journal_Firewall( stream!=NULL, stream, "Attempting to Print to stream that is NULL\n" );
+	Journal_Firewall( self!=NULL, stream, "Attempting to Print class that is NULL\n" );
 	
 	Journal_Printf( stream, "Stg_Class (ptr): %p\n", self );
 	Stream_Indent( stream );
@@ -130,7 +130,7 @@ void _Stg_Class_Print( void* _class, str
 
 void* Stg_Generic_Copy( 
 	Stg_Class_CopyFunction* copyFunc,
-	void* obj, 
+	const void* obj, 
 	void* dest, 
 	Bool deep, 
 	Name nameExt, 
@@ -146,7 +146,7 @@ void* Stg_Generic_Copy(
 	if ( copyFunc == NULL ) {
 		/* TODO: change to Journal */
 		printf( "Warning: attempting to copy a class with no copy method, return 'self'.\n" );
-		return obj;
+		return (void*)obj;
 	}
 
 	if( !ptrMap ) {
@@ -171,8 +171,8 @@ void* Stg_Generic_Copy(
 	return (void*)newObj;
 }
 
-void* Stg_Class_Copy( void* class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
-	Stg_Class* self = (Stg_Class*)class;
+void* Stg_Class_Copy( const void* clss, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+	Stg_Class* self = (Stg_Class*)clss;
 	
 	if ( !self ) {
 		return NULL;
@@ -181,10 +181,10 @@ void* Stg_Class_Copy( void* class, void*
 		return NULL;
 	}
 
-	return Stg_Generic_Copy( self->_copy, class, dest, deep, nameExt, ptrMap );
+	return Stg_Generic_Copy( self->_copy, clss, dest, deep, nameExt, ptrMap );
 }
 
-void* _Stg_Class_Copy( void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_Class_Copy( const void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_Class*	self = (Stg_Class*)_class;
 	Stg_Class*	newClass;
 	
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Class.h
--- a/Base/Foundation/src/Class.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Class.h	Wed May 11 13:26:45 2011 -0700
@@ -51,14 +51,14 @@
 	/* Child classes must define these abstract functions */
 	typedef void (Stg_Class_DeleteFunction)	( void* _class );
 	typedef void (Stg_Class_PrintFunction)	( void* _class, struct Stream* stream );
-	typedef void* (Stg_Class_CopyFunction)	( void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	typedef void* (Stg_Class_CopyFunction)	( const void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 	/** \def __Stg_Class information */
 	#define __Stg_Class \
 		/* General info */ 					\
 		SizeT				_sizeOfSelf;		/**< Size of the final class type */ \
 		Bool				_deleteSelf;		/**< True it is to be deallocated in Delete */ \
-		Type				type;			/**< Global const char* to string of class' name */ \
+		Type				type;			/**< Global Name to string of class' name */ \
 		unsigned			nRefs;			/* Reference counting. */ \
 									\
 		/* Virtual info */ 					\
@@ -107,14 +107,14 @@
 	/** Generic copy function caller */
 	void* Stg_Generic_Copy( 
 		Stg_Class_CopyFunction* copyFunc,
-		void* _class, 
+		const void* _class, 
 		void* dest, 
 		Bool deep, 
 		Name nameExt, 
 		struct PtrMap* ptrMap );
 	
 	/** Copy a class. */
-	void* Stg_Class_Copy( void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* Stg_Class_Copy( const void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 	/** Delete interface. */
 	void _Stg_Class_Delete( void* _class );
@@ -123,7 +123,7 @@
 	void _Stg_Class_Print( void* _class, struct Stream* stream );
 	
 	/** Coy interface. */
-	void* _Stg_Class_Copy( void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_Class_Copy( const void* _class, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ClassDefIsSuper.h
--- a/Base/Foundation/src/ClassDefIsSuper.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ClassDefIsSuper.h	Wed May 11 13:26:45 2011 -0700
@@ -18,7 +18,7 @@
 #define MEMBER( type, name )
 
 #define _CLASSISSUPERBEGIN( pre, className ) \
-   Bool pre##className##_IsSuper( const char* type ) {
+   Bool pre##className##_IsSuper( Name type ) {
 #define CLASSISSUPERBEGIN( pre, className ) \
    _CLASSISSUPERBEGIN( pre, className )
 #define _CLASSISSUPEREND( pre, className ) \
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ClassHdrProto.h
--- a/Base/Foundation/src/ClassHdrProto.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ClassHdrProto.h	Wed May 11 13:26:45 2011 -0700
@@ -7,7 +7,7 @@
 #define CLASSCONSTRUCT( pre, className ) \
    _CLASSCONSTRUCT( pre, className )
 #define _CLASSISSUPER( pre, className ) \
-   Bool pre##className##_IsSuper( const char* type );
+   Bool pre##className##_IsSuper( Name type );
 #define CLASSISSUPER( pre, className ) \
    _CLASSISSUPER( pre, className )
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ClassHdrType.h
--- a/Base/Foundation/src/ClassHdrType.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ClassHdrType.h	Wed May 11 13:26:45 2011 -0700
@@ -1,5 +1,5 @@
 #define _CLASSTYPE( pre, className )		\
-   extern const Name pre##className##_Type;
+   extern const Type pre##className##_Type;
 CLASSTYPE( PREFIX, CLASSNAME )
 
 #undef _CLASSTYPE
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/CommonRoutines.c
--- a/Base/Foundation/src/CommonRoutines.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/CommonRoutines.c	Wed May 11 13:26:45 2011 -0700
@@ -45,7 +45,7 @@
 #include <ctype.h>
 #include <math.h>
 
-const char* StG_BoolToStringMap[2] = { "False", "True" };
+Name StG_BoolToStringMap[2] = { "False", "True" };
 
 
 double StG_RoundDoubleToNSigFigs( double value, unsigned int nSigFigs ) {
@@ -108,7 +108,7 @@ unsigned int StG_IntegerLength( int numb
 	
 
 
-char* StG_Strdup( const char* const str ) {
+char* StG_Strdup( Name const str ) {
 	int length;
 	char* result;
 
@@ -122,7 +122,7 @@ char* StG_Strdup( const char* const str 
 }
 
 
-int Stg_vasprintf( char** string, const char* format, va_list ap ) {
+int Stg_vasprintf( char** string, Name format, va_list ap ) {
 	int       allocStringSize = 100;
 	int       sizeOfString;
 
@@ -169,7 +169,7 @@ int Stg_vasprintf( char** string, const 
 }
 
 
-int Stg_asprintf( char** string, const char* format, ... ) {
+int Stg_asprintf( char** string, Name format, ... ) {
 	int       sizeOfString;
 	va_list   ap;
 	
@@ -180,7 +180,7 @@ int Stg_asprintf( char** string, const c
 	return sizeOfString;
 }
 
-Bool Stg_StringIsEmpty( char* string ) {
+Bool Stg_StringIsEmpty( Name string ) {
 	size_t     length;
 	const char whiteSpaceChars[] = " \t\n";
 
@@ -199,7 +199,7 @@ Bool Stg_StringIsEmpty( char* string ) {
 	return False;
 }
 
-Bool Stg_StringIsNumeric( char* string ) {
+Bool Stg_StringIsNumeric( Name string ) {
 	size_t         length;
 	Index          char_I;
 	char           ch;
@@ -258,7 +258,7 @@ Bool Stg_StringIsNumeric( char* string )
 /** This function calculates the of the longest matching subsequence between string1 and string2.
  *  A subsequence of a string is when all the characters of the subsequence appear in order within the string,
  *  but possibly with gaps between occurrences of each character. */
-unsigned int Stg_LongestMatchingSubsequenceLength( char* string1, char* string2, Bool caseSensitive ) {
+unsigned int Stg_LongestMatchingSubsequenceLength( Name string1, const char* string2, Bool caseSensitive ) {
 	size_t         stringLength1 = strlen( string1 );
 	size_t         stringLength2 = strlen( string2 );
 	unsigned int** lmsArray;
@@ -280,7 +280,7 @@ unsigned int Stg_LongestMatchingSubseque
 		for ( charString2_I = 1 ; charString2_I <= stringLength2 ; charString2_I++ ) {
 			charString2 = string2[ charString2_I - 1 ];
 
-			areEqual = ( caseSensitive ? charString1 == charString2 :  tolower( charString1 ) == tolower( charString2 ) );
+			areEqual = ( caseSensitive ? charString1 == charString2 :  tolower( charString1 ) == tolower( charString2 ) ) ? True : False;
 
 			/* If the two characters are equal then this character is the last in the longest subsequence of 
 			 * string1[0 ... charString1_I - 1 ] and string2[0 ... charString2_I - 1 ] therefore the length is 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/CommonRoutines.h
--- a/Base/Foundation/src/CommonRoutines.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/CommonRoutines.h	Wed May 11 13:26:45 2011 -0700
@@ -43,7 +43,7 @@
 	#include <stdarg.h>
 
 	/** Global map from a Boolean's enum value to a string: for printing purposes */
-	extern const char* StG_BoolToStringMap[2];
+	extern Name StG_BoolToStringMap[2];
 	
 	/** Rounds a double to the specified number of significant figures */
 	double StG_RoundDoubleToNSigFigs( double value, unsigned int nSigFigs );
@@ -55,22 +55,22 @@
 	unsigned int StG_IntegerLength( int number );
 
 	/** StGermain's version of strdup() which uses Memory Module */
-	char* StG_Strdup( const char* const str );
+	char* StG_Strdup( Name const str );
 
 	/** StGermain's version of asprintf which allocates enough space for a string before printing to it */
-	int Stg_asprintf( char** string, const char* format, ... ) ;
-	int Stg_vasprintf( char** string, const char* format, va_list ap ) ;
+	int Stg_asprintf( char** string, Name format, ... ) ;
+	int Stg_vasprintf( char** string, Name format, va_list ap ) ;
 
 	/** Check to see whether string is empty or only has white space */
-	Bool Stg_StringIsEmpty( char* string ) ;
+	Bool Stg_StringIsEmpty( Name string ) ;
 
 	/** Check to see whether string is can be considered to be a number - 
 	 * allows digits, plus and minus signs, and scientific notation */
-	Bool Stg_StringIsNumeric( char* string ) ;
+	Bool Stg_StringIsNumeric( Name string ) ;
 
 	/** This function calculates the of the longest matching subsequence between string1 and string2.
 	 *  A subsequence of a string is when all the characters of the subsequence appear in order within the string,
 	 *  but possibly with gaps between occurrences of each character. */
-	unsigned int Stg_LongestMatchingSubsequenceLength( char* string1, char* string2, Bool caseSensitive ) ;
+	unsigned int Stg_LongestMatchingSubsequenceLength( Name string1, const char* string2, Bool caseSensitive ) ;
 
 #endif /* __StGermain_Base_Foundation_CommonRoutines_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Finalise.h
--- a/Base/Foundation/src/Finalise.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Finalise.h	Wed May 11 13:26:45 2011 -0700
@@ -43,6 +43,6 @@
 #ifndef __StGermain_Base_Foundation_Finalise_h__
 #define __StGermain_Base_Foundation_Finalise_h__
 	
-	Bool Foundation_Finalise( void );
+	Bool BaseFoundation_Finalise( void );
 	
 #endif /* __StGermain_Base_Foundation_Finalise_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Init.c
--- a/Base/Foundation/src/Init.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Init.c	Wed May 11 13:26:45 2011 -0700
@@ -40,10 +40,6 @@
 #include <stdio.h>
 #include <assert.h>
 
-/* constants */
-const int DEFAULT_LIST_INITIAL_SIZE = 8;
-const int DEFAULT_LIST_DELTA = 8;
-
 Bool BaseFoundation_Init( int* argc, char** argv[] ) {
 	stgMemory = Memory_Init();
    assert( stgMemory );
@@ -53,5 +49,3 @@ Bool BaseFoundation_Init( int* argc, cha
 	
 	return True;
 }
-
-
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Init.h
--- a/Base/Foundation/src/Init.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Init.h	Wed May 11 13:26:45 2011 -0700
@@ -43,6 +43,6 @@
 #ifndef __StGermain_Base_Foundation_Init_h__
 #define __StGermain_Base_Foundation_Init_h__
 
-	Bool Foundation_Init( int* argc, char** argv[] );
+	Bool BaseFoundation_Init( int* argc, char** argv[] );
 
 #endif /* __StGermain_Base_Foundation_Init_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Log.c
--- a/Base/Foundation/src/Log.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Log.c	Wed May 11 13:26:45 2011 -0700
@@ -118,7 +118,7 @@ FILE* _get_file_pointer_log_printf( void
 	return fp;
 }
 
-void stg_profile_EntryPoint( char ep_name[], char hk_name[], double time )
+void stg_profile_EntryPoint( const char *ep_name, const char *hk_name, double time )
 { 
 #ifdef ENABLE_STGERMAIN_LOG
 	int len_ep, len_hk;
@@ -157,7 +157,7 @@ void stg_profile_EntryPoint( char ep_nam
 }
 
 
-void stg_profile_Func( char func_name[], double time )
+void stg_profile_Func( const char *func_name, double time )
 {
 #ifdef ENABLE_STGERMAIN_LOG
         int len_ep;
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Log.h
--- a/Base/Foundation/src/Log.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Log.h	Wed May 11 13:26:45 2011 -0700
@@ -29,8 +29,8 @@
 
 void stg_log_printf( const char *format, ... );
 
-void stg_profile_EntryPoint( char ep_name[], char hk_name[], double time );
-void stg_profile_Func( char func_name[], double time );
+void stg_profile_EntryPoint(const char *ep_name, const char *hk_name,double time);
+void stg_profile_Func( const char *func_name, double time );
 
 
 #endif
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemMonitor.c
--- a/Base/Foundation/src/MemMonitor.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemMonitor.c	Wed May 11 13:26:45 2011 -0700
@@ -70,7 +70,7 @@ void _Memory_Print_AllocsAboveThreshold_
 
 	if ( memPtr->ptr != NULL && memPtr->status != MEMORY_POINTER_RELEASED ) {
 		if ( memPtr->totalSize > threshold && memPtr->stamp >= begin && memPtr->stamp <= end ) {
-			MemoryPointer_Print( memPtr, MEMORYPOINTER_NAME | MEMORYPOINTER_TOTALSIZE );
+                  MemoryPointer_Print( memPtr, (MemoryPointerColumn)(MEMORYPOINTER_NAME | MEMORYPOINTER_TOTALSIZE) );
 		}
 	}
 }
@@ -85,11 +85,11 @@ void Stg_MemMonitor_SetMemoryWatchCriter
 	Stg_MemoryWatchCriteria = ratioOfTotalMemory;
 }
 
-Stg_MemMonitor* Stg_MemMonitor_New( char* tag, Bool criteria, Bool print, MPI_Comm comm ) {
+Stg_MemMonitor* Stg_MemMonitor_New(Name tag, Bool criteria, Bool print, MPI_Comm comm ) {
 	Stg_MemMonitor* mm;
 	
 	mm = Memory_Alloc_Unnamed( Stg_MemMonitor );
-	mm->tag = Memory_Alloc_Bytes_Unnamed( strlen( tag ) + 1, Stg_MemMonitor_TagType );
+	mm->tag = (char*)Memory_Alloc_Bytes_Unnamed( strlen( tag ) + 1, Stg_MemMonitor_TagType );
 	strcpy( mm->tag, tag );
 	mm->criteria = criteria;
 	mm->print = print;
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemMonitor.h
--- a/Base/Foundation/src/MemMonitor.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemMonitor.h	Wed May 11 13:26:45 2011 -0700
@@ -66,7 +66,7 @@ void Stg_MemMonitor_Finalise();
  * ratio specified (thus same semantics as the percentChange calculated). */
 void Stg_MemMonitor_SetMemoryWatchCriteria( double ratioOfTotalMemory );
 
-Stg_MemMonitor* Stg_MemMonitor_New( char* tag, Bool criteria, Bool print, MPI_Comm comm );
+Stg_MemMonitor* Stg_MemMonitor_New(Name tag, Bool criteria, Bool print, MPI_Comm comm );
 void Stg_MemMonitor_Delete( Stg_MemMonitor* mm );
 
 void Stg_MemMonitor_Begin( Stg_MemMonitor* mm );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Memory.c
--- a/Base/Foundation/src/Memory.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Memory.c	Wed May 11 13:26:45 2011 -0700
@@ -110,7 +110,7 @@ void Memory_Relocate_3DArrayData(
 	_Memory_OutOfMemoryErrorFunc( __func__, __LINE__, size )
 
 /** Display an out of memory error after an alloc call */
-void _Memory_OutOfMemoryErrorFunc( const char* func, int line, SizeT size );
+void _Memory_OutOfMemoryErrorFunc( Name func, int line, SizeT size );
 
 
 int compareFunction_NodeData_To_NodeData (void *nodeData1, void *nodeData2){
@@ -224,9 +224,9 @@ void* _Memory_Alloc_Func(
 void* _Memory_Alloc_Func(
 	SizeT size,
 	Type type,
-	const char* const name,
-	const char* fileName,
-	const char* funcName,
+	Name const name,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -249,8 +249,8 @@ void* _Memory_Alloc_Array_Func(
 	Index arrayLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -276,8 +276,8 @@ void* _Memory_Alloc_2DArray_Func(
 	Index yLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -314,8 +314,8 @@ void* _Memory_Alloc_3DArray_Func(
 	Index zLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -353,8 +353,8 @@ void* _Memory_Alloc_4DArray_Func(
 	Index wLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer		result;
@@ -438,8 +438,8 @@ void* _Memory_Alloc_2DArrayAs1D_Func(
 	Index yLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -467,8 +467,8 @@ void* _Memory_Alloc_3DArrayAs1D_Func(
 	Index zLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -499,8 +499,8 @@ void* _Memory_Alloc_4DArrayAs1D_Func(
 	Index wLength,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer result;
@@ -539,8 +539,8 @@ void* _Memory_Alloc_2DComplex_Func(
 	Index* yLengths,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer		result;
@@ -599,8 +599,8 @@ Index** _Memory_Alloc_3DSetup_Func(
 Index** _Memory_Alloc_3DSetup_Func(
 	Index xLength,
 	Index* yLengths,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Index** result;
@@ -630,8 +630,8 @@ void* _Memory_Alloc_3DComplex_Func(
 	Index** zLengths,
 	Type type,
 	Name name,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	Pointer		result;
@@ -729,8 +729,8 @@ void* _Memory_Realloc_Func(
 	void* ptr, 
 	SizeT newSize,
 	Type type,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	MemoryPointer* memoryPointer;
@@ -796,8 +796,8 @@ void* _Memory_Realloc_Array_Func(
 	SizeT itemSize, 
 	Index newLength,
 	Type type,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	MemoryPointer* memoryPointer;
@@ -881,8 +881,8 @@ void* _Memory_Realloc_2DArray_Func(
 	Index newX, 
 	Index newY,
 	Type type,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	#ifdef MEMORY_STATS
@@ -968,8 +968,8 @@ void* _Memory_Realloc_3DArray_Func(
 	Index newY, 
 	Index newZ,
 	Type type,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	#ifdef MEMORY_STATS
@@ -1059,8 +1059,8 @@ void* _Memory_Realloc_2DArrayAs1D_Func(
 	Index newX, 
 	Index newY,
 	Type type,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	#ifdef MEMORY_STATS
@@ -1136,8 +1136,8 @@ void* _Memory_Realloc_3DArrayAs1D_Func(
 	Index newY, 
 	Index newZ,
 	Type type,
-	const char* fileName,
-	const char* funcName,
+	Name fileName,
+	Name funcName,
 	int lineNumber )
 {
 	#ifdef MEMORY_STATS
@@ -1848,7 +1848,7 @@ void _Memory_InternalFree( void* ptr ) {
 }
 
 
-void _Memory_OutOfMemoryErrorFunc( const char* func, int line, SizeT size ) {
+void _Memory_OutOfMemoryErrorFunc( Name func, int line, SizeT size ) {
 	Journal_Firewall(
 		0,
 		Journal_Register( Error_Type, "Memory" ),
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Memory.h
--- a/Base/Foundation/src/Memory.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Memory.h	Wed May 11 13:26:45 2011 -0700
@@ -474,9 +474,9 @@
 	void* _Memory_Alloc_Func(
 		SizeT size,
 		Type type,
-		const char* const name,
-		const char* fileName,
-		const char* funcName,
+		Name const name,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 1D array. */
@@ -485,8 +485,8 @@
 		Index arrayLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 	
 	/** \internal Allocates a 2D array. */
@@ -496,8 +496,8 @@
 		Index yLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 	
 	/** \internal Allocates a 3D Array. */
@@ -508,8 +508,8 @@
 		Index zLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 	
 	/** \internal Allocates a 4D Array. */
@@ -521,8 +521,8 @@
 		Index wLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 2D array from a 1D array. Use in conjunction with the Memory_Access2D marco. */
@@ -532,8 +532,8 @@
 		Index yLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 3D array from a 1D array. Use in conjunction with the Memory_Access3D marco. */
@@ -544,8 +544,8 @@
 		Index zLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 4D array from a 1D array. Use in conjunction with the Memory_Access4D marco. */
@@ -557,8 +557,8 @@
 		Index wLength,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 2D complex array. Each array in the 2nd dimension may have varying lengths.
@@ -571,8 +571,8 @@
 		Index* yLengths,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 2D complex array used to represent 3rd dimension lengths in a 3D complex array.
@@ -582,8 +582,8 @@
 	Index** _Memory_Alloc_3DSetup_Func(
 		Index xLength,
 		Index* yLengths,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Allocates a 3D complex array. Each array in the 2nd and 3rd dimension may have varying lengths.
@@ -598,8 +598,8 @@
 		Index** zLengths,
 		Type type,
 		Name name,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 
@@ -608,8 +608,8 @@
 		void* ptr,
 		SizeT newSize,
 		Type type,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Resizes a 1D array. */
@@ -618,8 +618,8 @@
 		SizeT itemSize, 
 		Index newLength,
 		Type type,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Resizes a 2D array. */
@@ -631,8 +631,8 @@
 		Index newX, 
 		Index newY,
 		Type type,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Resizes a 3D array. */
@@ -646,8 +646,8 @@
 		Index newY, 
 		Index newZ,
 		Type type,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Resizes a 2D array in 1D form. */
@@ -659,8 +659,8 @@
 		Index newX, 
 		Index newY,
 		Type type,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 	/** \internal Resizes a 3D array in 1D form. */
@@ -674,8 +674,8 @@
 		Index newY, 
 		Index newZ,
 		Type type,
-		const char* fileName,
-		const char* funcName,
+		Name fileName,
+		Name funcName,
 		int lineNumber );
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemoryField.c
--- a/Base/Foundation/src/MemoryField.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemoryField.c	Wed May 11 13:26:45 2011 -0700
@@ -51,7 +51,7 @@ const Index MEMORYFIELD_DELTA = 4;	/**< 
 const Index MEMORYFIELD_DELTA = 4;	/**< Number of fields to extend by when array resizes. */
 
 
-MemoryField* MemoryField_New( const char* value ) {
+MemoryField* MemoryField_New( Name value ) {
 	MemoryField* result = (MemoryField*) malloc( sizeof(MemoryField) );
 	_MemoryField_Init( result, value );
 
@@ -59,7 +59,7 @@ MemoryField* MemoryField_New( const char
 }
 
 
-void _MemoryField_Init( MemoryField* memoryField, const char* value ) {
+void _MemoryField_Init( MemoryField* memoryField, Name value ) {
 	if ( value ) {
 		memoryField->value = (char*)malloc( (strlen(value) + 1) * sizeof(char) );
 		strcpy( memoryField->value, value );
@@ -99,7 +99,7 @@ void MemoryField_Delete( MemoryField* me
 }
 	
 
-MemoryField* MemoryField_Register( MemoryField* memoryField, const char* subValue ) {
+MemoryField* MemoryField_Register( MemoryField* memoryField, Name subValue ) {
 	Index i;
 	
 	/* Search cache first for localisation. */
@@ -202,7 +202,7 @@ void MemoryField_Print( MemoryField* mem
 }
 
 
-void MemoryField_PrintHeader( const char* fieldName, MemoryFieldColumn columns,
+void MemoryField_PrintHeader( Name fieldName, MemoryFieldColumn columns,
 		unsigned int valueFieldWidth )
 {
 	if ( columns & MEMORYFIELD_VALUE ) {
@@ -228,12 +228,12 @@ void MemoryField_PrintHeader( const char
 }
 
 
-void MemoryField_PrintSummary( MemoryField* memoryField, const char* tableTitle, MemoryFieldColumn cols ) {
+void MemoryField_PrintSummary( MemoryField* memoryField, Name tableTitle, MemoryFieldColumn cols ) {
 	Index             i;
 	MemoryFieldColumn colsNoVal;
 	unsigned int      nameFieldWidth = 0;
 
-	colsNoVal = MEMORYFIELD_ALL - MEMORYFIELD_VALUE;
+	colsNoVal = (MemoryFieldColumn)(MEMORYFIELD_ALL - MEMORYFIELD_VALUE);
 
 	if ( MemoryField_StringCompare( memoryField->value, Memory_IgnoreName ) == 0 ) {
 		return;
@@ -245,8 +245,11 @@ void MemoryField_PrintSummary( MemoryFie
 		Journal_Printf( stgMemory->infoStream, "%s\n", memoryField->value );
 
 		Stream_Indent( stgMemory->infoStream );
-		MemoryField_PrintHeader( NULL, (cols & colsNoVal), 0 );
-		MemoryField_Print( memoryField, (cols & colsNoVal), 0 );
+		MemoryField_PrintHeader(NULL,
+                                        (MemoryFieldColumn)(cols & colsNoVal),
+                                        0 );
+		MemoryField_Print(memoryField,
+                                  (MemoryFieldColumn)(cols & colsNoVal), 0 );
 
 		Stream_Indent( stgMemory->infoStream );
 		
@@ -286,7 +289,7 @@ void MemoryField_Sort( MemoryField* memo
 }
 
 
-int MemoryField_StringCompare( const char* s1, const char* s2 ) {
+int MemoryField_StringCompare( Name s1, const char* s2 ) {
 	if ( s1 && s2 ) {
 		return strcmp( s1, s2 );
 	}
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemoryField.h
--- a/Base/Foundation/src/MemoryField.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemoryField.h	Wed May 11 13:26:45 2011 -0700
@@ -88,17 +88,17 @@
 	struct MemoryField { __MemoryField };
 
 	/** Creates a new MemoryField with a value from a field. */
-	MemoryField* MemoryField_New( const char* value );
+	MemoryField* MemoryField_New( Name value );
 	
 	/** Initialises a MemoryField. */
-	void _MemoryField_Init( MemoryField* memoryField, const char* value );
+	void _MemoryField_Init( MemoryField* memoryField, Name value );
 	
 	/** Deallocates memory from a MemoryField. */
 	void MemoryField_Delete( MemoryField* memoryField );
 
 
 	/** Registers a sub MemoryField with this instance with the given value. If value exists, the existing field is returned. */
-	MemoryField* MemoryField_Register( MemoryField* memoryField, const char* subValue );
+	MemoryField* MemoryField_Register( MemoryField* memoryField, Name subValue );
 	
 	/** Updates the statisical information of this field. Should only be used for leaf fields. */
    /* Note the "bytes" argument is an int, since it can be negative if a ptr has just been
@@ -120,17 +120,17 @@
 	 **
 	 ** @param columns A Bit flag of The fields to be displayed.
 	 **/
-	void MemoryField_PrintHeader( const char* fieldName, MemoryFieldColumn columns,
+	void MemoryField_PrintHeader( Name fieldName, MemoryFieldColumn columns,
 		unsigned int valueFieldWidth );
 	
 	/** Displays a summary of this field and its children. */
-	void MemoryField_PrintSummary( MemoryField* memoryField, const char* tableTitle, MemoryFieldColumn cols  );
+	void MemoryField_PrintSummary( MemoryField* memoryField, Name tableTitle, MemoryFieldColumn cols  );
 
 	/** Sorts the children of this field lexographically in ascending order. */
 	void MemoryField_Sort( MemoryField* memoryField );
 
 	/** Compares two strings which can potentially NULL, lexographically. NULLs are considered smallest. */
-	int MemoryField_StringCompare( const char* s1, const char* s2 );
+	int MemoryField_StringCompare( Name s1, Name s2 );
 	
 	unsigned int _MemoryField_CalcLongestSubFieldNameLen( MemoryField* memoryField );
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemoryPointer.c
--- a/Base/Foundation/src/MemoryPointer.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemoryPointer.c	Wed May 11 13:26:45 2011 -0700
@@ -49,10 +49,10 @@ MemoryPointer* MemoryPointer_New(
 MemoryPointer* MemoryPointer_New(
 	Pointer ptr,
 	MemoryOpStamp stamp,
-	const char* type,
-	const char* name,
-	const char* file,
-	const char* func,
+	Name type,
+	Name name,
+	Name file,
+	Name func,
 	Index line,
 	MemoryAllocType allocType,
 	SizeT itemSize,
@@ -69,10 +69,10 @@ void MemoryPointer_Init(
 	MemoryPointer* memoryPointer,
 	Pointer ptr,
 	MemoryOpStamp stamp,
-	const char* type,
-	const char* name,
-	const char* file,
-	const char* func,
+	Name type,
+	Name name,
+	Name file,
+	Name func,
 	Index line,
 	MemoryAllocType allocType,
 	SizeT itemSize,
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemoryPointer.h
--- a/Base/Foundation/src/MemoryPointer.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemoryPointer.h	Wed May 11 13:26:45 2011 -0700
@@ -127,10 +127,10 @@
 	MemoryPointer* MemoryPointer_New(
 		Pointer ptr,
 		MemoryOpStamp stamp,
-		const char* type,
-		const char* name,
-		const char* file,
-		const char* func,
+		Name type,
+		Name name,
+		Name file,
+		Name func,
 		Index line,
 		MemoryAllocType allocType,
 		SizeT itemSize,
@@ -141,10 +141,10 @@
 		MemoryPointer* memoryPointer,
 		Pointer ptr,
 		MemoryOpStamp stamp,
-		const char* type,
-		const char* name,
-		const char* file,
-		const char* func,
+		Name type,
+		Name name,
+		Name file,
+		Name func,
 		Index line,
 		MemoryAllocType allocType,
 		SizeT itemSize,
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemoryReport.c
--- a/Base/Foundation/src/MemoryReport.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemoryReport.c	Wed May 11 13:26:45 2011 -0700
@@ -62,7 +62,7 @@ MemoryReport* MemoryReport_New( ) {
 	
 
 void _MemoryReport_Init( MemoryReport* memoryReport ) {
-	Index ii=0;
+	int ii=0;
 
 	memoryReport->groupCount = 0;
 	memoryReport->groupSize = MEMORYREPORT_SIZE;
@@ -117,7 +117,7 @@ void MemoryReport_AddGroup( MemoryReport
 	memoryReport->groupCount++;
 }
 
-void MemoryReport_AddCondition( MemoryReport* memoryReport, MemoryReportGroup group, const char* condition )
+void MemoryReport_AddCondition( MemoryReport* memoryReport, MemoryReportGroup group, Name condition )
 {
 	/* Add this group if it does not already exist. */
 	if ( MemoryReport_Find_Group( memoryReport->groupCount, memoryReport->groups, group ) < 0 ) {
@@ -187,7 +187,7 @@ void MemoryReport_Print( void* memoryRep
 	//}
 	
 	// TODO: replace reportField->value with a name representative of conditions
-	MemoryField_PrintSummary( self->reportField, "~Report~", (MEMORYFIELD_ALL-MEMORYFIELD_PEAK) );
+	MemoryField_PrintSummary( self->reportField, "~Report~", (MemoryFieldColumn)(MEMORYFIELD_ALL-MEMORYFIELD_PEAK) );
 }
 
 
@@ -198,7 +198,7 @@ void MemoryReport_Print_Helper( void *me
 	MemoryField*   subField = NULL;
 	Bool           valid;             /* Whether a memory pointer record matches the conditions. */
 	Index          iGroup, iCondition;/* Iterators. */
-	const char*    valueStr = NULL;
+	Name    valueStr = NULL;
 
 	assert ( memPtr );
 
@@ -250,8 +250,8 @@ int MemoryReport_Find_Group( int numGrou
 }
 
 
-const char* _MemoryReport_GetValue( MemoryReport* memoryReport, MemoryReportGroup reportGroup, MemoryPointer* memPtr ) {
-	const char* valueString = NULL;
+Name _MemoryReport_GetValue( MemoryReport* memoryReport, MemoryReportGroup reportGroup, MemoryPointer* memPtr ) {
+	Name valueString = NULL;
 
 	switch ( reportGroup ) {
 		case MEMORYREPORT_TYPE:
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/MemoryReport.h
--- a/Base/Foundation/src/MemoryReport.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/MemoryReport.h	Wed May 11 13:26:45 2011 -0700
@@ -84,7 +84,7 @@
 	void MemoryReport_AddGroup( MemoryReport* memoryReport, MemoryReportGroup group );
 	
 	/** Adds a condition where a field has to match a given value. If group does not exist, it will be automatically added. */
-	void MemoryReport_AddCondition( MemoryReport* memoryReport, MemoryReportGroup group, const char* condition );
+	void MemoryReport_AddCondition( MemoryReport* memoryReport, MemoryReportGroup group, Name condition );
 	
 	void MemoryReport_SetCustomMemoryManager( void* memoryReport, Memory* memoryManager );
 
@@ -93,7 +93,7 @@
 	
 	void MemoryReport_Print_Helper( void *memoryPointer, void* memoryReport );
 
-   const char* _MemoryReport_GetValue( MemoryReport* memoryReport, MemoryReportGroup reportGroup, MemoryPointer* memPtr );
+   Name _MemoryReport_GetValue( MemoryReport* memoryReport, MemoryReportGroup reportGroup, MemoryPointer* memPtr );
 		
 #endif /* __StGermain_Base_Foundation_MemoryReport_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/NamedObject_Register.c
--- a/Base/Foundation/src/NamedObject_Register.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/NamedObject_Register.c	Wed May 11 13:26:45 2011 -0700
@@ -119,18 +119,18 @@ void _NamedObject_Register_Print( void* 
 }
 
 
-void* _NamedObject_Register_Copy( void* namedObjectRegister, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _NamedObject_Register_Copy( const void* namedObjectRegister, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	NamedObject_Register*	self = (NamedObject_Register*)namedObjectRegister;
 	NamedObject_Register*	newNamedObjectRegister;
 	
-	newNamedObjectRegister = _Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
+	newNamedObjectRegister = (NamedObject_Register*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	Journal_Firewall( 
 		deep, 
 		Journal_Register( Error_Type, NamedObject_Register_Type ), 
 		"Shallow copy not yet implemented\n" );
 	if( deep ) {
-		newNamedObjectRegister->objects = Stg_Class_Copy( self->objects, NULL, deep, nameExt, ptrMap );
+          newNamedObjectRegister->objects = (Stg_ObjectList*)Stg_Class_Copy( self->objects, NULL, deep, nameExt, ptrMap );
 	}
 	
 	return newNamedObjectRegister;
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/NamedObject_Register.h
--- a/Base/Foundation/src/NamedObject_Register.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/NamedObject_Register.h	Wed May 11 13:26:45 2011 -0700
@@ -80,7 +80,7 @@
 	
 	void _NamedObject_Register_Print( void* nameObjectRegister, struct Stream* stream );
 	
-	void* _NamedObject_Register_Copy( void* namedObjectRegister, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _NamedObject_Register_Copy( const void* namedObjectRegister, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/NewObject.c
--- a/Base/Foundation/src/NewObject.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/NewObject.c	Wed May 11 13:26:45 2011 -0700
@@ -60,7 +60,7 @@ void _NewObject_Copy( void* self, const 
    NewObject_SetName( self, ((NewObject*)op)->name );
 }
 
-void NewObject_SetName( void* _self, const char* name ) {
+void NewObject_SetName( void* _self, Name name ) {
    NewObject* self = (NewObject*)_self;
    int len;
    assert( self );
@@ -71,7 +71,7 @@ void NewObject_SetName( void* _self, con
       strcpy( self->name, name );
 }
 
-const char* NewObject_GetName( void* self ) {
+Name NewObject_GetName( void* self ) {
    assert( self );
 
    return ((NewObject*)self)->name;
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/NewObject.def
--- a/Base/Foundation/src/NewObject.def	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/NewObject.def	Wed May 11 13:26:45 2011 -0700
@@ -11,7 +11,7 @@ VOIDOVERRIDE( Destruct, void, (void* sel
 VOIDOVERRIDE( Destruct, void, (void* self), (self) )
 VOIDOVERRIDE( Copy, void, (void* self, const void* op), (self, op) )
 
-METHOD( SetName, void, (void* self, const char* name), (self, name) )
-METHOD( GetName, const char*, (void* self), (self) )
+METHOD( SetName, void, (void* self, Name name), (self, name) )
+METHOD( GetName, Name, (void* self), (self) )
 
 MEMBER( char*, name )
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Numerics.c
--- a/Base/Foundation/src/Numerics.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Numerics.c	Wed May 11 13:26:45 2011 -0700
@@ -39,11 +39,11 @@ const double	Num_Epsilon = 1e-12;
 
 
 Bool Num_Approx( double var, double val ) {
-	return (var >= val - Num_Epsilon && var <= val + Num_Epsilon);
+  return (var >= val - Num_Epsilon && var <= val + Num_Epsilon) ? True : False;
 }
 
 Bool Num_InRange( double var, double low, double upp ) {
-	return (var >= low - Num_Epsilon && var <= upp + Num_Epsilon);
+  return (var >= low - Num_Epsilon && var <= upp + Num_Epsilon) ? True : False;
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Object.c
--- a/Base/Foundation/src/Object.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Object.c	Wed May 11 13:26:45 2011 -0700
@@ -74,11 +74,14 @@ void _Stg_Object_Init( Stg_Object* self,
 	
 	/* Stg_Object info */
 	if( !name || strlen( name ) == 0 ) {
-		Stg_asprintf( &self->name, "%s-%u", _Stg_Object_Unnamed, _Stg_Object_Counter );
-		_Stg_Object_Counter += 1;
+          char *tmp_name;
+          Stg_asprintf(&tmp_name,"%s-%u",_Stg_Object_Unnamed,_Stg_Object_Counter);
+          self->name=tmp_name;
+          _Stg_Object_Counter += 1;
 	}
 	else if ( GLOBAL == nameAllocationType ) {
-		self->name = name;
+          /* This is a bit unsafe */
+          self->name = (char*)name;
 	}
 	else {
 		self->name = StG_Strdup( name );
@@ -92,7 +95,7 @@ void _Stg_Object_Delete( void* object ) 
 	Stg_Object* self = (Stg_Object*)object;
 	
 	if ( GLOBAL != self->nameAllocationType )
-		Memory_Free( self->name );
+          Memory_Free( self->name );
 
 	/* Delete parent class */
 	_Stg_Class_Delete( self );
@@ -118,21 +121,23 @@ void _Stg_Object_Print( void* object, st
 	Stream_UnIndent( stream );
 }
 
-void* _Stg_Object_Copy( void* object, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_Object_Copy( const void* object, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_Object*	self = (Stg_Object*)object;
 	Stg_Object*	newObject;
 	
-	newObject = _Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
+	newObject = (Stg_Object*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	/* TODO: if we are not deep copying we should not copy the name, just the pointer.  There
 	 * is a problem with this; will try to fix it later. */
 	
 	if( nameExt ) {
 		unsigned	nameLen = strlen( self->name );
-		
-		newObject->name = Memory_Alloc_Array_Unnamed( char, nameLen + strlen( nameExt ) + 1 );
-		memcpy( newObject->name, self->name, nameLen );
-		strcpy( newObject->name + nameLen, nameExt );
+                char *tmp_name;
+                tmp_name=
+                  Memory_Alloc_Array_Unnamed(char,nameLen+strlen(nameExt)+1);
+		memcpy( tmp_name, self->name, nameLen );
+		strcpy( tmp_name + nameLen, nameExt );
+                newObject->name=tmp_name;
 	}
 	else {
 		newObject->name = StG_Strdup( self->name );
@@ -147,18 +152,18 @@ void* _Stg_Object_Copy( void* object, vo
 /* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 
 
-void Stg_Object_SetName( void* object, const Name name )
+void Stg_Object_SetName( void* object, Name name )
 {
 	Stg_Object* self = (Stg_Object*)object;
 	
 	if ( GLOBAL == self->nameAllocationType )
 	{
-		self->name = name;
+          self->name = (char*)name;
 	}
 	else
 	{
-		Memory_Free( self->name );
-		self->name = StG_Strdup( name );
+          Memory_Free( self->name );
+          self->name = StG_Strdup( name );
 	}
 }
 
@@ -172,9 +177,9 @@ Name _Stg_Object_GetNameFunc( void* obje
 	return _Stg_Object_GetNameMacro( self );
 }
 
-Name Stg_Object_AppendSuffix( void* object, Name suffix ) {
+char * Stg_Object_AppendSuffix( void* object, Name suffix ) {
 	Stg_Object* self = (Stg_Object*)object;
-	Name        name;
+	char *name;
 
 	Stg_asprintf( &name, "%s-%s", _Stg_Object_GetNameMacro( self ), suffix );
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/Object.h
--- a/Base/Foundation/src/Object.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/Object.h	Wed May 11 13:26:45 2011 -0700
@@ -52,7 +52,7 @@
 		/* Virtual info */ \
 		\
 		/* Stg_Object info */ \
-		Name				name; \
+		char*				name; \
 		AllocationType			nameAllocationType;
 	
 	struct _Stg_Object { __Stg_Object };
@@ -89,14 +89,14 @@
 	void _Stg_Object_Print( void* object, struct Stream* stream );
 	
 	/** Copy interface. */
-	void* _Stg_Object_Copy( void* object, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_Object_Copy( const void* object, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 	
 	
 	/** Sets the name of the object. */
-	void Stg_Object_SetName( void* object, const Name name );
+	void Stg_Object_SetName( void* object, const char* name );
 	
 	
 	/** \internal Get the object name. */
@@ -111,7 +111,7 @@
 	
 	/** Function which simply tacks on a suffix to an object's name of form "ObjectName-Suffix" 
 	 *  Pointer returned must be free'd */
-	Name Stg_Object_AppendSuffix( void* object, Name suffix ) ;
+	char* Stg_Object_AppendSuffix( void* object, Name suffix ) ;
 	
 	/* Private member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 #endif /* __StGermain_Base_Foundation_Object_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ObjectAdaptor.c
--- a/Base/Foundation/src/ObjectAdaptor.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ObjectAdaptor.c	Wed May 11 13:26:45 2011 -0700
@@ -188,7 +188,7 @@ void _Stg_ObjectAdaptor_Init(
 	}
 	
 	Journal_Firewall( 
-		(Bool)self->dataPtr, 
+		self->dataPtr!=NULL, 
 		Journal_Register( Error_Type, Stg_ObjectAdaptor_Type ), 
 		"Constructing a Stg_ObjectAdaptor where there the data pointer is NULL is illegal.\n" );
 	if( self->isGlobal ) {
@@ -254,11 +254,11 @@ void _Stg_ObjectAdaptor_Print( void* obj
 }
 
 
-void* _Stg_ObjectAdaptor_Copy( void* objectAdaptor, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_ObjectAdaptor_Copy( const void* objectAdaptor, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_ObjectAdaptor* self = (Stg_ObjectAdaptor*)objectAdaptor;
 	Stg_ObjectAdaptor* newTuple;
 
-	newTuple = _Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
+	newTuple = (Stg_ObjectAdaptor*)_Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	newTuple->isGlobal = self->isGlobal;
 	newTuple->isStgClass = self->isStgClass;
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ObjectAdaptor.h
--- a/Base/Foundation/src/ObjectAdaptor.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ObjectAdaptor.h	Wed May 11 13:26:45 2011 -0700
@@ -57,8 +57,7 @@
 	the object itself_ - the ObjectAdaptor wrapper takes responsibility for this */
 	typedef void  (Stg_ObjectAdaptor_DeletePointerFunction)	( void* ptr );
 	typedef void  (Stg_ObjectAdaptor_PrintPointerFunction)	( void* ptr, struct Stream* stream );
-	typedef void* (Stg_ObjectAdaptor_CopyPointerFunction)	( 
-									void*					ptr, 
+	typedef void* (Stg_ObjectAdaptor_CopyPointerFunction)	( const void*					ptr, 
 									void*					dest,
 									Bool					deep,
 									Name					nameExt, 
@@ -165,7 +164,7 @@
 	void _Stg_ObjectAdaptor_Print( void* objectAdaptor, struct Stream* stream );
 	
 	/* Stg_Class_Copy() implementation */
-	void* _Stg_ObjectAdaptor_Copy( void* objectAdaptor, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_ObjectAdaptor_Copy( const void* objectAdaptor, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 		
 
 	/* Public member functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ObjectList.c
--- a/Base/Foundation/src/ObjectList.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ObjectList.c	Wed May 11 13:26:45 2011 -0700
@@ -203,11 +203,11 @@ void _Stg_ObjectList_Print( void* object
 	Stream_UnIndent( stream );
 }
 
-void* _Stg_ObjectList_Copy( void* namedObjectList, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_ObjectList_Copy( const void* namedObjectList, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_ObjectList*	self = (Stg_ObjectList*) namedObjectList;
 	Stg_ObjectList*	newObjectList;
 	
-	newObjectList = _Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
+	newObjectList = (Stg_ObjectList*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	newObjectList->_append = self->_append;
 	newObjectList->_prepend = self->_prepend;
@@ -245,7 +245,7 @@ void* _Stg_ObjectList_Copy( void* namedO
 			"ObjectList->data" );
 		
 		for( obj_I = 0; obj_I < newObjectList->count; obj_I++ ) {
-			newObjectList->data[obj_I] = Stg_Class_Copy( self->data[obj_I], NULL, deep, nameExt, ptrMap );
+                  newObjectList->data[obj_I] = (Stg_Object*)Stg_Class_Copy( self->data[obj_I], NULL, deep, nameExt, ptrMap );
 		}
 	}
 	
@@ -421,7 +421,7 @@ Index Stg_ObjectList_InsertBefore( void*
 	return self->_insertBefore( self, reference, objectPtr );	
 }
 
-Index Stg_ObjectList_ClassInsertBefore( void* objectList, Name reference, void* objectPtr, Name name ) {
+Index Stg_ObjectList_ClassInsertBefore( void* objectList, Name reference, void* objectPtr, const char* name ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) objectList;
 	
 	return Stg_ObjectList_InsertBefore( self, reference, Stg_ObjectAdaptor_NewOfClass( objectPtr, name, True, False ) );
@@ -444,7 +444,7 @@ Index Stg_ObjectList_PointerInsertBefore
 		Stg_ObjectAdaptor_NewOfPointer( objectPtr, name, True, False, ptrDelete, ptrPrint, ptrCopy ) );
 }
 
-Index Stg_ObjectList_GlobalPointerInsertBefore( void* objectList, Name reference, void* objectPtr, Name name ) {
+Index Stg_ObjectList_GlobalPointerInsertBefore( void* objectList, Name reference, void* objectPtr, const char* name ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) objectList;
 	
 	return Stg_ObjectList_InsertBefore( 
@@ -474,7 +474,7 @@ void Stg_ObjectList_InsertAtIndex( void*
 	self->_insertAtIndex( self, index, objectPtr );
 }
 
-Index Stg_ObjectList_ClassInsertAfter( void* objectList, Name reference, void* objectPtr, Name name ) {
+Index Stg_ObjectList_ClassInsertAfter( void* objectList, Name reference, void* objectPtr, const char* name ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) objectList;
 	
 	return Stg_ObjectList_InsertAfter( self, reference, Stg_ObjectAdaptor_NewOfClass( objectPtr, name, True, False ) );
@@ -497,7 +497,7 @@ Index Stg_ObjectList_PointerInsertAfter(
 		Stg_ObjectAdaptor_NewOfPointer( objectPtr, name, True, False, ptrDelete, ptrPrint, ptrCopy ) );
 }
 
-Index Stg_ObjectList_GlobalPointerInsertAfter( void* objectList, Name reference, void* objectPtr, Name name ) {
+Index Stg_ObjectList_GlobalPointerInsertAfter( void* objectList, Name reference, void* objectPtr, const char* name ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) objectList;
 	
 	return Stg_ObjectList_InsertAfter( 
@@ -512,14 +512,14 @@ Index Stg_ObjectList_Remove( void* objec
 	return self->_remove( self, reference, option );
 }
 
-Index Stg_ObjectList_GetIndex( void* objectList, const Name toGet ) {
+Index Stg_ObjectList_GetIndex( void* objectList, Name toGet ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) objectList;
 
 	return self->_getIndex( self, toGet );
 }
 
 
-void* Stg_ObjectList_Get( void* objectList, const Name objectName ) {
+void* Stg_ObjectList_Get( void* objectList, Name objectName ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) objectList;
 
 	return self->_get( self, objectName );
@@ -728,7 +728,7 @@ Index _Stg_ObjectList_Remove( void* name
 }
 
 
-Index _Stg_ObjectList_GetIndex( void* namedObjectList, const Name toGet ) {
+Index _Stg_ObjectList_GetIndex( void* namedObjectList, Name toGet ) {
 	Stg_ObjectList* self = (Stg_ObjectList*) namedObjectList;
 	Index objectIndex;
 	
@@ -744,7 +744,7 @@ Index _Stg_ObjectList_GetIndex( void* na
 }
 
 
-void* _Stg_ObjectList_Get( void* objectList, const Name toGet ) {
+void* _Stg_ObjectList_Get( void* objectList, Name toGet ) {
         Stg_ObjectList* self = (Stg_ObjectList*) objectList;
         Index objectIndex;
                                                                                                                                     
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/ObjectList.h
--- a/Base/Foundation/src/ObjectList.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/ObjectList.h	Wed May 11 13:26:45 2011 -0700
@@ -73,8 +73,8 @@
 	typedef Index (Stg_ObjectList_InsertBeforeFunction) ( void* objects,  Name reference, void* objectPtr );
 	typedef Index (Stg_ObjectList_InsertAfterFunction) ( void* objects,  Name reference, void* objectPtr );
 	typedef Index (Stg_ObjectList_RemoveFunction) ( void* objects,  Name reference, ReplacementOption option );
-	typedef Index (Stg_ObjectList_GetIndexFunction) ( void* objects, const Name toGet );
-	typedef void* (Stg_ObjectList_GetFunction) ( void* objects, const Name toGet );
+	typedef Index (Stg_ObjectList_GetIndexFunction) ( void* objects, Name toGet );
+	typedef void* (Stg_ObjectList_GetFunction) ( void* objects, Name toGet );
 	typedef void  (Stg_ObjectList_AllocMoreMemoryFunction) ( void* objects );
 	typedef void (Stg_ObjectList_InsertAtIndexFunction) ( void* objects, Index index, void* objectPtr );
 	typedef void (Stg_ObjectList_RemoveByIndexFunction) ( void* objects, Index index, ReplacementOption option );
@@ -83,8 +83,8 @@
 	/** Textual name of this class */
 	extern const Type Stg_ObjectList_Type;
 
-	extern const int DEFAULT_LIST_INITIAL_SIZE;
-	extern const int DEFAULT_LIST_DELTA;
+	static const int DEFAULT_LIST_INITIAL_SIZE = 8;
+	static const int DEFAULT_LIST_DELTA = 8;
 
 	/** \def __ObjectList See ObjectList */
 	#define __Stg_ObjectList \
@@ -185,7 +185,7 @@
 	void _Stg_ObjectList_Print( void* objectList, struct Stream* stream );
 	
 	/** Copy implementation */
-	void* _Stg_ObjectList_Copy( void* namedObjectList, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_ObjectList_Copy( const void* namedObjectList, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	
 	
@@ -290,7 +290,7 @@
 	Index Stg_ObjectList_InsertBefore( void* objectList, Name reference, void* objectPtr );
 	
 	/** Insert class before a specific entry */
-	Index Stg_ObjectList_ClassInsertBefore( void* objectList, Name reference, void* objectPtr, Name name );
+	Index Stg_ObjectList_ClassInsertBefore( void* objectList, Name reference, void* objectPtr, const char* name );
 	
 	/** Insert pointer before a specific entry */
 	Index Stg_ObjectList_PointerInsertBefore( 
@@ -303,7 +303,7 @@
 		Stg_ObjectAdaptor_CopyPointerFunction*		ptrCopy );
 	
 	/** Insert global pointer before a specific entry */
-	Index Stg_ObjectList_GlobalPointerInsertBefore( void* objectList, Name reference, void* objectPtr, Name name );
+	Index Stg_ObjectList_GlobalPointerInsertBefore( void* objectList, Name reference, void* objectPtr, const char* name );
 	
 	/** Insert object at a specific Index */	
 	void Stg_ObjectList_InsertAtIndex( void* objects, Index index, void* objectPtr );
@@ -312,7 +312,7 @@
 	Index Stg_ObjectList_InsertAfter( void* objectList, Name reference, void* objectPtr );
 	
 	/** Insert class after a specific entry */ 
-	Index Stg_ObjectList_ClassInsertAfter( void* objectList, Name reference, void* objectPtr, Name name );
+	Index Stg_ObjectList_ClassInsertAfter( void* objectList, Name reference, void* objectPtr, const char* name );
 	
 	/** Insert pointer after a specific entry */ 
 	Index Stg_ObjectList_PointerInsertAfter( 
@@ -325,16 +325,16 @@
 		Stg_ObjectAdaptor_CopyPointerFunction*		ptrCopy );
 	
 	/** Insert global pointer after a specific entry */ 
-	Index Stg_ObjectList_GlobalPointerInsertAfter( void* objectList, Name reference, void* objectPtr, Name name );
+	Index Stg_ObjectList_GlobalPointerInsertAfter( void* objectList, Name reference, void* objectPtr, const char* name );
 	
 	/** Removes object from list */
 	Index Stg_ObjectList_Remove( void* objectList, Name reference, ReplacementOption option ) ;
 	
 	/** Find an object's index in the list, by name. Returns (unsigned)-1 if not found. */
-	Index Stg_ObjectList_GetIndex( void* objectList, const Name toGet );
+	Index Stg_ObjectList_GetIndex( void* objectList, Name toGet );
 	
 	/** Get an object's ptr from the list, by name. Returns NULL if not found. */
-	void* Stg_ObjectList_Get( void* objectList, const Name toGet );
+	void* Stg_ObjectList_Get( void* objectList, Name toGet );
 	
 	/** Deletes all the objects in the list. */
 	void Stg_ObjectList_DeleteAllObjects( void* objectList );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/PrimitiveObject.c
--- a/Base/Foundation/src/PrimitiveObject.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/PrimitiveObject.c	Wed May 11 13:26:45 2011 -0700
@@ -56,7 +56,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asUnsignedChar = value_renamed;
@@ -75,7 +75,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asUnsignedShort = value_renamed;
@@ -94,7 +94,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asUnsignedInt = value_renamed;
@@ -113,7 +113,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asUnsignedLong = value_renamed;
@@ -132,7 +132,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asChar = value_renamed;
@@ -151,7 +151,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asShort = value_renamed;
@@ -170,7 +170,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asInt = value_renamed;
@@ -189,7 +189,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asLong = value_renamed;
@@ -208,7 +208,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asFloat = value_renamed;
@@ -227,7 +227,7 @@ Stg_PrimitiveObject* Stg_PrimitiveObject
 	Stg_Class_DeleteFunction*             _delete = ZERO;
 	Stg_Class_PrintFunction*               _print = ZERO;
 	Stg_Class_CopyFunction*                 _copy = ZERO;
-	AllocationType             nameAllocationType = ZERO;
+	AllocationType             nameAllocationType = GLOBAL;
 
 	Stg_C_Primitive v;
 	v.asDouble = value_renamed;
@@ -274,7 +274,7 @@ void _Stg_PrimitiveObject_Delete( void* 
 
 void _Stg_PrimitiveObject_Print( void* primitive, struct Stream* stream ) {
 	Stg_PrimitiveObject* self = (Stg_PrimitiveObject*)primitive;
-	char* typeString;
+	Name typeString;
 
 	switch( self->dataType ) {
 		case Stg_C_Primitive_Type_UnsignedChar:
@@ -354,7 +354,7 @@ void _Stg_PrimitiveObject_Print( void* p
 	Stream_UnIndent( stream );
 }
 
-void* _Stg_PrimitiveObject_Copy( void* primitive, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stg_PrimitiveObject_Copy( const void* primitive, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stg_PrimitiveObject* self = (Stg_PrimitiveObject*)primitive;
 	Stg_PrimitiveObject* newCopy;
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/PrimitiveObject.h
--- a/Base/Foundation/src/PrimitiveObject.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/PrimitiveObject.h	Wed May 11 13:26:45 2011 -0700
@@ -123,7 +123,7 @@
 	void _Stg_PrimitiveObject_Print( void* objectAdaptor, struct Stream* stream );
 	
 	/* Stg_Class_Copy() implementation */
-	void* _Stg_PrimitiveObject_Copy( void* objectAdaptor, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stg_PrimitiveObject_Copy( const void* objectAdaptor, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 		
 	
 #endif /* __StGermain_Base_Foundation_PrimitiveObject_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/TestSuite.c
--- a/Base/Foundation/src/TestSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/TestSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -110,7 +110,7 @@ void _TestSuite_Print( void* testSuite, 
 	_Stg_Class_Print( self, stream );
 }
 
-void* _TestSuite_Copy( void* testSuite, void* destProc_I, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _TestSuite_Copy( const void* testSuite, void* destProc_I, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 #if 0
 	TestSuite*	self = (TestSuite*)testSuite;
 	TestSuite*	newTestSuite;
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/TestSuite.h
--- a/Base/Foundation/src/TestSuite.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/TestSuite.h	Wed May 11 13:26:45 2011 -0700
@@ -54,7 +54,7 @@
 	typedef Bool (TestSuite_TestFunc)( TestSuite* suite );
 
 	typedef struct {
-		const char*		name;
+		Name		name;
 		TestSuite_TestFunc*	func;
 	} TestSuite_Test;
 
@@ -104,7 +104,7 @@
 		(TestSuite*)Stg_Class_Copy( self, NULL, False, NULL, NULL )
 	#define TestSuite_DeepCopy( self ) \
 		(TestSuite*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
-	void* _TestSuite_Copy( void* testSuite, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _TestSuite_Copy( const void* testSuite, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 	/*--------------------------------------------------------------------------------------------------------------------------
 	** Public functions
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/TimeMonitor.c
--- a/Base/Foundation/src/TimeMonitor.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/TimeMonitor.c	Wed May 11 13:26:45 2011 -0700
@@ -64,11 +64,11 @@ void Stg_TimeMonitor_SetTimerWatchCriter
 	Stg_TimerWatchCriteria = ratioOfTotalTime;
 }
 
-Stg_TimeMonitor* Stg_TimeMonitor_New( char* tag, Bool criteria, Bool print, MPI_Comm comm ) {
+Stg_TimeMonitor* Stg_TimeMonitor_New( Name tag, Bool criteria, Bool print, MPI_Comm comm ) {
 	Stg_TimeMonitor* tm;
 	
 	tm = Memory_Alloc_Unnamed( Stg_TimeMonitor );
-	tm->tag = Memory_Alloc_Bytes_Unnamed( strlen( tag ) + 1, Stg_TimeMonitor_TagType );
+	tm->tag = (char*)Memory_Alloc_Bytes_Unnamed( strlen( tag ) + 1, Stg_TimeMonitor_TagType );
 	strcpy( tm->tag, tag );
 	tm->criteria = criteria;
 	tm->print = print;
@@ -138,7 +138,7 @@ double Stg_TimeMonitor_End( Stg_TimeMoni
 
 	tmData->criterionPassed = False;
 	if ( tm->criteria ) {
-		tmData->criterionPassed = tm->t2 > (Stg_TimerWatchCriteria * tmData->totalSinceInit);
+          tmData->criterionPassed = tm->t2 > (Stg_TimerWatchCriteria * tmData->totalSinceInit) ? True : False;
 	}
 
 	if( tm->print && (rank == 0) && ((tm->criteria == False) || tmData->criterionPassed )) {
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/TimeMonitor.h
--- a/Base/Foundation/src/TimeMonitor.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/TimeMonitor.h	Wed May 11 13:26:45 2011 -0700
@@ -62,7 +62,7 @@ void Stg_TimeMonitor_Finalise();
 void Stg_TimeMonitor_Finalise();
 void Stg_TimeMonitor_SetTimerWatchCriteria( double ratioOfTotalTime );
 
-Stg_TimeMonitor* Stg_TimeMonitor_New( char* tag, Bool criteria, Bool print, MPI_Comm comm );
+Stg_TimeMonitor* Stg_TimeMonitor_New( Name tag, Bool criteria, Bool print, MPI_Comm comm );
 void Stg_TimeMonitor_Delete( Stg_TimeMonitor* tm );
 
 void Stg_TimeMonitor_Begin( Stg_TimeMonitor* tm );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/forwardDecl.h
--- a/Base/Foundation/src/forwardDecl.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/forwardDecl.h	Wed May 11 13:26:45 2011 -0700
@@ -61,11 +61,11 @@
 	extern const Type Error_Type;
 	extern const Type Debug_Type;
 	
-	Stream* Journal_Register( const char*, const char* );
+	Stream* Journal_Register( Name, const char* );
 	
-	int Journal_Printf( void*, char*, ... );
-	int Journal_PrintfL( void*, unsigned int, char*, ... );
-	int Journal_Firewall( int expression, void* stream, char* fmt, ... );
+	int Journal_Printf( void*, Name, ... );
+	int Journal_PrintfL( void*, unsigned int, Name, ... );
+	int Journal_Firewall( int expression, void* stream, Name fmt, ... );
 	
 	#ifdef DEBUG
 		#define Journal_DPrintf Journal_Printf
@@ -78,7 +78,7 @@
 	
 	struct PtrMap* PtrMap_New( unsigned );	
 	void PtrMap_Append( void* ptrMap, void* key, void* ptr );
-	void* PtrMap_Find( void* ptrMap, void* key );
+	void* PtrMap_Find( void* ptrMap, const void* key );
 	
 	
 	/* Forward Declaration of BTree ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/shortcuts.h
--- a/Base/Foundation/src/shortcuts.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/shortcuts.h	Wed May 11 13:26:45 2011 -0700
@@ -60,37 +60,37 @@
 
 
 #define AllocArray( type, size )					\
-	((size) ? Memory_Alloc_Array_Unnamed( type, size ) : NULL)
+  ((size) ? Memory_Alloc_Array_Unnamed( type, size ) : (type*)NULL)
 
 #define AllocNamedArray( type, size, name )				\
-	((size) ? Memory_Alloc_Array( type, size, name ) : NULL)
+	((size) ? Memory_Alloc_Array( type, size, name ) : (type*)NULL)
 
 #define AllocArray2D( type, size0, size1 )						\
-	((size0 && size1) ? Memory_Alloc_2DArray_Unnamed( type, size0, size1 ) : NULL)
+	((size0 && size1) ? Memory_Alloc_2DArray_Unnamed( type, size0, size1 ) : (type**)NULL)
 
 #define AllocNamedArray2D( type, size0, size1, name )					\
-	((size0 && size1) ? Memory_Alloc_2DArray( type, size0, size1, name ) : NULL)
+	((size0 && size1) ? Memory_Alloc_2DArray( type, size0, size1, name ) : (type**)NULL)
 
 #define AllocComplex2D( type, base, sizes )						\
-	((base && sizes) ? Memory_Alloc_2DComplex_Unnamed( type, base, sizes ) : NULL)
+	((base && sizes) ? Memory_Alloc_2DComplex_Unnamed( type, base, sizes ) : (type**)NULL)
 
 #define AllocNamedComplex2D( type, base, sizes, name )					\
-	((base && sizes) ? Memory_Alloc_2DComplex( type, base, sizes, name ) : NULL)
+	((base && sizes) ? Memory_Alloc_2DComplex( type, base, sizes, name ) : (type**)NULL)
 
 #define ReallocArray( ptr, type, size )					\
 	((ptr) ? ((size) ? Memory_Realloc_Array( ptr, type, size ) : 	\
-		  (Memory_Free( ptr ), NULL)) : 			\
-	 (size) ? Memory_Alloc_Array_Unnamed( type, size ) : NULL)
+		  (Memory_Free( ptr ), (type*)NULL)) : 			\
+	 (size) ? Memory_Alloc_Array_Unnamed( type, size ) : (type*)NULL)
 
 #define ReallocNamedArray( ptr, type, size, name )			\
 	((ptr) ? ((size) ? Memory_Realloc_Array( ptr, type, size ) : 	\
-		  (Memory_Free( ptr ), NULL)) : 			\
-	 ((size) ? Memory_Alloc_Array( type, size, name ) : NULL))
+		  (Memory_Free( ptr ), (type*)NULL)) : 			\
+	 ((size) ? Memory_Alloc_Array( type, size, name ) : (type*)NULL))
 
 #define ReallocArray2D( ptr, type, size0, size1 )						\
 	((ptr) ? ((size0 && size1) ? Memory_Realloc_2DArray( ptr, type, size0, size1 ) :	\
-		  (Memory_Free( ptr ), NULL)) : 						\
-	 (size0 && size1) ? Memory_Alloc_2DArray_Unnamed( type, size0, size1 ) : NULL)
+		  (Memory_Free( ptr ), (type**)NULL)) :                 \
+         (size0 && size1) ? Memory_Alloc_2DArray_Unnamed( type, size0, size1 ) : (type**)NULL)
 
 
 #define FreeArray( ptr )			\
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/src/types.h
--- a/Base/Foundation/src/types.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/src/types.h	Wed May 11 13:26:45 2011 -0700
@@ -96,11 +96,11 @@ typedef struct NewObject NewObject;
 	typedef unsigned long			MemoryOpStamp;
 	
 
-	typedef char*				Name;			/**< A string used for names. */
+	typedef const char*				Name;			/**< A string used for names. */
 	#define					Name_Invalid	0	/**< An invalid or empty name. */
 	
 	/** Unique ID of a type/class. (runtime-proc persistance). Pointer used as ID. Must point to a valid string. */
-	typedef char*				Type;
+	typedef Name				Type;
 	#define					Type_Invalid	0	/**< An invalid or empty type. */
 	
 
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/tests/MemMonitorSuite.c
--- a/Base/Foundation/tests/MemMonitorSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/tests/MemMonitorSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -63,7 +63,7 @@ void MemMonitorSuite_Teardown( MemMonito
 
 
 void MemMonitorSuite_TestMonitor( MemMonitorSuiteData* data ) {
-   char*          memoryReportOutputFilename = "./MemMonitorSuite_TestOutput.txt";
+   Name memoryReportOutputFilename = "./MemMonitorSuite_TestOutput.txt";
    char*          a;
    char*          b;
    char*          c;
@@ -71,7 +71,7 @@ void MemMonitorSuite_TestMonitor( MemMon
    char*          e;
    char*          f;
    MemMonitorData mmData;
-   int            totalMemAtTestStart;
+   Index            totalMemAtTestStart;
    int            expMemDiff;
    double         expPercentChange;
    Bool           expCritResult = False;
@@ -97,7 +97,7 @@ void MemMonitorSuite_TestMonitor( MemMon
    pcu_check_true( mmData.avgProcMemDiff == mmData.memDiff );
    expPercentChange = expMemDiff / (double)totalMemAtTestStart*100; 
    pcu_check_true( fabs( expPercentChange - mmData.percentChange ) < 0.1 );
-   expCritResult = fabs(expPercentChange/100) >= 0.2;
+   expCritResult = (fabs(expPercentChange/100) >= 0.2 ? True : False);
    pcu_check_true( mmData.criterionPassed == expCritResult );
 
    MemoryField_UpdateAsSumOfSubFields( stgMemory->types );
@@ -113,7 +113,7 @@ void MemMonitorSuite_TestMonitor( MemMon
    pcu_check_true( mmData.avgProcMemDiff == mmData.memDiff );
    expPercentChange = expMemDiff / (double)totalMemAtTestStart*100; 
    pcu_check_true( fabs( expPercentChange - mmData.percentChange ) < 0.1 );
-   expCritResult = fabs(expPercentChange/100) >= 0.2;
+   expCritResult = (fabs(expPercentChange/100) >= 0.2 ? True : False);
    pcu_check_true( mmData.criterionPassed == expCritResult );
 
    MemoryField_UpdateAsSumOfSubFields( stgMemory->types );
@@ -131,7 +131,7 @@ void MemMonitorSuite_TestMonitor( MemMon
    /* Percent should be negative this time */
    expPercentChange = expMemDiff / (double)totalMemAtTestStart*100; 
    pcu_check_true( fabs( expPercentChange - mmData.percentChange ) < 0.1 );
-   expCritResult = fabs(expPercentChange/100) >= 0.2;
+   expCritResult = (fabs(expPercentChange/100) >= 0.2 ? True : False);
    pcu_check_true( mmData.criterionPassed == expCritResult );
 
    MemoryField_UpdateAsSumOfSubFields( stgMemory->types );
@@ -147,7 +147,7 @@ void MemMonitorSuite_TestMonitor( MemMon
    pcu_check_true( mmData.avgProcMemDiff == mmData.memDiff );
    expPercentChange = expMemDiff / (double)totalMemAtTestStart*100; 
    pcu_check_true( fabs( expPercentChange - mmData.percentChange ) < 0.1 );
-   expCritResult = fabs(expPercentChange/100) >= 0.2;
+   expCritResult = (fabs(expPercentChange/100) >= 0.2 ? True : False);
    pcu_check_true( mmData.criterionPassed == expCritResult );
 
    Memory_Free( b );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/tests/MemoryReportSuite.c
--- a/Base/Foundation/tests/MemoryReportSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/tests/MemoryReportSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -267,10 +267,10 @@ void MemoryReportSuite_FreeTestMemoryObj
 
 /*Test 1: MemoryReport: (Type), where file is this test*/
 void MemoryReportSuite_TestReportPrintsOne( MemoryReportSuiteData* data ) {
-   char*          memoryReportOutputFilename = "./MemoryReportSuite_TestOutput-1.txt";
+   Name memoryReportOutputFilename="./MemoryReportSuite_TestOutput-1.txt";
    Memory*        tempMemoryManager;   
 
-   Stream_RedirectFile( stgMemory->infoStream, memoryReportOutputFilename );
+   Stream_RedirectFile((Stream*)stgMemory->infoStream,memoryReportOutputFilename);
 
    tempMemoryManager = MemoryReportSuite_SaveStgMemoryAndCreateTemp( data );
    MemoryReportSuite_AllocTestMemoryObjects( data );
@@ -352,10 +352,10 @@ void MemoryReportSuite_TestReportPrintsO
 
 /*Test 2: MemoryReport: (Type), where name=Test1*/
 void MemoryReportSuite_TestReportPrintsTwo( MemoryReportSuiteData* data ) {
-   char*          memoryReportOutputFilename = "./MemoryReportSuite_TestOutput-2.txt";
+   Name memoryReportOutputFilename = "./MemoryReportSuite_TestOutput-2.txt";
    Memory*        tempMemoryManager;   
    
-   Stream_RedirectFile( stgMemory->infoStream, memoryReportOutputFilename );
+   Stream_RedirectFile((Stream*)stgMemory->infoStream,memoryReportOutputFilename);
 
    tempMemoryManager = MemoryReportSuite_SaveStgMemoryAndCreateTemp( data );
    MemoryReportSuite_AllocTestMemoryObjects( data );
@@ -425,10 +425,10 @@ void MemoryReportSuite_TestReportPrintsT
 
 /*Test 3: MemoryReport: (Func), where file= this file */
 void MemoryReportSuite_TestReportPrintsThree( MemoryReportSuiteData* data ) {
-   char*          memoryReportOutputFilename = "./MemoryReportSuite_TestOutput-3.txt";
+   Name memoryReportOutputFilename="./MemoryReportSuite_TestOutput-3.txt";
    Memory*        tempMemoryManager;   
    
-   Stream_RedirectFile( stgMemory->infoStream, memoryReportOutputFilename );
+   Stream_RedirectFile((Stream*)stgMemory->infoStream,memoryReportOutputFilename);
 
    tempMemoryManager = MemoryReportSuite_SaveStgMemoryAndCreateTemp( data );
    MemoryReportSuite_AllocTestMemoryObjects( data );
@@ -501,10 +501,10 @@ void MemoryReportSuite_TestReportPrintsT
 
 /*Test 4: MemoryReport: (File), where type=StructA and name=Test2 */
 void MemoryReportSuite_TestReportPrintsFour( MemoryReportSuiteData* data ) {
-   char*          memoryReportOutputFilename = "./MemoryReportSuite_TestOutput-4.txt";
+   Name memoryReportOutputFilename="./MemoryReportSuite_TestOutput-4.txt";
    Memory*        tempMemoryManager;   
    
-   Stream_RedirectFile( stgMemory->infoStream, memoryReportOutputFilename );
+   Stream_RedirectFile((Stream*)stgMemory->infoStream,memoryReportOutputFilename);
 
    tempMemoryManager = MemoryReportSuite_SaveStgMemoryAndCreateTemp( data );
    MemoryReportSuite_AllocTestMemoryObjects( data );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/tests/NamedObject_Register2Suite.c
--- a/Base/Foundation/tests/NamedObject_Register2Suite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/tests/NamedObject_Register2Suite.c	Wed May 11 13:26:45 2011 -0700
@@ -65,12 +65,12 @@ void NamedObject_RegisterSuite2_Setup( N
 
    data->reg = NamedObject_Register_New();
    data->testObjectsCount = 5;
-   data->testObjectNames = malloc(sizeof(char*) * data->testObjectsCount);
-   data->testObjects = malloc(sizeof(Stg_Object*) * data->testObjectsCount);
+   data->testObjectNames = (char**)malloc(sizeof(char*) * data->testObjectsCount);
+   data->testObjects = (Stg_Object**)malloc(sizeof(Stg_Object*) * data->testObjectsCount);
 
    letter='a';
    for (ii=0; ii < data->testObjectsCount; ii++ ) {
-      data->testObjectNames[ii] = malloc(sizeof(char) * 2 );
+     data->testObjectNames[ii] = (char*)malloc(sizeof(char) * 2 );
       sprintf( data->testObjectNames[ii], "%c", letter );
       letter++;
       data->testObjects[ii] = TestObject2_New( data->testObjectNames[ii] );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/tests/NamedObject_RegisterSuite.c
--- a/Base/Foundation/tests/NamedObject_RegisterSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/tests/NamedObject_RegisterSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -64,12 +64,12 @@ void NamedObject_RegisterSuite_Setup( Na
 
    data->reg = NamedObject_Register_New();
    data->testObjectsCount = 5;
-   data->testObjectNames = malloc(sizeof(char*) * data->testObjectsCount);
-   data->testObjects = malloc(sizeof(Stg_Object*) * data->testObjectsCount);
+   data->testObjectNames = (char**)malloc(sizeof(char*) * data->testObjectsCount);
+   data->testObjects = (Stg_Object**)malloc(sizeof(Stg_Object*) * data->testObjectsCount);
 
    letter='a';
    for (ii=0; ii < data->testObjectsCount; ii++ ) {
-      data->testObjectNames[ii] = malloc(sizeof(char) * 2 );
+     data->testObjectNames[ii] = (char*)malloc(sizeof(char) * 2 );
       sprintf( data->testObjectNames[ii], "%c", letter );
       letter++;
       data->testObjects[ii] = TestObject_New( data->testObjectNames[ii] );
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/tests/ObjectListSuite.c
--- a/Base/Foundation/tests/ObjectListSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/tests/ObjectListSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -64,7 +64,7 @@ void DummyPointer_Print( void* ptr, stru
    Journal_Printf( stream, "value: %i\n", *(int*)ptr );
 }
 
-void* DummyPointer_Copy( void* ptr, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* DummyPointer_Copy( const void* ptr, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
    int* newInt;
    
    newInt = Memory_Alloc_Unnamed( int );
@@ -116,10 +116,10 @@ void ObjectListSuite_Teardown( ObjectLis
 /* Test 2: Can we append the first entry? */
 void ObjectListSuite_TestAppend( ObjectListSuiteData* data ) {
 
-   Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
-   Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
-   Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), "a"  );
+   Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), "a"  );
+   Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), "a", 0, DummyPointer_Print, DummyPointer_Copy  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), "a"  );
 
    pcu_check_true(
       data->addPtr0 == Stg_ObjectList_Get( data->ol0, (Name)"a"  ) &&
@@ -142,12 +142,12 @@ void ObjectListSuite_TestPrepend( Object
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"a"  );
 
    Stg_ObjectList_ClassPrepend(  data->ol0, (data->addPtr0 = DummyClass_New()), "b" );
    Stg_ObjectList_ClassPrepend( &data->ol1, (data->addPtr1 = DummyClass_New()), "b" );
    Stg_ObjectList_PointerPrepend(  data->ol2, (data->addPtr2 = DummyPointer_New()), "b", 0, DummyPointer_Print, DummyPointer_Copy );
-   Stg_ObjectList_GlobalPointerPrepend(  data->ol3, (data->addPtr3 = (void*)DummyFunc2), "b" );
+   Stg_ObjectList_GlobalPointerPrepend(  data->ol3, (data->addPtr3 = (int*)DummyFunc2), "b" );
 
    pcu_check_true(
       data->addPtr0 == Stg_ObjectList_Get( data->ol0, (Name)"b"  ) &&
@@ -177,11 +177,11 @@ void ObjectListSuite_TestInsertBefore( O
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"b", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"b"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"b"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"a"  );
 
    Stg_ObjectList_ClassInsertBefore(  data->ol0, "a", (data->addPtr0 = DummyClass_New()), "c" );
    Stg_ObjectList_ClassInsertBefore( &data->ol1, "a", (data->addPtr1 = DummyClass_New()), "c" );
@@ -193,7 +193,7 @@ void ObjectListSuite_TestInsertBefore( O
       0, 
       DummyPointer_Print, 
       DummyPointer_Copy );
-   Stg_ObjectList_GlobalPointerInsertBefore(  data->ol3, "a", (data->addPtr3 = (void*)DummyFunc3), "c" );
+   Stg_ObjectList_GlobalPointerInsertBefore(  data->ol3, "a", (data->addPtr3 = (int*)DummyFunc3), "c" );
 
    pcu_check_true(
       data->addPtr0 == Stg_ObjectList_Get( data->ol0, (Name)"c"  ) &&
@@ -227,15 +227,15 @@ void ObjectListSuite_TestInsertAfter( Ob
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"b", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"b"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"b"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"c"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"c"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"c", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"c"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"c"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"a"  );
 
    Stg_ObjectList_ClassInsertAfter(  data->ol0, "c", (data->addPtr0 = DummyClass_New()), "d" );
    Stg_ObjectList_ClassInsertAfter( &data->ol1, "c", (data->addPtr1 = DummyClass_New()), "d" );
@@ -248,7 +248,7 @@ void ObjectListSuite_TestInsertAfter( Ob
       0, 
       DummyPointer_Print, 
       DummyPointer_Copy );
-   Stg_ObjectList_GlobalPointerInsertAfter(  data->ol3, "c", (data->addPtr3 = (void*)DummyFunc4), "d" );
+   Stg_ObjectList_GlobalPointerInsertAfter(  data->ol3, "c", (data->addPtr3 = (int*)DummyFunc4), "d" );
 
    pcu_check_true(
       data->addPtr0 == Stg_ObjectList_Get( data->ol0, (Name)"d"  ) &&
@@ -286,24 +286,24 @@ void ObjectListSuite_TestReplace( Object
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"b", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"b"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"b"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"c"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"c"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"c", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"c"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"c"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"d"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"d"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"d", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"d"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"d"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"a"  );
 
    Stg_ObjectList_ClassReplace(  data->ol0, "d", DELETE, (data->addPtr0 = DummyClass_New()), "e" );
    Stg_ObjectList_ClassReplace( &data->ol1, "d", DELETE, (data->addPtr1 = DummyClass_New()), "e" );
    Stg_ObjectList_PointerReplace( data->ol2, "d", DELETE, (data->addPtr2 = DummyPointer_New()), (Name)"e", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerReplace( data->ol3, (Name)"d", DELETE, (data->addPtr3 = (void*)DummyFunc5), (Name)"e"  );
+   Stg_ObjectList_GlobalPointerReplace( data->ol3, (Name)"d", DELETE, (data->addPtr3 = (int*)DummyFunc5), (Name)"e"  );
    pcu_check_true(
       data->addPtr0 == Stg_ObjectList_Get( data->ol0, (Name)"e"  ) &&
       data->addPtr0 == Stg_ObjectList_ObjectAt( data->ol0, 2 ) &&
@@ -340,19 +340,19 @@ void ObjectListSuite_TestRemove( ObjectL
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"b", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"b"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"b"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"c"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"c"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"c", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"c"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"c"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"e"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"e"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"e", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"e"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"e"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"a"  );
 
    Stg_ObjectList_Remove( data->ol0, (Name)"c", DELETE  );
    Stg_ObjectList_Remove( &data->ol1, (Name)"c", DELETE  );
@@ -387,15 +387,15 @@ void ObjectListSuite_TestReplaceAll( Obj
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"b"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"b", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"b"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"b"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"e"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"e"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"e", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"e"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"e"  );
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"a"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"a", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"a"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"a"  );
 
    Stg_ObjectList_ClassReplaceAll( data->ol0, DELETE, (data->addPtr0 = DummyClass_New()), (Name)"f"  );
    Stg_ObjectList_ClassReplaceAll( &data->ol1, DELETE, (data->addPtr1 = DummyClass_New()), (Name)"f"  );
@@ -407,7 +407,7 @@ void ObjectListSuite_TestReplaceAll( Obj
       0, 
       DummyPointer_Print, 
       DummyPointer_Copy );
-   Stg_ObjectList_GlobalPointerReplaceAll(  data->ol3, DELETE, (data->addPtr3 = (void*)DummyFunc6), "f" );
+   Stg_ObjectList_GlobalPointerReplaceAll(  data->ol3, DELETE, (data->addPtr3 = (int*)DummyFunc6), "f" );
    pcu_check_true(
       data->addPtr0 == Stg_ObjectList_Get( data->ol0, (Name)"f"  ) &&
       data->addPtr0 == Stg_ObjectList_ObjectAt( data->ol0, 0 ) &&
@@ -439,12 +439,12 @@ void ObjectListSuite_TestCopy( ObjectLis
    Stg_ObjectList_ClassAppend( data->ol0, (data->addPtr0 = DummyClass_New()), (Name)"f"  );
    Stg_ObjectList_ClassAppend( &data->ol1, (data->addPtr1 = DummyClass_New()), (Name)"f"  );
    Stg_ObjectList_PointerAppend( data->ol2, (data->addPtr2 = DummyPointer_New()), (Name)"f", 0, DummyPointer_Print, DummyPointer_Copy  );
-   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (void*)DummyFunc1), (Name)"f"  );
+   Stg_ObjectList_GlobalPointerAppend( data->ol3, (data->addPtr3 = (int*)DummyFunc1), (Name)"f"  );
 
-   ol0deep = Stg_Class_Copy(  data->ol0, 0, True, 0, 0 );
-   ol1deep = Stg_Class_Copy( &data->ol1, 0, True, 0, 0 );
-   ol2deep = Stg_Class_Copy(  data->ol2, 0, True, 0, 0 );
-   ol3deep = Stg_Class_Copy(  data->ol3, 0, True, 0, 0 );
+   ol0deep = (Stg_ObjectList*)Stg_Class_Copy(  data->ol0, 0, True, 0, 0 );
+   ol1deep = (Stg_ObjectList*)Stg_Class_Copy( &data->ol1, 0, True, 0, 0 );
+   ol2deep = (Stg_ObjectList*)Stg_Class_Copy(  data->ol2, 0, True, 0, 0 );
+   ol3deep = (Stg_ObjectList*)Stg_Class_Copy(  data->ol3, 0, True, 0, 0 );
 
    pcu_check_true(
       strcmp( Stg_Object_GetName( (Stg_Object*)Stg_ObjectList_At( ol0deep, 0 ) ), "f" ) == 0 &&
diff -r 7c15b31c769d -r 4a864caece0b Base/Foundation/tests/Stg_asprintfSuite.c
--- a/Base/Foundation/tests/Stg_asprintfSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/Foundation/tests/Stg_asprintfSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -46,7 +46,7 @@ void Stg_asprintfSuite_Teardown( Stg_asp
 }
 
 void Stg_asprintfSuite_TestPrint( Stg_asprintfSuiteData* data ) {
-	const char*  fiftyBytes = "01234567890123456789012345678901234567890123456789";
+	Name  fiftyBytes = "01234567890123456789012345678901234567890123456789";
 	char*        testString;
 	char*        testStringPtr;
    unsigned int offset=0;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/BinaryStream.c
--- a/Base/IO/src/BinaryStream.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/BinaryStream.c	Wed May 11 13:26:45 2011 -0700
@@ -107,14 +107,14 @@ SizeT _BinaryStream_Printf( Stream* stre
 	return False;
 }
 	
-SizeT _BinaryStream_Write( Stream* stream, void *data, SizeT elem_size, SizeT num_elems )
+SizeT _BinaryStream_Write( Stream* stream, const void *data, SizeT elem_size, SizeT num_elems )
 {
 	BinaryStream* self = (BinaryStream*)stream;
 	
-	return fwrite( data, elem_size, num_elems, self->_file->fileHandle );
+	return fwrite(data,elem_size,num_elems,(FILE*)(self->_file->fileHandle));
 }
 	
-Bool _BinaryStream_Dump( Stream* stream, void *data )
+Bool _BinaryStream_Dump( Stream* stream, const void *data )
 {
 	/* No specific dumping mechanism, can create in derived classes */
 	return False;
@@ -130,7 +130,7 @@ Bool _BinaryStream_SetFile( Stream* stre
 	return False;
 }
 
-SizeT BinaryStream_WriteAllProcessors( Name filename, void *data, SizeT elem_size, SizeT num_elems, MPI_Comm comm ) {
+void BinaryStream_WriteAllProcessors( Name filename, void *data, SizeT elem_size, SizeT num_elems, MPI_Comm comm ) {
 	Stream*    stream = Journal_Register( BinaryStream_Type, BinaryStream_Type );
 	MPI_Status status;
 	int        rank;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/BinaryStream.h
--- a/Base/IO/src/BinaryStream.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/BinaryStream.h	Wed May 11 13:26:45 2011 -0700
@@ -88,15 +88,15 @@
 	SizeT _BinaryStream_Printf( Stream* stream, const char *fmt, va_list args );
 	
 	/** Write() implementation. */
-	SizeT _BinaryStream_Write( Stream* stream, void *data, SizeT elem_size, SizeT num_elems );
+	SizeT _BinaryStream_Write( Stream* stream, const void *data, SizeT elem_size, SizeT num_elems );
 	
 	/** Dump() implementation. Performs no operation for BinaryStreams. */
-	Bool _BinaryStream_Dump( Stream* stream, void *data );
+	Bool _BinaryStream_Dump( Stream* stream, const void *data );
 	
 	/** SetFile() implementation. */
 	Bool _BinaryStream_SetFile( Stream* stream, JournalFile* file );
 	
-	SizeT BinaryStream_WriteAllProcessors( Name filename, void *data, SizeT elem_size, SizeT num_elems, MPI_Comm communicator ) ;
+	void BinaryStream_WriteAllProcessors( Name filename, void *data, SizeT elem_size, SizeT num_elems, MPI_Comm communicator ) ;
 	
 #endif /* __IO_BinaryStreamFile_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/CFile.c
--- a/Base/IO/src/CFile.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/CFile.c	Wed May 11 13:26:45 2011 -0700
@@ -73,7 +73,7 @@ JournalFile* CFileBinary_New()
 }
 
 
-JournalFile* CFile_New2( char* fileName )
+JournalFile* CFile_New2( Name fileName )
 {
 	JournalFile* result = CFile_New();
 
@@ -131,7 +131,7 @@ void _CFile_Print( void* cfile, Stream* 
 }
 
 	
-Bool _CFile_Open( void* file, const char* const fileName )
+Bool _CFile_Open( void* file, Name const fileName )
 {
 	CFile* self = (CFile*) file;
 	FILE* filePtr;
@@ -151,7 +151,7 @@ Bool _CFile_Open( void* file, const char
 	return True;	
 }
 	
-Bool _CFile_Append( void* file, const char* const fileName )
+Bool _CFile_Append( void* file, Name const fileName )
 {
 	CFile* self = (CFile*) file;
 	FILE* filePtr;
@@ -175,7 +175,7 @@ Bool _CFile_Close( void* file )
 	CFile* self = (CFile*) file;
 	if ( self->fileHandle != NULL )
 	{
-		return fclose(  (FILE*) self->fileHandle ) == 0;
+          return fclose(  (FILE*) self->fileHandle ) == 0 ? True : False;
 	}
 	return False;
 }
@@ -185,7 +185,7 @@ Bool _CFile_Flush( void* file )
 	CFile* self = (CFile*) file;
 	if ( self->fileHandle != NULL )
 	{
-		return fflush( (FILE*) self->fileHandle ) == 0;	
+          return fflush( (FILE*) self->fileHandle ) == 0 ? True : False;
 	}
 	return False;
 }
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/CFile.h
--- a/Base/IO/src/CFile.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/CFile.h	Wed May 11 13:26:45 2011 -0700
@@ -63,7 +63,7 @@
 	JournalFile* CFile_New();
 
 	/** Creates a new CFile, opening the file given by fileName. Returns NULL if system is unable to open the given file. */
-	JournalFile* CFile_New2( char* fileName );
+	JournalFile* CFile_New2( Name fileName );
 
 	/** Creates a new binary CFile with no opened file. JournalFile_Open() must be called. */
 	JournalFile* CFileBinary_New();
@@ -99,10 +99,10 @@
 	
 	
 	/** Implementation for Open function. */
-	Bool _CFile_Open( void* file, const char* const fileName );
+	Bool _CFile_Open( void* file, Name const fileName );
 
 	/** Implementation for Append function. */
-	Bool _CFile_Append( void* file, const char* const fileName );
+	Bool _CFile_Append( void* file, Name const fileName );
 
 	/** Implementation for Close function. */
 	Bool _CFile_Close( void* file );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/CStream.c
--- a/Base/IO/src/CStream.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/CStream.c	Wed May 11 13:26:45 2011 -0700
@@ -124,13 +124,13 @@ SizeT _CStream_Printf( Stream* stream, c
 	return printResult;
 }
 	
-SizeT _CStream_Write( Stream* stream, void *data, SizeT elem_size, SizeT num_elems )
+SizeT _CStream_Write( Stream* stream, const void *data, SizeT elem_size, SizeT num_elems )
 {
 	CStream* self = (CStream*)stream;
 	return fwrite( data, elem_size, num_elems, (FILE*) (self->_file->fileHandle) );
 }
 	
-Bool _CStream_Dump( Stream* stream, void *data )
+Bool _CStream_Dump( Stream* stream, const void *data )
 {
 	/* Traditional C does not have a dumping function. Hence, CStream performs no operation here. */
 	return False;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/CStream.h
--- a/Base/IO/src/CStream.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/CStream.h	Wed May 11 13:26:45 2011 -0700
@@ -91,10 +91,10 @@
 	SizeT _CStream_Printf( Stream* stream, const char *fmt, va_list args );
 	
 	/** Write() implementation. */
-	SizeT _CStream_Write( Stream* stream, void *data, SizeT elem_size, SizeT num_elems );
+	SizeT _CStream_Write( Stream* stream, const void *data, SizeT elem_size, SizeT num_elems );
 	
 	/** Dump() implementation. Performs no operation for CStreams. */
-	Bool _CStream_Dump( Stream* stream, void *data );
+	Bool _CStream_Dump( Stream* stream, const void *data );
 	
 	/** SetFile() implementation. */
 	Bool _CStream_SetFile( Stream* stream, JournalFile* file );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/CmdLineArgs.c
--- a/Base/IO/src/CmdLineArgs.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/CmdLineArgs.c	Wed May 11 13:26:45 2011 -0700
@@ -35,8 +35,8 @@
 
 void stgRemoveCmdLineArg( int* argc, char** argv[], int index ) {
 	if( index > 0 && index < *argc ) {
-		Index i;
-		void* tmpPtr = (*argv)[index];
+		int i;
+		char* tmpPtr = (*argv)[index];
 
 		for( i = index; i < *argc - 1; i++ ) {
 			(*argv)[i] = (*argv)[i+1];
@@ -49,13 +49,13 @@ void stgRemoveCmdLineArg( int* argc, cha
 
 
 char* stgParseHelpCmdLineArg( int* argc, char** argv[] ) {
-	Index                   arg_I;
+	int                   arg_I;
 
 	/* Loop over all the arguments from command line and reads all arguments of form "--help topic" */
 	for( arg_I = 1 ; arg_I < *argc; arg_I++ ) {
 		char*                   valueString = 0;
 		char*                   argumentString = (*argv)[arg_I];
-		const char*             preceedingString = "--help";
+		Name             preceedingString = "--help";
 		unsigned int            preceedingStringLength = strlen( preceedingString );
 
 		/* Check is string has preceeding string is "--help" if not then continue in loop */
@@ -79,13 +79,13 @@ char* stgParseHelpCmdLineArg( int* argc,
 }
 
 char* stgParseListCmdLineArg( int* argc, char** argv[] ) {
-	Index                   arg_I;
+	int                   arg_I;
 
 	/* Loop over all the arguments from command line and reads all arguments of form "--help topic" */
 	for( arg_I = 1 ; arg_I < *argc; arg_I++ ) {
 		char*                   valueString = 0;
 		char*                   argumentString = (*argv)[arg_I];
-		const char*             preceedingString = "--list";
+		Name             preceedingString = "--list";
 		unsigned int            preceedingStringLength = strlen( preceedingString );
 
 		/* Check is string has preceeding string is "--list" if not then continue in loop */
@@ -111,13 +111,13 @@ char* stgParseListCmdLineArg( int* argc,
 }
 
 char* stgParseListAllCmdLineArg( int* argc, char** argv[] ) {
-	Index                   arg_I;
+	int                   arg_I;
 
 	/* Loop over all the arguments from command line and reads all arguments of form "--help topic" */
 	for( arg_I = 1 ; arg_I < *argc; arg_I++ ) {
 		char*                   valueString = 0;
 		char*                   argumentString = (*argv)[arg_I];
-		const char*             preceedingString = "--list-all";
+		Name             preceedingString = "--list-all";
 		unsigned int            preceedingStringLength = strlen( preceedingString );
 
 		/* Check is string has preceeding string is "--list" if not then continue in loop */
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Dictionary.c
--- a/Base/IO/src/Dictionary.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Dictionary.c	Wed May 11 13:26:45 2011 -0700
@@ -173,7 +173,7 @@ void Dictionary_Empty( void* dictionary 
 }
 
 
-void* _Dictionary_Copy( void* dictionary, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Dictionary_Copy( const void* dictionary, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Dictionary*      self = (Dictionary*) dictionary;
 	Dictionary_Index index;
 	Dictionary*	 newDict;
@@ -184,7 +184,7 @@ void* _Dictionary_Copy( void* dictionary
 		ownMap = True;
 	}
 
-	newDict = _Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
+	newDict = (Dictionary*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
 
 	newDict->add = self->add;
 	newDict->addWithSource = self->addWithSource;
@@ -200,7 +200,7 @@ void* _Dictionary_Copy( void* dictionary
 		newDict->debugStream = self->debugStream;
 	}
 	else {
-		newDict->debugStream = Stg_Class_Copy( self->debugStream, NULL, deep, nameExt, ptrMap );
+          newDict->debugStream = (Stream*)Stg_Class_Copy( self->debugStream, NULL, deep, nameExt, ptrMap );
 	}
 
 	newDict->entryPtr = Memory_Alloc_Array( Dictionary_Entry*, self->size, "Dictionary->entryPtr" );
@@ -263,30 +263,30 @@ Dictionary_Entry_Value* Dictionary_GetBy
 }
 
 Dictionary_Entry* Dictionary_GetEntry( void* dictionary, Dictionary_Entry_Key key ) {
-	Dictionary* self = dictionary;
-	Dictionary_Index index;
-	Dictionary_Index count;
+  Dictionary* self = (Dictionary*)dictionary;
+  Dictionary_Index index;
+  Dictionary_Index count;
 
-	/* Be less sensitive to whether the dictionary is NULL... yields nicer user code */
-	count = self ? self->count : 0;
+  /* Be less sensitive to whether the dictionary is NULL... yields nicer user code */
+  count = self ? self->count : 0;
 	
-	for( index = 0; index < count; index++ ) {
-		if( Dictionary_Entry_Compare( self->entryPtr[index], key ) != 0 ) {
-			return self->entryPtr[index];
-		}
-	}
-	return NULL;
+  for( index = 0; index < count; index++ ) {
+    if( Dictionary_Entry_Compare( self->entryPtr[index], key ) != 0 ) {
+      return self->entryPtr[index];
+    }
+  }
+  return NULL;
 }
 
 Dictionary_Entry* Dictionary_GetEntryByIndex( void* dictionary, Dictionary_Index index) {
-	Dictionary* self = dictionary;
+  Dictionary* self = (Dictionary*)dictionary;
 
-	/* Be less sensitive to whether the dictionary is NULL... yields nicer user code */
-	/* Check that self->entryPtr[index] is NOT NULL */
-	if( !self || !self->entryPtr[index] )
-		return NULL;
-	else
-		return self->entryPtr[index];
+  /* Be less sensitive to whether the dictionary is NULL... yields nicer user code */
+  /* Check that self->entryPtr[index] is NOT NULL */
+  if( !self || !self->entryPtr[index] )
+    return NULL;
+  else
+    return self->entryPtr[index];
 }
 
 Index Dictionary_GetCount( void* dictionary ) {
@@ -669,7 +669,7 @@ void Dictionary_ParseCommandLineParam( v
 				/* Entry found. Ensure its a struct */
 				structDictionary = Dictionary_Entry_Value_AsDictionary( ev );
 				Journal_Firewall( 
-					(Bool)structDictionary, 
+					structDictionary==NULL, 
 					Journal_Register( Error_Type, Dictionary_Type ), 
 					"Command line argument \"%s\" parsed as struct, and is in dictionary, but not as a struct",
 						structString );
@@ -699,7 +699,7 @@ void Dictionary_ParseCommandLineParam( v
 			/* Make sure there is a right bracket in the string */
 			rbracket2 = strchr( indexString, ']' );
 			Journal_Firewall( 
-				(Bool)rbracket2, 
+				rbracket2==NULL, 
 				Journal_Register( Error_Type, Dictionary_Type ), 
 				"Command line argument \"%s\" parsed as list but missing closing \']\'.",
 					listString );
@@ -784,7 +784,7 @@ void Dictionary_ParseCommandLineParam( v
 				
 					item = Dictionary_Entry_Value_GetElement( ev, index );
 					Journal_Firewall( 
-						(Bool)item, 
+						item==NULL, 
 						Journal_Register( Error_Type, Dictionary_Type ), 
 						"Command line argument \"%s\" parsed as list, requesting index \"%u\", "\
 						"but that index does not exist.",
@@ -806,8 +806,8 @@ void Dictionary_ParseCommandLineParam( v
 }
 
 void Dictionary_ReadAllParamFromCommandLine( void* dictionary, int argc, char* argv[] ) {
-	Index                   arg_I;
-	const char*             preceedingString = "--";
+	int                     arg_I;
+	Name             preceedingString = "--";
 	char*                   argumentString;
 	char*                   paramString;
 	char*                   valueString;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Dictionary.h
--- a/Base/IO/src/Dictionary.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Dictionary.h	Wed May 11 13:26:45 2011 -0700
@@ -143,7 +143,7 @@
 	void Dictionary_PrintConcise( void* dictionary, Stream* stream );
 	
 	/** Implementation of Stg_Class_Copy() */
-	void* _Dictionary_Copy( void* indexMap, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Dictionary_Copy( const void* indexMap, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 	/** Empty the Dictionary's entry list and re-set count to zero.
 	 *   Will also call Delete() on each entry currently in the dictionary.
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Dictionary_Entry.c
--- a/Base/IO/src/Dictionary_Entry.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Dictionary_Entry.c	Wed May 11 13:26:45 2011 -0700
@@ -87,11 +87,11 @@ void Dictionary_Entry_InitWithSource( Di
 
 void Dictionary_Entry_Delete( Dictionary_Entry* self )
 {
-	Memory_Free( self->key );
-	Dictionary_Entry_Value_Delete( self->value );
-	if( self->source != NULL )
-		Memory_Free( self->source );
-	Memory_Free( self );
+  Memory_Free( self->key );
+  Dictionary_Entry_Value_Delete( self->value );
+  if( self->source != NULL )
+    Memory_Free( self->source );
+  Memory_Free( self );
 }
 
 void Dictionary_Entry_Print( Dictionary_Entry* self, Stream* stream )
@@ -104,25 +104,26 @@ void Dictionary_Entry_Print( Dictionary_
 
 Bool Dictionary_Entry_Compare( Dictionary_Entry* self, Dictionary_Entry_Key key )
 {
-	return !strcmp( self->key, key );
+  return (!strcmp( self->key, key )) ? True : False;
 }
 
 Bool Dictionary_Entry_CompareWithSource( Dictionary_Entry* self, Dictionary_Entry_Key key, Dictionary_Entry_Source source )
 {
-	if( self->source == NULL )
-	{
-		if( source == NULL )
-			return !strcmp( self->key, key );
-		else
-			return False;
-	}
-	else
-	{
-		if( source == NULL )
-			return False;
-		else
-			return ( !strcmp( self->key, key ) && !strcmp( self->source, source ) ); 
-	}
+  if( self->source == NULL )
+    {
+      if( source == NULL )
+        return (!strcmp( self->key, key )) ? True : False;
+      else
+        return False;
+    }
+  else
+    {
+      if( source == NULL )
+        return False;
+      else
+        return (!strcmp(self->key,key) && !strcmp(self->source,source))
+          ? True : False;
+    }
 }
 
 void Dictionary_Entry_Set( Dictionary_Entry* self, Dictionary_Entry_Value* value )
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Dictionary_Entry.h
--- a/Base/IO/src/Dictionary_Entry.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Dictionary_Entry.h	Wed May 11 13:26:45 2011 -0700
@@ -49,7 +49,7 @@
 	
 	/** \def __Dictionary_Entry See Dictionary_Entry */
 	#define __Dictionary_Entry  \
-		Dictionary_Entry_Key		key; \
+		char*		key; \
 		Dictionary_Entry_Value*		value; \
 		Dictionary_Entry_Source		source;
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Dictionary_Entry_Value.c
--- a/Base/IO/src/Dictionary_Entry_Value.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Dictionary_Entry_Value.c	Wed May 11 13:26:45 2011 -0700
@@ -51,7 +51,7 @@ static void Dictionary_Entry_Value_SetVa
 static void Dictionary_Entry_Value_SetValueInt( Dictionary_Entry_Value* self, unsigned int value );
 static void Dictionary_Entry_Value_SetValueDouble( Dictionary_Entry_Value* self, double value );
 static void Dictionary_Entry_Value_SetValueUnsignedLong( Dictionary_Entry_Value* self, unsigned long value );
-static void Dictionary_Entry_Value_SetValueString( Dictionary_Entry_Value* self, const char* const value );
+static void Dictionary_Entry_Value_SetValueString( Dictionary_Entry_Value* self, Name const value );
 static void Dictionary_Entry_Value_SetValueBool( Dictionary_Entry_Value* self, Bool value );
 static void Dictionary_Entry_Value_SetValueNewStruct( Dictionary_Entry_Value* self);
 static void Dictionary_Entry_Value_SetValueStruct( Dictionary_Entry_Value* self, void* value );
@@ -132,7 +132,7 @@ static void Dictionary_Entry_Value_SetVa
 	self->type = Dictionary_Entry_Value_Type_UnsignedLong;
 }
 
-Dictionary_Entry_Value* Dictionary_Entry_Value_FromString( const char* const value ) {
+Dictionary_Entry_Value* Dictionary_Entry_Value_FromString( Name const value ) {
 	Dictionary_Entry_Value* self = Memory_Alloc( Dictionary_Entry_Value, "Entry Value String" );
 	
 	Dictionary_Entry_Value_InitFromString( self, value );
@@ -140,12 +140,12 @@ Dictionary_Entry_Value* Dictionary_Entry
 	return self;
 }
 	
-void Dictionary_Entry_Value_InitFromString( Dictionary_Entry_Value* self, const char* const value ) {
+void Dictionary_Entry_Value_InitFromString( Dictionary_Entry_Value* self, Name const value ) {
 	Dictionary_Entry_Value_SetValueString( self, value );
 	self->next = 0;
 }
 
-static void Dictionary_Entry_Value_SetValueString( Dictionary_Entry_Value* self, const char* const value ) {
+static void Dictionary_Entry_Value_SetValueString( Dictionary_Entry_Value* self, Name const value ) {
 	self->as.typeString = StG_Strdup( value );
 	self->type = Dictionary_Entry_Value_Type_String;
 }
@@ -758,19 +758,19 @@ char* Dictionary_Entry_Value_AsString( D
 
 Bool Dictionary_Entry_Value_AsBool( Dictionary_Entry_Value* self ) {
 	if( !self ) {
-		return 0;
+          return False;
 	}
 	
 	switch( self->type ) {
 		case Dictionary_Entry_Value_Type_Struct:
 			/* Do nothing (later will print a warning) */
-			return 0;
+			return False;
 		case Dictionary_Entry_Value_Type_List:
 			/* returns the first element as an unsigned int */
 			if (self->as.typeList->first) {
 				return Dictionary_Entry_Value_AsBool( self->as.typeList->first );
 			} else {	
-				return 0;
+				return False;
 			}	
 		case Dictionary_Entry_Value_Type_String:
 			if( !strcmp( "1", self->as.typeString ) ) {
@@ -1195,7 +1195,7 @@ Dictionary_Entry_Value* Dictionary_Entry
 			}
 			else {
 				Dictionary* copiedDict;
-				copiedDict = Stg_Class_Copy( self->as.typeStruct,
+				copiedDict = (Dictionary*)Stg_Class_Copy( self->as.typeStruct,
 					NULL, True, NULL, NULL );
 				copy = Dictionary_Entry_Value_FromStruct( copiedDict );
 			}
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Dictionary_Entry_Value.h
--- a/Base/IO/src/Dictionary_Entry_Value.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Dictionary_Entry_Value.h	Wed May 11 13:26:45 2011 -0700
@@ -115,8 +115,8 @@
 	void                    Dictionary_Entry_Value_InitFromUnsignedLong( Dictionary_Entry_Value* self, unsigned long value );
 	
 	/** Create a value from a string */
-	Dictionary_Entry_Value* Dictionary_Entry_Value_FromString( const char* const value );
-	void                    Dictionary_Entry_Value_InitFromString( Dictionary_Entry_Value* self, const char* const value );
+	Dictionary_Entry_Value* Dictionary_Entry_Value_FromString( Name const value );
+	void                    Dictionary_Entry_Value_InitFromString( Dictionary_Entry_Value* self, Name const value );
 	
 	/** Create a dictionary entry value of the specified type from the specified string */
 	Dictionary_Entry_Value* Dictionary_Entry_Value_FromStringTo( char* value, char type );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Finalise.h
--- a/Base/IO/src/Finalise.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Finalise.h	Wed May 11 13:26:45 2011 -0700
@@ -44,7 +44,7 @@
 #ifndef __StGermain_Base_IO_Finalise_h__
 #define __StGermain_Base_IO_Finalise_h__
 	
-	Bool IO_Finalise( void );
+	Bool BaseIO_Finalise( void );
 	
 #endif /* __StGermain_Base_IO_Finalise_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/IO_Handler.c
--- a/Base/IO/src/IO_Handler.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/IO_Handler.c	Wed May 11 13:26:45 2011 -0700
@@ -126,7 +126,7 @@ void _IO_Handler_Print( void* io_handler
 
 
 /** Read a dictionary entry of a given name from file */
-Bool IO_Handler_ReadAllFromFile( void* io_handler, const char* filename, Dictionary* dictionary )
+Bool IO_Handler_ReadAllFromFile( void* io_handler, Name filename, Dictionary* dictionary )
 {
 	IO_Handler* self = (IO_Handler*) io_handler;
 	Index chr_I;
@@ -151,7 +151,7 @@ Bool IO_Handler_ReadAllFromFile( void* i
 }
 
 /** Read a dictionary entry of a given name from file, include source files in dictionary_Entries. */
-Bool IO_Handler_ReadAllFromFileForceSource( void* io_handler, const char* filename, Dictionary* dictionary )
+Bool IO_Handler_ReadAllFromFileForceSource( void* io_handler, Name filename, Dictionary* dictionary )
 {
 	IO_Handler* self = (IO_Handler*) io_handler;
 	Index chr_I;
@@ -176,7 +176,7 @@ Bool IO_Handler_ReadAllFromFileForceSour
 }
 
 /** Read a dictionary entry of a given name from file */
-Bool IO_Handler_ReadAllFromBuffer( void* io_handler, const char* buffer, Dictionary* dictionary )
+Bool IO_Handler_ReadAllFromBuffer( void* io_handler, Name buffer, Dictionary* dictionary )
 {
 	IO_Handler* self = (IO_Handler*) io_handler;
 
@@ -184,7 +184,7 @@ Bool IO_Handler_ReadAllFromBuffer( void*
 }
 
 /** write a given dictionary entry to file */
-Bool IO_Handler_WriteAllToFile(void* io_handler, const char* filename, Dictionary* dictionary )
+Bool IO_Handler_WriteAllToFile(void* io_handler, Name filename, Dictionary* dictionary )
 {
 	IO_Handler* self = (IO_Handler*) io_handler;
 	return self->_writeAllToFile( self, filename, dictionary );
@@ -353,7 +353,7 @@ Index IO_Handler_ReadAllFilesFromCommand
 Index IO_Handler_ReadAllFilesFromCommandLine( void* ioHandler, int argc, char* argv[], Dictionary* dictionary ) {
 	IO_Handler* self          = (IO_Handler*) ioHandler;
 	Stream*     errorStream   = Journal_Register( Error_Type, CURR_MODULE_NAME );
-	Index       arg_I;
+	int       arg_I;
 	char*       filename;
 	char*       extension;
 	Bool        result;
@@ -388,7 +388,7 @@ Index IO_Handler_ReadAllFilesFromCommand
 Index IO_Handler_ReadAllFilesFromCommandLineForceSource( void* ioHandler, int argc, char* argv[], Dictionary* dictionary ) {
 	IO_Handler* self          = (IO_Handler*) ioHandler;
 	Stream*     errorStream   = Journal_Register( Error_Type, CURR_MODULE_NAME );
-	Index       arg_I;
+	int       arg_I;
 	char*       filename;
 	char*       extension;
 	Bool        result;
@@ -421,7 +421,7 @@ Index IO_Handler_ReadAllFilesFromCommand
 
 void _get_XML(void* ioHandler, char* argv[], int argc) {
 	IO_Handler* self          = (IO_Handler*) ioHandler;
-	Index arg_I;
+	int arg_I;
 	int schema=0;
 	char* name;
 	char* option;
@@ -431,9 +431,9 @@ void _get_XML(void* ioHandler, char* arg
 		option = strrchr( name, '-' );
 		if ( schema == 1 ) { 
 			if ( self->schema==NULL ) {
-				self->schema = malloc( strlen( argv[ arg_I ] ) +1 );
-				strcpy( self->schema, argv[ arg_I ] );
-				schema=0;
+                          self->schema=(char*)malloc( strlen( argv[arg_I] ) +1 );
+                          strcpy( self->schema, argv[ arg_I ] );
+                          schema=0;
 			}
 		}
 		if ( option != NULL ) {
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/IO_Handler.h
--- a/Base/IO/src/IO_Handler.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/IO_Handler.h	Wed May 11 13:26:45 2011 -0700
@@ -44,12 +44,12 @@
 	/* Function pointer interface for inherited classes to use */
 	typedef void (IO_Handler_DeleteFunction) (void* io_handler);
 	typedef void (IO_Handler_PrintFunction) (void* io_handler);
-	typedef Bool (IO_Handler_ReadAllFromFileFunction) (void* io_handler, const char* filename, Dictionary* dictionary );
-	typedef Bool (IO_Handler_ReadAllFromFileForceSourceFunction) (void* io_handler, const char* filename, Dictionary* dictionary );
-	typedef Bool (IO_Handler_ReadAllFromBufferFunction) (void* io_handler, const char* buffer, Dictionary* dictionary );
-	typedef Bool (IO_Handler_WriteAllToFileFunction) (void* io_handler, const char* filename, Dictionary* dictionary );
+	typedef Bool (IO_Handler_ReadAllFromFileFunction) (void* io_handler, Name filename, Dictionary* dictionary );
+	typedef Bool (IO_Handler_ReadAllFromFileForceSourceFunction) (void* io_handler, Name filename, Dictionary* dictionary );
+	typedef Bool (IO_Handler_ReadAllFromBufferFunction) (void* io_handler, Name buffer, Dictionary* dictionary );
+	typedef Bool (IO_Handler_WriteAllToFileFunction) (void* io_handler, Name filename, Dictionary* dictionary );
 	typedef Bool (IO_Handler_DictSetAddValueFunction)
-		( void* io_handler, const char* filename, Dictionary* dictionary, Dictionary_MergeType mergeType );
+		( void* io_handler, Name filename, Dictionary* dictionary, Dictionary_MergeType mergeType );
 	
 	/** Textual name for IO_Handler class */
 	extern const Type IO_Handler_Type;
@@ -113,17 +113,17 @@
 	extern void _IO_Handler_Print( void* io_handler, Stream* stream );
 	
 	/** Read a dictionary entry of a given name from file */
-	extern Bool IO_Handler_ReadAllFromFile( void* io_handler, const char* filename, Dictionary* dictionary );
+	extern Bool IO_Handler_ReadAllFromFile( void* io_handler, Name filename, Dictionary* dictionary );
 	
 	/** Read a dictionary entry of a given name from file, force it to include source file where applicable. */
-	extern Bool IO_Handler_ReadAllFromFileForceSource( void* io_handler, const char* filename, Dictionary* dictionary );
+	extern Bool IO_Handler_ReadAllFromFileForceSource( void* io_handler, Name filename, Dictionary* dictionary );
 	
 	/** Read a dictionary entry of a given name from buffer */
-	extern Bool IO_Handler_ReadAllFromBuffer( void* io_handler, const char* buffer, Dictionary* dictionary );
+	extern Bool IO_Handler_ReadAllFromBuffer( void* io_handler, Name buffer, Dictionary* dictionary );
 	
 	/** Write a given dictionary entry to file */
 	/* TODO: option to overwrite / update */
-	extern Bool IO_Handler_WriteAllToFile( void* io_handler, const char* filename, Dictionary* dictionary );
+	extern Bool IO_Handler_WriteAllToFile( void* io_handler, Name filename, Dictionary* dictionary );
 	
 	/** Set/add entry to dictionary given parent */
 	extern Dictionary_Entry_Value* IO_Handler_DictSetAddValue( 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/IndentFormatter.c
--- a/Base/IO/src/IndentFormatter.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/IndentFormatter.c	Wed May 11 13:26:45 2011 -0700
@@ -139,11 +139,11 @@ void _IndentFormatter_Print( void* forma
 	_LineFormatter_Print( formatter, stream );
 }
 
-void* _IndentFormatter_Copy( void* indentFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _IndentFormatter_Copy( const void* indentFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	IndentFormatter*	self = (IndentFormatter*)indentFormatter;
 	IndentFormatter*	newIndentFormatter;
 	
-	newIndentFormatter = _LineFormatter_Copy( self, dest, deep, nameExt, ptrMap );
+	newIndentFormatter = (IndentFormatter*)_LineFormatter_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	IndentFormatter_SetIndent( newIndentFormatter, self->_indent );
 	
@@ -184,7 +184,7 @@ void IndentFormatter_Zero( void* formatt
 
 void IndentFormatter_MakeTag( IndentFormatter* formatter )
 {
-	int i;
+	Index i;
 	
 	/* Release previous tag if existing. */
 	if ( formatter->_tag != NULL )
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/IndentFormatter.h
--- a/Base/IO/src/IndentFormatter.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/IndentFormatter.h	Wed May 11 13:26:45 2011 -0700
@@ -97,7 +97,7 @@
 	void _IndentFormatter_Print( void* formatter, Stream* stream );
 
 	/** Copy implementation. */
-	void* _IndentFormatter_Copy( void* indentFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _IndentFormatter_Copy( const void* indentFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 
 	/** Set the value of indentation. */
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Init.h
--- a/Base/IO/src/Init.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Init.h	Wed May 11 13:26:45 2011 -0700
@@ -50,7 +50,7 @@
 
 	extern Stream* stgErrorStream;
 
-	Bool      IO_Init( int* argc, char** argv[] );
+	Bool      BaseIO_Init( int* argc, char** argv[] );
 	
 #endif /* __StGermain_Base_IO_Init_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Journal.c
--- a/Base/IO/src/Journal.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Journal.c	Wed May 11 13:26:45 2011 -0700
@@ -77,19 +77,19 @@ const Type ErrorStream_Type = "error";
 const Type ErrorStream_Type = "error";
 
 /* Parsing constants for Dictionary reading. */
-const char* JOURNAL_DELIMITER = ".";
-const char* JOURNAL_KEY = "journal";
-const char* JOURNAL_ENABLE_KEY = "journal";
-const char* JOURNAL_ENABLE_BRANCH_KEY = "journal-enable-branch";
-const char* JOURNAL_LEVEL_KEY = "journal-level";
-const char* JOURNAL_LEVEL_BRANCH_KEY = "journal-level-branch";
-const char* JOURNAL_FILE_KEY = "journal-file";
-const char* JOURNAL_RANK_KEY = "journal-rank";
-const char* JOURNAL_FLUSH_KEY = "journal-autoflush";
-const char* JOURNAL_MPI_OFFSET_KEY = "journal-mpi-offset";
+Name JOURNAL_DELIMITER = ".";
+Name JOURNAL_KEY = "journal";
+Name JOURNAL_ENABLE_KEY = "journal";
+Name JOURNAL_ENABLE_BRANCH_KEY = "journal-enable-branch";
+Name JOURNAL_LEVEL_KEY = "journal-level";
+Name JOURNAL_LEVEL_BRANCH_KEY = "journal-level-branch";
+Name JOURNAL_FILE_KEY = "journal-file";
+Name JOURNAL_RANK_KEY = "journal-rank";
+Name JOURNAL_FLUSH_KEY = "journal-autoflush";
+Name JOURNAL_MPI_OFFSET_KEY = "journal-mpi-offset";
 
-const char* JOURNAL_ON = "on";
-const char* JOURNAL_OFF = "off";
+Name JOURNAL_ON = "on";
+Name JOURNAL_OFF = "off";
 
 
 static const int JOURNAL_START_SIZE = 16;	/**< Initial size of lists in Journal. */
@@ -99,7 +99,7 @@ static const int JOURNAL_DELTA_SIZE = 8;
 /** Retrieves the given named stream. Dotted-decimal notation may be used to get sub streams.
  ** If the stream does not exists, a new stream is created from the parent stream.
  **/
-Stream* Journal_GetNamedStream( Stream* typedStream, const Name name );
+Stream* Journal_GetNamedStream( Stream* typedStream, Name name );
 
 
 Journal* Journal_New()
@@ -138,7 +138,7 @@ void Journal_Delete() {
 }
 
 void Journal_Purge() {
-	int i;
+	Index i;
 	
 	Stg_ObjectList_DeleteAllObjects( stJournal->_typedStreams );
 
@@ -414,7 +414,7 @@ Stream* Journal_GetTypedStream( const Ty
 	return typedStream;
 }
 
-Stream* Journal_GetNamedStream( Stream* typedStream, const Name name )
+Stream* Journal_GetNamedStream( Stream* typedStream, Name name )
 {
 	Stream* currentStream ;
 	char* nameCopy;
@@ -441,7 +441,7 @@ Stream* Journal_GetNamedStream( Stream* 
 	return currentStream;
 }
 
-Stream* Journal_Register( const Type type, const Name name )
+Stream* Journal_Register( const Type type, Name name )
 {
 	Stream* typedStream = NULL;
 	Stream* namedStream = NULL;
@@ -452,7 +452,7 @@ Stream* Journal_Register( const Type typ
 	return namedStream;
 }
 
-Stream* Journal_Register2( const Type streamType, const Type componentType, const Name componentName ) {
+Stream* Journal_Register2( const Type streamType, const Type componentType, Name componentName ) {
 	Stream* componentStream;
 	Stream* instanceStream;
 	componentStream = Journal_Register( streamType, componentType );
@@ -461,7 +461,7 @@ Stream* Journal_Register2( const Type st
 	return instanceStream;
 }
 
-JournalFile* Journal_GetFile( const Name fileName )
+JournalFile* Journal_GetFile( Name fileName )
 {
 	return (JournalFile*) Stg_ObjectList_Get( stJournal->_files, fileName );
 }
@@ -499,7 +499,7 @@ void Journal_Enable_AllTypedStream( Bool
 	Journal_Enable_TypedStream( Error_Type, enable );
 }
 
-void Journal_Enable_NamedStream( const Type type, const Name name, Bool enable )
+void Journal_Enable_NamedStream( const Type type, Name name, Bool enable )
 {
 	Stream* stream = Journal_Register( type, name );
 	Stream_Enable( stream, enable );
@@ -508,7 +508,7 @@ void Journal_PrintConcise()
 void Journal_PrintConcise()
 {
 	Stream* stream;
-	int i;
+	Index i;
 	
 	if ( stJournal == NULL )
 	{
@@ -538,7 +538,7 @@ void Journal_PrintConcise()
 	Journal_Printf( stream, "\n" );
 }
 
-int Journal_Printf( void* _stream, const char* const fmt, ... )
+int Journal_Printf( void* _stream, Name fmt, ... )
 {
 	int result;
 	Stream* stream = (Stream*)_stream;
@@ -559,7 +559,7 @@ int Journal_Printf( void* _stream, const
 	return result;
 }
 
-int Journal_PrintfL( void* _stream, JournalLevel level, const char* const fmt, ... )
+int Journal_PrintfL( void* _stream, JournalLevel level, Name fmt, ... )
 {
 	int result;
 	Stream* stream = (Stream*)_stream;
@@ -580,9 +580,9 @@ int Journal_PrintfL( void* _stream, Jour
 }
 /*
 int Journal_Firewall_Func( int expression, char* expressionText, 
-	const char* file, const char* func, int line, void* _stream, char* fmt, ... )
+	Name file, const char* func, int line, void* _stream, char* fmt, ... )
 */
-int Journal_Firewall( int expression, void* _stream, const char* const fmt, ... )
+int Journal_Firewall( int expression, void* _stream, Name fmt, ... )
 {
 	int result = 0;
 	Stream* stream = (Stream*)_stream;
@@ -642,14 +642,14 @@ int Journal_Firewall( int expression, vo
 	return result;	
 }
 
-SizeT Journal_Write( void* _stream, void* data, SizeT elem_size, SizeT num_elems )
+SizeT Journal_Write( void* _stream, const void* data, SizeT elem_size, SizeT num_elems )
 {
 	Stream* stream = (Stream*)_stream;
 
 	return Stream_Write( stream, data, elem_size, num_elems );
 }
 
-Bool Journal_Dump( void* _stream, void* data )
+Bool Journal_Dump( void* _stream, const void* data )
 {
 	Stream* stream = (Stream*)_stream;
 
@@ -658,7 +658,7 @@ Bool Journal_Dump( void* _stream, void* 
 
 
 /* Only rank 0 will print to stream */
-int Journal_RPrintf ( void* _stream, const char* const fmt, ... )
+int Journal_RPrintf ( void* _stream, Name const fmt, ... )
 {
 	Stream* stream = (Stream*)_stream;
 	int result, init_stream_rank;
@@ -683,7 +683,7 @@ int Journal_RPrintf ( void* _stream, con
 }
 
 /* Only rank 0 will print to stream */
-int Journal_RPrintfL ( void* _stream, JournalLevel level, const char* const fmt, ... )
+int Journal_RPrintfL ( void* _stream, JournalLevel level, Name const fmt, ... )
 {
         Stream* stream = (Stream*)_stream;
         int result, init_stream_rank;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Journal.h
--- a/Base/IO/src/Journal.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Journal.h	Wed May 11 13:26:45 2011 -0700
@@ -70,19 +70,19 @@
 	extern const Type DumpStream_Type;	/**< \deprecated Dump stream. */
 	extern const Type ErrorStream_Type;	/**< \deprecated Error stream. */
 
-	extern const char* JOURNAL_DELIMITER;
-	extern const char* JOURNAL_KEY;
-	extern const char* JOURNAL_ENABLE_KEY;
-	extern const char* JOURNAL_ENABLE_BRANCH_KEY;
-	extern const char* JOURNAL_LEVEL_KEY;
-	extern const char* JOURNAL_LEVEL_BRANCH_KEY;
-	extern const char* JOURNAL_FILE_KEY;
-	extern const char* JOURNAL_RANK_KEY;
-	extern const char* JOURNAL_FLUSH_KEY;
-	extern const char* JOURNAL_MPI_OFFSET_KEY;
+	extern Name JOURNAL_DELIMITER;
+	extern Name JOURNAL_KEY;
+	extern Name JOURNAL_ENABLE_KEY;
+	extern Name JOURNAL_ENABLE_BRANCH_KEY;
+	extern Name JOURNAL_LEVEL_KEY;
+	extern Name JOURNAL_LEVEL_BRANCH_KEY;
+	extern Name JOURNAL_FILE_KEY;
+	extern Name JOURNAL_RANK_KEY;
+	extern Name JOURNAL_FLUSH_KEY;
+	extern Name JOURNAL_MPI_OFFSET_KEY;
 
-	extern const char* JOURNAL_ON;
-	extern const char* JOURNAL_OFF;
+	extern Name JOURNAL_ON;
+	extern Name JOURNAL_OFF;
 
 	/** \def __Journal See Journal. */
 	#define __Journal \
@@ -124,7 +124,7 @@
 	 **
 	 ** It is possible to provide a dotted-decimal name to retrive a sub stream.
 	 **/
-	Stream* Journal_Register( const Type streamType, const Name name );	
+	Stream* Journal_Register( const Type streamType, Name name );	
 	
 	/** Designed for components to have their own stream.
 	 ** If the instance does not exist, a new stream is created as a duplicate of the typed stream.
@@ -132,14 +132,14 @@
 	 ** @param componentType The type of the component
 	 ** @param componentName The name of the component
 	 **/
-	Stream* Journal_Register2( const Type streamType, const Type componentType, const Name componentName );	
+	Stream* Journal_Register2( const Type streamType, const Type componentType, Name componentName );	
 
 	/** Shortcut for objects and components to retrive their own stream */
 	#define Journal_MyStream( streamType, component ) \
 		Journal_Register2( (streamType), (component)->type, (component)->name )
 
 	/** Returns a registered file from the system. If the file does not exist, NULL is returned. */
-	JournalFile* Journal_GetFile( const Name fileName );
+	JournalFile* Journal_GetFile( Name fileName );
 
 	/** Registers a file with the Journal system. If the argument is NULL, no operation is performed. */
 	void Journal_RegisterFile( JournalFile* newFile );
@@ -159,19 +159,19 @@
 	 ** If enabling, this will enable all parent streams to ensure output is possible.
 	 ** Dotted-decimal notation is available to access sub streams. 
 	 **/
-	void Journal_Enable_NamedStream( const Type type, const Name name, Bool enable );
+	void Journal_Enable_NamedStream( const Type type, Name name, Bool enable );
 
 	/** Prints a summary of the status of each stream in Journal */
 	void Journal_PrintConcise();
 
 	/** Performs a printf() with the given stream. */
-	int Journal_Printf( void* _stream, const char* const fmt, ... );
+	int Journal_Printf( void* _stream, Name fmt, ... );
 
 	/** Performs a printf() with the given stream and level of printing.
 	 **
 	 ** Output is only produced if the stream's level of printing is equal or greater.
 	 **/
-	int Journal_PrintfL( void* _stream, JournalLevel level, const char* const fmt, ... );
+	int Journal_PrintfL( void* _stream, JournalLevel level, Name fmt, ... );
 	
 	#ifdef DEBUG
 		/** Performs a Journal_Printf() only if DEBUG is defined. */
@@ -205,7 +205,7 @@
 	 **/
 	/* 
 	int Journal_Firewall_Func( int expression, char* expressionText, 
-		const char* file, const char* func, int line, void* stream, char* fmt, ... );
+		Name file, const char* func, int line, void* stream, char* fmt, ... );
 	*/
 	
 	/** Macro for calling Journal_Firewall()
@@ -223,7 +223,7 @@
 	*/
 	
 	/* Temporary revert back to old protoype to avoid compilation issues. Need to fix. */
-	int Journal_Firewall( int expression, void* stream, const char* const fmt, ... );
+	int Journal_Firewall( int expression, void* stream, Name fmt, ... );
 	
 	#ifdef DEBUG
 		/** Performs a Journal_Firewall() only if DEBUG is defined. */
@@ -241,13 +241,13 @@
 	 ** @param elem_size The size of each element in the block.
 	 ** @param num_elems The number of elements in this array.
 	 **/
-	SizeT Journal_Write( void* stream, void* data, SizeT elem_size, SizeT num_elems );
+	SizeT Journal_Write( void* stream, const void* data, SizeT elem_size, SizeT num_elems );
 
 	/** Performs a dump depending on the implemenation of the given stream. */
-	Bool Journal_Dump( void* stream, void* data );
+	Bool Journal_Dump( void* stream, const void* data );
 
-	int Journal_RPrintf ( void* _stream, const char* const fmt, ... );
-	int Journal_RPrintfL ( void* _stream, JournalLevel level, const char* const fmt, ... );
+	int Journal_RPrintf ( void* _stream, Name const fmt, ... );
+	int Journal_RPrintfL ( void* _stream, JournalLevel level, Name const fmt, ... );
 
 	/** Set up the default type streams expected throughout StGermain */
 	void Journal_SetupDefaultTypedStreams();
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/JournalFile.h
--- a/Base/IO/src/JournalFile.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/JournalFile.h	Wed May 11 13:26:45 2011 -0700
@@ -59,8 +59,8 @@
 	extern const Type JournalFile_Type;
 
 	typedef JournalFile* (JournalFile_Constructor) (void);
-	typedef Bool (JournalFile_OpenFunction) (void* file, const char* const fileName );
-	typedef Bool (JournalFile_AppendFunction) (void* file, const char* const fileName );
+	typedef Bool (JournalFile_OpenFunction) (void* file, Name const fileName );
+	typedef Bool (JournalFile_AppendFunction) (void* file, Name const fileName );
 	typedef Bool (JournalFile_CloseFunction) (void* file );
 	typedef Bool (JournalFile_FlushFunction) (void* file );
 		
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/LineFormatter.c
--- a/Base/IO/src/LineFormatter.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/LineFormatter.c	Wed May 11 13:26:45 2011 -0700
@@ -102,12 +102,12 @@ void _LineFormatter_Print( void* formatt
 	/* print _newLine and _tag */
 }
 
-void* _LineFormatter_Copy( void* lineFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _LineFormatter_Copy( const void* lineFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	LineFormatter*	self = (LineFormatter*)lineFormatter;
 	LineFormatter*	newLineFormatter;
 	
 	/* Create new instance. Copy virtual info */
-	newLineFormatter = _StreamFormatter_Copy( self, dest, deep, nameExt, ptrMap );
+	newLineFormatter = (LineFormatter*)_StreamFormatter_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	/* Copy member info. */
 	newLineFormatter->_newLine = self->_newLine;
@@ -121,11 +121,11 @@ void* _LineFormatter_Copy( void* lineFor
 	return newLineFormatter;
 }
 
-const char* _LineFormatter_Format( void* formatter, const char* fmt )
+Name _LineFormatter_Format( void* formatter, const char* fmt )
 {
 	LineFormatter* self = (LineFormatter*)formatter;
 	char* result;
-	char* currentLine;
+	Name currentLine;
 	int numInsert;
 	int fmtLength;
 	int prependLength;
@@ -133,7 +133,7 @@ const char* _LineFormatter_Format( void*
 
 			
 	char* destPtr;
-	const char* srcPtr;
+	Name srcPtr;
 		
 	#if DEBUG
 		assert( self );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/LineFormatter.h
--- a/Base/IO/src/LineFormatter.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/LineFormatter.h	Wed May 11 13:26:45 2011 -0700
@@ -92,11 +92,11 @@
 	#define LineFormatter_DeepCopy( self ) \
 		(LineFormatter*)Stg_Class_Copy( self, NULL, True, NULL, NULL )
 	
-	void* _LineFormatter_Copy( void* lineFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _LineFormatter_Copy( const void* lineFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 
 	/** Formats a output string of printf by prepending a tag in front of every line detected. */
-	const char* _LineFormatter_Format( void* formatter, const char* const fmt );
+	Name _LineFormatter_Format( void* formatter, const char* const fmt );
 
 
 #endif /* __StGermain_Base_IO_LineFormatter_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/MPIFile.c
--- a/Base/IO/src/MPIFile.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/MPIFile.c	Wed May 11 13:26:45 2011 -0700
@@ -116,7 +116,7 @@ void _MPIFile_Print( void* cfile, Stream
 }
 
 	
-Bool _MPIFile_Open( void* file, const char* const fileName )
+Bool _MPIFile_Open( void* file, Name const fileName )
 {
 	MPIFile*   self = (MPIFile*) file;
 	int        fileOpenResult = 0;
@@ -144,7 +144,7 @@ Bool _MPIFile_Open( void* file, const ch
 	return True;	
 }
 	
-Bool _MPIFile_Append( void* file, const char* const fileName )
+Bool _MPIFile_Append( void* file, Name const fileName )
 {
 	MPIFile*   self = (MPIFile*) file;
 	int        fileOpenResult = 0;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/MPIFile.h
--- a/Base/IO/src/MPIFile.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/MPIFile.h	Wed May 11 13:26:45 2011 -0700
@@ -91,10 +91,10 @@
 	
 	
 	/** Implementation for Open function. */
-	Bool _MPIFile_Open( void* file, const char* const fileName );
+	Bool _MPIFile_Open( void* file, Name const fileName );
 
 	/** Implementation for Append function. */
-	Bool _MPIFile_Append( void* file, const char* const fileName );
+	Bool _MPIFile_Append( void* file, Name const fileName );
 
 	/** Implementation for Close function. */
 	Bool _MPIFile_Close( void* file );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/MPIStream.c
--- a/Base/IO/src/MPIStream.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/MPIStream.c	Wed May 11 13:26:45 2011 -0700
@@ -149,13 +149,13 @@ SizeT _MPIStream_Printf( Stream* stream,
 	return 0;
 }
 	
-SizeT _MPIStream_Write( Stream* stream, void *data, SizeT elem_size, SizeT num_elems )
+SizeT _MPIStream_Write( Stream* stream, const void *data, SizeT elem_size, SizeT num_elems )
 {
 	MPIStream* self = (MPIStream*)stream;
 	MPI_Status status;
 	int   writeResult;
 	
-	writeResult = MPI_File_write( *(MPI_File*)(self->_file->fileHandle), data, num_elems * elem_size,
+	writeResult = MPI_File_write( *(MPI_File*)(self->_file->fileHandle), (void*)data, num_elems * elem_size,
 		 			MPI_BYTE, &status );
 
 	if (writeResult != MPI_SUCCESS) {
@@ -174,7 +174,7 @@ SizeT _MPIStream_Write( Stream* stream, 
 	return num_elems;
 }
 	
-Bool _MPIStream_Dump( Stream* stream, void *data )
+Bool _MPIStream_Dump( Stream* stream, const void *data )
 {
 	/* No specific dumping mechanism, can create in derived classes */
 	return False;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/MPIStream.h
--- a/Base/IO/src/MPIStream.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/MPIStream.h	Wed May 11 13:26:45 2011 -0700
@@ -91,10 +91,10 @@
 	SizeT _MPIStream_Printf( Stream* stream, const char *fmt, va_list args );
 	
 	/** Write() implementation. */
-	SizeT _MPIStream_Write( Stream* stream, void *data, SizeT elem_size, SizeT num_elems );
+	SizeT _MPIStream_Write( Stream* stream, const void *data, SizeT elem_size, SizeT num_elems );
 	
 	/** Dump() implementation. Performs no operation for MPIStreams. */
-	Bool _MPIStream_Dump( Stream* stream, void *data );
+	Bool _MPIStream_Dump( Stream* stream, const void *data );
 	
 	/** SetFile() implementation. */
 	Bool _MPIStream_SetFile( Stream* stream, JournalFile* file );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/PathUtils.c
--- a/Base/IO/src/PathUtils.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/PathUtils.c	Wed May 11 13:26:45 2011 -0700
@@ -20,10 +20,10 @@
 #include "PathUtils.h"
 
 
-static const char*      joiner = "/";
+static Name      joiner = "/";
 
 
-void FindFile( char* fullPath, const char* filename, const char* searchPaths ) {
+void FindFile( char* fullPath, Name filename, const char* searchPaths ) {
 	char*   spaths;
 	char*   pos;
 	FILE*   f;
@@ -128,13 +128,13 @@ char* ExpandEnvironmentVariables( char* 
 	char* variableEnd;		/* ptr to position after end of variable text */
 	char* nameBegin;		/* ptr to where name of variable starts */
 	char* nameEnd;			/* ptr to position of the last character in variable name */
-	char* endChars = NULL;	/* list of characters which indicate an end of variable */
+	Name endChars = NULL;	/* list of characters which indicate an end of variable */
 
 	char* current;			/* current position in string */
 	char* endOfString;		/* pointer to end of string */
 
 	char envName[256];		/* name of environment variable */
-	char* envValue;			/* the value of the environment variable */
+	Name envValue;		/* the value of the environment variable */
 
 	int length;			/* current length of result string */
 	int nameLength;			/* length of the variable name */
@@ -234,7 +234,7 @@ char* ExpandEnvironmentVariables( char* 
 			envValue = "";
 		}
 
-		if ( strlen( envValue ) > ( variableEnd - variableBegin ) ) {
+		if ( strlen( envValue ) > (unsigned)( variableEnd - variableBegin ) ) {
 			length += strlen( envValue ) - ( variableEnd - variableBegin );
 			result = Memory_Realloc_Array( result, char, length + 1 );
 		}
@@ -268,7 +268,7 @@ char* ExpandEnvironmentVariables( char* 
 	return result;
 }
 
-char* ParentDirectory( const char* path ) {
+char* ParentDirectory( Name path ) {
 	char* result;
 	int i, length;
 
@@ -300,7 +300,7 @@ char* ParentDirectory( const char* path 
 	return NULL;
 }
 
-Bool Stg_CreateDirectory( const char* path ) {
+Bool Stg_CreateDirectory( Name path ) {
 	assert( path );
 	
 	if ( ! Stg_DirectoryExists( path ) ) {
@@ -322,28 +322,28 @@ Bool Stg_CreateDirectory( const char* pa
 		ret = mkdir( path, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH );
 #endif
 
-		return ret == 0;
+		return (ret == 0) ? True : False;
 	}
 
 	return True;
 }
 
-Bool Stg_FileExists( const char* path ) {
+Bool Stg_FileExists( Name path ) {
 	struct stat info;
 	assert( path );
 	if ( stat( path, &info ) < 0 ) {
 		return False;
 	}
-        return (info.st_mode & S_IFREG);
+        return (info.st_mode & S_IFREG) ? True : False;
 }
 
-Bool Stg_DirectoryExists( const char* path ) {
+Bool Stg_DirectoryExists( Name path ) {
 	struct stat info;
 	assert( path );
 	if ( stat( path, &info ) < 0 ) {
 		return False;
 	}
-        return (info.st_mode & S_IFDIR);
+        return (info.st_mode & S_IFDIR) ? True : False;
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/PathUtils.h
--- a/Base/IO/src/PathUtils.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/PathUtils.h	Wed May 11 13:26:45 2011 -0700
@@ -36,7 +36,7 @@
  * full path of the chosen file.
  * WARNING: because this function uses fopen() to check the file's existence, then it
  * shouldn't be called by multiple processors simultaneously */
-void FindFile( char* fullPath, const char* filename, const char* searchPaths );
+void FindFile( char* fullPath, Name filename, const char* searchPaths );
 
 Bool FindFileInPathList( char* fullPath, char* filename, char** searchPaths, Index searchPathsSize );
 
@@ -46,12 +46,12 @@ void PathClean( char* outPath, char* inP
 
 char* ExpandEnvironmentVariables( char* string );
 
-char* ParentDirectory( const char* path );
+char* ParentDirectory( Name path );
 
-Bool Stg_CreateDirectory( const char* path );
+Bool Stg_CreateDirectory( Name path );
 
-Bool Stg_FileExists( const char* path );
+Bool Stg_FileExists( Name path );
 
-Bool Stg_DirectoryExists( const char* path );
+Bool Stg_DirectoryExists( Name path );
 
 #endif /* __StGermain_Base_IO_PathUtils_h__ */
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/RankFormatter.c
--- a/Base/IO/src/RankFormatter.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/RankFormatter.c	Wed May 11 13:26:45 2011 -0700
@@ -46,7 +46,7 @@
 
 
 const Type RankFormatter_Type = "RankFormatter";
-const char* PREPEND = ": ";
+Name PREPEND = ": ";
 
 
 StreamFormatter* RankFormatter_New()
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Stream.c
--- a/Base/IO/src/Stream.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Stream.c	Wed May 11 13:26:45 2011 -0700
@@ -109,7 +109,7 @@ void _Stream_Init(
 
 void _Stream_Delete( void* stream )
 {
-	int i;
+	Index i;
 	
 	Stream* self = (Stream*)stream;
 	
@@ -219,12 +219,12 @@ void Stream_PrintConcise( void* stream, 
 }
 
 
-void* _Stream_Copy( void* stream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _Stream_Copy( const void* stream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Stream*		self = (Stream*)stream;
 	Stream*		newStream;
 	unsigned	i;
 	
-	newStream = _Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
+	newStream = (Stream*)_Stg_Object_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	newStream->_printf = self->_printf;
 	newStream->_write = self->_write;
@@ -251,7 +251,7 @@ void* _Stream_Copy( void* stream, void* 
 	
 	IndentFormatter_SetIndent( newStream->_indent, self->_indent->_indent );
 	for ( i = 0; i < self->_formatterCount; ++i ) {
-		Stream_AddFormatter( newStream, Stg_Class_Copy( self->_formatter[i], 0, deep, nameExt, ptrMap ) );
+          Stream_AddFormatter( newStream, (StreamFormatter*)Stg_Class_Copy( self->_formatter[i], 0, deep, nameExt, ptrMap ) );
 		/**set stream for formatter */
 	}
 	
@@ -259,12 +259,12 @@ void* _Stream_Copy( void* stream, void* 
 }
 
 
-SizeT Stream_Printf( Stream *stream, const char const *fmt, va_list args )
+SizeT Stream_Printf( Stream *stream, const char *fmt, va_list args )
 {
-	int i;
+	Index i;
 	SizeT result;
-	const char* lastFormat;
-	const char* currentFormat;
+	Name lastFormat;
+	Name currentFormat;
 
 	if ( stream->_file == NULL ) {
 		return 0;
@@ -292,7 +292,7 @@ SizeT Stream_Printf( Stream *stream, con
 	}
 	return result;
 }
-SizeT Stream_Write( Stream *stream, void *data, SizeT elem_size, SizeT num_elems )
+SizeT Stream_Write( Stream *stream, const void *data, SizeT elem_size, SizeT num_elems )
 {
 	SizeT result;
 
@@ -315,7 +315,7 @@ SizeT Stream_Write( Stream *stream, void
 	return result;
 }
 
-Bool Stream_Dump( Stream *stream, void *data )
+Bool Stream_Dump( Stream *stream, const void *data )
 {
 	Bool result;
 	
@@ -430,7 +430,7 @@ Bool Stream_SetFileBranch( Stream* strea
 Bool Stream_SetFileBranch( Stream* stream, JournalFile* file )
 {
 	Bool result = False;
-	int i;
+	Index i;
 	
 	if ( file == NULL )
 	{
@@ -465,7 +465,7 @@ Bool Stream_IsEnable( void* stream )
 		return self->_enable;
 	}
 	
-	return self->_enable && Stream_IsEnable( self->_parent );
+	return (self->_enable && Stream_IsEnable( self->_parent )) ? True : False;
 }
 
 void Stream_Enable( void* stream, Bool enable )
@@ -481,7 +481,7 @@ void Stream_Enable( void* stream, Bool e
 }
 void Stream_EnableBranch( void* stream, Bool enable )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	self->_enable = enable;
@@ -511,7 +511,7 @@ int Stream_GetPrintingRank( void* stream
 
 void Stream_SetPrintingRankBranch( void* stream, int rank )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	self->_printingRank = rank;
@@ -536,7 +536,7 @@ Bool Stream_GetAutoFlush( void* stream )
 
 void Stream_SetAutoFlushBranch( void* stream, Bool autoFlush )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	self->_autoFlush = autoFlush;
@@ -550,7 +550,7 @@ Bool Stream_IsPrintableLevel( void* stre
 Bool Stream_IsPrintableLevel( void* stream, JournalLevel level )
 {
 	Stream* self = (Stream*) stream;
-	return (self->_level >= level);
+	return (self->_level >= level) ? True : False;
 }
 	
 void Stream_SetLevel( void* stream, JournalLevel level )
@@ -560,7 +560,7 @@ void Stream_SetLevel( void* stream, Jour
 }
 void Stream_SetLevelBranch( void* stream, JournalLevel level )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	self->_level = level;	
@@ -598,7 +598,7 @@ void Stream_ZeroIndent( void* stream )
 
 void Stream_SetIndentBranch( void* stream, Index indent )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	IndentFormatter_SetIndent( self->_indent, indent );
@@ -610,7 +610,7 @@ void Stream_SetIndentBranch( void* strea
 }
 void Stream_IndentBranch( void* stream )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	IndentFormatter_Increment( self->_indent );
@@ -622,7 +622,7 @@ void Stream_IndentBranch( void* stream )
 }
 void Stream_UnIndentBranch( void* stream )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	IndentFormatter_Decrement( self->_indent );
@@ -634,7 +634,7 @@ void Stream_UnIndentBranch( void* stream
 }
 void Stream_ZeroIndentBranch( void* stream )
 {
-	int i;
+	Index i;
 	Stream* self = (Stream*) stream;
 	
 	IndentFormatter_Zero( self->_indent );
@@ -678,7 +678,7 @@ void Stream_ClearCustomFormatters( void*
 }
 
 
-void Stream_SetCurrentInfo( void* stream, const char* const currentSource, const char* const currentFunction, int line )
+void Stream_SetCurrentInfo( void* stream, Name const currentSource, const char* const currentFunction, int line )
 {
 	Stream* self = (Stream*)stream;
 
@@ -699,10 +699,10 @@ Stream* Stream_RegisterChild( void* stre
 	
 	if ( child == NULL )
 	{
-		child = Stg_Class_Copy( self, 0, True, 0, 0 );
-		Stg_Object_SetName( child, name );
-		child->_parent = self;
-		Stg_ObjectList_Append( self->_children, child );
+          child = (Stream*)Stg_Class_Copy( self, 0, True, 0, 0 );
+          Stg_Object_SetName( child, name );
+          child->_parent = self;
+          Stg_ObjectList_Append( self->_children, child );
 	}
 	
 	return child;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/Stream.h
--- a/Base/IO/src/Stream.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/Stream.h	Wed May 11 13:26:45 2011 -0700
@@ -51,9 +51,9 @@
 	/** Textual name for Stream class. */
 	extern const Type Stream_Type;
 
-	typedef SizeT (Stream_PrintfFunction) (Stream* object, const char* fmt, va_list args);
-	typedef SizeT (Stream_WriteFunction) (Stream* object, void* data, SizeT elem_size, SizeT num_elems);
-	typedef Bool (Stream_DumpFunction) (Stream* object, void* data);
+	typedef SizeT (Stream_PrintfFunction) (Stream* object, Name fmt, va_list args);
+	typedef SizeT (Stream_WriteFunction) (Stream* object, const void* data, SizeT elem_size, SizeT num_elems);
+	typedef Bool (Stream_DumpFunction) (Stream* object, const void* data);
 	typedef Bool (Stream_SetFileFunction) ( Stream* object, JournalFile* file );
 
 	/** Indicates all ranks should print. */
@@ -132,16 +132,16 @@
 	void Stream_PrintConcise( void* stream, Stream* paramStream );
 
 	/** Copy interface. */	
-	void* _Stream_Copy( void* stream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _Stream_Copy( const void* stream, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 	
 	/** Performs a printf() on the given stream. */
-	SizeT Stream_Printf( Stream* stream, const char* const fmt, va_list args );
+	SizeT Stream_Printf( Stream* stream, Name const fmt, va_list args );
 
 	/** Performs a write() on the given stream. */
-	SizeT Stream_Write( Stream* stream, void* data, SizeT elem_size, SizeT num_elems );
+	SizeT Stream_Write( Stream* stream, const void* data, SizeT elem_size, SizeT num_elems );
 
 	/** Performs a dump opertion on the given stream. */
-	Bool Stream_Dump( Stream* stream, void* data );
+	Bool Stream_Dump( Stream* stream, const void* data );
 
 	/** Opens a registers a file for this stream if not already opened and assigns it for output
 	    Defaults CFile for now. TODO for next io commit */
@@ -263,8 +263,8 @@
 	 **/
 	void Stream_SetCurrentInfo(
 		void* stream,
-		const char* const currentSource,
-		const char* const currentFunction,
+		Name const currentSource,
+		Name const currentFunction,
 		int line );
 	
 	/** Retrives a sub stream of the given name. If stream does not exist, a new sub stream is created and returned.
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/StreamFormatter.c
--- a/Base/IO/src/StreamFormatter.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/StreamFormatter.c	Wed May 11 13:26:45 2011 -0700
@@ -95,11 +95,11 @@ void _StreamFormatter_Print( void* forma
 	printf( "\t_stream (ptr): %p\n", (void*)self->_stream );
 }
 
-void* _StreamFormatter_Copy( void* streamFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+void* _StreamFormatter_Copy( const void* streamFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	StreamFormatter*	self = (StreamFormatter*)streamFormatter;
 	StreamFormatter*	newStreamFormatter;
 	
-	newStreamFormatter = _Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
+	newStreamFormatter = (StreamFormatter*)_Stg_Class_Copy( self, dest, deep, nameExt, ptrMap );
 	
 	newStreamFormatter->_format = self->_format;
 	newStreamFormatter->_stream = NULL;
@@ -108,7 +108,7 @@ void* _StreamFormatter_Copy( void* strea
 }
 
 
-const char* StreamFormatter_Format( void* formatter, const char* const fmt )
+Name StreamFormatter_Format( void* formatter, const char* const fmt )
 {
 	StreamFormatter* self = (StreamFormatter*)formatter;
 	return self->_format( self, fmt );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/StreamFormatter.h
--- a/Base/IO/src/StreamFormatter.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/StreamFormatter.h	Wed May 11 13:26:45 2011 -0700
@@ -49,7 +49,7 @@
 	/** Textual name for StreamFormatter class. */
 	extern const Type StreamFormatter_Type;
 
-	typedef const char* (StreamFormatter_FormatFunction) ( void* formatter, const char* const fmt );
+	typedef Name (StreamFormatter_FormatFunction) ( void* formatter, const char* const fmt );
 
 	/** \def __StreamFormatter See StreamFormatter */
 	#define __StreamFormatter \
@@ -91,11 +91,11 @@
 	void _StreamFormatter_Print( void* formatter, Stream* stream );
 	
 	/** Copy interface. */	
-	void* _StreamFormatter_Copy( void* streamFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
+	void* _StreamFormatter_Copy( const void* streamFormatter, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap );
 
 
 	/** Formats a Printf() output string. */
-	const char* StreamFormatter_Format( void* formatter, const char* const fmt );
+	Name StreamFormatter_Format( void* formatter, const char* const fmt );
 
 
 	extern StreamFormatter_Buffer* stgStreamFormatter_Buffer;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/XML_IO_Handler.c
--- a/Base/IO/src/XML_IO_Handler.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/XML_IO_Handler.c	Wed May 11 13:26:45 2011 -0700
@@ -108,17 +108,17 @@ typedef struct {
 	Dictionary_Entry_Value_Type dictValueType;
 } ColumnInfo;	
 
-static const char* ASCII_DELIMITERS = " \n\t";
+static Name ASCII_DELIMITERS = " \n\t";
 
 static const unsigned int ASCII_LIST_STRING_BUFFER_SIZE = 1024;
 
 
 /* Reading Function prototypes */
-static xmlNodePtr _XML_IO_Handler_OpenCheckFile( XML_IO_Handler*, const char* );
-static xmlNodePtr _XML_IO_Handler_OpenCheckBuffer( XML_IO_Handler*, const char* );
-static void _XML_IO_Handler_OpenFile( XML_IO_Handler*, const char* );
-static void _XML_IO_Handler_ValidateFile( XML_IO_Handler*, const char* );
-static void _XML_IO_Handler_OpenBuffer( XML_IO_Handler*, const char* );
+static xmlNodePtr _XML_IO_Handler_OpenCheckFile( XML_IO_Handler*, Name );
+static xmlNodePtr _XML_IO_Handler_OpenCheckBuffer( XML_IO_Handler*, Name );
+static void _XML_IO_Handler_OpenFile( XML_IO_Handler*, Name );
+static void _XML_IO_Handler_ValidateFile( XML_IO_Handler*, Name );
+static void _XML_IO_Handler_OpenBuffer( XML_IO_Handler*, Name );
 static Bool _XML_IO_Handler_Check( XML_IO_Handler*, xmlDocPtr currDoc );
 static void _XML_IO_Handler_ParseNodes( XML_IO_Handler*, xmlNodePtr, Dictionary_Entry_Value*, 
 					Dictionary_MergeType, Dictionary_Entry_Source source );
@@ -146,21 +146,21 @@ static void _XML_IO_Handler_ParseCompone
 					Dictionary_MergeType, Dictionary_Entry_Source );
 static Dictionary_Entry_Value_Type _XML_IO_Handler_GetDictValueType( XML_IO_Handler* self, char* type );
 static Dictionary_MergeType _XML_IO_Handler_GetMergeType( XML_IO_Handler* self, const xmlChar* mergeTypeStr, 
-		const char* funcName, const char* tagStr, xmlChar* entryName, Dictionary_MergeType defaultMergeType );
+		Name funcName, const char* tagStr, xmlChar* entryName, Dictionary_MergeType defaultMergeType );
 static xmlChar* _XML_IO_Handler_StripLeadingTrailingWhiteSpace( XML_IO_Handler* self, const xmlChar* const );
 static Bool _XML_IO_Handler_IsOnlyWhiteSpace( char* );
 /* Writing Function prototypes */
 static void _XML_IO_Handler_WriteDictionary( XML_IO_Handler*, Dictionary*, xmlNodePtr);
-static void _XML_IO_Handler_WriteNode( XML_IO_Handler*, char*, Dictionary_Entry_Value*, char*, xmlNodePtr);
-static void _XML_IO_Handler_WriteList( XML_IO_Handler*, char*, Dictionary_Entry_Value*, char*, xmlNodePtr);
+static void _XML_IO_Handler_WriteNode( XML_IO_Handler*, Name, Dictionary_Entry_Value*, const char*, xmlNodePtr);
+static void _XML_IO_Handler_WriteList( XML_IO_Handler*, Name, Dictionary_Entry_Value*, const char*, xmlNodePtr);
 static void _XML_IO_Handler_WriteListElementsXML( XML_IO_Handler*, Dictionary_Entry_Value*, xmlNodePtr);
 static Bool _XML_IO_Handler_CheckListCanBePrintedRaw( Dictionary_Entry_Value* );
 static void _XML_IO_Handler_WriteListElementsRawASCII( XML_IO_Handler*, Dictionary_Entry_Value*, xmlNodePtr);
 static unsigned int _XML_IO_Handler_GetWrittenElementSize( XML_IO_Handler*, Dictionary_Entry_Value* );
 static void _XML_IO_Handler_WriteMemberAscii( XML_IO_Handler*, Dictionary_Entry_Value*, char* );
 static void _XML_IO_Handler_WriteListElementsRawBinary( XML_IO_Handler*, Dictionary_Entry_Value*, xmlNodePtr);
-static void _XML_IO_Handler_WriteStruct( XML_IO_Handler*, char*, Dictionary_Entry_Value*, char*, xmlNodePtr);
-static void _XML_IO_Handler_WriteParameter( XML_IO_Handler*, char*, Dictionary_Entry_Value*, char*, xmlNodePtr);
+static void _XML_IO_Handler_WriteStruct( XML_IO_Handler*, Name, Dictionary_Entry_Value*, const char*, xmlNodePtr);
+static void _XML_IO_Handler_WriteParameter( XML_IO_Handler*, Name, Dictionary_Entry_Value*, const char*, xmlNodePtr);
 
 
 XML_IO_Handler* XML_IO_Handler_New( void ) {
@@ -233,8 +233,8 @@ XML_IO_Handler* XML_IO_Handler_New_Schem
 
 	newHandler->validate = old->validate;
 	if ( old->schema != NULL ) {
-		newHandler->schema = malloc( strlen( old->schema ) +1 );
-		strcpy( newHandler->schema, old->schema );
+          newHandler->schema = (char*)malloc( strlen( old->schema ) +1 );
+          strcpy( newHandler->schema, old->schema );
 	}
 	return newHandler;
 }
@@ -269,7 +269,7 @@ static void LookupTypePrint( void* ptr, 
 	}
 }
 
-static void* LookupTypeCopy( void* ptr, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
+static void* LookupTypeCopy( const void* ptr, void* dest, Bool deep, Name nameExt, struct PtrMap* ptrMap ) {
 	Dictionary_Entry_Value_Type* newLookupType;
 	
 	Journal_Firewall( deep, Journal_Register( Error_Type, XML_IO_Handler_Type ), "Shallow copy not yet implemented\n" );
@@ -361,7 +361,7 @@ void _XML_IO_Handler_Delete( void* xml_i
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
 	NameSpaceInfo* currNameSpaceInfo;
 
-	int ii;
+	Index ii;
 
 	assert( self );
 	
@@ -468,7 +468,7 @@ void _XML_IO_Handler_SetWriteExplicitTyp
 
 
 /** adds a namespace to the list of those that will be checked against when reading a file */
-void _XML_IO_Handler_AddNameSpace( void* xml_io_handler, char* location, char* version )
+void _XML_IO_Handler_AddNameSpace( void* xml_io_handler, Name location, const char* version )
 {
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
 	NameSpaceInfo* newNameSpaceInfo = Memory_Alloc( NameSpaceInfo, "XML_IO_Handler->nameSpaceList" );
@@ -498,7 +498,7 @@ void XML_IO_Handler_AddDirectory( Name n
 	/* Add path to global list */
 	found = False;
 	for( dir_i =  0; dir_i < Project_XMLSearchPaths->count; dir_i++ ){
-		if( strcmp( directory, Stg_ObjectList_ObjectAt( Project_XMLSearchPaths, dir_i ) ) == 0 ) {
+          if( strcmp( directory, (char*)Stg_ObjectList_ObjectAt( Project_XMLSearchPaths, dir_i ) ) == 0 ) {
 			found = True;
 		}
 	}
@@ -508,7 +508,7 @@ void XML_IO_Handler_AddDirectory( Name n
 	}
 }	
 /** add a path to the search paths */
-void _XML_IO_Handler_AddSearchPath( void* xml_io_handler, char* path ) {
+void _XML_IO_Handler_AddSearchPath( void* xml_io_handler, Name path ) {
 	XML_IO_Handler*		self = (XML_IO_Handler*)xml_io_handler;
 
 	if ( !path ) {
@@ -529,7 +529,7 @@ void _XML_IO_Handler_AddSearchPath( void
 
 /** Read all parameters from a file implementation. See IO_Handler_ReadAllFromFile(). It will first check if the file
  * exists, and contains valid XML. */
-Bool _XML_IO_Handler_ReadAllFromFile( void* xml_io_handler, const char* filename, Dictionary* dictionary ) {
+Bool _XML_IO_Handler_ReadAllFromFile( void* xml_io_handler, Name filename, Dictionary* dictionary ) {
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
 	xmlNodePtr rootElement = NULL;
 	xmlNodePtr firstElement = NULL;
@@ -554,7 +554,7 @@ Bool _XML_IO_Handler_ReadAllFromFile( vo
           /* $PWD does not work for all ranks, in all mpi implementations
              "./" however does so far.
              char* pwd = getenv( "PWD" ); */
-		char* pwd = "./";
+		Name pwd = "./";
 		if ( pwd != NULL ) {
 			_XML_IO_Handler_AddSearchPath( self, pwd );
 		}
@@ -568,11 +568,11 @@ Bool _XML_IO_Handler_ReadAllFromFile( vo
 
 	/* 3. XML paths from other projects */
 	if (Project_XMLSearchPaths != NULL) {
-		int index_I;
+		Index index_I;
 		for (index_I = 0; index_I  < Project_XMLSearchPaths->count; index_I++){
 			_XML_IO_Handler_AddSearchPath( 
 					self, 
-					Stg_ObjectList_ObjectAt( Project_XMLSearchPaths,index_I )
+					(char*)Stg_ObjectList_ObjectAt( Project_XMLSearchPaths,index_I )
 				); 
 		}
 	}
@@ -625,7 +625,7 @@ Bool _XML_IO_Handler_ReadAllFromFile( vo
 /** Read all parameters from a file implementation. See IO_Handler_ReadAllFromFile(). It will first check if the file
  * exists, and contains valid XML. 
  * FORCES the source file to be added to each Dictionary_Entry_Source (even if XML didn't have a source entry)*/
-Bool _XML_IO_Handler_ReadAllFromFileForceSource( void* xml_io_handler, const char* filename, Dictionary* dictionary ) {
+Bool _XML_IO_Handler_ReadAllFromFileForceSource( void* xml_io_handler, Name filename, Dictionary* dictionary ) {
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
 	xmlNodePtr rootElement = NULL;
 	xmlNodePtr firstElement = NULL;
@@ -663,7 +663,7 @@ Bool _XML_IO_Handler_ReadAllFromFileForc
 	return True;
 }
 
-Bool _XML_IO_Handler_ReadAllFromBuffer( void* xml_io_handler, const char* buffer, Dictionary* dictionary ) {
+Bool _XML_IO_Handler_ReadAllFromBuffer( void* xml_io_handler, Name buffer, Dictionary* dictionary ) {
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
 	xmlNodePtr rootElement = NULL;
 
@@ -691,7 +691,7 @@ Bool _XML_IO_Handler_ReadAllFromBuffer( 
 
 /** Opens a file for reading and checks it contains valid XML code.
  * \return a pointer to the root node if the file is valid, NULL otherwise. */
-static xmlNodePtr _XML_IO_Handler_OpenCheckFile( XML_IO_Handler* self, const char* filename )
+static xmlNodePtr _XML_IO_Handler_OpenCheckFile( XML_IO_Handler* self, Name filename )
 {
    xmlChar		absolute[1024];
    xmlNodePtr	cur = NULL;
@@ -735,7 +735,7 @@ static xmlNodePtr _XML_IO_Handler_OpenCh
       return NULL; 
 }
 
-static xmlNodePtr _XML_IO_Handler_OpenCheckBuffer( XML_IO_Handler* self, const char* buffer ) {
+static xmlNodePtr _XML_IO_Handler_OpenCheckBuffer( XML_IO_Handler* self, Name buffer ) {
 	xmlNodePtr   rootElement = NULL;
 
 	_XML_IO_Handler_OpenBuffer( self, buffer );
@@ -780,7 +780,7 @@ static void _processNode(xmlTextReaderPt
 }
 #endif
 
-static void _XML_IO_Handler_ValidateFile( XML_IO_Handler* self, const char* filename ) {
+static void _XML_IO_Handler_ValidateFile( XML_IO_Handler* self, Name filename ) {
 	#ifdef LIBXML_VERSION 
 	#if LIBXML_VERSION == 20631
 	xmlTextReaderPtr reader;
@@ -797,7 +797,7 @@ static void _XML_IO_Handler_ValidateFile
 		int i;
 		for (i=0; nsArray[i] != NULL; i++ ) {
 			//if ( *(self->validate) == 1 )
-				//valid = xmlTextReaderSchemaValidate( reader, (const char*) nsArray[i]->href );
+				//valid = xmlTextReaderSchemaValidate( reader, (Name) nsArray[i]->href );
 		}
 
 
@@ -839,7 +839,7 @@ static void _XML_IO_Handler_ValidateFile
     //xmlFree ( reader );
 }
 
-static void _XML_IO_Handler_OpenFile( XML_IO_Handler* self, const char* filename ) {
+static void _XML_IO_Handler_OpenFile( XML_IO_Handler* self, Name filename ) {
 	/* open an XML file and build an XML tree from it. */
 	/* TODO: validate against simple dtd? */
 	
@@ -854,7 +854,7 @@ static void _XML_IO_Handler_OpenFile( XM
 
 }
 
-static void _XML_IO_Handler_OpenBuffer( XML_IO_Handler* self, const char* buffer ) {
+static void _XML_IO_Handler_OpenBuffer( XML_IO_Handler* self, Name buffer ) {
 	self->currDoc = xmlParseDoc( BAD_CAST buffer );
 	if ( self->resource ) {
 		Memory_Free( self->resource );
@@ -884,7 +884,7 @@ Bool _XML_IO_Handler_Check( XML_IO_Handl
 			Journal_Register( Error_Type, XML_IO_Handler_Type ),
 			"resource %s of wrong type, root node =<%s>, should be <%s>.\nNot parsing.\n",
 			self->resource,
-			(const char*) rootElement->name, 
+			(Name) rootElement->name, 
 			ROOT_NODE_NAME );
 		return False;
 	}
@@ -919,12 +919,12 @@ Bool _XML_IO_Handler_CheckNameSpace( XML
 		int i;
 		
 		for (i=0; nsArray[i] != NULL; i++ ) {
-			char* lastSlash;
+			Name lastSlash;
 			int locationLength;
 			
 			self->currNameSpace = nsArray[i];
 			
-			if ( NULL == (lastSlash = strrchr( (const char*) nsArray[i]->href, '/' )) ) {
+			if ( NULL == (lastSlash = strrchr( (Name) nsArray[i]->href, '/' )) ) {
 				Journal_Printf( 
 					Journal_Register( Error_Type, XML_IO_Handler_Type ),
 					"Warning: resource %s has namespace \"%s\" not of expected URI form.\n",
@@ -1655,7 +1655,7 @@ Dictionary_Entry_Value_Type _XML_IO_Hand
 			*ptr = tolower( *ptr );
 		}
 	
-		result = Stg_ObjectList_Get( self->typeKeywords, lowercaseType );
+		result = (Dictionary_Entry_Value_Type*)Stg_ObjectList_Get( self->typeKeywords, lowercaseType );
 		Memory_Free( lowercaseType );
 		
 		if ( result == NULL ) {
@@ -1676,8 +1676,8 @@ static xmlChar* _XML_IO_Handler_StripLea
 		return (xmlChar*)StG_Strdup( (char*)value );
 	}
 	else {
-		const char* startCharPtr = (const char*)value;
-		const char* endCharPtr = (const char*)value + strlen( (char*)value );
+		Name startCharPtr = (const char*)value;
+		Name endCharPtr = (const char*)value + strlen( (char*)value );
 		xmlChar* newString = NULL;
 		size_t newLength = 0;
 		
@@ -1706,7 +1706,7 @@ static xmlChar* _XML_IO_Handler_StripLea
 			exit( EXIT_FAILURE );
 		}
                 {
-                  int i;
+                  Index i;
                   for(i=0;i<newLength;++i)
                     newString[i]=startCharPtr[i];
                   newString[newLength]='\0';
@@ -1737,7 +1737,7 @@ Bool _XML_IO_Handler_IsOnlyWhiteSpace( c
  * see also IO_Handler_WriteAllToFile().
  * \return True on successful write, false otherwise.
  */
-Bool _XML_IO_Handler_WriteAllToFile( void* xml_io_handler, const char* filename, Dictionary* dictionary ) {
+Bool _XML_IO_Handler_WriteAllToFile( void* xml_io_handler, Name filename, Dictionary* dictionary ) {
 	
 	/* create/overwrite new document */
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
@@ -1808,7 +1808,7 @@ Bool _XML_IO_Handler_WriteAllToFile( voi
 
 /** write a single dictionary entry to a file. The dictionary entry needs to be supplied as a name and value.
  * \return True on success, False otherwise. */
-Bool XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, const char* filename,
+Bool XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, Name filename,
 	Dictionary_Entry_Key name, Dictionary_Entry_Value* value, Dictionary_Entry_Source source )
 {
 	XML_IO_Handler* self = (XML_IO_Handler*) xml_io_handler;
@@ -1819,7 +1819,7 @@ Bool XML_IO_Handler_WriteEntryToFile( vo
 
 
 
-Bool _XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, const char* filename,
+Bool _XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, Name filename,
 	Dictionary_Entry_Key name, Dictionary_Entry_Value* value, Dictionary_Entry_Source source )
 {
 	Stream* stream = Journal_Register (Info_Type, XML_IO_Handler_Type );
@@ -1899,7 +1899,7 @@ static void _XML_IO_Handler_WriteDiction
 	for (index=0; index < dict->count; index++) {
 		Dictionary_Entry* currEntryPtr = dict->entryPtr[index];
 	
-		if ( strcmp(currEntryPtr->key, (const char*)IMPORT_TAG) == 0 ) 
+		if ( strcmp(currEntryPtr->key, (Name)IMPORT_TAG) == 0 ) 
 			_XML_IO_Handler_WriteNode( self, currEntryPtr->key, currEntryPtr->value, currEntryPtr->source, parent );
 	}
 
@@ -1907,7 +1907,7 @@ static void _XML_IO_Handler_WriteDiction
 	for (index=0; index < dict->count; index++) {
 		Dictionary_Entry* currEntryPtr = dict->entryPtr[index];
 	
-		if ( strcmp(currEntryPtr->key, (const char*)PLUGINS_TAG) == 0 ) 
+		if ( strcmp(currEntryPtr->key, (Name)PLUGINS_TAG) == 0 ) 
 			_XML_IO_Handler_WriteNode( self, currEntryPtr->key, currEntryPtr->value, currEntryPtr->source, parent );
 	}
 
@@ -1915,14 +1915,14 @@ static void _XML_IO_Handler_WriteDiction
 	for (index=0; index < dict->count; index++) {
 		Dictionary_Entry* currEntryPtr = dict->entryPtr[index];
 	
-		if ( ( strcmp(currEntryPtr->key, (const char*)IMPORT_TAG) != 0 )  && ( strcmp(currEntryPtr->key, (const char*)PLUGINS_TAG) != 0 ) )  
+		if ( ( strcmp(currEntryPtr->key, (Name)IMPORT_TAG) != 0 )  && ( strcmp(currEntryPtr->key, (const char*)PLUGINS_TAG) != 0 ) )  
 			_XML_IO_Handler_WriteNode( self, currEntryPtr->key, currEntryPtr->value, currEntryPtr->source, parent );
 	}
 }
 
 /** write a single node to file, and its children. */
-static void _XML_IO_Handler_WriteNode( XML_IO_Handler* self, char* name, Dictionary_Entry_Value* value, 
-					char* source, xmlNodePtr parent)
+static void _XML_IO_Handler_WriteNode( XML_IO_Handler* self, Name name, Dictionary_Entry_Value* value, 
+					Name source, xmlNodePtr parent)
 
 {
 	switch ( value->type ) {
@@ -1940,8 +1940,8 @@ static void _XML_IO_Handler_WriteNode( X
 
 /** write a list and its children to a file. Depending on the encoding set by either XML_IO_Handler_SetListEncoding(),
  * or stored on the list dictionary entry value itself, will  write out as XML, ascii or binary.*/
-static void _XML_IO_Handler_WriteList( XML_IO_Handler* self, char* name, Dictionary_Entry_Value* list,
-					char* source, xmlNodePtr parent)
+static void _XML_IO_Handler_WriteList( XML_IO_Handler* self, Name name, Dictionary_Entry_Value* list,
+					Name source, xmlNodePtr parent)
 {
 	xmlNodePtr newNode;
 	xmlChar* type= (xmlChar*) "list";
@@ -1950,10 +1950,10 @@ static void _XML_IO_Handler_WriteList( X
 
 	/* create and add list child node */
 	if ( NULL != name ) {
-		if ( strcmp(name, (const char*)PLUGINS_TAG) == 0 ) {
+		if ( strcmp(name, (Name)PLUGINS_TAG) == 0 ) {
 			newNode = xmlNewTextChild( parent, self->currNameSpace, PLUGINS_TAG, NULL );
 		}
-		else if ( strcmp(name, (const char*)IMPORT_TAG) == 0 ) {
+		else if ( strcmp(name, (Name)IMPORT_TAG) == 0 ) {
 			newNode = xmlNewTextChild( parent, self->currNameSpace, IMPORT_TAG, NULL );
 		}
 		else
@@ -2111,7 +2111,7 @@ static void _XML_IO_Handler_WriteListEle
 	/* write the column definition tags */
 	for (i=0; i < Dictionary_Entry_Value_GetCount( currChildStruct ); i++) {
 		xmlNodePtr currColumnDefNode;
-		char* typeString = self->TYPE_KEYWORDS[ (int) currChildStruct->as.typeStruct->entryPtr[i]->value->type ];
+		Name typeString = self->TYPE_KEYWORDS[ (int) currChildStruct->as.typeStruct->entryPtr[i]->value->type ];
 		
 		xmlNodeAddContentLen( rawDataNode, (xmlChar*) "\n", 1 ); 
 		currColumnDefNode = xmlNewTextChild( rawDataNode, self->currNameSpace, COLUMN_DEFINITION_TAG, NULL );
@@ -2227,8 +2227,8 @@ static void _XML_IO_Handler_WriteListEle
 
 
 /** writes a struct dictionary entry to the file */
-static void _XML_IO_Handler_WriteStruct( XML_IO_Handler* self, char* name, Dictionary_Entry_Value* value, 
-						char* source, xmlNodePtr parent)
+static void _XML_IO_Handler_WriteStruct( XML_IO_Handler* self, Name name, Dictionary_Entry_Value* value, 
+						Name source, xmlNodePtr parent)
 {	
 	xmlNodePtr newNode;
 	xmlChar* type= (xmlChar*) "struct";
@@ -2239,7 +2239,7 @@ static void _XML_IO_Handler_WriteStruct(
 
 	/* create and add struct child node*/
 	if ( NULL != name ) {
-		if ( strcmp(name, (const char*)COMPONENTS_TAG) == 0 ) {
+		if ( strcmp(name, (Name)COMPONENTS_TAG) == 0 ) {
 			newNode = xmlNewTextChild( parent, self->currNameSpace, COMPONENTS_TAG, NULL );
 		}
 		else
@@ -2266,8 +2266,8 @@ static void _XML_IO_Handler_WriteStruct(
 
 
 /** writes a single dictionary parameter to file. */
-static void _XML_IO_Handler_WriteParameter( XML_IO_Handler* self, char* name, Dictionary_Entry_Value* value,
-						char* source, xmlNodePtr parent)
+static void _XML_IO_Handler_WriteParameter( XML_IO_Handler* self, Name name, Dictionary_Entry_Value* value,
+						Name source, xmlNodePtr parent)
 {
 	xmlNodePtr newNode;
 	xmlChar* type = (xmlChar*) "param";
@@ -2278,10 +2278,10 @@ static void _XML_IO_Handler_WriteParamet
 		"_XML_IO_Handler_WriteParameter called.\n");
 
 	/* add new child to parent, with correct value*/
-	if ( strcmp((char *)parent->name, (const char*)PLUGINS_TAG) == 0 ) {
+	if ( strcmp((char *)parent->name, (Name)PLUGINS_TAG) == 0 ) {
 		newNode = xmlNewTextChild( parent, self->currNameSpace, PLUGIN_TAG, (xmlChar*) Dictionary_Entry_Value_AsString( value ) );
 	}
-	else if ( strcmp((char *)parent->name, (const char*)IMPORT_TAG) == 0 ) {
+	else if ( strcmp((char *)parent->name, (Name)IMPORT_TAG) == 0 ) {
 		newNode = xmlNewTextChild( parent, self->currNameSpace, TOOLBOX_TAG, (xmlChar*) Dictionary_Entry_Value_AsString( value ) );
 	}
 	else {
@@ -2303,7 +2303,7 @@ static void _XML_IO_Handler_WriteParamet
 }
 
 static Dictionary_MergeType _XML_IO_Handler_GetMergeType( XML_IO_Handler* self, const xmlChar* mergeTypeStr, 
-		const char* funcName, const char* tagStr, xmlChar* entryName, Dictionary_MergeType defaultMergeType )
+		Name funcName, const char* tagStr, xmlChar* entryName, Dictionary_MergeType defaultMergeType )
 {
 	Dictionary_MergeType         mergeType = defaultMergeType;
 	xmlChar*                     spaceStrippedMergeType = NULL;
@@ -2341,7 +2341,7 @@ static Dictionary_MergeType _XML_IO_Hand
 }
 
 
-void XML_IO_Handler_LibXMLErrorHandler( void* ctx, const char* msg, ... ) {
+void XML_IO_Handler_LibXMLErrorHandler( void* ctx, Name msg, ... ) {
    va_list ap;
    va_start( ap, msg );
    Stream_Printf( Journal_Register( Error_Type, XML_IO_Handler_Type ), msg, ap );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/XML_IO_Handler.h
--- a/Base/IO/src/XML_IO_Handler.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/XML_IO_Handler.h	Wed May 11 13:26:45 2011 -0700
@@ -61,7 +61,7 @@
 	extern Stg_ObjectList* Project_XMLSearchPaths;
 	
 	/* additional class function ptr typedefs */
-	typedef Bool (XML_IO_Handler_WriteEntryToFileFunction) ( void* xml_io_handler, const char* filename,
+	typedef Bool (XML_IO_Handler_WriteEntryToFileFunction) ( void* xml_io_handler, Name filename,
 		Dictionary_Entry_Key name, Dictionary_Entry_Value* value, Dictionary_Entry_Source source );
 	typedef void (XML_IO_Handler_SetListEncodingFunction) ( void* xml_io_handler, ListEncoding listEncoding );
 	typedef void (XML_IO_Handler_SetWritingPrecisionFunction) ( void* xml_io_handler, int dictionaryEntryType,
@@ -93,7 +93,7 @@
 		int					tokeniserCalls; \
 		ListEncoding		listEncoding; \
 		Stg_ObjectList*	typeKeywords; /**< Maps strings to dictionary types. */\
-		char*					TYPE_KEYWORDS[Dictionary_Entry_Value_Num_Types + 1]; \
+		Name					TYPE_KEYWORDS[Dictionary_Entry_Value_Num_Types + 1]; \
 		unsigned int		writingPrecision[Dictionary_Entry_Value_Num_Types + 1]; \
 		unsigned int		writingFieldWidth[Dictionary_Entry_Value_Num_Types + 1]; \
 		unsigned int		WRITING_FIELD_EXTRAS[Dictionary_Entry_Value_Num_Types + 1]; \
@@ -153,37 +153,37 @@
 	extern void XML_IO_Handler_SetWritingPrecision( void* xml_io_handler, int dictionaryEntryType, int value );
 	extern void _XML_IO_Handler_SetWritingPrecision( void* xml_io_handler, int dictionaryEntryType, int value );
 	
-	void _XML_IO_Handler_AddNameSpace( void* io_handler, char* location, char* version );
+	void _XML_IO_Handler_AddNameSpace( void* io_handler, Name location, const char* version );
 	
 	extern Bool _XML_IO_Handler_CheckNameSpace( XML_IO_Handler* self, xmlNodePtr curNode );
 	
 	/** Read a dictionary entry of a given name from file */
-	extern Bool _XML_IO_Handler_ReadAllFromFile( void* xml_io_handler, const char* filename, Dictionary* dictionary );
+	extern Bool _XML_IO_Handler_ReadAllFromFile( void* xml_io_handler, Name filename, Dictionary* dictionary );
 	
 	/** Read a dictionary entry of a given name from file and force the source file info to be added to the
 	 *  Dictionary_Entry */
-	extern Bool _XML_IO_Handler_ReadAllFromFileForceSource(void* xml_io_handler, const char* filename, Dictionary* dictionary);
+	extern Bool _XML_IO_Handler_ReadAllFromFileForceSource(void* xml_io_handler, Name filename, Dictionary* dictionary);
 
 	/** Read a dictionary entry of a given name from buffer */
-	extern Bool _XML_IO_Handler_ReadAllFromBuffer( void* xml_io_handler, const char* buffer, Dictionary* dictionary );
+	extern Bool _XML_IO_Handler_ReadAllFromBuffer( void* xml_io_handler, Name buffer, Dictionary* dictionary );
 	
 	/** Write a given dictionary entry to file */
 	/** Write a given dictionary entry to file */
 	/* TODO: option to choose between overwrite / update ? */
-	extern Bool _XML_IO_Handler_WriteAllToFile(void* xml_io_handler, const char* filename, Dictionary* dictionary );
+	extern Bool _XML_IO_Handler_WriteAllToFile(void* xml_io_handler, Name filename, Dictionary* dictionary );
 	
 	/* TODO: option to choose between overwrite / update ? */
-	extern Bool XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, const char* filename, Dictionary_Entry_Key name, 
+	extern Bool XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, Name filename, Dictionary_Entry_Key name, 
 		Dictionary_Entry_Value* value, Dictionary_Entry_Source source );
 	
-	extern Bool _XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, const char* filename, Dictionary_Entry_Key name,
+	extern Bool _XML_IO_Handler_WriteEntryToFile( void* xml_io_handler, Name filename, Dictionary_Entry_Key name,
 		Dictionary_Entry_Value* value, Dictionary_Entry_Source source );
 
 	void XML_IO_Handler_AddDirectory( Name name, char* directory ); 
 
 	/** A function to handle errors produced by libXML through the Stg Stream system. Should be hooked
 	 *  up using xmlSetGenericErrorFunc(), e.g. at the Init() stage. */
-	void XML_IO_Handler_LibXMLErrorHandler( void* ctx, const char* msg, ... );
+	void XML_IO_Handler_LibXMLErrorHandler( void* ctx, Name msg, ... );
 
 #endif /* __StGermain_Base_IO_XML_IO_Handler_h__ */
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/shortcuts.c
--- a/Base/IO/src/shortcuts.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/shortcuts.c	Wed May 11 13:26:45 2011 -0700
@@ -82,13 +82,13 @@ Bool Dictionary_GetBool_WithDefault( Dic
 		Dictionary_Entry_Value_FromBool( defaultVal ) ) );
 }
 
-char* Dictionary_GetString_WithDefault( Dictionary* dictionary, Dictionary_Entry_Key key, const char* const defaultVal ) {
+char* Dictionary_GetString_WithDefault( Dictionary* dictionary, Dictionary_Entry_Key key, Name const defaultVal ) {
 	return	Dictionary_Entry_Value_AsString( 
 		Dictionary_GetDefault( dictionary, key, 
 		Dictionary_Entry_Value_FromString( defaultVal ) ) );
 }
 
-char* Dictionary_GetString_WithPrintfDefault( Dictionary* dictionary, Dictionary_Entry_Key key, char* format, ... ) {
+char* Dictionary_GetString_WithPrintfDefault( Dictionary* dictionary, Dictionary_Entry_Key key, Name format, ... ) {
 	char*     returnString;
 	char*     defaultVal;
 	va_list   ap;
@@ -107,7 +107,7 @@ char* Dictionary_GetString_WithPrintfDef
 
 	return returnString;
 }
-Bool Stream_RedirectFile_WithPrependedPath( Stream* stream, char* prependedPath, char* filename ) {
+Bool Stream_RedirectFile_WithPrependedPath( Stream* stream, Name prependedPath, const char* filename ) {
 	Bool result;
 
 	/* Check to make sure output path is emtpy */ 
@@ -123,7 +123,7 @@ Bool Stream_RedirectFile_WithPrependedPa
 
 	return result;
 }
-Bool Stream_AppendFile_WithPrependedPath( Stream* stream, char* prependedPath, char* filename ) {
+Bool Stream_AppendFile_WithPrependedPath( Stream* stream, Name prependedPath, const char* filename ) {
 	Bool result;
 
 	/* Check to make sure output path is emtpy */ 
@@ -139,20 +139,20 @@ Bool Stream_AppendFile_WithPrependedPath
 
 	return result;
 }
-void Journal_PrintString_WithLength( Stream* stream, char* string, int length ) {
+void Journal_PrintString_WithLength( Stream* stream, Name string, int length ) {
 	size_t      stringLength = strlen( string ) ;
-	char*       breakInMiddle = "...";
+	Name       breakInMiddle = "...";
 	size_t      lengthOfBreak = strlen( breakInMiddle );
 
 	if ( length <= 0 )
 		return;
 	/* If length given is exeedingly short - then print initial */
-	else if ( lengthOfBreak >= length ) {
+	else if ( lengthOfBreak >= (unsigned)length ) {
 		Journal_Printf( stream, "%c", string[0] );
 		Journal_Write( stream, breakInMiddle, sizeof( char ), length - 1 );
 	}
 	/* Shorten String if nessesary */
-	else if ( stringLength > length ) {
+	else if ( stringLength > (unsigned)length ) {
 		int charsBeforeBreak = (int) ((float)length * 0.5) - 1;
 		int charsAfterBreak  = length - charsBeforeBreak - lengthOfBreak;
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/shortcuts.h
--- a/Base/IO/src/shortcuts.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/shortcuts.h	Wed May 11 13:26:45 2011 -0700
@@ -104,19 +104,19 @@
 	
 	Bool	Dictionary_GetBool_WithDefault( Dictionary* dictionary, Dictionary_Entry_Key key, const Bool defaultVal );
 
-	char*	Dictionary_GetString_WithDefault( Dictionary* dictionary, Dictionary_Entry_Key key, const char* const defaultVal );
+	char*	Dictionary_GetString_WithDefault( Dictionary* dictionary, Dictionary_Entry_Key key, Name const defaultVal );
 
 	/** Wrapper to Dictionary_GetString_WithDefault which creates a string using sprintf */
-	char* Dictionary_GetString_WithPrintfDefault( Dictionary* dictionary, Dictionary_Entry_Key key, char* format, ... ) ;
+	char* Dictionary_GetString_WithPrintfDefault( Dictionary* dictionary, Dictionary_Entry_Key key, Name format, ... ) ;
 
 
 	/** Redirects file and puts 'prependedPath' in front of the filename 
 	 * e.g. Stream_RedirectFile_WithPrependedPath( stream, "./output", "file.dat" ) redirects to './output/file.dat' */
-	Bool Stream_RedirectFile_WithPrependedPath( Stream* stream, char* prependedPath, char* filename ) ;
-	Bool Stream_AppendFile_WithPrependedPath( Stream* stream, char* prependedPath, char* filename ) ;
+	Bool Stream_RedirectFile_WithPrependedPath( Stream* stream, Name prependedPath, const char* filename ) ;
+	Bool Stream_AppendFile_WithPrependedPath( Stream* stream, Name prependedPath, const char* filename ) ;
 
 	/** Prints a string with a certain maximum length - it truncates it in the middle with an ellipsis if it is too long */
-	void Journal_PrintString_WithLength( Stream* stream, char* string, int length ) ;
+	void Journal_PrintString_WithLength( Stream* stream, Name string, int length ) ;
 		
 	/* shortcuts for printing names and values */
 	#define Journal_PrintValue( stream, value ) 	\
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/src/types.h
--- a/Base/IO/src/types.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/src/types.h	Wed May 11 13:26:45 2011 -0700
@@ -42,7 +42,7 @@
 #define __StGermain_Base_IO_types_h__
 	
 	/* Dicitonary internal types */
-	typedef char*				Dictionary_Entry_Key;
+	typedef Name			Dictionary_Entry_Key;
 	typedef char*				Dictionary_Entry_Source;
 	typedef enum {
 		Dictionary_Entry_Value_Type_String,
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/tests/DictionarySuite.c
--- a/Base/IO/tests/DictionarySuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/tests/DictionarySuite.c	Wed May 11 13:26:45 2011 -0700
@@ -465,7 +465,7 @@ void DictionarySuite_TestReadAllParamFro
       pcu_check_true( Dictionary_Entry_Value_Compare( expectedVals[ii], data->dict->entryPtr[ii]->value ));
    }
 
-   for (ii=0; ii < argc; ii++) {
+   for (ii=0; ii < (unsigned)argc; ii++) {
       Memory_Free( argv[ii] );
    }
    Memory_Free( argv );
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/tests/IO_HandlerSuite.c
--- a/Base/IO/tests/IO_HandlerSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/tests/IO_HandlerSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -46,10 +46,10 @@
 #include "IO_HandlerSuite.h"
 
 
-const char* IO_HandlerSuite_XMLStartString1 = "<?xml version=\"1.0\"?>\n";
-const char* IO_HandlerSuite_XMLStartString2 = "<StGermainData xmlns=\"http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003\">\n";
-const char* IO_HandlerSuite_XMLEndString = "</StGermainData>\n";
-const char* IO_HandlerSuite_XMLEmptyDataString = "<StGermainData xmlns=\"http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003\"/>\n";
+Name IO_HandlerSuite_XMLStartString1 = "<?xml version=\"1.0\"?>\n";
+Name IO_HandlerSuite_XMLStartString2 = "<StGermainData xmlns=\"http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003\">\n";
+Name IO_HandlerSuite_XMLEndString = "</StGermainData>\n";
+Name IO_HandlerSuite_XMLEmptyDataString = "<StGermainData xmlns=\"http://www.vpac.org/StGermain/XML_IO_Handler/Jun2003\"/>\n";
 
 typedef struct {
    XML_IO_Handler*                  io_handler;
@@ -62,7 +62,7 @@ typedef struct {
 } IO_HandlerSuiteData;
 
 
-void _IO_HandlerSuite_CreateTestXMLFile( const char* testXMLFilename, const char* entriesString ) {
+void _IO_HandlerSuite_CreateTestXMLFile( Name testXMLFilename, const char* entriesString ) {
    FILE*         testFile = NULL;
    testFile = fopen(testXMLFilename, "w");
    fwrite( IO_HandlerSuite_XMLStartString1, sizeof(char), strlen( IO_HandlerSuite_XMLStartString1 ), testFile );
@@ -101,8 +101,8 @@ void IO_HandlerSuite_Teardown( IO_Handle
 /* Just populate a test dictionary, write it out to a file, read it back in again to a different dict, and check all the values are the same */
 void IO_HandlerSuite_TestWriteReadNormalEntries( IO_HandlerSuiteData* data ) {
    Index         ii;
-   const char*   xmlTestFilename = "xmlTest.xml";
-   Index         rank_I=0;
+   Name   xmlTestFilename = "xmlTest.xml";
+   int         rank_I=0;
 
    DictionarySuite_PopulateDictWithTestValues( data->dict1, data->testDD );
 
@@ -135,8 +135,8 @@ void IO_HandlerSuite_TestWriteReadNormal
 /* Similar to above test, except using the function to write just one entry at a time */
 void IO_HandlerSuite_TestWriteReadNormalSingleEntry( IO_HandlerSuiteData* data ) {
    Index          ii;
-   const char*    fileName = "singleEntry.xml";
-   Index          rank_I=0;
+   Name    fileName = "singleEntry.xml";
+   int          rank_I=0;
 
    DictionarySuite_PopulateDictWithTestValues( data->dict1, data->testDD );
 
@@ -169,11 +169,11 @@ void IO_HandlerSuite_TestWriteReadNormal
 
 /* Similar to above test, except test we can write out an empty Dictionary, then read in */
 void IO_HandlerSuite_TestWriteReadEmpty( IO_HandlerSuiteData* data ) {
-   const char*    xmlTestFilename = "empty.xml";
+   Name    xmlTestFilename = "empty.xml";
    FILE*          testFile = NULL;
    const int      MAXLINE = 1000;
    char*          xmlLine = NULL;
-   Index          rank_I;
+   int          rank_I;
 
    if (data->rank == 0) {
       IO_Handler_WriteAllToFile( data->io_handler, xmlTestFilename, data->dict1 );
@@ -213,7 +213,7 @@ void IO_HandlerSuite_TestWriteReadEmpty(
 /* In this case, want to make sure the types are written explicitly into the output, so will
  * check against expected text. */
 void IO_HandlerSuite_TestWriteExplicitTypes( IO_HandlerSuiteData* data ) {
-   const char*    testFilename = "xmlTest-explicittypes.xml";
+   Name    testFilename = "xmlTest-explicittypes.xml";
    char*          explicitTypesExpectedFilename = NULL;
 
    Dictionary_Empty( data->dict1 );
@@ -237,11 +237,11 @@ void IO_HandlerSuite_TestWriteExplicitTy
 
 
 void IO_HandlerSuite_TestReadWhitespaceEntries( IO_HandlerSuiteData* data ) {
-   const char*       testFilename = "xmlTest-whitespaces.xml";
+   Name       testFilename = "xmlTest-whitespaces.xml";
    char*             whiteSpacesEntry = NULL;
-   const char*       testKey = "spacedKey";
-   const char*       testValString = "spacedVal";
-   Index             rank_I;
+   Name       testKey = "spacedKey";
+   Name       testValString = "spacedVal";
+   int             rank_I;
 
    if( data->rank==0 ) {
       Stg_asprintf( &whiteSpacesEntry, "<param name=\"    %s   \"> \t %s \n\t</param>\n", testKey, testValString );
@@ -274,18 +274,18 @@ void IO_HandlerSuite_TestReadWhitespaceE
 /* Note: it'd be good to use the PCU input fule capabilities, but unfortunately Scons glob doesn't seem to support
  * subdirectories currently. */
 void IO_HandlerSuite_TestReadIncludedFile( IO_HandlerSuiteData* data ) {
-   const char*       testFilename = "xmlTest-include.xml";
-   const char*       testIncludedFilename = "xmlTest-included.xml";
-   const char*       testSearchPathSubdir = "./testXML-subdir";
-   const char*       testIncludedFilenameSP = "xmlTest-includedSP.xml";
+   Name       testFilename = "xmlTest-include.xml";
+   Name       testIncludedFilename = "xmlTest-included.xml";
+   Name       testSearchPathSubdir = "./testXML-subdir";
+   Name       testIncludedFilenameSP = "xmlTest-includedSP.xml";
    char*             subdirIncludedFilenameSP = NULL;
-   const char*       testKey = "regularKey";
-   const char*       testValString = "regularVal";
-   const char*       testKeyInc = "keyInc";
-   const char*       testValStringInc = "valInc";
-   const char*       testKeyIncSP = "keyIncSP";
-   const char*       testValStringIncSP = "valIncSP";
-   Index             rank_I;
+   Name       testKey = "regularKey";
+   Name       testValString = "regularVal";
+   Name       testKeyInc = "keyInc";
+   Name       testValStringInc = "valInc";
+   Name       testKeyIncSP = "keyIncSP";
+   Name       testValStringIncSP = "valIncSP";
+   int             rank_I;
 
    Stg_asprintf( &subdirIncludedFilenameSP, "%s/%s", testSearchPathSubdir, testIncludedFilenameSP );
 
@@ -352,16 +352,16 @@ void IO_HandlerSuite_TestReadRawDataEntr
 void IO_HandlerSuite_TestReadRawDataEntries( IO_HandlerSuiteData* data ) {
    Index             ii;
    char*             testFilename=NULL;
-   const char*       list1Name = "bcs";
-   const int         list1EntryCount = 2;
+   Name       list1Name = "bcs";
+   const unsigned    list1EntryCount = 2;
    const int         list1Vals[2][3] = { {1, 3, 6}, {2, 9, 14} };
-   const char*       list2Name = "boundary_conditions2";
-   const int         list2EntryCount = 3;
-   const char*       list2CompNames[5] = {"side", "xval", "yval", "zval", "active"};
-   const char*       list2StringVals[3] = {"top", "bottom", "left"};
+   Name       list2Name = "boundary_conditions2";
+   const unsigned    list2EntryCount = 3;
+   Name       list2CompNames[5] = {"side", "xval", "yval", "zval", "active"};
+   Name       list2StringVals[3] = {"top", "bottom", "left"};
    const int         list2CoordVals[3][3] = { {4,5,8}, {3,5,9}, {9,3,4} };
    const Bool        list2BoolVals[3] = { True, False, True };
-   Index             rank_I;
+   int             rank_I;
 
    testFilename = Memory_Alloc_Array_Unnamed( char, pcu_filename_inputLen( "xmlTest-rawData.xml" ) );
    pcu_filename_input( "xmlTest-rawData.xml", testFilename );
@@ -420,8 +420,8 @@ void IO_HandlerSuite_TestReadAllFromComm
    char**         xmlTestFilenames;
    int            argc;
    char**         argv;
-   int            fakeParamArgsCount = 2;
-   Index          rank_I;
+   unsigned       fakeParamArgsCount = 2;
+   int            rank_I;
    
    DictionarySuite_PopulateDictWithTestValues( data->dict1, data->testDD );
 
@@ -474,7 +474,7 @@ void IO_HandlerSuite_TestReadAllFromComm
       Memory_Free( xmlTestFilenames[ii] );
    }
    Memory_Free( xmlTestFilenames );
-   for ( ii=0; ii < argc; ii++ ) {
+   for ( ii=0; ii < (unsigned)argc; ii++ ) {
       Memory_Free( argv[ii] );
    }
    Memory_Free( argv );
@@ -490,10 +490,10 @@ void IO_HandlerSuite_TestReadDuplicateEn
    char                    xmlTestFilename2[PCU_PATH_MAX];
    char                    xmlTestFilename3_1[PCU_PATH_MAX];
    char                    xmlTestFilename3_2[PCU_PATH_MAX];
-   const char*             struct1Name = "structOne";
-   const int               struct1_OrigParamCount = 2;
-   const char*             paramNames[2] = { "paramOne", "paramTwo" };
-   const char*             paramNames2[2] = { "2nd-paramOne", "2nd-paramTwo" };
+   Name             struct1Name = "structOne";
+   const unsigned          struct1_OrigParamCount = 2;
+   Name             paramNames[2] = { "paramOne", "paramTwo" };
+   Name             paramNames2[2] = { "2nd-paramOne", "2nd-paramTwo" };
    const unsigned int      paramVals[2] = { 1, 2 };
    const unsigned int      paramVals2[2] = { 3, 4 };
    Dictionary_Entry_Value* structDev = NULL;
@@ -596,7 +596,7 @@ void IO_HandlerSuite_TestReadDuplicateEn
 
 void IO_HandlerSuite_TestReadNonExistent( IO_HandlerSuiteData* data ) {
    char*		errorFilename;
-   char*		notExistFilename = "I_Dont_Exist.xml";
+   Name		notExistFilename = "I_Dont_Exist.xml";
    FILE*		errorFile;
    #define	MAXLINE 1000
    char		errorLine[MAXLINE];
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/tests/JournalSuite.c
--- a/Base/IO/tests/JournalSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/tests/JournalSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -297,8 +297,8 @@ void JournalSuite_TestReadFromDictionary
    Stream*     fileTest2;
    Stream*     propTest1;
    Stream*     propTest2;
-   const char* testNewTypeFilename1 = "./testJournal-out1.txt";
-   const char* testNewTypeFilename2 = "./testJournal-out2.txt";
+   Name testNewTypeFilename1 = "./testJournal-out1.txt";
+   Name testNewTypeFilename2 = "./testJournal-out2.txt";
 
    infoTest1 = Journal_Register( Info_Type, (Name)"test1"  );
    infoTest2 = Journal_Register( Info_Type, (Name)"test2"  );
@@ -372,7 +372,7 @@ void JournalSuite_TestReadFromDictionary
 
 void JournalSuite_TestPrintString_WithLength( JournalSuiteData* data  ) {
    Stream*      myStream    = Journal_Register( Info_Type, (Name)"TestStream" );
-   char*        string        = "helloWorldHowDoYouDo";
+   Name        string        = "helloWorldHowDoYouDo";
    int          char_I;
    const Name  stringLengthTestFilename = "testJournalPrintStringWithLength.txt" ;
    char         expectedFilename[PCU_PATH_MAX];
@@ -396,7 +396,7 @@ void JournalSuite_TestPrintString_WithLe
 
 void JournalSuite_TestShortcuts( JournalSuiteData* data ) {
    Stream*      myStream    = Journal_Register( Info_Type, (Name)"TestStream"  );
-   char*        string        = "helloWorldHowDoYouDo";
+   Name        string        = "helloWorldHowDoYouDo";
    double       doubleValue   = 3142e20;
    double       floatValue    = 2.173425;
    int          intValue      = 3;
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/tests/MPIStreamSuite.c
--- a/Base/IO/tests/MPIStreamSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/tests/MPIStreamSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -63,7 +63,7 @@ void MPIStreamSuite_TestWriteAllProcesso
 void MPIStreamSuite_TestWriteAllProcessors( MPIStreamSuiteData* data ) {
    Index          ii;
    Stream*        stream1;
-   const char*    testMPIFilename = "./test-mpi1.txt";
+   Name    testMPIFilename = "./test-mpi1.txt";
    FILE*          testMPIFile;
    char           outLine[MAXLINE];
    char           compString[MAXLINE];
@@ -88,7 +88,7 @@ void MPIStreamSuite_TestWriteAllProcesso
    Stream_Flush( stream1 );
 
    /* Now build up the comparison string. Depends on how many processes are running. */
-   for (rank_I=0; rank_I < data->numProcs; rank_I++ ) {
+   for (rank_I=0; rank_I < (unsigned)(data->numProcs); rank_I++ ) {
       for ( ii = 0; ii < PER_RANK_COUNT; ++ii ) {
          compString[PER_RANK_COUNT*rank_I+ii] = 'a' + PER_RANK_COUNT*rank_I + ii;
       }
@@ -97,9 +97,9 @@ void MPIStreamSuite_TestWriteAllProcesso
 
    /* Do the following since in parallel on some systems, the file
     * doesn't get re-opened at the start automatically. */
-   for ( rank_I = 0; rank_I < data->numProcs; rank_I++ ) {
+   for ( rank_I = 0; rank_I < (unsigned)(data->numProcs); rank_I++ ) {
       MPI_Barrier( data->comm );
-      if ( rank_I == data->rank ) {
+      if ( rank_I == (unsigned)(data->rank) ) {
          testMPIFile = fopen( testMPIFilename, "r" );
          rewind( testMPIFile );
       }
@@ -118,13 +118,13 @@ void MPIStreamSuite_TestWriteAllProcesso
 
 void MPIStreamSuite_TestPrintWithOffset( MPIStreamSuiteData* data ) {
    Stream*     stream2;
-   const char* testMPIFilename = "./test-mpi2.txt";
+   Name testMPIFilename = "./test-mpi2.txt";
    FILE*       testMPIFile;
    char        outLine[MAXLINE];
    char        rankPrintString[MAXLINE];
    char        compString[MAXLINE];
-   Index       rank_I;
-   Index       ii;
+   int         rank_I;
+   int         ii;
    Index       startPoint = 0;
    unsigned    stringLength=0;
 
diff -r 7c15b31c769d -r 4a864caece0b Base/IO/tests/PathUtilsSuite.c
--- a/Base/IO/tests/PathUtilsSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Base/IO/tests/PathUtilsSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -40,6 +40,7 @@
 #include "StGermain/Base/Foundation/Foundation.h"
 #include "StGermain/Base/IO/IO.h"
 #include "PathUtilsSuite.h"
+#include "sys/stat.h"
 
 typedef struct {
    int rank;
@@ -75,9 +76,9 @@ void PathUtilsSuite_TestFindFile( PathUt
 void PathUtilsSuite_TestFindFile( PathUtilsSuiteData* data ) {
    char*       searchPaths = NULL;
    char        fullPath[1024];
-   const char* subDir = "./testSubDir";
-   const char* subDirFilename = "./testSubDir/subDirTest.xml";
-   const char* currDirFilename = "./currDirTest.xml";
+   Name subDir = "./testSubDir";
+   Name subDirFilename = "./testSubDir/subDirTest.xml";
+   Name currDirFilename = "./currDirTest.xml";
 
 
    Stg_asprintf( &searchPaths, ".:%s:/does/not/exist", subDir );
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/ClientPrograms/checkDiff/main.c
--- a/Regresstor/ClientPrograms/checkDiff/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/ClientPrograms/checkDiff/main.c	Wed May 11 13:26:45 2011 -0700
@@ -37,8 +37,8 @@
 #include <libcsoap/soap-client.h>
 
 
-const char* Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
-const char* Regresstor_SubmitCheckMethod = "submitCheck";	/* The name of the web service function */
+Name Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
+Name Regresstor_SubmitCheckMethod = "submitCheck";	/* The name of the web service function */
 
 /* Index Positions to the paramter array */
 #define RunID_Pos		0
@@ -52,7 +52,7 @@ const char* Regresstor_SubmitCheckMethod
 #define Parameter_Num_Pos	6
 
 /* The parameter names to the submit build function */
-const char* parameterNames[Parameter_Num_Pos] = {
+Name parameterNames[Parameter_Num_Pos] = {
 	"RunID",
 	"UnitName",
 	"TestName",
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/ClientPrograms/checkExecution/main.c
--- a/Regresstor/ClientPrograms/checkExecution/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/ClientPrograms/checkExecution/main.c	Wed May 11 13:26:45 2011 -0700
@@ -37,8 +37,8 @@
 #include <libcsoap/soap-client.h>
 
 
-const char* Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
-const char* Regresstor_SubmitCheckMethod = "submitCheck";	/* The name of the web service function */
+Name Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
+Name Regresstor_SubmitCheckMethod = "submitCheck";	/* The name of the web service function */
 
 /* Index Positions to the paramter array */
 #define RunID_Pos		0
@@ -52,7 +52,7 @@ const char* Regresstor_SubmitCheckMethod
 #define Parameter_Num_Pos	6
 
 /* The parameter names to the submit build function */
-const char* parameterNames[Parameter_Num_Pos] = {
+Name parameterNames[Parameter_Num_Pos] = {
 	"RunID",
 	"UnitName",
 	"TestName",
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/ClientPrograms/endRun/main.c
--- a/Regresstor/ClientPrograms/endRun/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/ClientPrograms/endRun/main.c	Wed May 11 13:26:45 2011 -0700
@@ -37,8 +37,8 @@
 #include <libcsoap/soap-client.h>
 
 
-const char* Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
-const char* Regresstor_EndRunMethod = "endRun";
+Name Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
+Name Regresstor_EndRunMethod = "endRun";
 
 /* Index Positions to the paramter array */
 #define RunID			0
@@ -48,7 +48,7 @@ const char* Regresstor_EndRunMethod = "e
 #define Parameter_Num_Pos	2
 
 /* The parameter names to the submit build function */
-const char* parameterNames[Parameter_Num_Pos] = {
+Name parameterNames[Parameter_Num_Pos] = {
 	"RunID",
 	"URL" };
 
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/ClientPrograms/startRun/main.c
--- a/Regresstor/ClientPrograms/startRun/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/ClientPrograms/startRun/main.c	Wed May 11 13:26:45 2011 -0700
@@ -37,8 +37,8 @@
 #include <libcsoap/soap-client.h>
 
 
-const char* Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
-const char* Regresstor_StartRunMethod = "beginRun";
+Name Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
+Name Regresstor_StartRunMethod = "beginRun";
 
 /* Index Positions to the paramter array */
 #define BuildID			0
@@ -48,7 +48,7 @@ const char* Regresstor_StartRunMethod = 
 #define Parameter_Num_Pos	2
 
 /* The parameter names to the submit build function */
-const char* parameterNames[Parameter_Num_Pos] = {
+Name parameterNames[Parameter_Num_Pos] = {
 	"BuildID",
 	"URL" };
 
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/ClientPrograms/submitBuild/main.c
--- a/Regresstor/ClientPrograms/submitBuild/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/ClientPrograms/submitBuild/main.c	Wed May 11 13:26:45 2011 -0700
@@ -37,8 +37,8 @@
 #include <libcsoap/soap-client.h>
 
 
-const char* Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
-const char* Regresstor_SubmitBuildMethod = "submitBuild";	/* The name of the web service function */
+Name Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
+Name Regresstor_SubmitBuildMethod = "submitBuild";	/* The name of the web service function */
 
 /* Index Positions to the paramter array */
 #define Project_Pos		0
@@ -60,7 +60,7 @@ const char* Regresstor_SubmitBuildMethod
 #define Parameter_Num_Pos	14
 
 /* The parameter names to the submit build function */
-const char* parameterNames[Parameter_Num_Pos] = {
+Name parameterNames[Parameter_Num_Pos] = {
 	"Project",
 	"BuildOptions",
 	"CC",
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/FailedSubTest.c
--- a/Regresstor/libRegresstor/src/FailedSubTest.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/FailedSubTest.c	Wed May 11 13:26:45 2011 -0700
@@ -4,7 +4,7 @@
 #include "types.h"
 #include "FailedSubTest.h"
 
-FailedSubTest* FailedSubTest_New( char* subTestName ) {
+FailedSubTest* FailedSubTest_New( Name subTestName ) {
 	FailedSubTest* result;
 
 	result = (FailedSubTest*)malloc( sizeof(FailedSubTest) );
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/FailedSubTest.h
--- a/Regresstor/libRegresstor/src/FailedSubTest.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/FailedSubTest.h	Wed May 11 13:26:45 2011 -0700
@@ -11,7 +11,7 @@ struct FailedSubTest {
 	__FailedSubTest
 };
 
-FailedSubTest* FailedSubTest_New( char* subTestName );
+FailedSubTest* FailedSubTest_New( Name subTestName );
 
 void FailedSubTest_Delete( FailedSubTest* self );
 
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/RegressionTest.c
--- a/Regresstor/libRegresstor/src/RegressionTest.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/RegressionTest.c	Wed May 11 13:26:45 2011 -0700
@@ -12,8 +12,8 @@
 #include <libcsoap/soap-client.h>
 #include <libxml/xmlIO.h>
 
-const char* Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
-const char* Regresstor_SubmitCheckMethod = "submitCheck";       /* The name of the web service function */
+Name Regresstor_URN = "urn:Regresstor";			/* The name of the web service class */
+Name Regresstor_SubmitCheckMethod = "submitCheck";       /* The name of the web service function */
 
 UnitTest* stgRegressionTest = 0;
 
@@ -23,7 +23,7 @@ Regresstor_HandlePtr prevBusHandler;
 Regresstor_HandlePtr prevBusHandler;
 
 /* Interface functions */
-void RegressionTest_Init_Func( char* url, char* runID, char* unitName, char* testName ) {
+void RegressionTest_Init_Func( Name url, char* runID, char* unitName, char* testName ) {
 
 	stgRegressionTest = UnitTest_New( url, runID, unitName, testName );
 
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/RegressionTest.h
--- a/Regresstor/libRegresstor/src/RegressionTest.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/RegressionTest.h	Wed May 11 13:26:45 2011 -0700
@@ -3,7 +3,7 @@
 #ifndef __Regresstor_RegressionTest_h__
 #define __Regresstor_RegressionTest_h__
 
-void RegressionTest_Init_Func( char* url, char* runID, char* unitName, char* testName );
+void RegressionTest_Init_Func( Name url, char* runID, char* unitName, char* testName );
 void RegressionTest_Finalise_Func();
 void RegressionTest_Check_Func( UnitTest* self, int expression, void* stream, char* subTestName, char* description );
 
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/UnitTest.c
--- a/Regresstor/libRegresstor/src/UnitTest.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/UnitTest.c	Wed May 11 13:26:45 2011 -0700
@@ -7,7 +7,7 @@
 
 
 
-UnitTest* UnitTest_New( char* url, char* runID, char* unitName, char* testName ) {
+UnitTest* UnitTest_New( Name url, Name runID, Name unitName, Name testName ) {
 	UnitTest* result;
 
 	result = (UnitTest*)malloc( sizeof(UnitTest) );
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/UnitTest.h
--- a/Regresstor/libRegresstor/src/UnitTest.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/UnitTest.h	Wed May 11 13:26:45 2011 -0700
@@ -17,7 +17,7 @@ struct UnitTest {
 	__UnitTest
 };
 
-UnitTest* UnitTest_New( char* url, char* runID, char* unitName, char* testName );
+UnitTest* UnitTest_New( Name url, Name runID, Name unitName, Name testName );
 
 void UnitTest_Delete( UnitTest* self );
 
diff -r 7c15b31c769d -r 4a864caece0b Regresstor/libRegresstor/src/forwardDecl.h
--- a/Regresstor/libRegresstor/src/forwardDecl.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Regresstor/libRegresstor/src/forwardDecl.h	Wed May 11 13:26:45 2011 -0700
@@ -50,9 +50,9 @@
 	extern const Type Error_Type;
 	extern const Type Debug_Type;
 	
-	int Journal_Printf( void*, char*, ... );
-	int Journal_PrintfL( void*, unsigned int, char*, ... );
-	int Journal_Firewall( int expression, void* stream, char* fmt, ... );
+	int Journal_Printf( void*, Name, ... );
+	int Journal_PrintfL( void*, unsigned int, Name, ... );
+	int Journal_Firewall( int expression, void* stream, Name fmt, ... );
 	
 	#ifdef DEBUG
 		#define Journal_DPrintf Journal_Printf
diff -r 7c15b31c769d -r 4a864caece0b StgSCons
--- a/StgSCons	Fri Nov 12 16:01:00 2010 -0800
+++ b/StgSCons	Wed May 11 13:26:45 2011 -0700
@@ -261,19 +261,19 @@ def create_meta(target, source, env):
 /* Note: Two macros are used to resolve the the extra macro level */
 #define Stg_Component_Metadata_Create( name ) Stg_Component_Metadata_Create_Macro( name )
 #define Stg_Component_Metadata_Create_Macro( name ) \
-	const char* name ##_Meta = XML_METADATA; \
-	const char* name ##_Name = #name; \
-	const char* name ##_Version = VERSION; \
-	const char* name ##_Type_GetMetadata() { /* hack...won't be needed when hierarchy rollout is done */\
+	Name name ##_Meta = XML_METADATA; \
+	Name name ##_Name = #name; \
+	Name name ##_Version = VERSION; \
+	Name name ##_Type_GetMetadata() { /* hack...won't be needed when hierarchy rollout is done */\
 		return name ##_Meta; \
 	} \
-	const char* name ##_GetMetadata() { \
+	Name name ##_GetMetadata() { \
 		return name ##_Meta; \
 	} \
-	const char* name ##_GetName() { \
+	Name name ##_GetName() { \
 		return name ##_Name; \
 	} \
-	const char* name ##_GetVersion() { \
+	Name name ##_GetVersion() { \
 		return name ##_Version; \
 	}
 
diff -r 7c15b31c769d -r 4a864caece0b Utils/src/Progress.c
--- a/Utils/src/Progress.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Utils/src/Progress.c	Wed May 11 13:26:45 2011 -0700
@@ -104,7 +104,7 @@ void Progress_SetStream( void* _self, St
 }
 
 
-void Progress_SetTitle( void* _self, const char* str ) {
+void Progress_SetTitle( void* _self, Name str ) {
    Progress* self = (Progress*)_self;
 
    if( self->title )
@@ -113,7 +113,7 @@ void Progress_SetTitle( void* _self, con
 }
 
 
-void Progress_SetPrefix( void* _self, const char* str ) {
+void Progress_SetPrefix( void* _self, Name str ) {
    Progress* self = (Progress*)_self;
 
    if( self->preStr )
@@ -205,7 +205,7 @@ Bool Progress_CalcStatus( Progress* self
    self->nBars = (int)(frac * (float)(self->width - 7));
    self->nSpaces = self->width - 7 - self->nBars;
 
-   return (self->perc != oldPerc || self->nBars != oldnBars);
+   return (self->perc != oldPerc || self->nBars != oldnBars) ? True : False;
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b Utils/src/Progress.h
--- a/Utils/src/Progress.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/Utils/src/Progress.h	Wed May 11 13:26:45 2011 -0700
@@ -63,8 +63,8 @@ void _Progress_Print( void* self, Stream
 void _Progress_Print( void* self, Stream* stream );
 
 void Progress_SetStream( void* self, Stream* strm );
-void Progress_SetTitle( void* self, const char* str );
-void Progress_SetPrefix( void* self, const char* str );
+void Progress_SetTitle( void* self, Name str );
+void Progress_SetPrefix( void* self, Name str );
 void Progress_SetRange( void* self, int start, int end );
 void Progress_Restart( void* self );
 void Progress_Update( void* self );
diff -r 7c15b31c769d -r 4a864caece0b Utils/tests/ProgressSuite.c
--- a/Utils/tests/ProgressSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/Utils/tests/ProgressSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -14,7 +14,7 @@ void ProgressSuite_TestSetStream( Progre
 void ProgressSuite_TestSetStream( ProgressSuiteData* data ) {
    Progress_SetStream( data->prog, NULL );
    pcu_check_true( data->prog->strm == NULL );
-   Progress_SetStream( data->prog, (void*)1 );
+   Progress_SetStream( data->prog, (Stream*)1 );
    pcu_check_true( data->prog->strm == (void*)1 );
    Progress_SetStream( data->prog, NULL );
 }
diff -r 7c15b31c769d -r 4a864caece0b libStGermain/src/main.c
--- a/libStGermain/src/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/libStGermain/src/main.c	Wed May 11 13:26:45 2011 -0700
@@ -77,7 +77,8 @@ Stg_ComponentFactory* stgMainConstruct( 
 		context->CF = cf;
 		context->dictionary = dictionary;
 		context->communicator = communicator;
-		LiveComponentRegister_Add( cf->LCRegister, (void*)context );
+		LiveComponentRegister_Add( cf->LCRegister,
+                                           (Stg_Component*)context );
 	}
 
 	/* Instantion phase -------------------------------------------------------------------------------------------------*/
diff -r 7c15b31c769d -r 4a864caece0b libStGermain/tests/LibStGermainSuite.c
--- a/libStGermain/tests/LibStGermainSuite.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/libStGermain/tests/LibStGermainSuite.c	Wed May 11 13:26:45 2011 -0700
@@ -50,7 +50,7 @@ void LibStGermainSuite_TestXMLLibraryPat
 void LibStGermainSuite_TestXMLLibraryPath( LibStGermainSuiteData* data ) {
    Stg_Object* testDirectory;
    /* Testing entries in xmlDictionary */
-   testDirectory = Stg_ObjectList_Get( Project_XMLSearchPaths,"StGermain" );
+   testDirectory = (Stg_Object*)Stg_ObjectList_Get( Project_XMLSearchPaths,"StGermain" );
    pcu_check_true(testDirectory != NULL);
 }
 
diff -r 7c15b31c769d -r 4a864caece0b pcu/src/source.c
--- a/pcu/src/source.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/pcu/src/source.c	Wed May 11 13:26:45 2011 -0700
@@ -135,12 +135,12 @@ void pcu_source_unpack( pcu_source_t* sr
 
    len = *(int*)tmp;
    tmp += sizeof(int);
-   src->type = pcu_memdup( tmp, len );
+   src->type = (char*)pcu_memdup( tmp, len );
    tmp += len;
 
    len = *(int*)tmp;
    tmp += sizeof(int);
-   src->file = pcu_memdup( tmp, len );
+   src->file = (char*)pcu_memdup( tmp, len );
 
    tmp += len;
    src->line = *(int*)tmp;
@@ -148,13 +148,13 @@ void pcu_source_unpack( pcu_source_t* sr
 
    len = *(int*)tmp;
    tmp += sizeof(int);
-   src->expr = pcu_memdup( tmp, len );
+   src->expr = (char*)pcu_memdup( tmp, len );
    tmp += len;
 
    len = *(int*)tmp;
    tmp += sizeof(int);
    if( len ) {
-      src->msg = pcu_memdup( tmp, len );
+      src->msg = (char*)pcu_memdup( tmp, len );
       tmp += len;
    }
 
diff -r 7c15b31c769d -r 4a864caece0b pcu/src/textoutput.h
--- a/pcu/src/textoutput.h	Fri Nov 12 16:01:00 2010 -0800
+++ b/pcu/src/textoutput.h	Wed May 11 13:26:45 2011 -0700
@@ -20,7 +20,7 @@
 #ifndef pcu_textoutput_h
 #define pcu_textoutput_h
 
-pcu_listener_t* pcu_textoutput_create();
+pcu_listener_t* pcu_textoutput_create(int printdocs);
 void pcu_textoutput_destroy( pcu_listener_t* lsnr );
 
 #endif
diff -r 7c15b31c769d -r 4a864caece0b pcu/src/utils.c
--- a/pcu/src/utils.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/pcu/src/utils.c	Wed May 11 13:26:45 2011 -0700
@@ -30,7 +30,7 @@ void* pcu_memdup( const void* buf, int l
 }
 
 char* pcu_strdup( const char* str ) {
-   return str ? pcu_memdup( str, strlen( str ) + 1 ) : NULL;
+   return str ? (char*)pcu_memdup( str, strlen( str ) + 1 ) : NULL;
 }
 
 
diff -r 7c15b31c769d -r 4a864caece0b script/convert.py
--- a/script/convert.py	Fri Nov 12 16:01:00 2010 -0800
+++ b/script/convert.py	Wed May 11 13:26:45 2011 -0700
@@ -156,13 +156,13 @@ def metaXsdDict2stgCodeHeader():
 
 	return s
 
-# The purpose of this function is to write C code that creates a const char* for the component type name and the xml meta data
+# The purpose of this function is to write C code that creates a Name for the component type name and the xml meta data
 def metaXsdDict2stgStrings( xsdDict ):
 	s = ''
 
 	# The Name of the component
-	s += 'const char* ' + safecvar( xsdDict["info"]["title"] ) +  '_Name = "' + safecval( xsdDict["info"]["title"] ) + '";\n'
-	s += 'const char* ' + safecvar( xsdDict["info"]["title"] ) +  '_GetName() {\n'
+	s += 'Name ' + safecvar( xsdDict["info"]["title"] ) +  '_Name = "' + safecval( xsdDict["info"]["title"] ) + '";\n'
+	s += 'Name ' + safecvar( xsdDict["info"]["title"] ) +  '_GetName() {\n'
 	s += '\treturn ' + safecvar( xsdDict["info"]["title"] ) +  '_Name;\n'
 	s += '}\n'
 	s += '\n'
@@ -171,12 +171,12 @@ def metaXsdDict2stgStrings( xsdDict ):
 	xsdDoc = stgMetaXsd.createXML( xsdDict )
 	xsdTxt = xsdDoc.toprettyxml()
 	xsdTxt = safecval( xsdTxt )	
-	s += 'const char* ' + safecvar( xsdDict["info"]["title"] ) +  '_Meta = "' + xsdTxt + '";\n'
-	s += 'const char* ' + safecvar( xsdDict["info"]["title"] ) +  '_GetMetadata() {\n'
+	s += 'Name ' + safecvar( xsdDict["info"]["title"] ) +  '_Meta = "' + xsdTxt + '";\n'
+	s += 'Name ' + safecvar( xsdDict["info"]["title"] ) +  '_GetMetadata() {\n'
 	s += '\treturn ' + safecvar( xsdDict["info"]["title"] ) +  '_Meta;\n'
 	s += '}\n'
 	# The _Type variant exists because of macro used for ComponentRegister_Add does a stringify on the Component_Type argument
-	s += 'const char* ' + safecvar( xsdDict["info"]["title"] ) +  '_Type_GetMetadata() {\n'
+	s += 'Name ' + safecvar( xsdDict["info"]["title"] ) +  '_Type_GetMetadata() {\n'
 	s += '\treturn ' + safecvar( xsdDict["info"]["title"] ) +  '_Meta;\n'
 	s += '}\n'
 
diff -r 7c15b31c769d -r 4a864caece0b src/main.c
--- a/src/main.c	Fri Nov 12 16:01:00 2010 -0800
+++ b/src/main.c	Wed May 11 13:26:45 2011 -0700
@@ -94,7 +94,7 @@ static void forEachLiveComponent( Stream
 			}
 		}
 		if( componentType && !found ) {
-			Stg_ObjectList_PointerAppend( uniqueComponentTypes, componentType, 0, 0, 0, 0 );
+                  Stg_ObjectList_PointerAppend( uniqueComponentTypes, (void*)componentType, 0, 0, 0, 0 );
 		}
 	}
 
@@ -140,7 +140,7 @@ static void printRightsListItem( Stream*
 		/* i.e. if not null and not an empty string print the value else default */
 }
 
-
+void register_static_modules();
 int main( int argc, char* argv[] ) {
 	/* StGermain standard bits & pieces */
 	MPI_Comm						CommWorld;



More information about the CIG-COMMITS mailing list