changed to no longer depend on all classes,
authorClaus Gittinger <cg@exept.de>
Thu, 09 Jan 1997 02:29:05 +0100
changeset 531 b0d7a291474d
parent 530 d27016ae003f
child 532 4595667ad448
changed to no longer depend on all classes, but catch Smalltalk changes instead. 1000 WeakArrays less than before.
HistMgr.st
HistoryManager.st
--- a/HistMgr.st	Wed Jan 08 13:53:02 1997 +0100
+++ b/HistMgr.st	Thu Jan 09 02:29:05 1997 +0100
@@ -12,7 +12,7 @@
 "
 
 Object subclass:#HistoryManager
-	instanceVariableNames:'historyMode'
+	instanceVariableNames:'historyMode fullHistoryUpdate'
 	classVariableNames:'TheOneAndOnlyInstance'
 	poolDictionaries:''
 	category:'System-Changes-History'
@@ -50,6 +50,10 @@
 
     The HistoryManager can be turned off via the Launcher menu.
 
+    claus:
+        I changed things to avoid depending on every class in the system.
+        Now also catch Smalltalk change messages, related to class changes.
+
     [author:]
         Robert Sailer - AEG
 
@@ -142,17 +146,14 @@
     |mgr|
 
     mgr := TheOneAndOnlyInstance.
-    Smalltalk allClassesDo:[:aClass |
-        aClass removeDependent:mgr.
-        aClass class removeDependent:mgr.
-    ].
+    mgr releaseDependencies.
     TheOneAndOnlyInstance := nil.
 
     "
      HistoryManager deactivate
     "
 
-    "Modified: 20.4.1996 / 20:31:53 / cg"
+    "Modified: 8.1.1997 / 23:09:08 / cg"
 ! !
 
 !HistoryManager class methodsFor:'change & update'!
@@ -268,6 +269,24 @@
 
 !HistoryManager methodsFor:'accessing'!
 
+fullHistoryUpdate
+    "return the fullHistoryUpdate; 
+     if true, the classes history method is also updated."
+
+    ^ fullHistoryUpdate
+
+    "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
+fullHistoryUpdate:aBoolean
+    "set the fullHistoryUpdate; 
+     if true, the classes history method is also updated."
+
+    fullHistoryUpdate := aBoolean.
+
+    "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
 historyMode
     "return historyMode"
 
@@ -284,6 +303,190 @@
     "Modified: 11.08.1995 / 16:52:12 / robert"
 ! !
 
