new infoMessage scheme
authorClaus Gittinger <cg@exept.de>
Fri, 10 Jan 1997 15:49:54 +0100
changeset 474 bf2345df4093
parent 473 6916067f5ec4
child 475 5bce2cf3dadc
new infoMessage scheme
ObjFHandle.st
ObjFLoader.st
ObjectFileHandle.st
ObjectFileLoader.st
--- a/ObjFHandle.st	Thu Jan 09 12:39:58 1997 +0100
+++ b/ObjFHandle.st	Fri Jan 10 15:49:54 1997 +0100
@@ -170,19 +170,20 @@
     "my method/class object was collected - unload the underlying objectfile"
 
     something == weakMethodRef ifTrue:[
-	weakMethodRef nilAllCorpsesAndDo:[:idx |].
+        weakMethodRef nilAllCorpsesAndDo:[:idx |].
     ].
 
     something == weakClassRefs ifTrue:[
-	weakClassRefs nilAllCorpsesAndDo:[:idx |].
+        weakClassRefs nilAllCorpsesAndDo:[:idx |].
     ].
 
     self isObsolete ifTrue:[
-	('OBJFLOADER: unloading ' , pathName , '  (method/classes were garbageCollected)') infoPrintNL.
-	ObjectFileLoader unloadObjectFile:pathName
+        ('ObjectFileHandle [info]: unloading ' , pathName , '  (method/classes were garbageCollected)') infoPrintCR.
+        ObjectFileLoader unloadObjectFile:pathName
     ].
 
     "Created: 5.12.1995 / 18:05:08 / cg"
+    "Modified: 10.1.1997 / 14:58:36 / cg"
 ! !
 
 !ObjectFileHandle methodsFor:'copying'!
@@ -349,5 +350,5 @@
 !ObjectFileHandle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Attic/ObjFHandle.st,v 1.20 1996-10-22 19:34:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Attic/ObjFHandle.st,v 1.21 1997-01-10 14:49:25 cg Exp $'
 ! !
--- a/ObjFLoader.st	Thu Jan 09 12:39:58 1997 +0100
+++ b/ObjFLoader.st	Fri Jan 10 15:49:54 1997 +0100
@@ -741,7 +741,7 @@
     "/
     handle := self loadDynamicObject:aFileName.
     handle isNil ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     "/
@@ -751,40 +751,40 @@
 
     initAddr := self getFunction:'__' , initName , '_Init' from:handle.
     initAddr isNil ifTrue:[
-	initAddr := ObjectFileLoader getFunction:'_' , initName , '_Init' from:handle.
-	initAddr isNil ifTrue:[
-	    (self getListOfUndefinedSymbolsFrom:handle) size > 0 ifTrue:[
-		self listUndefinedSymbolsIn:handle.
-		'LOADER: undefined symbols in primitive code' infoPrintNL.
-	    ] ifFalse:[
-		('LOADER: ' , initName , '_Init() lookup failed') errorPrintNL
-	    ].
-
-	    "/
-	    "/ not found - unload
-	    "/
-	    self unloadDynamicObject:handle.
-	    ^ nil
-	]
+        initAddr := ObjectFileLoader getFunction:'_' , initName , '_Init' from:handle.
+        initAddr isNil ifTrue:[
+            (self getListOfUndefinedSymbolsFrom:handle) size > 0 ifTrue:[
+                self listUndefinedSymbolsIn:handle.
+                'ObjectFileLoader [info]: undefined symbols in primitive code' infoPrintNL.
+            ] ifFalse:[
+                ('ObjectFileLoader [info]: ' , initName , '_Init() lookup failed') errorPrintNL
+            ].
+
+            "/
+            "/ not found - unload
+            "/
+            self unloadDynamicObject:handle.
+            ^ nil
+        ]
     ].
 
     "/
     "/ call it - it returns the new method object
     "/
     m := self
-	callInitFunctionAt:initAddr 
-	specialInit:true
-	forceOld:true 
-	interruptable:false
-	argument:2
-	identifyAs:handle
-	returnsObject:true.
+        callInitFunctionAt:initAddr 
+        specialInit:true
+        forceOld:true 
+        interruptable:false
+        argument:2
+        identifyAs:handle
+        returnsObject:true.
 
     handle method:m.
     ^ handle
 
     "Created: 5.12.1995 / 20:59:46 / cg"
-    "Modified: 12.7.1996 / 13:26:41 / cg"
+    "Modified: 10.1.1997 / 14:59:55 / cg"
 !
 
 loadObjectFile:aFileName
@@ -1519,46 +1519,46 @@
     |p l s addr segment name entry|
 
     OperatingSystem getSystemType = 'aix' ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     l := OrderedCollection new.
     p := PipeStream readingFrom:(self nm:aFileName).
     p isNil ifTrue:[
-	('LOADER: cannot read names from ' , aFileName) infoPrintNL.
-	^ nil
+        ('ObjectFileLoader [info]: cannot read names from ' , aFileName) infoPrintNL.
+        ^ nil
     ].
     [p atEnd] whileFalse:[
-	entry := p nextLine.
-	Verbose ifTrue:[
-	    entry infoPrintNL.
-	].
-	entry notNil ifTrue:[
-	    s := ReadStream on:entry.
-	    addr := s nextAlphaNumericWord.
-	    segment := s nextAlphaNumericWord.
-	    name := s upToEnd withoutSeparators.
-	    (addr notNil and:[segment notNil and:[name notNil]]) ifTrue:[
-		(aPattern match:name) ifTrue:[
-		    (segmentPattern isNil or:[segmentPattern match:segment]) ifTrue:[
-			l add:name.
-			Verbose ifTrue:[
-			    ('found name: ' , name) infoPrintNL.
-			]
-		    ] ifFalse:[
-			Verbose ifTrue:[
-			    name infoPrint. ' segment mismatch ' infoPrint.
-			    segmentPattern infoPrint. ' ' infoPrint. segment infoPrintNL.
-			]
-		    ]
-		]
-	    ]
-	]
+        entry := p nextLine.
+        Verbose ifTrue:[
+            entry infoPrintNL.
+        ].
+        entry notNil ifTrue:[
+            s := ReadStream on:entry.
+            addr := s nextAlphaNumericWord.
+            segment := s nextAlphaNumericWord.
+            name := s upToEnd withoutSeparators.
+            (addr notNil and:[segment notNil and:[name notNil]]) ifTrue:[
+                (aPattern match:name) ifTrue:[
+                    (segmentPattern isNil or:[segmentPattern match:segment]) ifTrue:[
+                        l add:name.
+                        Verbose ifTrue:[
+                            ('found name: ' , name) infoPrintNL.
+                        ]
+                    ] ifFalse:[
+                        Verbose ifTrue:[
+                            name infoPrint. ' segment mismatch ' infoPrint.
+                            segmentPattern infoPrint. ' ' infoPrint. segment infoPrintNL.
+                        ]
+                    ]
+                ]
+            ]
+        ]
     ].
     p close.
     ^ l
 
-    "Modified: 7.3.1996 / 19:20:01 / cg"
+    "Modified: 10.1.1997 / 15:00:27 / cg"
 !
 
 releaseSymbolTable
