ClassDescription.st
changeset 3918 32af25a0d71e
parent 3687 13d500d00047
child 3965 cef66fdfff9e
--- a/ClassDescription.st	Mon Nov 09 21:28:11 1998 +0100
+++ b/ClassDescription.st	Mon Nov 09 22:07:36 1998 +0100
@@ -50,64 +50,64 @@
 
     [Instance variables:]
 
-        instvars        <String>            the names of the instance variables
+	instvars        <String>            the names of the instance variables
 
 
     [Class variables:]
 
-        UpdatingChanges <Boolean>       true if the changes-file shall be updated
-                                        (except during startup and when filing in, this flag
-                                         is usually true)
-
-        UpdateChangeFileQuerySignal     used as an upQuery from the change management.
-                                        Whenever a changeRecord is to be written,
-                                        this signal is raised and a handler (if present)
-                                        is supposed to return true or false.
-                                        If unhandled, the value of the global
-                                        UpdatingChanges is returned for backward
-                                        compatibility (which means that the old
-                                        mechanism is used if no query-handler
-                                        is present).
-
-        LockChangesFile <Boolean>       if true, the change file is locked for updates.
-                                        Required when multiple users operate on a common
-                                        change file.
-                                        This is an experimental new feature, being evaluated.
-
-        FileOutErrorSignal              raised when an error occurs during fileOut
-
-        CatchMethodRedefinitions        if true, classes protect themself 
-        MethodRedefinitionSignal        (by raising MethodRedefinitionSignal)
-                                        from redefining any existing methods,
-                                        which are defined in another package.
-                                        (i.e. a signal will be raised, if you
-                                         fileIn something which redefines an
-                                         existing method and the packages do not
-                                         match).
-                                        The default is (currently) true.
-
-        TryLocalSourceFirst             If true, local source files are tried
-                                        first BEFORE the sourceCodeManager is
-                                        consulted. If false, the sourceCodeManager
-                                        is asked first.
-                                        Should be turned on, if you run an image from
-                                        local sources which have not yet been checked in.
-
-        NameSpaceQuerySignal            used as an upQuery to ask for a namespace into
-                                        which new classes are to be installed.
-
-        PackageQuerySignal              used as an upQuery to ask for a packageSymbol with
-                                        which new classes/methods are to be marked.
-
-        CreateNameSpaceQuerySignal      used as an upQuery to ask if unknown namespaces
-                                        should be silently created (without asking the user)
+	UpdatingChanges <Boolean>       true if the changes-file shall be updated
+					(except during startup and when filing in, this flag
+					 is usually true)
+
+	UpdateChangeFileQuerySignal     used as an upQuery from the change management.
+					Whenever a changeRecord is to be written,
+					this signal is raised and a handler (if present)
+					is supposed to return true or false.
+					If unhandled, the value of the global
+					UpdatingChanges is returned for backward
+					compatibility (which means that the old
+					mechanism is used if no query-handler
+					is present).
+
+	LockChangesFile <Boolean>       if true, the change file is locked for updates.
+					Required when multiple users operate on a common
+					change file.
+					This is an experimental new feature, being evaluated.
+
+	FileOutErrorSignal              raised when an error occurs during fileOut
+
+	CatchMethodRedefinitions        if true, classes protect themself 
+	MethodRedefinitionSignal        (by raising MethodRedefinitionSignal)
+					from redefining any existing methods,
+					which are defined in another package.
+					(i.e. a signal will be raised, if you
+					 fileIn something which redefines an
+					 existing method and the packages do not
+					 match).
+					The default is (currently) true.
+
+	TryLocalSourceFirst             If true, local source files are tried
+					first BEFORE the sourceCodeManager is
+					consulted. If false, the sourceCodeManager
+					is asked first.
+					Should be turned on, if you run an image from
+					local sources which have not yet been checked in.
+
+	NameSpaceQuerySignal            used as an upQuery to ask for a namespace into
+					which new classes are to be installed.
+
+	PackageQuerySignal              used as an upQuery to ask for a packageSymbol with
+					which new classes/methods are to be marked.
+
+	CreateNameSpaceQuerySignal      used as an upQuery to ask if unknown namespaces
+					should be silently created (without asking the user)
 
 
     [author:]
-        Claus Gittinger
+	Claus Gittinger
 
     [see also:]
-        Behavior Class Metaclass
+	Behavior Class Metaclass
 "
 ! !
 
@@ -125,63 +125,63 @@
     TryLocalSourceFirst := false.
 
     FileOutErrorSignal isNil ifTrue:[
-        FileOutErrorSignal := ErrorSignal newSignalMayProceed:false.
-        FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
-        FileOutErrorSignal notifierString:'error during fileOut'.
-
-        MethodRedefinitionSignal := QuerySignal new.
-        MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
-        MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
-        MethodRedefinitionSignal defaultAnswer:#keep.
-
-        ClassRedefinitionSignal := QuerySignal new.
-        ClassRedefinitionSignal nameClass:self message:#classRedefinitionSignal.
-        ClassRedefinitionSignal notifierString:'attempt to redefine class from different package'.
-        ClassRedefinitionSignal defaultAnswer:#keep.
-
-        UpdateChangeFileQuerySignal := QuerySignal new.
-        UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
-        UpdateChangeFileQuerySignal notifierString:'asking if changeFile update is wanted'.
-        UpdateChangeFileQuerySignal handlerBlock:[:ex | ex proceedWith:UpdatingChanges].
-
-        NameSpaceQuerySignal := QuerySignal new.
-        NameSpaceQuerySignal nameClass:self message:#nameSpaceQuerySignal.
-        NameSpaceQuerySignal notifierString:'asking for nameSpace'.
-        NameSpaceQuerySignal handlerBlock:[:ex | ex proceedWith:Smalltalk defaultNameSpace].
-
-        UsedNameSpaceQuerySignal := QuerySignal new.
-        UsedNameSpaceQuerySignal nameClass:self message:#usedNameSpaceQuerySignal.
-        UsedNameSpaceQuerySignal notifierString:'asking for used nameSpaced'.
-
-        CreateNameSpaceQuerySignal := QuerySignal new.
-        CreateNameSpaceQuerySignal nameClass:self message:#createNameSpaceQuerySignal.
-        CreateNameSpaceQuerySignal notifierString:'asking for nameSpace creation'.
-        CreateNameSpaceQuerySignal defaultAnswer:false.
-
-        PackageQuerySignal := QuerySignal new.
-        PackageQuerySignal nameClass:self message:#packageQuerySignal.
-        PackageQuerySignal notifierString:'asking for package'.
-        PackageQuerySignal handlerBlock:[:ex | ex proceedWith:(Project isNil 
-                                                                    ifTrue:[
-                                                                        'no package'
-                                                                    ] ifFalse:[
-                                                                        Project currentPackageName
-                                                                    ])].
-
-        FileOutNameSpaceQuerySignal := QuerySignal new.
-        FileOutNameSpaceQuerySignal defaultAnswer:false.
-
-        ChangeFileAccessLock := Semaphore forMutualExclusion name:'ChangeFileAccessLock'.
+	FileOutErrorSignal := ErrorSignal newSignalMayProceed:false.
+	FileOutErrorSignal nameClass:self message:#fileOutErrorSignal.
+	FileOutErrorSignal notifierString:'error during fileOut'.
+
+	MethodRedefinitionSignal := QuerySignal new.
+	MethodRedefinitionSignal nameClass:self message:#methodRedefinitionSignal.
+	MethodRedefinitionSignal notifierString:'attempt to redefine method from different package'.
+	MethodRedefinitionSignal defaultAnswer:#keep.
+
+	ClassRedefinitionSignal := QuerySignal new.
+	ClassRedefinitionSignal nameClass:self message:#classRedefinitionSignal.
+	ClassRedefinitionSignal notifierString:'attempt to redefine class from different package'.
+	ClassRedefinitionSignal defaultAnswer:#keep.
+
+	UpdateChangeFileQuerySignal := QuerySignal new.
+	UpdateChangeFileQuerySignal nameClass:self message:#updateChangeFileQuerySignal.
+	UpdateChangeFileQuerySignal notifierString:'asking if changeFile update is wanted'.
+	UpdateChangeFileQuerySignal handlerBlock:[:ex | ex proceedWith:UpdatingChanges].
+
+	NameSpaceQuerySignal := QuerySignal new.
+	NameSpaceQuerySignal nameClass:self message:#nameSpaceQuerySignal.
+	NameSpaceQuerySignal notifierString:'asking for nameSpace'.
+	NameSpaceQuerySignal handlerBlock:[:ex | ex proceedWith:Smalltalk defaultNameSpace].
+
+	UsedNameSpaceQuerySignal := QuerySignal new.
+	UsedNameSpaceQuerySignal nameClass:self message:#usedNameSpaceQuerySignal.
+	UsedNameSpaceQuerySignal notifierString:'asking for used nameSpaced'.
+
+	CreateNameSpaceQuerySignal := QuerySignal new.
+	CreateNameSpaceQuerySignal nameClass:self message:#createNameSpaceQuerySignal.
+	CreateNameSpaceQuerySignal notifierString:'asking for nameSpace creation'.
+	CreateNameSpaceQuerySignal defaultAnswer:false.
+
+	PackageQuerySignal := QuerySignal new.
+	PackageQuerySignal nameClass:self message:#packageQuerySignal.
+	PackageQuerySignal notifierString:'asking for package'.
+	PackageQuerySignal handlerBlock:[:ex | ex proceedWith:(Project isNil 
+								    ifTrue:[
+									'no package'
+								    ] ifFalse:[
+									Project currentPackageName
+								    ])].
+
+	FileOutNameSpaceQuerySignal := QuerySignal new.
+	FileOutNameSpaceQuerySignal defaultAnswer:false.
+
+	ChangeFileAccessLock := Semaphore forMutualExclusion name:'ChangeFileAccessLock'.
     ].
 
     DefaultApplicationQuerySignal isNil ifTrue:[
-        DefaultApplicationQuerySignal := QuerySignal new defaultAnswer:nil.
-        DefaultApplicationQuerySignal nameClass:self message:#defaultApplicationQuerySignal.
-        DefaultApplicationQuerySignal notifierString:'query for default application'.
-
-        ChangeDefaultApplicationNotificationSignal := QuerySignal new defaultAnswer:nil.
-        ChangeDefaultApplicationNotificationSignal nameClass:self message:#changeDefaultApplicationNotificationSignal.
-        ChangeDefaultApplicationNotificationSignal notifierString:'change default application'.
+	DefaultApplicationQuerySignal := QuerySignal new defaultAnswer:nil.
+	DefaultApplicationQuerySignal nameClass:self message:#defaultApplicationQuerySignal.
+	DefaultApplicationQuerySignal notifierString:'query for default application'.
+
+	ChangeDefaultApplicationNotificationSignal := QuerySignal new defaultAnswer:nil.
+	ChangeDefaultApplicationNotificationSignal nameClass:self message:#changeDefaultApplicationNotificationSignal.
+	ChangeDefaultApplicationNotificationSignal notifierString:'change default application'.
     ].
 
     "