+!HistoryManager methodsFor:'change & update'!
+
+update:something with:someArgument from:changedObject
+    "arrive here, whenever any class changed somehow.
+     (something contains aSymbol describing what happened)"
+
+    |sourceCode newMethod fileInOrRecompiling selector oldMethod what
+     changedClass whatChange|
+
+    "/
+    "/ no action, if disabled
+    "/
+    historyMode ifFalse:[
+        ^ self
+    ].
+
+    "/
+    "/ no action, if changeFile update is locked
+    "/ (since then, this may be a recompile or fileIn)
+    "/
+    fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
+    fileInOrRecompiling ifFalse:[ 
+"/        Transcript showCR: '* noChange in history'. 
+        ^ self 
+    ].
+
+    "
+     definition, instance / classVariables of a class have changed
+    "
+    (something == #definition) ifTrue:[
+        "/ it is a class definition that has changed
+        "/ add a line to the history method; if present
+
+"/        Transcript show: 'Class definition: ', changedClass printString;cr.
+        fullHistoryUpdate == true ifTrue:[
+            self addHistory:#modification toHistoryMethodOf:changedClass.
+        ].
+        ^ self
+    ].
+
+    "this is a sub item of #definition"    
+    (something == #classVariables) ifTrue:[
+        "/
+        "/ Transcript showCR: 'classVariables changed'.
+        "/
+
+        "/ does not yet work;
+        "/ (someArgument does not contain the class we are interested in)
+
+        fullHistoryUpdate == true ifTrue:[
+            self addHistory:#modification toHistoryMethodOf:changedObject.
+        ].
+        ^ self
+    ].    
+
+    "/
+    "/ new Class creation
+    "/
+    ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
+        "/ 
+        "/  add myself as dependents in order to get future change notifications
+        "/ 
+        fullHistoryUpdate == true ifTrue:[
+            self createHistoryMethodFor:someArgument.
+            self addHistory:#creation toHistoryMethodOf:someArgument.
+        ].
+
+        "/ claus: old implementation
+
+"/        someArgument addDependent: self.
+"/        someArgument class addDependent: self.   "for class methods"
+
+        ^ self
+    ].
+
+    "/ changed methods
+    "/ for backward compatibility, still handle the
+    "/ classes own change notification.
+    "/ (only if I am a dependent of all classes)
+
+    changedObject isBehavior ifTrue:[
+        changedClass := changedObject.
+
+        something == #methodDictionary ifTrue:[
+            whatChange := #methodDictionary.
+
+            someArgument isArray ifTrue:[
+                selector := someArgument at:1.
+                oldMethod := someArgument at:2
+            ] ifFalse:[
+                selector := someArgument
+            ].
+        ].
+
+        something == #methodInClassRemoved ifTrue:[
+            ^ self.
+        ].
+
+        something == #comment ifTrue:[
+            whatChange := #comment.
+        ].
+    ].
+
+    "/ the new mechanism; I only need to depend upon
+    "/ Smalltalk, to get all method changes
+
+    (changedObject == Smalltalk
+    and:[something == #methodInClass]) ifTrue:[
+        changedClass := someArgument at:1.
+        selector := someArgument at:2.
+        oldMethod := someArgument at:3.
+        whatChange := #methodDictionary.
+    ].
+
+    changedClass notNil ifTrue:[
+        whatChange == #methodDictionary ifTrue:[
+            "/ ok; it is a changed method
+
+            "/
+            "/ fetch sourceString of the method
+            "/
+            sourceCode := changedClass sourceCodeAt:selector.
+            sourceCode isNil ifTrue:[
+                "method has been deleted"
+"/                Transcript showCR: 'method has been deleted'.
+            ] ifFalse:[
+                newMethod := changedClass compiledMethodAt:selector.
+
+                oldMethod notNil ifTrue:[
+                    (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
+                         "/ no change (accepted same code again ?)
+                        ^ self
+                    ].
+                ].
+
+                "/
+                "/ dont add historylines to documentation methods ...
+                "/
+                (changedClass isMeta not
+                or:[newMethod category ~= 'documentation']) ifTrue:[
+                    oldMethod notNil ifTrue:[
+                        what := #modification
+                    ] ifFalse:[
+                        what := #creation
+                    ].
+
+                    "/
+                    "/ update the history line-comment in
+                    "/ the methods source
+                    "/
+                
+                    sourceCode := self addHistory:what to:sourceCode.
+                    newMethod source: sourceCode.
+"/                    Transcript showCR: 'history updated / added'.
+                ]
+            ].
+            ^self
+        ]. 
+
+        whatChange == #comment ifTrue:[
+            "the classes comment - we are no longer interrested in that one"
+
+            ^ self.
+        ].
+
+        whatChange == #classDefinition ifTrue:[
+            "/ it is a class definition that has changed
+            "/ add a line to the history method; if present
+
+"/            Transcript show: 'Class definition: ', changedClass printString;cr.
+            fullHistoryUpdate == true ifTrue:[
+                self addHistory:#modification toHistoryMethodOf:changedClass.
+            ].
+            ^self
+        ].
+    ].
+"/    Transcript show: 'unhandled change: ', something printString;cr.
+
+    ^self
+
+    "Modified: 27.8.1995 / 02:14:43 / claus"
+    "Modified: 9.1.1997 / 02:27:28 / cg"
+! !
+
 !HistoryManager methodsFor:'initialization'!
 
 exclude