@@ -1616,149 +1616,149 @@
      functions newFunction|
 
     PreviouslyLoadedObjects notNil ifTrue:[
-	PreviouslyLoadedObjects do:[:entry |
-	    |fileName handle cls sel|
-
-	    fileName := entry key.
-	    handle := entry value.
-	    handle moduleID:nil.
-
-	    handle isClassLibHandle ifTrue:[
-		('OBJFLOADER: reloading classes in ' , fileName , ' ...') infoPrintNL.
-
-		"/
-		"/ remember all byteCode methods (as added in the session)
-		"/                
-		savedByteCodeMethods := IdentityDictionary new.
-		savedOldClasses := IdentitySet new.
-
-		handle classes do:[:aClass |
-		    savedMethods := IdentityDictionary new.
-		    savedOldClasses add:aClass.
-		    aClass methodDictionary keysAndValuesDo:[:sel :m |
-			m byteCode notNil ifTrue:[
-			    "/ an interpreted method - must be preserved
-			    savedMethods at:sel put:m
-			]
-		    ].
-		    savedMethods notEmpty ifTrue:[
-			savedByteCodeMethods at:(aClass name) put:savedMethods
-		    ].
-		].
-		"/
-		"/ load the class binary
-		"/                
-		self loadObjectFile:fileName.
-
-		"/
-		"/ reinstall the byteCode methods
-		"/                
-		savedByteCodeMethods keysAndValuesDo:[:nm :savedMethods |
-		    |cls|
-
-		    cls := Smalltalk classNamed:nm.
-		    savedMethods keysAndValuesDo:[:sel :m |
-			cls primAddSelector:sel withMethod:m. 
-"/ ('preserved ' , cls name , '>>' , sel) printNL.
-		    ]
-		].
-
-		"/
-		"/ validate old-classes vs. new classes.
-		"/ and if things look ok, get rid of old stuff
-		"/ and make instances become instances of the new class
-		"/
-		savedOldClasses do:[:oldClass |
-		    |newClass|
-
-		    newClass := Smalltalk classNamed:(oldClass name).
-		    newClass == oldClass ifTrue:[
-"/                        ('OBJFLOADER: class ' , oldClass name , ' reloaded.') errorPrintCR.
-		    ] ifFalse:[
-			(newClass isNil or:[newClass == oldClass]) ifTrue:[
-			    ('OBJFLOADER: reload of ' , oldClass name , ' seemed to fail.') errorPrintCR.
-			] ifFalse:[
+        PreviouslyLoadedObjects do:[:entry |
+            |fileName handle cls sel|
+
+            fileName := entry key.
+            handle := entry value.
+            handle moduleID:nil.
+
+            handle isClassLibHandle ifTrue:[
+                ('ObjectFileLoader [info]: reloading classes in ' , fileName , ' ...') infoPrintCR.
+
+                "/
+                "/ remember all byteCode methods (as added in the session)
+                "/                
+                savedByteCodeMethods := IdentityDictionary new.
+                savedOldClasses := IdentitySet new.
+
+                handle classes do:[:aClass |
+                    savedMethods := IdentityDictionary new.
+                    savedOldClasses add:aClass.
+                    aClass methodDictionary keysAndValuesDo:[:sel :m |
+                        m byteCode notNil ifTrue:[
+                            "/ an interpreted method - must be preserved
+                            savedMethods at:sel put:m
+                        ]
+                    ].
+                    savedMethods notEmpty ifTrue:[
+                        savedByteCodeMethods at:(aClass name) put:savedMethods
+                    ].
+                ].
+                "/
+                "/ load the class binary
+                "/                
+                self loadObjectFile:fileName.
+
+                "/
+                "/ reinstall the byteCode methods
+                "/                
+                savedByteCodeMethods keysAndValuesDo:[:nm :savedMethods |
+                    |cls|
+
+                    cls := Smalltalk classNamed:nm.
+                    savedMethods keysAndValuesDo:[:sel :m |
+                        cls primAddSelector:sel withMethod:m. 
+"/ ('preserved ' , cls name , '>>' , sel) printCR.
+                    ]
+                ].
+
+                "/
+                "/ validate old-classes vs. new classes.
+                "/ and if things look ok, get rid of old stuff
+                "/ and make instances become instances of the new class
+                "/
+                savedOldClasses do:[:oldClass |
+                    |newClass|
+
+                    newClass := Smalltalk classNamed:(oldClass name).
+                    newClass == oldClass ifTrue:[
+"/                        ('ObjectFileLoader [info]: class ' , oldClass name , ' reloaded.') infoPrintCR.
+                    ] ifFalse:[
+                        (newClass isNil or:[newClass == oldClass]) ifTrue:[
+                            ('ObjectFileLoader [warning]: reload of ' , oldClass name , ' seemed to fail.') errorPrintCR.
+                        ] ifFalse:[
 "/'oldSize: ' print. oldClass instSize print. ' (' print. oldClass instSize class name print. ') ' print.
 "/'newSize: ' print. newClass instSize print. ' (' print. oldClass instSize class name print. ') ' printCR.
 
-			    oldClass instSize ~~ newClass instSize ifTrue:[
-				('OBJFLOADER: ' , oldClass name , ' has changed its size.') errorPrintCR.
-			    ] ifFalse:[
-				oldClass class instSize ~~ newClass class instSize ifTrue:[
-				    ('OBJFLOADER: ' , oldClass name , ' class has changed its size.') errorPrintCR.
-				] ifFalse:[
-				    ('OBJFLOADER: migrating ' , oldClass name) errorPrintCR.
-				    oldClass becomeSameAs:newClass
-				]
-			    ]
-			]
-		    ]
-		]
-
-	    ] ifFalse:[
-		handle isMethodHandle ifTrue:[
-		    oldDummyMethod := handle method.
-		    (oldDummyMethod isKindOf:Method) ifFalse:[
-			('OBJFLOADER: ignore obsolete (already collected) method in ' , fileName) infoPrintNL
-		    ] ifTrue:[
-			('OBJFLOADER: reloading method in ' , fileName , ' ...') infoPrintNL.
-			who := oldDummyMethod who.
-			newHandle := self loadMethodObjectFile:fileName.
-			newHandle isNil ifTrue:[
-			    ('OBJFLOADER: failed to reload method in ' , fileName , ' ...') errorPrintNL.
-			    handle moduleID:nil.
-			] ifFalse:[
-			    m := newHandle method.
-			    m source:(oldDummyMethod source).
-			    m package:(oldDummyMethod package).
-			    who notNil ifTrue:[
-				cls := who methodClass.
-				sel := who methodSelector.
-				m == (cls compiledMethodAt:sel) ifFalse:[
-				    'LOADER: oops - loaded method installed wrong' errorPrintNL.
-				] ifTrue:[
+                            oldClass instSize ~~ newClass instSize ifTrue:[
+                                ('ObjectFileLoader [warning]: ' , oldClass name , ' has changed its size.') errorPrintCR.
+                            ] ifFalse:[
+                                oldClass class instSize ~~ newClass class instSize ifTrue:[
+                                    ('ObjectFileLoader [warning]: ' , oldClass name , ' class has changed its size.') errorPrintCR.
+                                ] ifFalse:[
+                                    ('ObjectFileLoader [info]: migrating ' , oldClass name) infoPrintCR.
+                                    oldClass becomeSameAs:newClass
+                                ]
+                            ]
+                        ]
+                    ]
+                ]
+
+            ] ifFalse:[
+                handle isMethodHandle ifTrue:[
+                    oldDummyMethod := handle method.
+                    (oldDummyMethod isKindOf:Method) ifFalse:[
+                        ('ObjectFileLoader [info]: ignore obsolete (already collected) method in ' , fileName) infoPrintCR
+                    ] ifTrue:[
+                        ('ObjectFileLoader [info]: reloading method in ' , fileName , ' ...') infoPrintCR.
+                        who := oldDummyMethod who.
+                        newHandle := self loadMethodObjectFile:fileName.
+                        newHandle isNil ifTrue:[
+                            ('ObjectFileLoader [warning]: failed to reload method in ' , fileName , ' ...') errorPrintCR.
+                            handle moduleID:nil.
+                        ] ifFalse:[
+                            m := newHandle method.
+                            m source:(oldDummyMethod source).
+                            m package:(oldDummyMethod package).
+                            who notNil ifTrue:[
+                                cls := who methodClass.
+                                sel := who methodSelector.
+                                m == (cls compiledMethodAt:sel) ifFalse:[
+                                    'ObjectFileLoader [warning]: oops - loaded method installed wrong' errorPrintCR.
+                                ] ifTrue:[
 "/                                  cls changed:#methodDictionary with:(Array with:sel with:oldDummyMethod).
-				]
-			    ].
-			]
-		    ]
-		] ifFalse:[
-		    handle isFunctionObjectHandle ifTrue:[
-			functions := handle functions.
-			functions isEmpty ifTrue:[
-			    ('OBJFLOADER: ignore obsolete (unreferenced) functions in ' , fileName) infoPrintNL
-			] ifFalse:[
-			    newHandle := self loadDynamicObject:fileName.
-			    newHandle isNil ifTrue:[
-				('OBJFLOADER: failed to reload ' , fileName , ' ...') errorPrintNL.
-				handle moduleID:nil.
-			    ] ifFalse:[
-				('OBJFLOADER: reloading ' , fileName , ' ...') infoPrintNL.
-				functions do:[:oldFunction |
-				    newFunction := newHandle getFunction:(oldFunction name).
-				    newFunction isNil ifTrue:[
-					('OBJFLOADER: function: ''' , oldFunction name , ''' no longer present.') errorPrintNL.
-					oldFunction code:nil.
-					oldFunction setName:oldFunction name moduleHandle:nil.
-				    ] ifFalse:[
-					oldFunction code:(newFunction code).
-					oldFunction setName:oldFunction name moduleHandle:newHandle.
-					('OBJFLOADER: rebound function: ''' , oldFunction name , '''.') infoPrintNL.
-				    ]
-				].
-				handle becomeSameAs:newHandle.      "/ the old handle is now void
-			    ]
-			]
-		    ] ifFalse:[
-			('OBJFLOADER: ignored invalid (obsolete) objectFile handle: ' , handle printString) infoPrintNL.
-		    ]
-		]
-	    ]
-	].
-	PreviouslyLoadedObjects := nil
+                                ]
+                            ].
+                        ]
+                    ]
+                ] ifFalse:[
+                    handle isFunctionObjectHandle ifTrue:[
+                        functions := handle functions.
+                        functions isEmpty ifTrue:[
+                            ('ObjectFileLoader [info]: ignore obsolete (unreferenced) functions in ' , fileName) infoPrintCR
+                        ] ifFalse:[
+                            newHandle := self loadDynamicObject:fileName.
+                            newHandle isNil ifTrue:[
+                                ('ObjectFileLoader [warning]: failed to reload ' , fileName , ' ...') errorPrintCR.
+                                handle moduleID:nil.
+                            ] ifFalse:[
+                                ('ObjectFileLoader [info]: reloading ' , fileName , ' ...') infoPrintCR.
+                                functions do:[:oldFunction |
+                                    newFunction := newHandle getFunction:(oldFunction name).
+                                    newFunction isNil ifTrue:[
+                                        ('ObjectFileLoader [info]: function: ''' , oldFunction name , ''' no longer present.') errorPrintCR.
+                                        oldFunction code:nil.
+                                        oldFunction setName:oldFunction name moduleHandle:nil.
+                                    ] ifFalse:[
+                                        oldFunction code:(newFunction code).
+                                        oldFunction setName:oldFunction name moduleHandle:newHandle.
+                                        ('ObjectFileLoader [info]: rebound function: ''' , oldFunction name , '''.') infoPrintCR.
+                                    ]
+                                ].
+                                handle becomeSameAs:newHandle.      "/ the old handle is now void
+                            ]
+                        ]
+                    ] ifFalse:[
+                        ('ObjectFileLoader [info]: ignored invalid (obsolete) objectFile handle: ' , handle printString) infoPrintCR.
+                    ]
+                ]
+            ]
+        ].
+        PreviouslyLoadedObjects := nil
     ]
 
-    "Modified: 1.11.1996 / 16:28:50 / cg"
+    "Modified: 10.1.1997 / 15:06:07 / cg"
 !
 
 rememberAllObjectFiles
@@ -1768,19 +1768,19 @@
      were loaded in the previous life"
 
     LoadedObjects notNil ifTrue:[
-	PreviouslyLoadedObjects := OrderedCollection new.
-	LoadedObjects keysAndValuesDo:[:name :handle |
-	    handle isForCollectedObject ifTrue:[
-		('OBJFLOADER: ignore object for already collected objects in ' , name) infoPrintNL
-	    ] ifFalse:[
-		PreviouslyLoadedObjects add:(name -> handle)
-	    ]
-	].
-	PreviouslyLoadedObjects sort:[:a :b | a value moduleID < b value moduleID].
+        PreviouslyLoadedObjects := OrderedCollection new.
+        LoadedObjects keysAndValuesDo:[:name :handle |
+            handle isForCollectedObject ifTrue:[
+                ('ObjectFileLoader [info]: ignore object for already collected objects in ' , name) infoPrintCR
+            ] ifFalse:[
+                PreviouslyLoadedObjects add:(name -> handle)
+            ]
+        ].
+        PreviouslyLoadedObjects sort:[:a :b | a value moduleID < b value moduleID].
     ]
 
     "Created: 5.12.1995 / 20:51:07 / cg"
-    "Modified: 25.4.1996 / 09:46:08 / cg"
+    "Modified: 10.1.1997 / 15:06:25 / cg"
 !
 
 revalidateAllObjectFiles
@@ -2035,36 +2035,36 @@
 
     inits := list select:[:symbol | symbol notNil and:[symbol endsWith:'_Init']].
     inits notNil ifTrue:[
-	classNames := inits collect:[:symbol |
-	    (symbol startsWith:'___') ifTrue:[
-		symbol copyFrom:4 to:(symbol size - 5)
-	    ] ifFalse:[
-		(symbol startsWith:'__') ifTrue:[
-		    symbol copyFrom:3 to:(symbol size - 5)
-		] ifFalse:[
-		    (symbol startsWith:'_') ifTrue:[
-			symbol copyFrom:2 to:(symbol size - 5)
-		    ] ifFalse:[
-			symbol
-		    ]
-		]
-	    ]
-	].
-	"
-	 autoload those classes
-	"
-	classNames do:[:aClassName |
-	    |cls|
-
-	    (cls := Smalltalk classNamed:aClassName) notNil ifTrue:[
-		'autoloading ' infoPrint. aClassName infoPrintNL.
-		cls autoload
-	    ]
-	]
+        classNames := inits collect:[:symbol |
+            (symbol startsWith:'___') ifTrue:[
+                symbol copyFrom:4 to:(symbol size - 5)
+            ] ifFalse:[
+                (symbol startsWith:'__') ifTrue:[
+                    symbol copyFrom:3 to:(symbol size - 5)
+                ] ifFalse:[
+                    (symbol startsWith:'_') ifTrue:[
+                        symbol copyFrom:2 to:(symbol size - 5)
+                    ] ifFalse:[
+                        symbol
+                    ]
+                ]
+            ]
+        ].
+        "
+         autoload those classes
+        "
+        classNames do:[:aClassName |
+            |cls|
+
+            (cls := Smalltalk classNamed:aClassName) notNil ifTrue:[
+                'ObjectFileLoader [info]: autoloading ' infoPrint. aClassName infoPrintNL.
+                cls autoload
+            ]
+        ]
     ].
     ^ nil
 
-    "Modified: 17.12.1995 / 16:00:27 / cg"
+    "Modified: 10.1.1997 / 15:00:11 / cg"
 !
 
 primLoadDynamicObject:pathName into:anInfoBuffer
@@ -2419,7 +2419,7 @@
     |key fileName functionName deInitAddr m|
 
     Verbose ifTrue:[
-	'unload module name=' infoPrint. handle pathName infoPrintNL.
+        'unload module name=' infoPrint. handle pathName infoPrintCR.
     ].
 
     "/
@@ -2427,48 +2427,48 @@
     "/
 
     handle isFunctionObjectHandle ifTrue:[
-	handle functions do:[:f |
-				f notNil ifTrue:[
-				    f code:0
-				]
-			    ].
+        handle functions do:[:f |
+                                f notNil ifTrue:[
+                                    f code:0
+                                ]
+                            ].
     ].
 
     (handle isClassLibHandle
     or:[handle isMethodHandle]) ifTrue:[
-	self deinitializeClassesFromModule:handle.
-	self unregisterModule:handle.
+        self deinitializeClassesFromModule:handle.
+        self unregisterModule:handle.
     ] ifFalse:[
-	fileName := handle pathName asFilename baseName.
-	functionName := self initFunctionBasenameForFile:fileName.
-
-	deInitAddr := self findFunction:functionName suffix:'__deInit' in:handle.
-	deInitAddr notNil ifTrue:[
-	    self callInitFunctionAt:deInitAddr 
-		 specialInit:false 
-		 forceOld:true 
-		 interruptable:false
-		 argument:0
-		 identifyAs:handle
-		 returnsObject:false.
-	]
+        fileName := handle pathName asFilename baseName.
+        functionName := self initFunctionBasenameForFile:fileName.
+
+        deInitAddr := self findFunction:functionName suffix:'__deInit' in:handle.
+        deInitAddr notNil ifTrue:[
+            self callInitFunctionAt:deInitAddr 
+                 specialInit:false 
+                 forceOld:true 
+                 interruptable:false
+                 argument:0
+                 identifyAs:handle
+                 returnsObject:false.
+        ]
     ].
 
     "/
     "/ now, really unload
     "/
     (self primUnloadDynamicObject:handle) ifFalse:[
-	^ self error:'unloadDynamic failed'
+        ^ self error:'unloadDynamic failed'
     ].
 
     "/
     "/ remove from loaded objects
     "/
     LoadedObjects notNil ifTrue:[
-	key := LoadedObjects keyAtEqualValue:handle.
-	key notNil ifTrue:[
-	    LoadedObjects removeKey:key
-	]
+        key := LoadedObjects keyAtEqualValue:handle.
+        key notNil ifTrue:[
+            LoadedObjects removeKey:key
+        ]
     ].
     Smalltalk flushCachedClasses.
 
@@ -2477,14 +2477,14 @@
      but make it unexecutable. Its still visible in the browser.
     "
     handle isMethodHandle ifTrue:[
-	((m := handle method) notNil 
-	and:[m ~~ 0]) ifTrue:[
-	    m makeUnloaded.
-	    ObjectMemory flushCaches.
-	]
+        ((m := handle method) notNil 
+        and:[m ~~ 0]) ifTrue:[
+            m makeUnloaded.
+            ObjectMemory flushCaches.
+        ]
     ]
 
-    "Modified: 4.11.1996 / 23:05:20 / cg"
+    "Modified: 10.1.1997 / 15:08:26 / cg"
 ! !
 
 !ObjectFileLoader class methodsFor:'queries'!
@@ -2800,10 +2800,10 @@
 
     "
      need 4 passes to init: 0: let module register itself & create its pools/globals
-			    0b check if modules superclasses are all loaded
-			    1: let it get var-refs to other pools/globals
-			    2: let it install install class, methods and literals
-			    3: let it send #initialize to its class object
+                            0b check if modules superclasses are all loaded
+                            1: let it get var-refs to other pools/globals
+                            2: let it install install class, methods and literals
+                            3: let it send #initialize to its class object
     "
 
     "/
@@ -2811,15 +2811,15 @@
     "/ and define its globals
     "/
     Verbose ifTrue:[
-	'phase 0 ...' infoPrintNL
+        'phase 0 ...' infoPrintNL
     ].
     self callInitFunctionAt:initAddr 
-	 specialInit:true 
-	 forceOld:true 
-	 interruptable:false
-	 argument:0
-	 identifyAs:handle
-	 returnsObject:false.
+         specialInit:true 
+         forceOld:true 
+         interruptable:false
+         argument:0
+         identifyAs:handle
+         returnsObject:false.
 
     "/
     "/ check if superclasses are present
@@ -2829,41 +2829,41 @@
     badClassName := info at:2.
 
     Verbose ifTrue:[
-	'... status is ' infoPrint. info infoPrintNL
+        '... status is ' infoPrint. info infoPrintNL
     ].
 
     (status ~~ #ok) ifTrue:[
-	(status == #missingClass) ifTrue:[
-	    Transcript showCR:'load failed - missing class: ' , badClassName.
-	    ^ info
-	].
-	(status == #versionMismatch) ifTrue:[
-	    Transcript showCR:'load failed - version mismatch: ' , badClassName.
-	    ^ info
-	].
-	(status == #unregisteredSuperclass) ifTrue:[
-	    Transcript showCR:'load failed - unregistered: ' , badClassName.
-	    ^ info
-	].
-	Transcript showCR:'load failed'.
-	^ Array with:#loadFailed with:nil
+        (status == #missingClass) ifTrue:[
+            ('ObjectFileLoader [error]: load failed - missing class: ' , badClassName) infoPrintCR.
+            ^ info
+        ].
+        (status == #versionMismatch) ifTrue:[
+            ('ObjectFileLoader [error]: load failed - version mismatch: ' , badClassName) infoPrintCR.
+            ^ info
+        ].
+        (status == #unregisteredSuperclass) ifTrue:[
+            ('ObjectFileLoader [error]: load failed - unregistered: ' , badClassName) infoPrintCR.
+            ^ info
+        ].
+        ('ObjectFileLoader [error]: load failed') infoPrintCR.
+        ^ Array with:#loadFailed with:nil
     ].
 
     "/
     "/ remaining initialization
     "/
     Verbose ifTrue:[
-	'phase 1 ...' infoPrintNL
+        'phase 1 ...' infoPrintNL
     ].
     self moduleInit:1 forceOld:true interruptable:false.
 
     Verbose ifTrue:[
-	'phase 2 ...' infoPrintNL
+        'phase 2 ...' infoPrintNL
     ].
     self moduleInit:2 forceOld:true interruptable:false.
 
     Verbose ifTrue:[
-	'phase 3 ...' infoPrintNL
+        'phase 3 ...' infoPrintNL
     ].
     ObjectMemory flushCaches.
     self moduleInit:3 forceOld:false interruptable:true.
@@ -2874,23 +2874,24 @@
     infoCollection := ObjectMemory binaryModuleInfo.
     info := infoCollection at:handle moduleID ifAbsent:nil.
     info isNil ifTrue:[
-	"/ mhmh registration failed -
-	^ Array with:#registrationFailed with:nil
+        "/ mhmh registration failed -
+        ('ObjectFileLoader [error]: registration failed') infoPrintCR.
+        ^ Array with:#registrationFailed with:nil
     ].
 
     classNames := info classNames.
     classNames size > 0 ifTrue:[
-	classes := classNames collect:[:nm | Smalltalk classNamed:nm].
+        classes := classNames collect:[:nm | Smalltalk classNamed:nm].
     ].
     classes size > 0 ifTrue:[
-	classes := classes asArray.
-	classes := classes , (classes collect:[:aClass | aClass class]).
+        classes := classes asArray.
+        classes := classes , (classes collect:[:aClass | aClass class]).
     ].
     handle classes:classes.
 
     ^ Array with:#ok with:nil
 
-    "Modified: 31.10.1996 / 14:02:35 / cg"
+    "Modified: 10.1.1997 / 15:02:42 / cg"
 !
 
 revalidateModule:handle
@@ -2915,27 +2916,29 @@
      (req'd if a subclass of an autoloaded class has been loaded)"
 
     Verbose ifTrue:[
-	'checkCall for:' infoPrint. aClass name infoPrint. ' -> ' infoPrint.
+        'checkCall for:' infoPrint. aClass name infoPrint. ' -> ' infoPrint.
     ].
     aClass isBehavior ifFalse:[
-	Verbose ifTrue:[
-	    'false' infoPrintNL. 
-	].
-	'LOADER: check failed - no behavior' infoPrintNL.
-	^ false
+        Verbose ifTrue:[
+            'false' infoPrintNL. 
+        ].
+        'ObjectFileLoader [warning]: check failed - no behavior' errorPrintCR.
+        ^ false
     ].
     Verbose ifTrue:[
-	'true' infoPrintNL. 
+        'true' infoPrintCR. 
     ].
-    ('LOADER: check for ' , aClass name , ' being loaded') infoPrintNL.
+    ('ObjectFileLoader [info]: check for ' , aClass name , ' being loaded') infoPrintCR.
     aClass autoload.
     (aClass isBehavior and:[aClass isLoaded]) ifTrue:[
-	('LOADER: ok, loaded. continue registration of actual class') infoPrintNL.
-	aClass signature.       "/ req'd in VM for validation
-	^ true
+        ('ObjectFileLoader [info]: ok, loaded. continue registration of actual class') infoPrintCR.
+        aClass signature.       "/ req'd in VM for validation
+        ^ true
     ].
-    ('LOADER: nope - not loaded. fail registration of actual class') infoPrintNL.
+    ('ObjectFileLoader [warning]: superclass not loaded; registration of ' , aClass name , ' fails') errorPrintCR.
     ^ false
+
+    "Modified: 10.1.1997 / 15:08:15 / cg"
 !
 
 unregisterModule:handle
@@ -2945,8 +2948,8 @@
     |id|
 
     Verbose ifTrue:[
-	'unregister module; name=' infoPrint. handle pathName infoPrint.
-	' id=' infoPrint. handle moduleID infoPrintNL.
+        'unregister module; name=' infoPrint. handle pathName infoPrint.
+        ' id=' infoPrint. handle moduleID infoPrintCR.
     ].
 
     id := handle moduleID.
@@ -2958,6 +2961,6 @@
 !ObjectFileLoader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Attic/ObjFLoader.st,v 1.127 1997-01-08 17:29:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Attic/ObjFLoader.st,v 1.128 1997-01-10 14:49:54 cg Exp $'
 ! !
 ObjectFileLoader initialize!
--- a/ObjectFileHandle.st	Thu Jan 09 12:39:58 1997 +0100
+++ b/ObjectFileHandle.st	Fri Jan 10 15:49:54 1997 +0100
@@ -170,19 +170,20 @@
     "my method/class object was collected - unload the underlying objectfile"
 
     something == weakMethodRef ifTrue:[
-	weakMethodRef nilAllCorpsesAndDo:[:idx |].
+        weakMethodRef nilAllCorpsesAndDo:[:idx |].
     ].
 
     something == weakClassRefs ifTrue:[
-	weakClassRefs nilAllCorpsesAndDo:[:idx |].
+        weakClassRefs nilAllCorpsesAndDo:[:idx |].
     ].
 
     self isObsolete ifTrue:[
-	('OBJFLOADER: unloading ' , pathName , '  (method/classes were garbageCollected)') infoPrintNL.
-	ObjectFileLoader unloadObjectFile:pathName
+        ('ObjectFileHandle [info]: unloading ' , pathName , '  (method/classes were garbageCollected)') infoPrintCR.
+        ObjectFileLoader unloadObjectFile:pathName
     ].
 
     "Created: 5.12.1995 / 18:05:08 / cg"
+    "Modified: 10.1.1997 / 14:58:36 / cg"
 ! !
 
 !ObjectFileHandle methodsFor:'copying'!
@@ -349,5 +350,5 @@
 !ObjectFileHandle class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/ObjectFileHandle.st,v 1.20 1996-10-22 19:34:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/ObjectFileHandle.st,v 1.21 1997-01-10 14:49:25 cg Exp $'
 ! !
--- a/ObjectFileLoader.st	Thu Jan 09 12:39:58 1997 +0100
+++ b/ObjectFileLoader.st	Fri Jan 10 15:49:54 1997 +0100
@@ -741,7 +741,7 @@
     "/
     handle := self loadDynamicObject:aFileName.
     handle isNil ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     "/
@@ -751,40 +751,40 @@
 
     initAddr := self getFunction:'__' , initName , '_Init' from:handle.
     initAddr isNil ifTrue:[
-	initAddr := ObjectFileLoader getFunction:'_' , initName , '_Init' from:handle.
-	initAddr isNil ifTrue:[
-	    (self getListOfUndefinedSymbolsFrom:handle) size > 0 ifTrue:[
-		self listUndefinedSymbolsIn:handle.
-		'LOADER: undefined symbols in primitive code' infoPrintNL.
-	    ] ifFalse:[
-		('LOADER: ' , initName , '_Init() lookup failed') errorPrintNL
-	    ].
-
-	    "/
-	    "/ not found - unload
-	    "/
-	    self unloadDynamicObject:handle.
-	    ^ nil
-	]
+        initAddr := ObjectFileLoader getFunction:'_' , initName , '_Init' from:handle.
+        initAddr isNil ifTrue:[
+            (self getListOfUndefinedSymbolsFrom:handle) size > 0 ifTrue:[
+                self listUndefinedSymbolsIn:handle.
+                'ObjectFileLoader [info]: undefined symbols in primitive code' infoPrintNL.
+            ] ifFalse:[
+                ('ObjectFileLoader [info]: ' , initName , '_Init() lookup failed') errorPrintNL
+            ].
+
+            "/
+            "/ not found - unload
+            "/
+            self unloadDynamicObject:handle.
+            ^ nil
+        ]
     ].
 
     "/
     "/ call it - it returns the new method object
     "/
     m := self
-	callInitFunctionAt:initAddr 
-	specialInit:true
-	forceOld:true 
-	interruptable:false
-	argument:2
-	identifyAs:handle
-	returnsObject:true.
+        callInitFunctionAt:initAddr 
+        specialInit:true
+        forceOld:true 
+        interruptable:false
+        argument:2
+        identifyAs:handle
+        returnsObject:true.
 
     handle method:m.
     ^ handle
 
     "Created: 5.12.1995 / 20:59:46 / cg"
-    "Modified: 12.7.1996 / 13:26:41 / cg"
+    "Modified: 10.1.1997 / 14:59:55 / cg"
 !
 
 loadObjectFile:aFileName
@@ -1519,46 +1519,46 @@
     |p l s addr segment name entry|
 
     OperatingSystem getSystemType = 'aix' ifTrue:[
-	^ nil
+        ^ nil
     ].
 
     l := OrderedCollection new.
     p := PipeStream readingFrom:(self nm:aFileName).
     p isNil ifTrue:[
-	('LOADER: cannot read names from ' , aFileName) infoPrintNL.
-	^ nil
+        ('ObjectFileLoader [info]: cannot read names from ' , aFileName) infoPrintNL.
+        ^ nil
     ].
     [p atEnd] whileFalse:[
-	entry := p nextLine.
-	Verbose ifTrue:[
-	    entry infoPrintNL.
-	].
-	entry notNil ifTrue:[
-	    s := ReadStream on:entry.
-	    addr := s nextAlphaNumericWord.
-	    segment := s nextAlphaNumericWord.
-	    name := s upToEnd withoutSeparators.
-	    (addr notNil and:[segment notNil and:[name notNil]]) ifTrue:[
-		(aPattern match:name) ifTrue:[
-		    (segmentPattern isNil or:[segmentPattern match:segment]) ifTrue:[
-			l add:name.
-			Verbose ifTrue:[
-			    ('found name: ' , name) infoPrintNL.
-			]
-		    ] ifFalse:[
-			Verbose ifTrue:[
-			    name infoPrint. ' segment mismatch ' infoPrint.
-			    segmentPattern infoPrint. ' ' infoPrint. segment infoPrintNL.
-			]
-		    ]
-		]
-	    ]
-	]
+        entry := p nextLine.
+        Verbose ifTrue:[
+            entry infoPrintNL.
+        ].
+        entry notNil ifTrue:[
+            s := ReadStream on:entry.
+            addr := s nextAlphaNumericWord.
+            segment := s nextAlphaNumericWord.
+            name := s upToEnd withoutSeparators.
+            (addr notNil and:[segment notNil and:[name notNil]]) ifTrue:[
+                (aPattern match:name) ifTrue:[
+                    (segmentPattern isNil or:[segmentPattern match:segment]) ifTrue:[
+                        l add:name.
+                        Verbose ifTrue:[
+                            ('found name: ' , name) infoPrintNL.
+                        ]
+                    ] ifFalse:[
+                        Verbose ifTrue:[
+                            name infoPrint. ' segment mismatch ' infoPrint.
+                            segmentPattern infoPrint. ' ' infoPrint. segment infoPrintNL.
+                        ]
+                    ]
+                ]
+            ]
+        ]
     ].
     p close.
     ^ l
 
-    "Modified: 7.3.1996 / 19:20:01 / cg"
+    "Modified: 10.1.1997 / 15:00:27 / cg"
 !
 
 releaseSymbolTable
@@ -1616,149 +1616,149 @@
      functions newFunction|
 
     PreviouslyLoadedObjects notNil ifTrue:[
-	PreviouslyLoadedObjects do:[:entry |
-	    |fileName handle cls sel|
-
-	    fileName := entry key.
-	    handle := entry value.
-	    handle moduleID:nil.
-
-	    handle isClassLibHandle ifTrue:[
-		('OBJFLOADER: reloading classes in ' , fileName , ' ...') infoPrintNL.
-
-		"/
-		"/ remember all byteCode methods (as added in the session)
-		"/                
-		savedByteCodeMethods := IdentityDictionary new.
-		savedOldClasses := IdentitySet new.
-
-		handle classes do:[:aClass |
-		    savedMethods := IdentityDictionary new.
-		    savedOldClasses add:aClass.
-		    aClass methodDictionary keysAndValuesDo:[:sel :m |
-			m byteCode notNil ifTrue:[
-			    "/ an interpreted method - must be preserved
-			    savedMethods at:sel put:m
-			]
-		    ].
-		    savedMethods notEmpty ifTrue:[
-			savedByteCodeMethods at:(aClass name) put:savedMethods
-		    ].
-		].
-		"/
-		"/ load the class binary
-		"/                
-		self loadObjectFile:fileName.
-
-		"/
-		"/ reinstall the byteCode methods
-		"/                
-		savedByteCodeMethods keysAndValuesDo:[:nm :savedMethods |
-		    |cls|
-
-		    cls := Smalltalk classNamed:nm.
-		    savedMethods keysAndValuesDo:[:sel :m |
-			cls primAddSelector:sel withMethod:m. 
-"/ ('preserved ' , cls name , '>>' , sel) printNL.
-		    ]
-		].
-
-		"/
-		"/ validate old-classes vs. new classes.
-		"/ and if things look ok, get rid of old stuff
-		"/ and make instances become instances of the new class
-		"/
-		savedOldClasses do:[:oldClass |
-		    |newClass|
-
-		    newClass := Smalltalk classNamed:(oldClass name).
-		    newClass == oldClass ifTrue:[
-"/                        ('OBJFLOADER: class ' , oldClass name , ' reloaded.') errorPrintCR.
-		    ] ifFalse:[
-			(newClass isNil or:[newClass == oldClass]) ifTrue:[
-			    ('OBJFLOADER: reload of ' , oldClass name , ' seemed to fail.') errorPrintCR.
-			] ifFalse:[
+        PreviouslyLoadedObjects do:[:entry |
+            |fileName handle cls sel|
+
+            fileName := entry key.
+            handle := entry value.
+            handle moduleID:nil.
+
+            handle isClassLibHandle ifTrue:[
+                ('ObjectFileLoader [info]: reloading classes in ' , fileName , ' ...') infoPrintCR.
+
+                "/
+                "/ remember all byteCode methods (as added in the session)
+                "/                
+                savedByteCodeMethods := IdentityDictionary new.
+                savedOldClasses := IdentitySet new.
+
+                handle classes do:[:aClass |
+                    savedMethods := IdentityDictionary new.
+                    savedOldClasses add:aClass.
+                    aClass methodDictionary keysAndValuesDo:[:sel :m |
+                        m byteCode notNil ifTrue:[
+                            "/ an interpreted method - must be preserved
+                            savedMethods at:sel put:m
+                        ]
+                    ].
+                    savedMethods notEmpty ifTrue:[
+                        savedByteCodeMethods at:(aClass name) put:savedMethods
+                    ].
+                ].
+                "/
+                "/ load the class binary
+                "/                
+                self loadObjectFile:fileName.
+
+                "/
+                "/ reinstall the byteCode methods
+                "/                
+                savedByteCodeMethods keysAndValuesDo:[:nm :savedMethods |
+                    |cls|
+
+                    cls := Smalltalk classNamed:nm.
+                    savedMethods keysAndValuesDo:[:sel :m |
+                        cls primAddSelector:sel withMethod:m. 
+"/ ('preserved ' , cls name , '>>' , sel) printCR.
+                    ]
+                ].
+
+                "/
+                "/ validate old-classes vs. new classes.
+                "/ and if things look ok, get rid of old stuff
+                "/ and make instances become instances of the new class
+                "/
+                savedOldClasses do:[:oldClass |
+                    |newClass|
+
+                    newClass := Smalltalk classNamed:(oldClass name).
+                    newClass == oldClass ifTrue:[
+"/                        ('ObjectFileLoader [info]: class ' , oldClass name , ' reloaded.') infoPrintCR.
+                    ] ifFalse:[
+                        (newClass isNil or:[newClass == oldClass]) ifTrue:[
+                            ('ObjectFileLoader [warning]: reload of ' , oldClass name , ' seemed to fail.') errorPrintCR.
+                        ] ifFalse:[
 "/'oldSize: ' print. oldClass instSize print. ' (' print. oldClass instSize class name print. ') ' print.
 "/'newSize: ' print. newClass instSize print. ' (' print. oldClass instSize class name print. ') ' printCR.
 
-			    oldClass instSize ~~ newClass instSize ifTrue:[
-				('OBJFLOADER: ' , oldClass name , ' has changed its size.') errorPrintCR.
-			    ] ifFalse:[
-				oldClass class instSize ~~ newClass class instSize ifTrue:[
-				    ('OBJFLOADER: ' , oldClass name , ' class has changed its size.') errorPrintCR.
-				] ifFalse:[
-				    ('OBJFLOADER: migrating ' , oldClass name) errorPrintCR.
-				    oldClass becomeSameAs:newClass
-				]
-			    ]
-			]
-		    ]
-		]
-
-	    ] ifFalse:[
-		handle isMethodHandle ifTrue:[
-		    oldDummyMethod := handle method.
-		    (oldDummyMethod isKindOf:Method) ifFalse:[
-			('OBJFLOADER: ignore obsolete (already collected) method in ' , fileName) infoPrintNL
-		    ] ifTrue:[
-			('OBJFLOADER: reloading method in ' , fileName , ' ...') infoPrintNL.
-			who := oldDummyMethod who.
-			newHandle := self loadMethodObjectFile:fileName.
-			newHandle isNil ifTrue:[
-			    ('OBJFLOADER: failed to reload method in ' , fileName , ' ...') errorPrintNL.
-			    handle moduleID:nil.
-			] ifFalse:[
-			    m := newHandle method.
-			    m source:(oldDummyMethod source).
-			    m package:(oldDummyMethod package).
-			    who notNil ifTrue:[
-				cls := who methodClass.
-				sel := who methodSelector.
-				m == (cls compiledMethodAt:sel) ifFalse:[
-				    'LOADER: oops - loaded method installed wrong' errorPrintNL.
-				] ifTrue:[
+                            oldClass instSize ~~ newClass instSize ifTrue:[
+                                ('ObjectFileLoader [warning]: ' , oldClass name , ' has changed its size.') errorPrintCR.
+                            ] ifFalse:[
+                                oldClass class instSize ~~ newClass class instSize ifTrue:[
+                                    ('ObjectFileLoader [warning]: ' , oldClass name , ' class has changed its size.') errorPrintCR.
+                                ] ifFalse:[
+                                    ('ObjectFileLoader [info]: migrating ' , oldClass name) infoPrintCR.
+                                    oldClass becomeSameAs:newClass
+                                ]
+                            ]
+                        ]
+                    ]
+                ]
+
+            ] ifFalse:[
+                handle isMethodHandle ifTrue:[
+                    oldDummyMethod := handle method.
+                    (oldDummyMethod isKindOf:Method) ifFalse:[
+                        ('ObjectFileLoader [info]: ignore obsolete (already collected) method in ' , fileName) infoPrintCR
+                    ] ifTrue:[
+                        ('ObjectFileLoader [info]: reloading method in ' , fileName , ' ...') infoPrintCR.
+                        who := oldDummyMethod who.
+                        newHandle := self loadMethodObjectFile:fileName.
+                        newHandle isNil ifTrue:[
+                            ('ObjectFileLoader [warning]: failed to reload method in ' , fileName , ' ...') errorPrintCR.
+                            handle moduleID:nil.
+                        ] ifFalse:[
+                            m := newHandle method.
+                            m source:(oldDummyMethod source).
+                            m package:(oldDummyMethod package).
+                            who notNil ifTrue:[
+                                cls := who methodClass.
+                                sel := who methodSelector.
+                                m == (cls compiledMethodAt:sel) ifFalse:[
+                                    'ObjectFileLoader [warning]: oops - loaded method installed wrong' errorPrintCR.
+                                ] ifTrue:[
 "/                                  cls changed:#methodDictionary with:(Array with:sel with:oldDummyMethod).
-				]
-			    ].
-			]
-		    ]
-		] ifFalse:[
-		    handle isFunctionObjectHandle ifTrue:[
-			functions := handle functions.
-			functions isEmpty ifTrue:[
-			    ('OBJFLOADER: ignore obsolete (unreferenced) functions in ' , fileName) infoPrintNL
-			] ifFalse:[
-			    newHandle := self loadDynamicObject:fileName.
-			    newHandle isNil ifTrue:[
-				('OBJFLOADER: failed to reload ' , fileName , ' ...') errorPrintNL.
-				handle moduleID:nil.
-			    ] ifFalse:[
-				('OBJFLOADER: reloading ' , fileName , ' ...') infoPrintNL.
-				functions do:[:oldFunction |
-				    newFunction := newHandle getFunction:(oldFunction name).
-				    newFunction isNil ifTrue:[
-					('OBJFLOADER: function: ''' , oldFunction name , ''' no longer present.') errorPrintNL.
-					oldFunction code:nil.
-					oldFunction setName:oldFunction name moduleHandle:nil.
-				    ] ifFalse:[
-					oldFunction code:(newFunction code).
-					oldFunction setName:oldFunction name moduleHandle:newHandle.
-					('OBJFLOADER: rebound function: ''' , oldFunction name , '''.') infoPrintNL.
-				    ]
-				].
-				handle becomeSameAs:newHandle.      "/ the old handle is now void
-			    ]
-			]
-		    ] ifFalse:[
-			('OBJFLOADER: ignored invalid (obsolete) objectFile handle: ' , handle printString) infoPrintNL.
-		    ]
-		]
-	    ]
-	].
-	PreviouslyLoadedObjects := nil
+                                ]
+                            ].
+                        ]
+                    ]
+                ] ifFalse:[
+                    handle isFunctionObjectHandle ifTrue:[
+                        functions := handle functions.
+                        functions isEmpty ifTrue:[
+                            ('ObjectFileLoader [info]: ignore obsolete (unreferenced) functions in ' , fileName) infoPrintCR
+                        ] ifFalse:[
+                            newHandle := self loadDynamicObject:fileName.
+                            newHandle isNil ifTrue:[
+                                ('ObjectFileLoader [warning]: failed to reload ' , fileName , ' ...') errorPrintCR.
+                                handle moduleID:nil.
+                            ] ifFalse:[
+                                ('ObjectFileLoader [info]: reloading ' , fileName , ' ...') infoPrintCR.
+                                functions do:[:oldFunction |
+                                    newFunction := newHandle getFunction:(oldFunction name).
+                                    newFunction isNil ifTrue:[
+                                        ('ObjectFileLoader [info]: function: ''' , oldFunction name , ''' no longer present.') errorPrintCR.
+                                        oldFunction code:nil.
+                                        oldFunction setName:oldFunction name moduleHandle:nil.
+                                    ] ifFalse:[
+                                        oldFunction code:(newFunction code).
+                                        oldFunction setName:oldFunction name moduleHandle:newHandle.
+                                        ('ObjectFileLoader [info]: rebound function: ''' , oldFunction name , '''.') infoPrintCR.
+                                    ]
+                                ].
+                                handle becomeSameAs:newHandle.      "/ the old handle is now void
+                            ]
+                        ]
+                    ] ifFalse:[
+                        ('ObjectFileLoader [info]: ignored invalid (obsolete) objectFile handle: ' , handle printString) infoPrintCR.
+                    ]
+                ]
+            ]
+        ].
+        PreviouslyLoadedObjects := nil
     ]
 
-    "Modified: 1.11.1996 / 16:28:50 / cg"
+    "Modified: 10.1.1997 / 15:06:07 / cg"
 !
 
 rememberAllObjectFiles
@@ -1768,19 +1768,19 @@
      were loaded in the previous life"
 
     LoadedObjects notNil ifTrue:[
-	PreviouslyLoadedObjects := OrderedCollection new.
-	LoadedObjects keysAndValuesDo:[:name :handle |
-	    handle isForCollectedObject ifTrue:[
-		('OBJFLOADER: ignore object for already collected objects in ' , name) infoPrintNL
-	    ] ifFalse:[
-		PreviouslyLoadedObjects add:(name -> handle)
-	    ]
-	].
-	PreviouslyLoadedObjects sort:[:a :b | a value moduleID < b value moduleID].
+        PreviouslyLoadedObjects := OrderedCollection new.
+        LoadedObjects keysAndValuesDo:[:name :handle |
+            handle isForCollectedObject ifTrue:[
+                ('ObjectFileLoader [info]: ignore object for already collected objects in ' , name) infoPrintCR
+            ] ifFalse:[
+                PreviouslyLoadedObjects add:(name -> handle)
+            ]
+        ].
+        PreviouslyLoadedObjects sort:[:a :b | a value moduleID < b value moduleID].
     ]
 
     "Created: 5.12.1995 / 20:51:07 / cg"
-    "Modified: 25.4.1996 / 09:46:08 / cg"
+    "Modified: 10.1.1997 / 15:06:25 / cg"
 !
 
 revalidateAllObjectFiles
@@ -2035,36 +2035,36 @@
 
     inits := list select:[:symbol | symbol notNil and:[symbol endsWith:'_Init']].
     inits notNil ifTrue:[
-	classNames := inits collect:[:symbol |
-	    (symbol startsWith:'___') ifTrue:[
-		symbol copyFrom:4 to:(symbol size - 5)
-	    ] ifFalse:[
-		(symbol startsWith:'__') ifTrue:[
-		    symbol copyFrom:3 to:(symbol size - 5)
-		] ifFalse:[
-		    (symbol startsWith:'_') ifTrue:[
-			symbol copyFrom:2 to:(symbol size - 5)
-		    ] ifFalse:[
-			symbol
-		    ]
-		]
-	    ]
-	].
-	"
-	 autoload those classes
-	"
-	classNames do:[:aClassName |
-	    |cls|
-
-	    (cls := Smalltalk classNamed:aClassName) notNil ifTrue:[
-		'autoloading ' infoPrint. aClassName infoPrintNL.
-		cls autoload
-	    ]
-	]
+        classNames := inits collect:[:symbol |
+            (symbol startsWith:'___') ifTrue:[
+                symbol copyFrom:4 to:(symbol size - 5)
+            ] ifFalse:[
+                (symbol startsWith:'__') ifTrue:[
+                    symbol copyFrom:3 to:(symbol size - 5)
+                ] ifFalse:[
+                    (symbol startsWith:'_') ifTrue:[
+                        symbol copyFrom:2 to:(symbol size - 5)
+                    ] ifFalse:[
+                        symbol
+                    ]
+                ]
+            ]
+        ].
+        "
+         autoload those classes
+        "
+        classNames do:[:aClassName |
+            |cls|
+
+            (cls := Smalltalk classNamed:aClassName) notNil ifTrue:[
+                'ObjectFileLoader [info]: autoloading ' infoPrint. aClassName infoPrintNL.
+                cls autoload
+            ]
+        ]
     ].
     ^ nil
 
-    "Modified: 17.12.1995 / 16:00:27 / cg"
+    "Modified: 10.1.1997 / 15:00:11 / cg"
 !
 
 primLoadDynamicObject:pathName into:anInfoBuffer
@@ -2419,7 +2419,7 @@
     |key fileName functionName deInitAddr m|
 
     Verbose ifTrue:[
-	'unload module name=' infoPrint. handle pathName infoPrintNL.
+        'unload module name=' infoPrint. handle pathName infoPrintCR.
     ].
 
     "/
@@ -2427,48 +2427,48 @@
     "/
 
     handle isFunctionObjectHandle ifTrue:[
-	handle functions do:[:f |
-				f notNil ifTrue:[
-				    f code:0
-				]
-			    ].
+        handle functions do:[:f |
+                                f notNil ifTrue:[
+                                    f code:0
+                                ]
+                            ].
     ].
 
     (handle isClassLibHandle
     or:[handle isMethodHandle]) ifTrue:[
-	self deinitializeClassesFromModule:handle.
-	self unregisterModule:handle.
+        self deinitializeClassesFromModule:handle.
+        self unregisterModule:handle.
     ] ifFalse:[
-	fileName := handle pathName asFilename baseName.
-	functionName := self initFunctionBasenameForFile:fileName.
-
-	deInitAddr := self findFunction:functionName suffix:'__deInit' in:handle.
-	deInitAddr notNil ifTrue:[
-	    self callInitFunctionAt:deInitAddr 
-		 specialInit:false 
-		 forceOld:true 
-		 interruptable:false
-		 argument:0
-		 identifyAs:handle
-		 returnsObject:false.
-	]
+        fileName := handle pathName asFilename baseName.
+        functionName := self initFunctionBasenameForFile:fileName.
+
+        deInitAddr := self findFunction:functionName suffix:'__deInit' in:handle.
+        deInitAddr notNil ifTrue:[
+            self callInitFunctionAt:deInitAddr 
+                 specialInit:false 
+                 forceOld:true 
+                 interruptable:false
+                 argument:0
+                 identifyAs:handle
+                 returnsObject:false.
+        ]
     ].
 
     "/
     "/ now, really unload
     "/
     (self primUnloadDynamicObject:handle) ifFalse:[
-	^ self error:'unloadDynamic failed'
+        ^ self error:'unloadDynamic failed'
     ].
 
     "/
     "/ remove from loaded objects
     "/
     LoadedObjects notNil ifTrue:[
-	key := LoadedObjects keyAtEqualValue:handle.
-	key notNil ifTrue:[
-	    LoadedObjects removeKey:key
-	]
+        key := LoadedObjects keyAtEqualValue:handle.
+        key notNil ifTrue:[
+            LoadedObjects removeKey:key
+        ]
     ].
     Smalltalk flushCachedClasses.
 
@@ -2477,14 +2477,14 @@
      but make it unexecutable. Its still visible in the browser.
     "
     handle isMethodHandle ifTrue:[
-	((m := handle method) notNil 
-	and:[m ~~ 0]) ifTrue:[
-	    m makeUnloaded.
-	    ObjectMemory flushCaches.
-	]
+        ((m := handle method) notNil 
+        and:[m ~~ 0]) ifTrue:[
+            m makeUnloaded.
+            ObjectMemory flushCaches.
+        ]
     ]
 
-    "Modified: 4.11.1996 / 23:05:20 / cg"
+    "Modified: 10.1.1997 / 15:08:26 / cg"
 ! !
 
 !ObjectFileLoader class methodsFor:'queries'!
@@ -2800,10 +2800,10 @@
 
     "
      need 4 passes to init: 0: let module register itself & create its pools/globals
-			    0b check if modules superclasses are all loaded
-			    1: let it get var-refs to other pools/globals
-			    2: let it install install class, methods and literals
-			    3: let it send #initialize to its class object
+                            0b check if modules superclasses are all loaded
+                            1: let it get var-refs to other pools/globals
+                            2: let it install install class, methods and literals
+                            3: let it send #initialize to its class object
     "
 
     "/
@@ -2811,15 +2811,15 @@
     "/ and define its globals
     "/
     Verbose ifTrue:[
-	'phase 0 ...' infoPrintNL
+        'phase 0 ...' infoPrintNL
     ].
     self callInitFunctionAt:initAddr 
-	 specialInit:true 
-	 forceOld:true 
-	 interruptable:false
-	 argument:0
-	 identifyAs:handle
-	 returnsObject:false.
+         specialInit:true 
+         forceOld:true 
+         interruptable:false
+         argument:0
+         identifyAs:handle
+         returnsObject:false.
 
     "/
     "/ check if superclasses are present
@@ -2829,41 +2829,41 @@
     badClassName := info at:2.
 
     Verbose ifTrue:[
-	'... status is ' infoPrint. info infoPrintNL
+        '... status is ' infoPrint. info infoPrintNL
     ].
 
     (status ~~ #ok) ifTrue:[
-	(status == #missingClass) ifTrue:[
-	    Transcript showCR:'load failed - missing class: ' , badClassName.
-	    ^ info
-	].
-	(status == #versionMismatch) ifTrue:[
-	    Transcript showCR:'load failed - version mismatch: ' , badClassName.
-	    ^ info
-	].
-	(status == #unregisteredSuperclass) ifTrue:[
-	    Transcript showCR:'load failed - unregistered: ' , badClassName.
-	    ^ info
-	].
-	Transcript showCR:'load failed'.
-	^ Array with:#loadFailed with:nil
+        (status == #missingClass) ifTrue:[
+            ('ObjectFileLoader [error]: load failed - missing class: ' , badClassName) infoPrintCR.
+            ^ info
+        ].
+        (status == #versionMismatch) ifTrue:[
+            ('ObjectFileLoader [error]: load failed - version mismatch: ' , badClassName) infoPrintCR.
+            ^ info
+        ].
+        (status == #unregisteredSuperclass) ifTrue:[
+            ('ObjectFileLoader [error]: load failed - unregistered: ' , badClassName) infoPrintCR.
+            ^ info
+        ].
+        ('ObjectFileLoader [error]: load failed') infoPrintCR.
+        ^ Array with:#loadFailed with:nil
     ].
 
     "/
     "/ remaining initialization
     "/
     Verbose ifTrue:[
-	'phase 1 ...' infoPrintNL
+        'phase 1 ...' infoPrintNL
     ].
     self moduleInit:1 forceOld:true interruptable:false.
 
     Verbose ifTrue:[
-	'phase 2 ...' infoPrintNL
+        'phase 2 ...' infoPrintNL
     ].
     self moduleInit:2 forceOld:true interruptable:false.
 
     Verbose ifTrue:[
-	'phase 3 ...' infoPrintNL
+        'phase 3 ...' infoPrintNL
     ].
     ObjectMemory flushCaches.
     self moduleInit:3 forceOld:false interruptable:true.
@@ -2874,23 +2874,24 @@
     infoCollection := ObjectMemory binaryModuleInfo.
     info := infoCollection at:handle moduleID ifAbsent:nil.
     info isNil ifTrue:[
-	"/ mhmh registration failed -
-	^ Array with:#registrationFailed with:nil
+        "/ mhmh registration failed -
+        ('ObjectFileLoader [error]: registration failed') infoPrintCR.
+        ^ Array with:#registrationFailed with:nil
     ].
 
     classNames := info classNames.
     classNames size > 0 ifTrue:[
-	classes := classNames collect:[:nm | Smalltalk classNamed:nm].
+        classes := classNames collect:[:nm | Smalltalk classNamed:nm].
     ].
     classes size > 0 ifTrue:[
-	classes := classes asArray.
-	classes := classes , (classes collect:[:aClass | aClass class]).
+        classes := classes asArray.
+        classes := classes , (classes collect:[:aClass | aClass class]).
     ].
     handle classes:classes.
 
     ^ Array with:#ok with:nil
 
-    "Modified: 31.10.1996 / 14:02:35 / cg"
+    "Modified: 10.1.1997 / 15:02:42 / cg"
 !
 
 revalidateModule:handle
@@ -2915,27 +2916,29 @@
      (req'd if a subclass of an autoloaded class has been loaded)"
 
     Verbose ifTrue:[
-	'checkCall for:' infoPrint. aClass name infoPrint. ' -> ' infoPrint.
+        'checkCall for:' infoPrint. aClass name infoPrint. ' -> ' infoPrint.
     ].
     aClass isBehavior ifFalse:[
-	Verbose ifTrue:[
-	    'false' infoPrintNL. 
-	].
-	'LOADER: check failed - no behavior' infoPrintNL.
-	^ false
+        Verbose ifTrue:[
+            'false' infoPrintNL. 
+        ].
+        'ObjectFileLoader [warning]: check failed - no behavior' errorPrintCR.
+        ^ false
     ].
     Verbose ifTrue:[
-	'true' infoPrintNL. 
+        'true' infoPrintCR. 
     ].
-    ('LOADER: check for ' , aClass name , ' being loaded') infoPrintNL.
+    ('ObjectFileLoader [info]: check for ' , aClass name , ' being loaded') infoPrintCR.
     aClass autoload.
     (aClass isBehavior and:[aClass isLoaded]) ifTrue:[
-	('LOADER: ok, loaded. continue registration of actual class') infoPrintNL.
-	aClass signature.       "/ req'd in VM for validation
-	^ true
+        ('ObjectFileLoader [info]: ok, loaded. continue registration of actual class') infoPrintCR.
+        aClass signature.       "/ req'd in VM for validation
+        ^ true
     ].
-    ('LOADER: nope - not loaded. fail registration of actual class') infoPrintNL.
+    ('ObjectFileLoader [warning]: superclass not loaded; registration of ' , aClass name , ' fails') errorPrintCR.
     ^ false
+
+    "Modified: 10.1.1997 / 15:08:15 / cg"
 !
 
 unregisterModule:handle
@@ -2945,8 +2948,8 @@
     |id|
 
     Verbose ifTrue:[
-	'unregister module; name=' infoPrint. handle pathName infoPrint.
-	' id=' infoPrint. handle moduleID infoPrintNL.
+        'unregister module; name=' infoPrint. handle pathName infoPrint.
+        ' id=' infoPrint. handle moduleID infoPrintCR.
     ].
 
     id := handle moduleID.
@@ -2958,6 +2961,6 @@
 !ObjectFileLoader class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/ObjectFileLoader.st,v 1.127 1997-01-08 17:29:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/ObjectFileLoader.st,v 1.128 1997-01-10 14:49:54 cg Exp $'
 ! !
 ObjectFileLoader initialize!