@@ -475,7 +475,7 @@
     |mthd|
 
     (mthd := self compiledMethodAt:aSelector) notNil ifTrue:[
-        mthd category:listOfCategories first
+	mthd category:listOfCategories first
     ].
 
     "Created: / 15.6.1998 / 17:11:02 / cg"
@@ -490,7 +490,7 @@
     |mthd|
 
     (mthd := self compiledMethodAt:aSelector) notNil ifTrue:[
-        "/ mthd comment:aString
+	"/ mthd comment:aString
     ].
 
     "Created: / 15.6.1998 / 17:11:02 / cg"
@@ -587,11 +587,11 @@
     "return a collection of the instance variable name-strings"
 
     instvars isNil ifTrue:[
-        ^ OrderedCollection new
+	^ OrderedCollection new
     ].
     instvars isString ifTrue:[
-        instvars := instvars asCollectionOfWords asArray.
-        ^ instvars
+	instvars := instvars asCollectionOfWords asArray.
+	^ instvars
     ].
 
     ^ instvars
@@ -612,12 +612,12 @@
 
     cls := self.
     [cls notNil] whileTrue:[
-        vars := cls instVarNames.
-        i := vars indexOf:aVariableName.
-        i ~~ 0 ifTrue:[
-            ^ (cls superclass instSize) + i
-        ].
-        cls := cls superclass
+	vars := cls instVarNames.
+	i := vars indexOf:aVariableName.
+	i ~~ 0 ifTrue:[
+	    ^ (cls superclass instSize) + i
+	].
+	cls := cls superclass
     ].
     ^ nil
 
@@ -651,7 +651,7 @@
 
     instvars isNil ifTrue:[^ ''].
     instvars isString ifTrue:[
-        ^ instvars
+	^ instvars
     ].
 
     ^ instvars asStringWith:(Character space)
@@ -679,14 +679,14 @@
 
     any := false.
     self methodDictionary do:[:aMethod |
-        aMethod category = oldCategory ifTrue:[
-            aMethod category:newCategory.
-            any := true.
-        ]
+	aMethod category = oldCategory ifTrue:[
+	    aMethod category:newCategory.
+	    any := true.
+	]
     ].
     any ifTrue:[
-        self addChangeRecordForRenameCategory:oldCategory to:newCategory.
-        self changed:#methodCategory.
+	self addChangeRecordForRenameCategory:oldCategory to:newCategory.
+	self changed:#methodCategory.
     ]
 
     "Modified: 12.6.1996 / 11:49:08 / stefan"
@@ -705,68 +705,68 @@
     oldMethod := self compiledMethodAt:newSelector.
 
     CatchMethodRedefinitions ifTrue:[
-        "check for attempts to redefine a method
-         in a different package. Signal a resumable error if so.
-         This allows tracing redefinitions of existing system methods
-         when filing in alien code ....
-         (which we may want to forbit sometimes)
-        "
-        oldMethod notNil ifTrue:[
-            oldPackage := oldMethod package.
-            newPackage := newMethod package.
-            oldPackage ~= newPackage ifTrue:[
-                "
-                 attempt to redefine an existing method, which was
-                 defined in another package (see oldPackage vs. newPackage).
-                 If you continue in the debugger, the new method gets installed.
-                 Otherwise, the existing (old) method remains valid.
-
-                 This check was added to help prevent accidental modifications
-                 of system code - especially, when alien code is filedIn. 
-                 After you became familiar with the system, may want to disable this
-                 check if it becomes too annoying (and only turn it on
-                 temporarily, when filing in unknown code-files).
-
-                 You can turn off the catching of redefinitions by setting
-                 my classVariable
-                          CatchMethodRedefinitions 
-                 to false.
-                 (also found in the Launchers 'settings-compilation' menu)
-                "
-                (Class methodRedefinitionSignal
-                    raiseRequestWith:(oldMethod -> newMethod)
-                    errorString:('redefinition of method: ' , self name , '>>' , newSelector) 
-                ) == #keep ifTrue:[
-                    newMethod package:oldMethod package
-                ].
-
-                "/ if proceeded, install as usual.
-            ]
-        ]
+	"check for attempts to redefine a method
+	 in a different package. Signal a resumable error if so.
+	 This allows tracing redefinitions of existing system methods
+	 when filing in alien code ....
+	 (which we may want to forbit sometimes)
+	"
+	oldMethod notNil ifTrue:[
+	    oldPackage := oldMethod package.
+	    newPackage := newMethod package.
+	    oldPackage ~= newPackage ifTrue:[
+		"
+		 attempt to redefine an existing method, which was
+		 defined in another package (see oldPackage vs. newPackage).
+		 If you continue in the debugger, the new method gets installed.
+		 Otherwise, the existing (old) method remains valid.
+
+		 This check was added to help prevent accidental modifications
+		 of system code - especially, when alien code is filedIn. 
+		 After you became familiar with the system, may want to disable this
+		 check if it becomes too annoying (and only turn it on
+		 temporarily, when filing in unknown code-files).
+
+		 You can turn off the catching of redefinitions by setting
+		 my classVariable
+			  CatchMethodRedefinitions 
+		 to false.
+		 (also found in the Launchers 'settings-compilation' menu)
+		"
+		(Class methodRedefinitionSignal
+		    raiseRequestWith:(oldMethod -> newMethod)
+		    errorString:('redefinition of method: ' , self name , '>>' , newSelector) 
+		) == #keep ifTrue:[
+		    newMethod package:oldMethod package
+		].
+
+		"/ if proceeded, install as usual.
+	    ]
+	]
     ].
 
     "/ remember new->old association in the OldMethods dictionary (if non-nil)
 
     OldMethods notNil ifTrue:[
-        oldMethod notNil ifTrue:[
+	oldMethod notNil ifTrue:[
 "/            oldMethod source:(oldMethod source).
-            OldMethods at:newMethod put:oldMethod
-        ]
+	    OldMethods at:newMethod put:oldMethod
+	]
     ].
 
     "/ remember in the projects overwritten dictionary
 
     oldMethod notNil ifTrue:[
-        oldMethod package ~= newMethod package ifTrue:[
-            Project notNil ifTrue:[
-                "/ allow configurations without Project
-                Project rememberOverwrittenMethod:newMethod from:oldMethod
-            ]
-        ]
+	oldMethod package ~= newMethod package ifTrue:[
+	    Project notNil ifTrue:[
+		"/ allow configurations without Project
+		Project rememberOverwrittenMethod:newMethod from:oldMethod
+	    ]
+	]
     ].
 
     (super addSelector:newSelector withMethod:newMethod) ifTrue:[
-        self addChangeRecordForMethod:newMethod.
+	self addChangeRecordForMethod:newMethod.
     ]
 
     "Modified: / 9.9.1996 / 22:39:32 / stefan"