@@ -308,21 +511,48 @@
 
     super initialize.
     historyMode := true.
+    fullHistoryUpdate := false.
     exclusionlist := self exclude.
 
-    Smalltalk allClassesDo:[:aClass|
-	"all classes should send a notification if changed"
-	"aClass = self " false ifFalse: [
-	    (exclusionlist includes: aClass) ifFalse:[
-		aClass addDependent: self.
-		aClass class addDependent: self.   "for class methods"
-	    ].
-	].
-    ].
+    "/ old implementation:
+    "/ made myself a dependent of all classes ...
+
+"/    Smalltalk allClassesDo:[:aClass|
+"/        "all classes should send a notification if changed"
+"/        "aClass = self " false ifFalse: [
+"/            (exclusionlist includes: aClass) ifFalse:[
+"/                aClass addDependent: self.
+"/                aClass class addDependent: self.   "for class methods"
+"/            ].
+"/        ].
+"/    ].
+
+    "/ old implementation:
+    "/ Smalltalk also sends class-change notifications ...
+
+    Smalltalk addDependent:self.
 
     ^self
 
-    "Modified: 11.08.1995 / 17:12:51 / robert"
+    "Modified: 11.8.1995 / 17:12:51 / robert"
+    "Modified: 8.1.1997 / 23:07:14 / cg"
+!
+
+releaseDependencies
+    "no longer depend on class changes"
+
+    "/ old implementation:
+    "/ made myself a dependent of all classes ...
+
+"/    Smalltalk allClassesDo:[:aClass |
+"/        aClass removeDependent:self.
+"/        aClass class removeDependent:self.
+"/    ].
+
+    "/ new implementation:
+    "/ Smalltalk also sends class-change notifications ...
+
+    Smalltalk removeDependent:self.
 ! !
 
 !HistoryManager methodsFor:'updateHistory'!
@@ -426,135 +656,11 @@
     ].
 
     "Modified: 14.10.1996 / 16:58:20 / cg"
