--- 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!