@@ -791,19 +791,19 @@
      Append a change record to the changes file and tell dependents."
 
     (super removeSelector:aSelector) ifTrue:[
-        self addChangeRecordForRemoveSelector:aSelector.
-        "/
-        "/ also notify a change of mySelf;
-        "/
-        self changed:#methodDictionary with:aSelector.
-
-        "/
-        "/ also notify a change of Smalltalk;
-        "/ this allows a dependent of Smalltalk to watch all class
-        "/ changes (no need for observing all classes)
-        "/ - this allows for watchers to find out if its a new method or a method-change
-        "/
-        Smalltalk changed:#methodInClassRemoved with:(Array with:self with:aSelector).
+	self addChangeRecordForRemoveSelector:aSelector.
+	"/
+	"/ also notify a change of mySelf;
+	"/
+	self changed:#methodDictionary with:aSelector.
+
+	"/
+	"/ also notify a change of Smalltalk;
+	"/ this allows a dependent of Smalltalk to watch all class
+	"/ changes (no need for observing all classes)
+	"/ - this allows for watchers to find out if its a new method or a method-change
+	"/
+	Smalltalk changed:#methodInClassRemoved with:(Array with:self with:aSelector).
     ]
 
     "Modified: 8.1.1997 / 23:03:49 / cg"
@@ -820,30 +820,30 @@
      The c-function has the name cFunctionNameString, and expects parameters as specified in
      argTypeArray. The functions return value has a type as specified by returnType.
      WARNING: 
-        this interface is EXPERIMENTAL - it may change or even be removed."
+	this interface is EXPERIMENTAL - it may change or even be removed."
 
     StubGenerator isNil ifTrue:[
-        ^ self error:'this system does not support dynamic C Interface functions'.
+	^ self error:'this system does not support dynamic C Interface functions'.
     ].
 
     StubGenerator 
-        createStubFor:selector 
-        calling:cFunctionNameString 
-        args:argTypeArray 
-        returning:returnType
-        in:self                          
+	createStubFor:selector 
+	calling:cFunctionNameString 
+	args:argTypeArray 
+	returning:returnType
+	in:self                          
 
     "
      Object subclass:#CInterface
-            instanceVariableNames:''
-            classVariableNames:''
-            poolDictionaries:''
-            category:'Examples'.
+	    instanceVariableNames:''
+	    classVariableNames:''
+	    poolDictionaries:''
+	    category:'Examples'.
 
      CInterface cInterfaceFunction:#printfOn:format:withFloat: 
-                           calling:'fprintf' 
-                              args:#(ExternalStream String Float) 
-                         returning:#SmallInteger.
+			   calling:'fprintf' 
+			      args:#(ExternalStream String Float) 
+			 returning:#SmallInteger.
 
      CInterface printfOn:Stdout format:'this is a float: %g' withFloat:(Float pi). Stdout cr  
     "
@@ -860,11 +860,11 @@
     "add a method-change-record to the changes file"
 
     UpdateChangeFileQuerySignal raise ifTrue:[
-        self writingChangePerform:#addChangeRecordForMethod:to: with:aMethod.
-        "this test allows a smalltalk without Projects/ChangeSets"
-        Project notNil ifTrue:[
-            Project addMethodChange:aMethod in:self
-        ]
+	self writingChangePerform:#addChangeRecordForMethod:to: with:aMethod.
+	"this test allows a smalltalk without Projects/ChangeSets"
+	Project notNil ifTrue:[
+	    Project addMethodChange:aMethod in:self
+	]
     ]
 
     "Modified: 20.1.1997 / 12:36:02 / cg"
@@ -877,14 +877,14 @@
     "add a methodCategory-change-record to the changes file"
 
     UpdateChangeFileQuerySignal raise ifTrue:[
-        self writingChangeDo:[:aStream |
-            self addChangeRecordForMethodCategory:aMethod category:aString to:aStream.
-        ].
-
-        "this test allows a smalltalk without Projects/ChangeSets"
-        Project notNil ifTrue:[
-            Project addMethodCategoryChange:aMethod category:aString in:self
-        ]
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForMethodCategory:aMethod category:aString to:aStream.
+	].
+
+	"this test allows a smalltalk without Projects/ChangeSets"
+	Project notNil ifTrue:[
+	    Project addMethodCategoryChange:aMethod category:aString in:self
+	]
     ]
 
     "Modified: 20.1.1997 / 12:36:05 / cg"
@@ -897,11 +897,11 @@
     "add a method-privacy-change-record to the changes file"
 
     UpdateChangeFileQuerySignal raise ifTrue:[
-        self writingChangePerform:#addChangeRecordForMethodPrivacy:to: with:aMethod.
-        "this test allows a smalltalk without Projects/ChangeSets"
-        Project notNil ifTrue:[
-            Project addMethodPrivacyChange:aMethod in:self
-        ]
+	self writingChangePerform:#addChangeRecordForMethodPrivacy:to: with:aMethod.
+	"this test allows a smalltalk without Projects/ChangeSets"
+	Project notNil ifTrue:[
+	    Project addMethodPrivacyChange:aMethod in:self
+	]
     ]
 
     "Modified: 27.8.1995 / 22:47:32 / claus"
@@ -915,12 +915,12 @@
     "add a method-remove-record to the changes file"
 
     UpdateChangeFileQuerySignal raise ifTrue:[
-        self writingChangePerform:#addChangeRecordForRemoveSelector:to: with:aSelector.
-
-        "this test allows a smalltalk without Projects/ChangeSets"
-        Project notNil ifTrue:[
-            Project addRemoveSelectorChange:aSelector in:self
-        ]
+	self writingChangePerform:#addChangeRecordForRemoveSelector:to: with:aSelector.
+
+	"this test allows a smalltalk without Projects/ChangeSets"
+	Project notNil ifTrue:[
+	    Project addRemoveSelectorChange:aSelector in:self
+	]
     ]
 
     "Created: / 2.4.1997 / 17:30:47 / stefan"
@@ -933,9 +933,9 @@
     "add a category-rename record to the changes file"
 
     UpdateChangeFileQuerySignal raise ifTrue:[
-        self writingChangeDo:[:aStream |
-            self addChangeRecordForRenameCategory:oldCategory to:newCategory to:aStream.
-        ]
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForRenameCategory:oldCategory to:newCategory to:aStream.
+	]
     ]
 
     "Modified: 24.1.1997 / 19:10:57 / cg"
@@ -962,9 +962,9 @@
     "add an info-record (snapshot, class fileOut etc.) to the changes file"
 
     UpdateChangeFileQuerySignal raise ifTrue:[
-        self writingChangeWithTimeStamp:false 
-             perform:#addInfoRecord:to: 
-             with:aMessage.
+	self writingChangeWithTimeStamp:false 
+	     perform:#addInfoRecord:to: 
+	     with:aMessage.
     ]
 
     "Modified: 24.1.1997 / 19:13:14 / cg"
@@ -982,17 +982,17 @@
     fileName := ObjectMemory nameForChanges.
     
     LockChangesFile ifTrue:[
-        streamType := LockedFileStream. 
+	streamType := LockedFileStream. 
     ] ifFalse:[
-        streamType := FileStream.
+	streamType := FileStream.
     ].
     aStream := streamType oldFileNamed:fileName.
     aStream isNil ifTrue:[
-        aStream := streamType newFileNamed:fileName.
-        aStream isNil ifTrue:[
-            self warn:'cannot create/update the changes file'.
-            ^ nil
-        ]
+	aStream := streamType newFileNamed:fileName.
+	aStream isNil ifTrue:[
+	    self warn:'cannot create/update the changes file'.
+	    ^ nil
+	]
     ].
     aStream setToEnd.
     ^ aStream
@@ -1007,7 +1007,7 @@
     UpdateChangeFileQuerySignal 
     answer:false
     do:[
-        aBlock value
+	aBlock value
     ].
 
     "Modified: 17.1.1997 / 20:48:05 / cg"