-!
-
-update:something with:someArgument from:changedObject
-    "arrive here, whenever any class changed somehow.
-     (something contains aSymbol describing what happened)"
-
-    | sourceCode newMethod fileInOrRecompiling selector oldMethod what|
-
-"/    changedObject == self ifTrue:[  "for development only"
-"/        self halt.
-"/        ^self.
-"/    ].
-
-    fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
-
-"/    changedObject isMeta ifTrue:[
-"/        Transcript showCR: 'metaClass = ',  changedObject printString.
-"/    ].
-
-    fileInOrRecompiling ifFalse:[ 
-"/        Transcript showCR: '* noChange in history'. 
-        ^ self 
-    ].
-    historyMode ifFalse:[
-        ^ self
-    ].
-
-    "
-    Class Variables
-    "
-    (something == #definition) ifTrue:[
-        "add handling for classes here ..."        
-        "/ self addHistory:#modification toHistoryMethodOf:changedObject.
-    ].
-
-    "this is a sub item of #definition"    
-    (something == #classVariables) ifTrue:[
-        "/
-        "/ Transcript showCR: 'classVariables changed'.
-        "/
-
-        "/ does not yet work;
-        "/ (someArgument does not contain the class we are interested in)
-
-        self addHistory:#modification toHistoryMethodOf:changedObject.
-        ^ self
-    ].    
-
-    "/
-    "/ new Class creation
-    "/
-    ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
-        "/ 
-        "/  add myself as dependents in order to get future change notifications
-        "/ 
-        self createHistoryMethodFor:someArgument.
-        self addHistory:#creation toHistoryMethodOf:someArgument.
-
-        someArgument addDependent: self.
-        someArgument class addDependent: self.   "for class methods"
-        ^ self
-    ].
-
-    "/
-    "/ changed methods
-    "/
-    changedObject isBehavior ifTrue:[
-        something = #methodDictionary ifTrue:[
-            someArgument isArray ifTrue:[
-                selector := someArgument at:1.
-                oldMethod := someArgument at:2
-            ] ifFalse:[
-                selector := someArgument
-            ].
-
-            "/
-            "/ fetch sourceString of the method
-            "/
-            sourceCode := changedObject sourceCodeAt:selector.
-            sourceCode isNil ifTrue:[
-                "method has been deleted"
-"/                Transcript showCR: 'method has been deleted'.
-            ] ifFalse:[
-                newMethod := changedObject compiledMethodAt:selector.
-
-                oldMethod notNil ifTrue:[
-                    (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
-                         "/ no change (accepted same code again ?)
-                        ^ self
-                    ].
-                ].
-
-                "/
-                "/ dont add historylines to documentation methods ...
-                "/
-                (changedObject isMeta not
-                or:[newMethod category ~= 'documentation']) ifTrue:[
-                    oldMethod notNil ifTrue:[
-                        what := #modification
-                    ] ifFalse:[
-                        what := #creation
-                    ].
-                    sourceCode := self addHistory:what to:sourceCode.
-                    newMethod source: sourceCode.
-"/                Transcript showCR: 'history updated / added'.
-                ]
-            ].
-            ^self
-        ]. 
-
-        something == #comment ifTrue:[
-            "in someArgument steht jetzt der alte kommentar"
-            ^ self.
-        ] ifFalse:[
-            "it is a class definition"
-"/            Transcript show: 'Class definition: ', changedObject printString;cr.
-            self addHistory:#modification toHistoryMethodOf:changedObject.
-        ].
-    ].
-
-    ^self
-
-    "Modified: 27.8.1995 / 02:14:43 / claus"
-    "Modified: 12.10.1996 / 20:47:40 / cg"
 ! !
 
 !HistoryManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/HistMgr.st,v 1.33 1996-11-08 23:50:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/HistMgr.st,v 1.34 1997-01-09 01:29:05 cg Exp $'
 ! !
 HistoryManager initialize!
--- a/HistoryManager.st	Wed Jan 08 13:53:02 1997 +0100
+++ b/HistoryManager.st	Thu Jan 09 02:29:05 1997 +0100
@@ -12,7 +12,7 @@
 "
 
 Object subclass:#HistoryManager
-	instanceVariableNames:'historyMode'
+	instanceVariableNames:'historyMode fullHistoryUpdate'
 	classVariableNames:'TheOneAndOnlyInstance'
 	poolDictionaries:''
 	category:'System-Changes-History'
@@ -50,6 +50,10 @@
 
     The HistoryManager can be turned off via the Launcher menu.
 
+    claus:
+        I changed things to avoid depending on every class in the system.
+        Now also catch Smalltalk change messages, related to class changes.
+
     [author:]
         Robert Sailer - AEG
 
@@ -142,17 +146,14 @@
     |mgr|
 
     mgr := TheOneAndOnlyInstance.
-    Smalltalk allClassesDo:[:aClass |
-        aClass removeDependent:mgr.
-        aClass class removeDependent:mgr.
-    ].
+    mgr releaseDependencies.
     TheOneAndOnlyInstance := nil.
 
     "
      HistoryManager deactivate
     "
 
-    "Modified: 20.4.1996 / 20:31:53 / cg"
+    "Modified: 8.1.1997 / 23:09:08 / cg"
 ! !
 
 !HistoryManager class methodsFor:'change & update'!
@@ -268,6 +269,24 @@
 
 !HistoryManager methodsFor:'accessing'!
 
+fullHistoryUpdate
+    "return the fullHistoryUpdate; 
+     if true, the classes history method is also updated."
+
+    ^ fullHistoryUpdate
+
+    "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
+fullHistoryUpdate:aBoolean
+    "set the fullHistoryUpdate; 
+     if true, the classes history method is also updated."
+
+    fullHistoryUpdate := aBoolean.
+
+    "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
 historyMode
     "return historyMode"
 