@@ -1049,17 +1049,17 @@
      Returns the new method or nil (on failure)."
 
     logged ifFalse:[
-        self withoutUpdatingChangesDo:[
-            ^ self compilerClass 
-                compile:code 
-                forClass:self 
-                inCategory:category
-        ]
+	self withoutUpdatingChangesDo:[
+	    ^ self compilerClass 
+		compile:code 
+		forClass:self 
+		inCategory:category
+	]
     ] ifTrue:[
-        ^ self compilerClass 
-            compile:code 
-            forClass:self 
-            inCategory:category
+	^ self compilerClass 
+	    compile:code 
+	    forClass:self 
+	    inCategory:category
     ].
 
     "Modified: 13.12.1995 / 11:02:34 / cg"
@@ -1073,10 +1073,10 @@
      Returns the new method or nil (on failure)."
 
     ^ self compilerClass 
-        compile:code 
-        forClass:self
-        inCategory:cat 
-        notifying:requestor
+	compile:code 
+	forClass:self
+	inCategory:cat 
+	notifying:requestor
 
     "Modified: / 13.12.1995 / 11:02:40 / cg"
     "Created: / 18.6.1998 / 15:52:15 / cg"
@@ -1104,11 +1104,11 @@
     |rslt|
 
     rslt := self compilerClass 
-        compile:code 
-        forClass:self 
-        notifying:requestor.
+	compile:code 
+	forClass:self 
+	notifying:requestor.
     (rslt isNil or:[rslt == #Error]) ifTrue:[
-        ^ failBlock value
+	^ failBlock value
     ].
     ^ rslt
 
@@ -1124,7 +1124,7 @@
      have to be recompiled"
 
     self methodDictionary keysAndValuesDo:[:aSelector :aMethod |
-        self recompile:aSelector
+	self recompile:aSelector
     ]
 
     "Modified: 12.6.1996 / 11:51:15 / stefan"
@@ -1142,24 +1142,24 @@
     |cat code compiler|
 
     Class withoutUpdatingChangesDo:[
-        MethodRedefinitionSignal ignoreIn:[
-            cat := (self compiledMethodAt:aSelector) category.
-            code := self sourceCodeAt:aSelector.
-            compiler := self compilerClass.
-            (compiler respondsTo:#compile:forClass:inCategory:)
-            ifTrue:[
-                "/ ST/X's compiler
-                compiler compile:code forClass:self inCategory:cat
-            ] ifFalse:[
-                "/ some other (TGEN) compiler
-                compiler new
-                        compile:code
-                        in:self
-                        notifying:nil
-                        ifFail:[].
-                self halt.
-            ]
-        ]
+	MethodRedefinitionSignal ignoreIn:[
+	    cat := (self compiledMethodAt:aSelector) category.
+	    code := self sourceCodeAt:aSelector.
+	    compiler := self compilerClass.
+	    (compiler respondsTo:#compile:forClass:inCategory:)
+	    ifTrue:[
+		"/ ST/X's compiler
+		compiler compile:code forClass:self inCategory:cat
+	    ] ifFalse:[
+		"/ some other (TGEN) compiler
+		compiler new
+			compile:code
+			in:self
+			notifying:nil
+			ifFail:[].
+		self halt.
+	    ]
+	]
     ]
 
     "Created: / 1.4.1997 / 23:43:34 / stefan"
@@ -1177,7 +1177,7 @@
     classes := self subclasses.
     self recompile.
     classes do:[:aClass |
-        aClass recompileAll
+	aClass recompileAll
     ]
 
     "Modified: 5.1.1997 / 19:56:29 / cg"
@@ -1194,22 +1194,22 @@
     |cat code prev savedMethod|
 
     Class withoutUpdatingChangesDo:[
-        MethodRedefinitionSignal ignoreIn:[
-            savedMethod := self compiledMethodAt:aSelector.
-            cat := savedMethod category.
-            code := self sourceCodeAt:aSelector.
+	MethodRedefinitionSignal ignoreIn:[
+	    savedMethod := self compiledMethodAt:aSelector.
+	    cat := savedMethod category.
+	    code := self sourceCodeAt:aSelector.
         
-            prev := Compiler stcCompilation:#always.
-            [
-                self compilerClass compile:code forClass:self inCategory:cat
-            ] valueNowOrOnUnwindDo:[
-                Compiler stcCompilation:prev.
-
-                (self compiledMethodAt:aSelector) isNil ifTrue:[
-                    self primAddSelector:aSelector withMethod:savedMethod
-                ]
-            ]
-        ]
+	    prev := Compiler stcCompilation:#always.
+	    [
+		self compilerClass compile:code forClass:self inCategory:cat
+	    ] valueNowOrOnUnwindDo:[
+		Compiler stcCompilation:prev.
+
+		(self compiledMethodAt:aSelector) isNil ifTrue:[
+		    self primAddSelector:aSelector withMethod:savedMethod
+		]
+	    ]
+	]
     ]
 
     "Modified: 5.1.1997 / 19:55:33 / cg"
@@ -1222,16 +1222,16 @@
     "recompile all invalidated methods"
 
     self methodDictionary keysAndValuesDo:[:aSelector :aMethod |
-        |trap trapCode trapByteCode|
-
-        trap := aMethod trapMethodForNumArgs:aMethod numArgs.
-        trapCode := trap code.
-        trapByteCode := trap byteCode.
-
-        (aMethod code = trapCode
-        or:[aMethod byteCode == trapByteCode]) ifTrue:[
-            self recompile:aSelector
-        ]
+	|trap trapCode trapByteCode|
+
+	trap := aMethod trapMethodForNumArgs:aMethod numArgs.
+	trapCode := trap code.
+	trapByteCode := trap byteCode.
+
+	(aMethod code = trapCode
+	or:[aMethod byteCode == trapByteCode]) ifTrue:[
+	    self recompile:aSelector
+	]
     ]
 
     "Modified: 12.6.1996 / 11:52:09 / stefan"
@@ -1259,33 +1259,33 @@
     |p|
 
     self methodDictionary keysAndValuesDo:[:aSelector :aMethod |
-        |mustCompile lits source|
-
-        mustCompile := nil.
-
-        source := aMethod source.
-
-        "/ avoid parsing, if possible
-        superBoolean ifFalse:[
-            setOfNames size == 1 ifTrue:[
-                (source findString:(setOfNames first)) == 0 ifTrue:[
-                    mustCompile := false.
-                ]
-            ]
-        ].
-
-        mustCompile isNil ifTrue:[
-            p := Parser parseMethod:source in:self.
-            (p isNil 
-             or:[(p usedVars includesAny:setOfNames)
-             or:[superBoolean and:[p usesSuper]]]) ifTrue:[
-                mustCompile := true
-            ]
-        ].
-
-        mustCompile == true ifTrue:[
-            self recompile:aSelector
-        ]
+	|mustCompile lits source|
+
+	mustCompile := nil.
+
+	source := aMethod source.
+
+	"/ avoid parsing, if possible
+	superBoolean ifFalse:[
+	    setOfNames size == 1 ifTrue:[
+		(source findString:(setOfNames first)) == 0 ifTrue:[
+		    mustCompile := false.
+		]
+	    ]
+	].
+
+	mustCompile isNil ifTrue:[
+	    p := Parser parseMethod:source in:self.
+	    (p isNil 
+	     or:[(p usedVars includesAny:setOfNames)
+	     or:[superBoolean and:[p usesSuper]]]) ifTrue:[
+		mustCompile := true
+	    ]
+	].
+
+	mustCompile == true ifTrue:[
+	    self recompile:aSelector
+	]
     ]
 
     "Modified: 12.6.1996 / 11:52:35 / stefan"
@@ -1299,22 +1299,22 @@
     "recompile all methods accessing a global or classvar in aCollection"
 
     self methodDictionary keysAndValuesDo:[:aSelector :aMethod |
-        (aMethod literalsDetect:[ :lit | |i l|
-            "classVars are named 'className:varName' in 
-             the literal array"
-
-            lit isSymbol and:[
-                i := lit lastIndexOf:$:.
-                i == 0 ifTrue:[
-                    l := lit.
-                ] ifFalse:[
-                    l := lit copyFrom:(i + 1).
-                ].
-                aCollection includes:l
-            ].
-        ] ifNone:[]) notNil ifTrue:[
-            self recompile:aSelector
-        ]
+	(aMethod literalsDetect:[ :lit | |i l|
+	    "classVars are named 'className:varName' in 
+	     the literal array"
+
+	    lit isSymbol and:[
+		i := lit lastIndexOf:$:.
+		i == 0 ifTrue:[
+		    l := lit.
+		] ifFalse:[
+		    l := lit copyFrom:(i + 1).
+		].
+		aCollection includes:l
+	    ].
+	] ifNone:[]) notNil ifTrue:[
+	    self recompile:aSelector
+	]
     ]
 
     "Modified: / 29.8.1997 / 07:59:24 / cg"
@@ -1328,11 +1328,11 @@
     "recompile all methods accessing the global variable aGlobalKey"
 
     self methodDictionary keysAndValuesDo:[:aSelector :aMethod |
-        (aMethod literalsDetect:[:lit|
-            lit = aGlobalKey
-        ] ifNone:[]) notNil ifTrue:[
-            self recompile:aSelector.
-        ].
+	(aMethod literalsDetect:[:lit|
+	    lit = aGlobalKey
+	] ifNone:[]) notNil ifTrue:[
+	    self recompile:aSelector.
+	].
     ].
 
     "Created: / 1.4.1997 / 23:44:53 / stefan"
@@ -1347,9 +1347,9 @@
      This was added to allow squeak code to be filedIn."
 
     ^ Squeak::ClassCommentReader new
-        class:self 
-        category:#Comment
-        changeStamp:aStamp
+	class:self 
+	category:#Comment
+	changeStamp:aStamp
 
     "Modified: / 6.6.1998 / 01:47:06 / cg"
 !
@@ -1484,20 +1484,20 @@
      this test allows a smalltalk to be built without Projects/ChangeSets
     "
     Project notNil ifTrue:[
-        fileName := Project currentProjectDirectory asFilename construct:(fileName name).
+	fileName := Project currentProjectDirectory asFilename construct:(fileName name).
     ].
 
     "
      if file exists, save original in a .sav file
     "
     fileName exists ifTrue:[
-        fileName copyTo:(fileName withSuffix:'sav')
+	fileName copyTo:(fileName withSuffix:'sav')
     ].
     aStream := FileStream newFileNamed:fileName.
     aStream isNil ifTrue:[
-        ^ FileOutErrorSignal 
-                raiseRequestWith:fileName
-                errorString:('cannot create file:', fileName pathName)
+	^ FileOutErrorSignal 
+		raiseRequestWith:fileName
+		errorString:('cannot create file:', fileName pathName)
     ].
     self fileOutCategory:aCategory on:aStream.
     aStream close
@@ -1518,72 +1518,72 @@
 
     dict := self methodDictionary.
     dict notNil ifTrue:[
-        interestingMethods := OrderedCollection new.
-        dict do:[:aMethod |
-            |wanted|
-
-            (aCategory = aMethod category) ifTrue:[
-                skippedMethods notNil ifTrue:[
-                    wanted := (skippedMethods includesIdentical:aMethod) not
-                ] ifFalse:[
-                    savedMethods notNil ifTrue:[
-                        wanted := (savedMethods includesIdentical:aMethod).
-                    ] ifFalse:[
-                        wanted := true
-                    ]
-                ].
-                wanted ifTrue:[interestingMethods add:aMethod].
-            ]
-        ].
-        interestingMethods notEmpty ifTrue:[
-            first := true.
-            privacy := nil.
-
-            "/
-            "/ sort by selector
-            "/
-            sortedSelectors := interestingMethods collect:[:m | self selectorAtMethod:m].
-            sortedSelectors sortWith:interestingMethods.
-
-            interestingMethods do:[:aMethod |
-                first ifFalse:[
-                    privacy ~~ aMethod privacy ifTrue:[
-                        first := true.
-                        aStream space.
-                        aStream nextPutChunkSeparator.
-                    ].
-                    aStream cr; cr
-                ].
-
-                privacy := aMethod privacy.
-
-                first ifTrue:[
-                    aStream nextPutChunkSeparator.
-                    self printClassNameOn:aStream.
-                    privacy ~~ #public ifTrue:[
-                        aStream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
-                    ] ifFalse:[
-                        aStream nextPutAll:' methodsFor:'.
-                    ].
-                    cat := aCategory.
-                    cat isNil ifTrue:[ cat := '' ].
-                    aStream nextPutAll:aCategory asString storeString.
-                    aStream nextPutChunkSeparator; cr; cr.
-                    first := false.
-                ].
-                source := aMethod source.
-                source isNil ifTrue:[
-                    FileOutErrorSignal 
-                        raiseRequestWith:self
-                        errorString:'no source for method: ', (aMethod displayString)
-                ] ifFalse:[
-                    aStream nextChunkPut:source.
-                ].
-            ].
-            aStream space.
-            aStream nextPutChunkSeparator.
-            aStream cr
-        ]
+	interestingMethods := OrderedCollection new.
+	dict do:[:aMethod |
+	    |wanted|
+
+	    (aCategory = aMethod category) ifTrue:[
+		skippedMethods notNil ifTrue:[
+		    wanted := (skippedMethods includesIdentical:aMethod) not
+		] ifFalse:[
+		    savedMethods notNil ifTrue:[
+			wanted := (savedMethods includesIdentical:aMethod).
+		    ] ifFalse:[
+			wanted := true
+		    ]
+		].
+		wanted ifTrue:[interestingMethods add:aMethod].
+	    ]
+	].
+	interestingMethods notEmpty ifTrue:[
+	    first := true.
+	    privacy := nil.
+
+	    "/
+	    "/ sort by selector
+	    "/
+	    sortedSelectors := interestingMethods collect:[:m | self selectorAtMethod:m].
+	    sortedSelectors sortWith:interestingMethods.
+
+	    interestingMethods do:[:aMethod |
+		first ifFalse:[
+		    privacy ~~ aMethod privacy ifTrue:[
+			first := true.
+			aStream space.
+			aStream nextPutChunkSeparator.
+		    ].
+		    aStream cr; cr
+		].
+
+		privacy := aMethod privacy.
+
+		first ifTrue:[
+		    aStream nextPutChunkSeparator.
+		    self printClassNameOn:aStream.
+		    privacy ~~ #public ifTrue:[
+			aStream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
+		    ] ifFalse:[
+			aStream nextPutAll:' methodsFor:'.
+		    ].
+		    cat := aCategory.
+		    cat isNil ifTrue:[ cat := '' ].
+		    aStream nextPutAll:aCategory asString storeString.
+		    aStream nextPutChunkSeparator; cr; cr.
+		    first := false.
+		].
+		source := aMethod source.
+		source isNil ifTrue:[
+		    FileOutErrorSignal 
+			raiseRequestWith:self
+			errorString:'no source for method: ', (aMethod displayString)
+		] ifFalse:[
+		    aStream nextChunkPut:source.
+		].
+	    ].
+	    aStream space.
+	    aStream nextPutChunkSeparator.
+	    aStream cr
+	]
     ]
 
     "Modified: 28.8.1995 / 14:30:41 / claus"
@@ -1609,33 +1609,33 @@
 
     selector := self selectorAtMethod:aMethod.
     selector notNil ifTrue:[
-        fileName := (self name , '-' , selector, '.st') asFilename.
-        fileName makeLegalFilename.
-
-        "
-         this test allows a smalltalk to be built without Projects/ChangeSets
-        "
-        Project notNil ifTrue:[
-            fileName := Project currentProjectDirectory asFilename construct:fileName name.
-        ].
-
-        "
-         if file exists, save original in a .sav file
-        "
-        fileName exists ifTrue:[
-            fileName copyTo:(fileName withSuffix: 'sav')
-        ].
-
-        fileName := fileName name.
-
-        aStream := FileStream newFileNamed:fileName.
-        aStream isNil ifTrue:[
-            ^ FileOutErrorSignal 
-                raiseRequestWith:fileName
-                errorString:('cannot create file:', fileName)
-        ].
-        self fileOutMethod:aMethod on:aStream.
-        aStream close
+	fileName := (self name , '-' , selector, '.st') asFilename.
+	fileName makeLegalFilename.
+
+	"
+	 this test allows a smalltalk to be built without Projects/ChangeSets
+	"
+	Project notNil ifTrue:[
+	    fileName := Project currentProjectDirectory asFilename construct:fileName name.
+	].
+
+	"
+	 if file exists, save original in a .sav file
+	"
+	fileName exists ifTrue:[
+	    fileName copyTo:(fileName withSuffix: 'sav')
+	].
+
+	fileName := fileName name.
+
+	aStream := FileStream newFileNamed:fileName.
+	aStream isNil ifTrue:[
+	    ^ FileOutErrorSignal 
+		raiseRequestWith:fileName
+		errorString:('cannot create file:', fileName)
+	].
+	self fileOutMethod:aMethod on:aStream.
+	aStream close
     ]
 
     "Modified: / 1.4.1997 / 16:00:57 / stefan"
@@ -1650,33 +1650,33 @@
 
     dict := self methodDictionary.
     dict notNil ifTrue:[
-        aStream nextPutChunkSeparator.
-        self printClassNameOn:aStream.
-
-        (privacy := aMethod privacy) ~~ #public ifTrue:[
-            aStream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
-        ] ifFalse:[
-            aStream nextPutAll:' methodsFor:'.
-        ].
-        cat := aMethod category.
-        cat isNil ifTrue:[
-            cat := ''
-        ].
-        aStream nextPutAll:cat asString storeString.
-        aStream nextPutChunkSeparator; cr; cr.
-        source := aMethod source.
-        source isNil ifTrue:[
-            FileOutErrorSignal 
-                raiseRequestWith:self
-                errorString:('no source for method: ' ,
-                             self name , '>>' ,
-                             (self selectorAtMethod:aMethod))
-        ] ifFalse:[
-            aStream nextChunkPut:source.
-        ].
-        aStream space.
-        aStream nextPutChunkSeparator.
-        aStream cr
+	aStream nextPutChunkSeparator.
+	self printClassNameOn:aStream.
+
+	(privacy := aMethod privacy) ~~ #public ifTrue:[
+	    aStream space; nextPutAll:privacy; nextPutAll:'MethodsFor:'.
+	] ifFalse:[
+	    aStream nextPutAll:' methodsFor:'.
+	].
+	cat := aMethod category.
+	cat isNil ifTrue:[
+	    cat := ''
+	].
+	aStream nextPutAll:cat asString storeString.
+	aStream nextPutChunkSeparator; cr; cr.
+	source := aMethod source.
+	source isNil ifTrue:[
+	    FileOutErrorSignal 
+		raiseRequestWith:self
+		errorString:('no source for method: ' ,
+			     self name , '>>' ,
+			     (self selectorAtMethod:aMethod))
+	] ifFalse:[
+	    aStream nextChunkPut:source.
+	].
+	aStream space.
+	aStream nextPutChunkSeparator.
+	aStream cr
     ]
 
     "Modified: 27.8.1995 / 01:23:19 / claus"