@@ -284,6 +303,190 @@
     "Modified: 11.08.1995 / 16:52:12 / robert"
 ! !
 
+!HistoryManager methodsFor:'change & update'!
+
+update:something with:someArgument from:changedObject
+    "arrive here, whenever any class changed somehow.
+     (something contains aSymbol describing what happened)"
+
+    |sourceCode newMethod fileInOrRecompiling selector oldMethod what
+     changedClass whatChange|
+
+    "/
+    "/ no action, if disabled
+    "/
+    historyMode ifFalse:[
+        ^ self
+    ].
+
+    "/
+    "/ no action, if changeFile update is locked
+    "/ (since then, this may be a recompile or fileIn)
+    "/
+    fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
+    fileInOrRecompiling ifFalse:[ 
+"/        Transcript showCR: '* noChange in history'. 
+        ^ self 
+    ].
+
+    "
+     definition, instance / classVariables of a class have changed
+    "
+    (something == #definition) ifTrue:[
+        "/ it is a class definition that has changed
+        "/ add a line to the history method; if present
+
+"/        Transcript show: 'Class definition: ', changedClass printString;cr.
+        fullHistoryUpdate == true ifTrue:[
+            self addHistory:#modification toHistoryMethodOf:changedClass.
+        ].
+        ^ self
+    ].
+
+    "this is a sub item of #definition"    
+    (something == #classVariables) ifTrue:[
+        "/
+        "/ Transcript showCR: 'classVariables changed'.
+        "/
+
+        "/ does not yet work;
+        "/ (someArgument does not contain the class we are interested in)
+
+        fullHistoryUpdate == true ifTrue:[
+            self addHistory:#modification toHistoryMethodOf:changedObject.
+        ].
+        ^ self
+    ].    
+
+    "/
+    "/ new Class creation
+    "/
+    ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
+        "/ 
+        "/  add myself as dependents in order to get future change notifications
+        "/ 
+        fullHistoryUpdate == true ifTrue:[
+            self createHistoryMethodFor:someArgument.
+            self addHistory:#creation toHistoryMethodOf:someArgument.
+        ].
+
+        "/ claus: old implementation
+
+"/        someArgument addDependent: self.
+"/        someArgument class addDependent: self.   "for class methods"
+
+        ^ self
+    ].
+
+    "/ changed methods
+    "/ for backward compatibility, still handle the
+    "/ classes own change notification.
+    "/ (only if I am a dependent of all classes)
+
+    changedObject isBehavior ifTrue:[
+        changedClass := changedObject.
+
+        something == #methodDictionary ifTrue:[
+            whatChange := #methodDictionary.
+
+            someArgument isArray ifTrue:[
+                selector := someArgument at:1.
+                oldMethod := someArgument at:2
+            ] ifFalse:[
+                selector := someArgument
+            ].
+        ].
+
+        something == #methodInClassRemoved ifTrue:[
+            ^ self.
+        ].
+
+        something == #comment ifTrue:[
+            whatChange := #comment.
+        ].
+    ].
+
+    "/ the new mechanism; I only need to depend upon
+    "/ Smalltalk, to get all method changes
+
+    (changedObject == Smalltalk
+    and:[something == #methodInClass]) ifTrue:[
+        changedClass := someArgument at:1.
+        selector := someArgument at:2.
+        oldMethod := someArgument at:3.
+        whatChange := #methodDictionary.
+    ].
+
+    changedClass notNil ifTrue:[
+        whatChange == #methodDictionary ifTrue:[
+            "/ ok; it is a changed method
+
+            "/
+            "/ fetch sourceString of the method
+            "/
+            sourceCode := changedClass sourceCodeAt:selector.
+            sourceCode isNil ifTrue:[
+                "method has been deleted"
+"/                Transcript showCR: 'method has been deleted'.
+            ] ifFalse:[
+                newMethod := changedClass compiledMethodAt:selector.
+
+                oldMethod notNil ifTrue:[
+                    (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
+                         "/ no change (accepted same code again ?)
+                        ^ self
+                    ].
+                ].
+
+                "/
+                "/ dont add historylines to documentation methods ...
+                "/
+                (changedClass isMeta not
+                or:[newMethod category ~= 'documentation']) ifTrue:[
+                    oldMethod notNil ifTrue:[
+                        what := #modification
+                    ] ifFalse:[
+                        what := #creation
+                    ].
+
+                    "/
+                    "/ update the history line-comment in
+                    "/ the methods source
+                    "/
+                
+                    sourceCode := self addHistory:what to:sourceCode.
+                    newMethod source: sourceCode.
+"/                    Transcript showCR: 'history updated / added'.
+                ]
+            ].
+            ^self
+        ]. 
+
+        whatChange == #comment ifTrue:[
+            "the classes comment - we are no longer interrested in that one"
+
+            ^ self.
+        ].
+
+        whatChange == #classDefinition ifTrue:[
+            "/ it is a class definition that has changed
+            "/ add a line to the history method; if present
+
+"/            Transcript show: 'Class definition: ', changedClass printString;cr.
+            fullHistoryUpdate == true ifTrue:[
+                self addHistory:#modification toHistoryMethodOf:changedClass.
+            ].
+            ^self
+        ].
+    ].
+"/    Transcript show: 'unhandled change: ', something printString;cr.
+
+    ^self
+
+    "Modified: 27.8.1995 / 02:14:43 / claus"
+    "Modified: 9.1.1997 / 02:27:28 / cg"
+! !
+
 !HistoryManager methodsFor:'initialization'!
 
 exclude