@@ -1695,7 +1695,7 @@
 
     nm := self nameWithoutPrefix.
     (owner := self owningClass) isNil ifTrue:[
-        ^ nm
+	^ nm
     ].
 
     ^ (owner nameWithoutNameSpacePrefix , '::' , nm)
@@ -1737,7 +1737,7 @@
     nm := self name.
     idx := nm lastIndexOf:$:.
     idx == 0 ifTrue:[
-        ^ nm
+	^ nm
     ].
     ^ nm copyFrom:idx+1.
 
@@ -1779,9 +1779,9 @@
     |nm|
 
     Class fileOutNameSpaceQuerySignal raise == false ifTrue:[
-        nm := self nameWithoutNameSpacePrefix
+	nm := self nameWithoutNameSpacePrefix
     ] ifFalse:[
-        nm := self name.
+	nm := self name.
     ].
 
     aStream nextPutAll:nm.
@@ -1800,7 +1800,7 @@
 
     indent := 0.
     (superclass notNil) ifTrue:[
-        indent := (superclass printHierarchyAnswerIndentOn:aStream) + 2
+	indent := (superclass printHierarchyAnswerIndentOn:aStream) + 2
     ].
     aStream spaces:indent.
     nm := self printNameInHierarchy.
@@ -1838,36 +1838,36 @@
 
     arraySize := anArray size.
     arraySize ~~ 0 ifTrue:[
-        pos := indent.
-        lenMax := aStream lineLength.
-        thisName := anArray at:1.
-        line := ''.
-        1 to:arraySize do:[:index |
-            line := line , thisName.
-            pos := pos + thisName size.
-            (index == arraySize) ifFalse:[
-                nextName := anArray at:(index + 1).
-                mustBreak := false.
-                (lenMax > 0) ifTrue:[
-                    ((pos + nextName size) > lenMax) ifTrue:[
-                        mustBreak := true
-                    ]
-                ].
-                mustBreak ifTrue:[
-                    aStream nextPutLine:line withTabs.
-                    spaces isNil ifTrue:[
-                        spaces := String new:indent
-                    ].
-                    line := spaces.
-                    pos := indent
-                ] ifFalse:[
-                    line := line , ' '.
-                    pos := pos + 1
-                ].
-                thisName := nextName
-            ]
-        ].
-        aStream nextPutAll:line withTabs
+	pos := indent.
+	lenMax := aStream lineLength.
+	thisName := anArray at:1.
+	line := ''.
+	1 to:arraySize do:[:index |
+	    line := line , thisName.
+	    pos := pos + thisName size.
+	    (index == arraySize) ifFalse:[
+		nextName := anArray at:(index + 1).
+		mustBreak := false.
+		(lenMax > 0) ifTrue:[
+		    ((pos + nextName size) > lenMax) ifTrue:[
+			mustBreak := true
+		    ]
+		].
+		mustBreak ifTrue:[
+		    aStream nextPutLine:line withTabs.
+		    spaces isNil ifTrue:[
+			spaces := String new:indent
+		    ].
+		    line := spaces.
+		    pos := indent
+		] ifFalse:[
+		    line := line , ' '.
+		    pos := pos + 1
+		].
+		thisName := nextName
+	    ]
+	].
+	aStream nextPutAll:line withTabs
     ]
 
     "Modified: 9.11.1996 / 00:12:06 / cg"
@@ -1970,20 +1970,20 @@
 
     (cat = 'obsolete'
     or:[cat = '* obsolete *']) ifTrue:[
-        "add obsolete - to make life easier ..."
-        more := ' (obsolete)'
+	"add obsolete - to make life easier ..."
+	more := ' (obsolete)'
     ].
     (cat = 'removed'
     or:[cat = '* removed *']) ifTrue:[
-        "add removed - to make life easier ..."
-        more := ' (removed)'
+	"add removed - to make life easier ..."
+	more := ' (removed)'
     ].
 
     self isPrivate ifTrue:[
-        nm := self nameWithoutPrefix.
-        more := ' (private in ' , self owningClass name , ')'.
+	nm := self nameWithoutPrefix.
+	more := ' (private in ' , self owningClass name , ')'.
     ] ifFalse:[
-        nm := self name.
+	nm := self name.
     ].
     more isNil ifTrue:[^ nm].
     ^ nm , more
@@ -2140,28 +2140,28 @@
      accept in the browser in a multi-display (or timesliced) configuration"
 
     ChangeFileAccessLock critical:[
-        |aStream|
-
-        FileOutNameSpaceQuerySignal answer:true
-        do:[
-            aStream := self changesStream.
-            aStream notNil ifTrue:[
-                [
-                    FileStream writeErrorSignal handle:[:ex |
-                        self warn:('could not update the changes-file\\' , ex errorString) withCRs.
-                        ex return
-                    ] do:[
-                        doStampIt ifTrue:[
-                            self addChangeTimeStampTo:aStream
-                        ].
-                        aBlock value:aStream.
-                        aStream cr.
-                    ].
-                ] valueNowOrOnUnwindDo:[
-                    aStream close
-                ]
-            ]
-        ]
+	|aStream|
+
+	FileOutNameSpaceQuerySignal answer:true
+	do:[
+	    aStream := self changesStream.
+	    aStream notNil ifTrue:[
+		[
+		    FileStream writeErrorSignal handle:[:ex |
+			self warn:('could not update the changes-file\\' , ex errorString) withCRs.
+			ex return
+		    ] do:[
+			doStampIt ifTrue:[
+			    self addChangeTimeStampTo:aStream
+			].
+			aBlock value:aStream.
+			aStream cr.
+		    ].
+		] valueNowOrOnUnwindDo:[
+		    aStream close
+		]
+	    ]
+	]
     ]
 
     "Modified: 22.3.1997 / 17:12:40 / cg"
@@ -2196,12 +2196,12 @@
     "helper - add categories to the argument, aCollection"
 
     self methodDictionary do:[:aMethod |
-        |cat|
-
-        cat := aMethod category.
-        (aCollection includes:cat) ifFalse:[
-            aCollection add:cat
-        ]
+	|cat|
+
+	cat := aMethod category.
+	(aCollection includes:cat) ifFalse:[
+	    aCollection add:cat
+	]
     ]
 
     "Modified: 12.6.1996 / 11:46:24 / stefan"