@@ -308,21 +511,48 @@
 
     super initialize.
     historyMode := true.
+    fullHistoryUpdate := false.
     exclusionlist := self exclude.
 
-    Smalltalk allClassesDo:[:aClass|
-	"all classes should send a notification if changed"
-	"aClass = self " false ifFalse: [
-	    (exclusionlist includes: aClass) ifFalse:[
-		aClass addDependent: self.
-		aClass class addDependent: self.   "for class methods"
-	    ].
-	].
-    ].
+    "/ old implementation:
+    "/ made myself a dependent of all classes ...
+
+"/    Smalltalk allClassesDo:[:aClass|
+"/        "all classes should send a notification if changed"
+"/        "aClass = self " false ifFalse: [
+"/            (exclusionlist includes: aClass) ifFalse:[
+"/                aClass addDependent: self.
+"/                aClass class addDependent: self.   "for class methods"
+"/            ].
+"/        ].
+"/    ].
+
+    "/ old implementation:
+    "/ Smalltalk also sends class-change notifications ...
+
+    Smalltalk addDependent:self.
 
     ^self
 
-    "Modified: 11.08.1995 / 17:12:51 / robert"
+    "Modified: 11.8.1995 / 17:12:51 / robert"
+    "Modified: 8.1.1997 / 23:07:14 / cg"
+!
+
+releaseDependencies
+    "no longer depend on class changes"
+
+    "/ old implementation:
+    "/ made myself a dependent of all classes ...
+
+"/    Smalltalk allClassesDo:[:aClass |
+"/        aClass removeDependent:self.
+"/        aClass class removeDependent:self.
+"/    ].
+
+    "/ new implementation:
+    "/ Smalltalk also sends class-change notifications ...
+
+    Smalltalk removeDependent:self.
 ! !
 
 !HistoryManager methodsFor:'updateHistory'!
@@ -426,135 +656,11 @@
     ].
 
     "Modified: 14.10.1996 / 16:58:20 / cg"
-!
-
-update:something with:someArgument from:changedObject
-    "arrive here, whenever any class changed somehow.
-     (something contains aSymbol describing what happened)"
-
-    | sourceCode newMethod fileInOrRecompiling selector oldMethod what|
-
-"/    changedObject == self ifTrue:[  "for development only"
-"/        self halt.
-"/        ^self.
-"/    ].
-
-    fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
-
-"/    changedObject isMeta ifTrue:[
-"/        Transcript showCR: 'metaClass = ',  changedObject printString.
-"/    ].
-
-    fileInOrRecompiling ifFalse:[ 
-"/        Transcript showCR: '* noChange in history'. 
-        ^ self 
-    ].
-    historyMode ifFalse:[
-        ^ self
-    ].
-
-    "
-    Class Variables
-    "
-    (something == #definition) ifTrue:[
-        "add handling for classes here ..."        
-        "/ self addHistory:#modification toHistoryMethodOf:changedObject.
-    ].
-
-    "this is a sub item of #definition"    
-    (something == #classVariables) ifTrue:[
-        "/
-        "/ Transcript showCR: 'classVariables changed'.
-        "/
-
-        "/ does not yet work;
-        "/ (someArgument does not contain the class we are interested in)
-
-        self addHistory:#modification toHistoryMethodOf:changedObject.
-        ^ self
-    ].    
-
-    "/
-    "/ new Class creation
-    "/
-    ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
-        "/ 
-        "/  add myself as dependents in order to get future change notifications
-        "/ 
-        self createHistoryMethodFor:someArgument.
-        self addHistory:#creation toHistoryMethodOf:someArgument.
-
-        someArgument addDependent: self.
-        someArgument class addDependent: self.   "for class methods"
-        ^ self
-    ].
-
-    "/
-    "/ changed methods
-    "/
-    changedObject isBehavior ifTrue:[
-        something = #methodDictionary ifTrue:[
-            someArgument isArray ifTrue:[
-                selector := someArgument at:1.
-                oldMethod := someArgument at:2
-            ] ifFalse:[
-                selector := someArgument
-            ].
-
-            "/
-            "/ fetch sourceString of the method
-            "/
-            sourceCode := changedObject sourceCodeAt:selector.
-            sourceCode isNil ifTrue:[
-                "method has been deleted"
-"/                Transcript showCR: 'method has been deleted'.
-            ] ifFalse:[
-                newMethod := changedObject compiledMethodAt:selector.
-
-                oldMethod notNil ifTrue:[
-                    (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
-                         "/ no change (accepted same code again ?)
-                        ^ self
-                    ].
-                ].
-
-                "/
-                "/ dont add historylines to documentation methods ...
-                "/
-                (changedObject isMeta not
-                or:[newMethod category ~= 'documentation']) ifTrue:[
-                    oldMethod notNil ifTrue:[
-                        what := #modification
-                    ] ifFalse:[
-                        what := #creation
-                    ].
-                    sourceCode := self addHistory:what to:sourceCode.
-                    newMethod source: sourceCode.
-"/                Transcript showCR: 'history updated / added'.
-                ]
-            ].
-            ^self
-        ]. 
-
-        something == #comment ifTrue:[
-            "in someArgument steht jetzt der alte kommentar"
-            ^ self.
-        ] ifFalse:[
-            "it is a class definition"
-"/            Transcript show: 'Class definition: ', changedObject printString;cr.
-            self addHistory:#modification toHistoryMethodOf:changedObject.
-        ].
-    ].
-
-    ^self
-
-    "Modified: 27.8.1995 / 02:14:43 / claus"
-    "Modified: 12.10.1996 / 20:47:40 / cg"
 ! !
 
 !HistoryManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/HistoryManager.st,v 1.33 1996-11-08 23:50:58 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/HistoryManager.st,v 1.34 1997-01-09 01:29:05 cg Exp $'
 ! !
 HistoryManager initialize!