@@ -2217,25 +2217,25 @@
 
     dict := self methodDictionary.
     dict notNil ifTrue:[
-        any := false.
-        dict do:[:aMethod |
-            (aCategory = aMethod category) ifTrue:[
-                any := true
-            ]
-        ].
-        any ifTrue:[
-            aPrintStream italic.
-            aPrintStream nextPutAll:aCategory.
-            aPrintStream normal.
-            aPrintStream cr; cr.
-            dict do:[:aMethod |
-                (aCategory = aMethod category) ifTrue:[
-                    self printOutMethodProtocol:aMethod on:aPrintStream.
-                    aPrintStream cr; cr
-                ]
-            ].
-            aPrintStream cr
-        ]
+	any := false.
+	dict do:[:aMethod |
+	    (aCategory = aMethod category) ifTrue:[
+		any := true
+	    ]
+	].
+	any ifTrue:[
+	    aPrintStream italic.
+	    aPrintStream nextPutAll:aCategory.
+	    aPrintStream normal.
+	    aPrintStream cr; cr.
+	    dict do:[:aMethod |
+		(aCategory = aMethod category) ifTrue:[
+		    self printOutMethodProtocol:aMethod on:aPrintStream.
+		    aPrintStream cr; cr
+		]
+	    ].
+	    aPrintStream cr
+	]
     ]
 
     "Modified: 20.4.1996 / 18:20:26 / cg"
@@ -2257,11 +2257,11 @@
     aPrintStream bold.
     aPrintStream nextPutLine:(text at:1).
     (text size >= 2) ifTrue:[
-        (comment := aMethod comment) notNil ifTrue:[
-            aPrintStream italic.
-            aPrintStream spaces:((text at:2) indexOfNonSeparatorStartingAt:1).
-            aPrintStream nextPutLine:aMethod comment.
-        ]
+	(comment := aMethod comment) notNil ifTrue:[
+	    aPrintStream italic.
+	    aPrintStream spaces:((text at:2) indexOfNonSeparatorStartingAt:1).
+	    aPrintStream nextPutLine:aMethod comment.
+	]
     ].
     aPrintStream normal
 
@@ -2307,8 +2307,8 @@
 
     newList := OrderedCollection new.
     self methodDictionary do:[:aMethod |
-        cat := aMethod category.
-        newList indexOf:cat ifAbsent:[newList add:cat]
+	cat := aMethod category.
+	newList indexOf:cat ifAbsent:[newList add:cat]
     ].
     ^ newList
 
@@ -2370,9 +2370,9 @@
 
     set := IdentitySet new.
     self methodDictionary keysAndValuesDo:[:sel :mthd |
-        (mthd accessedInstVars includes:instVarName) ifTrue:[
-            set add:sel
-        ]
+	(mthd accessedInstVars includes:instVarName) ifTrue:[
+	    set add:sel
+	]
     ].
     ^ set.
 
@@ -2396,27 +2396,27 @@
      The subclass will have indexed variables if the receiving-class has."
 
     self isVariable ifFalse:[
-        ^ self class
-            name:nameSymbol  
-            inEnvironment:(Class nameSpaceQuerySignal raise)
-            subclassOf:self
-            instanceVariableNames:instVarNameString
-            variable:false
-            words:true
-            pointers:true
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            category:cat
-            comment:nil
-            changed:true 
+	^ self class
+	    name:nameSymbol  
+	    inEnvironment:(Class nameSpaceQuerySignal raise)
+	    subclassOf:self
+	    instanceVariableNames:instVarNameString
+	    variable:false
+	    words:true
+	    pointers:true
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    category:cat
+	    comment:nil
+	    changed:true 
     ].
     ^ self 
-        perform:(self definitionSelector)
-        withArguments:(Array with:nameSymbol 
-                           with:instVarNameString 
-                           with:classVarString
-                           with:pool 
-                           with:cat).
+	perform:(self definitionSelector)
+	withArguments:(Array with:nameSymbol 
+			   with:instVarNameString 
+			   with:classVarString
+			   with:pool 
+			   with:cat).
 
     "Modified: 8.3.1997 / 00:41:08 / cg"
 !
@@ -2426,29 +2426,29 @@
      The subclass will have indexed variables if the receiving-class has."
 
     self isVariable ifTrue:[
-        Class nameSpaceQuerySignal answer:aNameSpace
-        do:[
-            ^ self
-                subclass:nameSymbol 
-                instanceVariableNames:instVarNameString 
-                classVariableNames:classVarString 
-                poolDictionaries:pool 
-                category:cat 
-        ].
+	Class nameSpaceQuerySignal answer:aNameSpace
+	do:[
+	    ^ self
+		subclass:nameSymbol 
+		instanceVariableNames:instVarNameString 
+		classVariableNames:classVarString 
+		poolDictionaries:pool 
+		category:cat 
+	].
     ].
     ^ self class
-        name:nameSymbol  
-        inEnvironment:aNameSpace
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:false
-        words:true
-        pointers:true
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol  
+	inEnvironment:aNameSpace
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:false
+	words:true
+	pointers:true
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 8.2.1997 / 19:41:44 / cg"
     "Modified: 31.8.1997 / 07:48:14 / cg"
@@ -2459,25 +2459,25 @@
      in which the subclass has indexable byte-sized nonpointer variables"
 
     self isVariable ifTrue:[
-        self isBytes ifFalse:[
-            ^ self error:
-                'cannot make a variable byte subclass of a variable non-byte class'
-        ].
+	self isBytes ifFalse:[
+	    ^ self error:
+		'cannot make a variable byte subclass of a variable non-byte class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:true
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:true
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:18 / cg"
     "Modified: 6.11.1996 / 22:48:18 / cg"
@@ -2489,25 +2489,25 @@
      in which the subclass has indexable double-sized nonpointer variables"
 
     self isVariable ifTrue:[
-        self isDoubles ifFalse:[
-            ^ self error:
-                'cannot make a variable double subclass of a variable non-double class'
-        ].
+	self isDoubles ifFalse:[
+	    ^ self error:
+		'cannot make a variable double subclass of a variable non-double class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#double 
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#double 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:21 / cg"
     "Modified: 6.11.1996 / 22:48:22 / cg"
@@ -2519,25 +2519,25 @@
      in which the subclass has indexable float-sized nonpointer variables"
 
     self isVariable ifTrue:[
-        self isFloats ifFalse:[
-            ^ self error:
-                'cannot make a variable float subclass of a variable non-float class'
-        ].
+	self isFloats ifFalse:[
+	    ^ self error:
+		'cannot make a variable float subclass of a variable non-float class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#float 
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#float 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:24 / cg"
     "Modified: 6.11.1996 / 22:48:26 / cg"
@@ -2548,83 +2548,135 @@
      in which the subclass has indexable long-sized nonpointer variables"
 
     self isVariable ifTrue:[
-        self isLongs ifFalse:[
-            ^ self error:
-                'cannot make a variable long subclass of a variable non-long class'
-        ].
+	self isLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable long subclass of a variable non-long class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#long 
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#long 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:27 / cg"
     "Modified: 6.11.1996 / 22:48:29 / cg"
 !
 
+variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
+    "create a new class as a subclass of an existing class (the receiver) 
+     in which the subclass has indexable unsigned long-long-sized nonpointer variables"
+
+    self isVariable ifTrue:[
+	self isLongLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable long-long subclass of a variable non-long-long class'
+	].
+    ].
+
+    ^ self class
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#longLong
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
+!
+
 variableSignedLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
     "create a new class as a subclass of an existing class (the receiver) 
      in which the subclass has indexable signed long-sized nonpointer variables"
 
     self isVariable ifTrue:[
-        self isSignedLongs ifFalse:[
-            ^ self error:
-                'cannot make a variable signed long subclass of a variable non-long class'
-        ].
+	self isSignedLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable signed long subclass of a variable non-long class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#signedLong
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#signedLong
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:31 / cg"
     "Modified: 6.11.1996 / 22:48:32 / cg"
 !
 
+variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
+    "create a new class as a subclass of an existing class (the receiver) 
+     in which the subclass has indexable signed long-long-sized nonpointer variables"
+
+    self isVariable ifTrue:[
+	self isSignedLongLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable signed long-long subclass of a variable non-long-long class'
+	].
+    ].
+
+    ^ self class
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#signedLongLong
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
+!
+
 variableSignedWordSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool category:cat
     "create a new class as a subclass of an existing class (the receiver) 
      in which the subclass has indexable word-sized signed nonpointer variables"
 
     self isVariable ifTrue:[
-        self isSignedWords ifFalse:[
-            ^ self error:
-                'cannot make a variable signed word subclass of a variable non-word class'
-        ].
+	self isSignedWords ifFalse:[
+	    ^ self error:
+		'cannot make a variable signed word subclass of a variable non-word class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#signedWord
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#signedWord
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:34 / cg"
     "Modified: 6.11.1996 / 22:48:35 / cg"
@@ -2635,25 +2687,25 @@
      in which the subclass has indexable pointer variables"
 
     self isVariable ifTrue:[
-        self isPointers ifFalse:[
-            ^ self error:
-                'cannot make a variable pointer subclass of a variable non-pointer class'
-        ]
+	self isPointers ifFalse:[
+	    ^ self error:
+		'cannot make a variable pointer subclass of a variable non-pointer class'
+	]
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:true
-        words:false
-        pointers:true
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:true
+	words:false
+	pointers:true
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:37 / cg"
     "Modified: 6.11.1996 / 22:48:40 / cg"
@@ -2664,25 +2716,25 @@
      in which the subclass has indexable word-sized nonpointer variables"
 
     self isVariable ifTrue:[
-        self isWords ifFalse:[
-            ^ self error:
-                'cannot make a variable word subclass of a variable non-word class'
-        ].
+	self isWords ifFalse:[
+	    ^ self error:
+		'cannot make a variable word subclass of a variable non-word class'
+	].
     ].
 
     ^ self class
-        name:nameSymbol
-        inEnvironment:(Class nameSpaceQuerySignal raise)
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:true
-        words:true
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:cat
-        comment:nil
-        changed:true
+	name:nameSymbol
+	inEnvironment:(Class nameSpaceQuerySignal raise)
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:true
+	words:true
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:cat
+	comment:nil
+	changed:true
 
     "Created: 12.10.1996 / 19:18:40 / cg"
     "Modified: 6.11.1996 / 22:48:43 / cg"
@@ -2697,84 +2749,100 @@
     |newClass|
 
     self isVariable ifFalse:[
-        newClass := self class
-            name:nameSymbol
-            inEnvironment:aClass
-            subclassOf:self
-            instanceVariableNames:instVarNameString
-            variable:false
-            words:true
-            pointers:true
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            category:(aClass category)
-            comment:nil
-            changed:true.
-        ^ newClass
+	newClass := self class
+	    name:nameSymbol
+	    inEnvironment:aClass
+	    subclassOf:self
+	    instanceVariableNames:instVarNameString
+	    variable:false
+	    words:true
+	    pointers:true
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    category:(aClass category)
+	    comment:nil
+	    changed:true.
+	^ newClass
     ].
     self isBytes ifTrue:[
-        ^ self
-            variableByteSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableByteSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
     self isLongs ifTrue:[
-        ^ self
-            variableLongSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableLongSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
+    ].
+    self isLongLongs ifTrue:[
+	^ self
+	    variableLongLongSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
     self isFloats ifTrue:[
-        ^ self
-            variableFloatSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableFloatSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
     self isDoubles ifTrue:[
-        ^ self
-            variableDoubleSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableDoubleSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
     self isWords ifTrue:[
-        ^ self
-            variableWordSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableWordSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
     self isSignedWords ifTrue:[
-        ^ self
-            variableSignedWordSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableSignedWordSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
     self isSignedLongs ifTrue:[
-        ^ self
-            variableSignedLongSubclass:nameSymbol
-            instanceVariableNames:instVarNameString
-            classVariableNames:classVarString
-            poolDictionaries:pool
-            privateIn:aClass
+	^ self
+	    variableSignedLongSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
+    ].
+    self isSignedLongLongs ifTrue:[
+	^ self
+	    variableSignedLongLongSubclass:nameSymbol
+	    instanceVariableNames:instVarNameString
+	    classVariableNames:classVarString
+	    poolDictionaries:pool
+	    privateIn:aClass
     ].
 
     ^ self
-        variableSubclass:nameSymbol
-        instanceVariableNames:instVarNameString
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        privateIn:aClass
+	variableSubclass:nameSymbol
+	instanceVariableNames:instVarNameString
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	privateIn:aClass
 
     "Created: 11.10.1996 / 16:30:53 / cg"
     "Modified: 5.11.1996 / 23:05:22 / cg"
@@ -2787,25 +2855,25 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isBytes ifFalse:[
-            ^ self error:
-                'cannot make a variable byte subclass of a variable non-byte class'
-        ].
+	self isBytes ifFalse:[
+	    ^ self error:
+		'cannot make a variable byte subclass of a variable non-byte class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:true
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:true
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -2821,25 +2889,25 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isDoubles ifFalse:[
-            ^ self error:
-                'cannot make a variable double subclass of a variable non-double class'
-        ].
+	self isDoubles ifFalse:[
+	    ^ self error:
+		'cannot make a variable double subclass of a variable non-double class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#double 
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#double 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -2855,25 +2923,25 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isFloats ifFalse:[
-            ^ self error:
-                'cannot make a variable float subclass of a variable non-float class'
-        ].
+	self isFloats ifFalse:[
+	    ^ self error:
+		'cannot make a variable float subclass of a variable non-float class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#float 
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#float 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -2888,25 +2956,58 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isLongs ifFalse:[
-            ^ self error:
-                'cannot make a variable long subclass of a variable non-long class'
-        ].
+	self isLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable long subclass of a variable non-long class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#long 
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#long 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
+
+    ^ newClass
+
+    "Created: 11.10.1996 / 16:32:48 / cg"
+    "Modified: 14.10.1996 / 17:39:54 / cg"
+!
+
+variableLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
+    "create a new class as a subclass of an existing class (the receiver) 
+     in which the subclass has indexable longlong-sized nonpointer variables"
+
+    |newClass|
+
+    self isVariable ifTrue:[
+	self isLongLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable longlong subclass of a variable non-longlong class'
+	].
+    ].
+
+    newClass := self class
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#longLong 
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -2921,25 +3022,58 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isSignedLongs ifFalse:[
-            ^ self error:
-                'cannot make a variable signed long subclass of a variable non-long class'
-        ].
+	self isSignedLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable signed long subclass of a variable non-long class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#signedLong
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#signedLong
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
+
+    ^ newClass
+
+    "Created: 11.10.1996 / 16:46:30 / cg"
+    "Modified: 14.10.1996 / 17:39:58 / cg"
+!
+
+variableSignedLongLongSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass 
+    "create a new class as a subclass of an existing class (the receiver) 
+     in which the subclass has indexable signed longlong-sized nonpointer variables"
+
+    |newClass|
+
+    self isVariable ifTrue:[
+	self isSignedLongLongs ifFalse:[
+	    ^ self error:
+		'cannot make a variable signed longlong subclass of a variable non-longlong class'
+	].
+    ].
+
+    newClass := self class
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#signedLongLong
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -2954,25 +3088,25 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isSignedWords ifFalse:[
-            ^ self error:
-                'cannot make a variable signed word subclass of a variable non-word class'
-        ].
+	self isSignedWords ifFalse:[
+	    ^ self error:
+		'cannot make a variable signed word subclass of a variable non-word class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:#signedWord
-        words:false
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:#signedWord
+	words:false
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -2987,25 +3121,25 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isPointers ifFalse:[
-            ^ self error:
-                'cannot make a variable pointer subclass of a variable non-pointer class'
-        ]
+	self isPointers ifFalse:[
+	    ^ self error:
+		'cannot make a variable pointer subclass of a variable non-pointer class'
+	]
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:true
-        words:false
-        pointers:true
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:true
+	words:false
+	pointers:true
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -3020,25 +3154,25 @@
     |newClass|
 
     self isVariable ifTrue:[
-        self isWords ifFalse:[
-            ^ self error:
-                'cannot make a variable word subclass of a variable non-word class'
-        ].
+	self isWords ifFalse:[
+	    ^ self error:
+		'cannot make a variable word subclass of a variable non-word class'
+	].
     ].
 
     newClass := self class
-        name:nameSymbol
-        inEnvironment:aClass
-        subclassOf:self
-        instanceVariableNames:instVarNameString
-        variable:true
-        words:true
-        pointers:false
-        classVariableNames:classVarString
-        poolDictionaries:pool
-        category:(aClass category)
-        comment:nil
-        changed:true.
+	name:nameSymbol
+	inEnvironment:aClass
+	subclassOf:self
+	instanceVariableNames:instVarNameString
+	variable:true
+	words:true
+	pointers:false
+	classVariableNames:classVarString
+	poolDictionaries:pool
+	category:(aClass category)
+	comment:nil
+	changed:true.
 
     ^ newClass
 
@@ -3049,6 +3183,6 @@
 !ClassDescription class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.75 1998-07-29 11:25:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ClassDescription.st,v 1.76 1998-11-09 21:07:36 cg Exp $'
 ! !
 ClassDescription initialize!