*** empty log message ***
authorclaus
Thu, 09 Mar 1995 00:40:27 +0100
changeset 302 1f76060d58a4
parent 301 35e40a6fc72b
child 303 3b550c73b036
*** empty log message ***
ArithVal.st
ArithmeticValue.st
ArrColl.st
Array.st
ArrayedCollection.st
Autoload.st
Block.st
Character.st
Class.st
Coll.st
Collection.st
CompCode.st
CompiledCode.st
Context.st
Dict.st
Dictionary.st
Exception.st
ExecFunc.st
ExecutableFunction.st
ExtStream.st
ExternalStream.st
Fraction.st
Method.st
ObjMem.st
ObjectMemory.st
PipeStr.st
PipeStream.st
Point.st
PosStream.st
PositionableStream.st
ProcSched.st
Process.st
ProcessorScheduler.st
Registry.st
Semaphore.st
SeqColl.st
SequenceableCollection.st
Set.st
Signal.st
Smalltalk.st
String.st
WeakArr.st
WeakArray.st
--- a/ArithVal.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ArithVal.st	Thu Mar 09 00:40:27 1995 +0100
@@ -23,7 +23,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/ArithVal.st,v 1.10 1994-11-28 20:32:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ArithVal.st,v 1.11 1995-03-08 23:36:06 claus Exp $
 '!
 
 !ArithmeticValue class methodsFor:'documentation' !
@@ -44,7 +44,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/ArithVal.st,v 1.10 1994-11-28 20:32:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ArithVal.st,v 1.11 1995-03-08 23:36:06 claus Exp $
 "
 !
 
@@ -78,9 +78,9 @@
     "setup the signals"
 
     DomainErrorSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	ArithmeticSignal := Object errorSignal newSignalMayProceed:false.
+	ArithmeticSignal := ErrorSignal newSignalMayProceed:false.
 	ArithmeticSignal nameClass:self message:#arithmeticSignal.
 	ArithmeticSignal notifierString:'arithmetic error'.
 
--- a/ArithmeticValue.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ArithmeticValue.st	Thu Mar 09 00:40:27 1995 +0100
@@ -23,7 +23,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ArithmeticValue.st,v 1.10 1994-11-28 20:32:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ArithmeticValue.st,v 1.11 1995-03-08 23:36:06 claus Exp $
 '!
 
 !ArithmeticValue class methodsFor:'documentation' !
@@ -44,7 +44,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ArithmeticValue.st,v 1.10 1994-11-28 20:32:12 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ArithmeticValue.st,v 1.11 1995-03-08 23:36:06 claus Exp $
 "
 !
 
@@ -78,9 +78,9 @@
     "setup the signals"
 
     DomainErrorSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	ArithmeticSignal := Object errorSignal newSignalMayProceed:false.
+	ArithmeticSignal := ErrorSignal newSignalMayProceed:false.
 	ArithmeticSignal nameClass:self message:#arithmeticSignal.
 	ArithmeticSignal notifierString:'arithmetic error'.
 
--- a/ArrColl.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ArrColl.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/ArrColl.st,v 1.15 1995-03-06 19:14:42 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ArrColl.st,v 1.16 1995-03-08 23:36:39 claus Exp $
 '!
 
 !ArrayedCollection class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/ArrColl.st,v 1.15 1995-03-06 19:14:42 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ArrColl.st,v 1.16 1995-03-08 23:36:39 claus Exp $
 "
 !
 
@@ -169,26 +169,6 @@
     "
 ! !
 
-!ArrayedCollection methodsFor:'accessing'!
-
-at:index ifAbsent:exceptionBlock
-    "return the element at index. 
-     If the index is invalid, return the value of evaluating exceptionBlock.
-     NOTICE: in ST-80, this message is only defined for Dictionaries,
-	     however, having a common protocol with indexed collections
-	     often simplifies things."
-
-    (index < 1 or:[index > self size]) ifTrue:[
-	^ exceptionBlock value
-    ].
-    ^ self at:index
-
-    "
-     #(1 2 3) at:4 ifAbsent:['no such index']  
-     #(1 2 3) at:3 ifAbsent:['no such index']  
-    "
-! !
-
 !ArrayedCollection methodsFor:'testing'!
 
 includesKey:anIndex
--- a/Array.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Array.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Array.st,v 1.21 1995-03-06 19:14:47 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Array.st,v 1.22 1995-03-08 23:36:43 claus Exp $
 '!
 
 !Array class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Array.st,v 1.21 1995-03-06 19:14:47 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Array.st,v 1.22 1995-03-08 23:36:43 claus Exp $
 "
 !
 
@@ -387,8 +387,9 @@
     REGISTER OBJ t;
     REGISTER int count;
 
-    if ((_qClass(self) == Array)
-     && (_Class(aCollection) == Array)
+    
+    if ((_ClassInstPtr(_qClass(self))->c_ninstvars == _MKSMALLINT(0))
+     && (((t = _Class(aCollection)) == Array) || (t == _qClass(self)))
      && __bothSmallInteger(start, stop)
      && __isSmallInteger(repStart)) {
 	startIndex = _intVal(start) - 1;
@@ -431,7 +432,7 @@
 # endif
 #endif
 			} else {
-    			    REGISTER int spc;
+			    REGISTER int spc;
 
 			    spc = _qSpace(self);
 			    while (count-- > 0) {
@@ -480,7 +481,7 @@
 
     /* 
      * first, do a quick check using ==
-     * this does not need a context or method send.
+     * this does not need a context or message send.
      * in many cases this will already find a match
      */
     REGISTER int index;
@@ -646,7 +647,7 @@
     "evaluate the argument, aBlock for each element in the collection.
      - reimplemented for speed"
 
-    |home element|
+    |home|
 %{
     REGISTER OBJFUNC codeVal;
     REGISTER int index;
@@ -769,7 +770,7 @@
     "evaluate the argument, aBlock for each element in the collection in reverse order.
      - reimplemented for speed"
 
-    |home element|
+    |home|
 %{
     REGISTER OBJFUNC codeVal;
     REGISTER int index;
@@ -814,7 +815,7 @@
      up to (and including) stop in the collection.
      - reimplemented for speed"
 
-    |home element|
+    |home|
 %{
     REGISTER OBJFUNC codeVal;
     REGISTER int index;
@@ -863,11 +864,10 @@
 		} else {
 		    for (index=indexLow; index <= indexHigh; index++) {
 			if (InterruptPending != nil) interruptL(__LINE__ COMMA_CON);
-			element = _InstPtr(self)->i_instvars[index];
 			(*val.ilc_func) (aBlock, 
 					 @symbol(value:), 
 					 CON_COMMA  nil, &val, 
-					 element);
+					 _InstPtr(self)->i_instvars[index]);
 		    } 
 		}
 	    }
@@ -884,7 +884,7 @@
      up to (and including) stop in the collection. Step in reverse order.
      - reimplemented for speed"
 
-    |home element|
+    |home|
 %{
     REGISTER OBJFUNC codeVal;
     REGISTER int index;
@@ -933,11 +933,10 @@
 		} else {
 		    for (index=indexHigh; index >= indexLow; index--) {
 			if (InterruptPending != nil) interruptL(__LINE__ COMMA_CON);
-			element = _InstPtr(self)->i_instvars[index];
 			(*val.ilc_func) (aBlock, 
 					 @symbol(value:), 
 					 CON_COMMA nil, &val, 
-					 element);
+					 _InstPtr(self)->i_instvars[index]);
 		    } 
 		}
 	    }
@@ -952,13 +951,15 @@
 nonNilElementsDo:aBlock
     "evaluate the argument, aBlock for each non-nil element"
 
-    |home element|
+    |home|
 %{
     REGISTER OBJFUNC codeVal;
     REGISTER int index;
     int nIndex;
     extern OBJ Block;
     static struct inlineCache val = _ILC1;
+    REGISTER OBJ rHome;
+    REGISTER OBJ element;
 
     index = _intVal(_ClassInstPtr(_qClass(self))->c_ninstvars);
     nIndex = __BYTES2OBJS__(_qSize(self) - OHDR_SIZE);
@@ -975,12 +976,26 @@
 	} 
 #else
 	home = _BlockInstPtr(aBlock)->b_home;
-	for (; index < nIndex; index++) {
-	    if (InterruptPending != nil) interrupt(CONARG);
+        rHome = home;
+        if ((rHome == nil) || (_qSpace(rHome) >= STACKSPACE)) {
+            /*
+             * home will not move - keep in in a register
+             */
+	    for (; index < nIndex; index++) {
+	        if (InterruptPending != nil) interrupt(CONARG);
 
-	    element = _InstPtr(self)->i_instvars[index];
-	    if (element != nil)
-		(*codeVal)(home, CON_COMMA  element);
+	        element = _InstPtr(self)->i_instvars[index];
+	        if (element != nil)
+		    (*codeVal)(home, CON_COMMA  element);
+	    } 
+	} else {
+	    for (; index < nIndex; index++) {
+	        if (InterruptPending != nil) interrupt(CONARG);
+
+	        element = _InstPtr(self)->i_instvars[index];
+	        if (element != nil)
+		    (*codeVal)(home, CON_COMMA  element);
+	    }
 	} 
 #endif
     } else {
--- a/ArrayedCollection.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ArrayedCollection.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.15 1995-03-06 19:14:42 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.16 1995-03-08 23:36:39 claus Exp $
 '!
 
 !ArrayedCollection class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.15 1995-03-06 19:14:42 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.16 1995-03-08 23:36:39 claus Exp $
 "
 !
 
@@ -169,26 +169,6 @@
     "
 ! !
 
-!ArrayedCollection methodsFor:'accessing'!
-
-at:index ifAbsent:exceptionBlock
-    "return the element at index. 
-     If the index is invalid, return the value of evaluating exceptionBlock.
-     NOTICE: in ST-80, this message is only defined for Dictionaries,
-	     however, having a common protocol with indexed collections
-	     often simplifies things."
-
-    (index < 1 or:[index > self size]) ifTrue:[
-	^ exceptionBlock value
-    ].
-    ^ self at:index
-
-    "
-     #(1 2 3) at:4 ifAbsent:['no such index']  
-     #(1 2 3) at:3 ifAbsent:['no such index']  
-    "
-! !
-
 !ArrayedCollection methodsFor:'testing'!
 
 includesKey:anIndex
--- a/Autoload.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Autoload.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.17 1995-02-15 11:29:30 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.18 1995-03-08 23:36:49 claus Exp $
 '!
 
 !Autoload class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.17 1995-02-15 11:29:30 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.18 1995-03-08 23:36:49 claus Exp $
 "
 !
 
@@ -75,9 +75,9 @@
 
 initialize
     AutoloadFailedSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	AutoloadFailedSignal := Object errorSignal newSignalMayProceed:true.
+	AutoloadFailedSignal := ErrorSignal newSignalMayProceed:true.
 	AutoloadFailedSignal nameClass:self message:#autoloadFailedSignal.
 	AutoloadFailedSignal notifierString:'autoload failed '.
 
--- a/Block.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Block.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Block.st,v 1.27 1995-02-15 10:21:19 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Block.st,v 1.28 1995-03-08 23:36:57 claus Exp $
 '!
 
 !Block class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Block.st,v 1.27 1995-02-15 10:21:19 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Block.st,v 1.28 1995-03-08 23:36:57 claus Exp $
 "
 !
 
@@ -99,9 +99,9 @@
     "setup the signals"
 
     InvalidNewSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[Object initialize].
 
-	InvalidNewSignal := Object errorSignal newSignalMayProceed:false.
+	InvalidNewSignal := ErrorSignal newSignalMayProceed:false.
 	InvalidNewSignal nameClass:self message:#invalidNewSignal.
 	InvalidNewSignal notifierString:'blocks are only created by the system'.
     ]
--- a/Character.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Character.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Character.st,v 1.14 1995-02-15 10:21:27 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Character.st,v 1.15 1995-03-08 23:37:17 claus Exp $
 '!
 
 !Character class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Character.st,v 1.14 1995-02-15 10:21:27 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Character.st,v 1.15 1995-03-08 23:37:17 claus Exp $
 "
 !
 
@@ -327,7 +327,10 @@
 identityHash
     "return an integer useful for hashing on identity"
 
-    ^ 4096 + asciivalue
+    asciivalue <= 255 ifTrue:[
+	^ 4096 + asciivalue
+    ].
+    ^ super identityHash
 ! !
 
 !Character methodsFor: 'arithmetic'!
--- a/Class.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Class.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Class.st,v 1.36 1995-03-06 20:59:19 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Class.st,v 1.37 1995-03-08 23:37:23 claus Exp $
 '!
 
 !Class class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Class.st,v 1.36 1995-03-06 20:59:19 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Class.st,v 1.37 1995-03-08 23:37:23 claus Exp $
 "
 !
 
@@ -960,6 +960,22 @@
     ]
 !
 
+writingChangePerform:aSelector with:anArgument
+    |aStream|
+
+    aStream := self changesStream.
+    aStream notNil ifTrue:[
+	FileStream writeErrorSignal handle:[:ex |
+	    self warning:('could not update the changes-file\\' , ex errorString) withCRs.
+	    ex return
+	] do:[
+	    self perform:aSelector with:anArgument with:aStream.
+	    aStream cr.
+	].
+	aStream close
+    ]
+!
+
 addChangeRecordForMethod:aMethod to:aStream
     "append a method-change-record to aStream"
 
@@ -1032,7 +1048,7 @@
     aStream nextPut:(aStream class chunkSeparator).
 !
 
-addChangeRecordForChangeCategoryTo:aStream
+addChangeRecordForChangeCategory:category to:aStream
     "append a category change record to aStream"
 
     self printClassNameOn:aStream.
@@ -1060,9 +1076,8 @@
 addChangeRecordForMethod:aMethod
     "add a method-change-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForMethod:aMethod to:aStream.
-
+    UpdatingChanges ifTrue:[
+	self writingChangePerform:#addChangeRecordForMethod:to: with:aMethod.
 	"this test allows a smalltalk without Projects/ChangeSets"
 	Project notNil ifTrue:[
 	    Project addMethodChange:aMethod in:self
@@ -1073,16 +1088,16 @@
 addChangeRecordForRemoveSelector:aSelector
     "add a method-remove-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForRemoveSelector:aSelector to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForRemoveSelector:to: with:aSelector.
 !
 
 addChangeRecordForMethodCategory:aMethod category:aString
     "add a methodCategory-change-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForMethodCategory:aMethod category:aString to:aStream.
+    UpdatingChanges ifTrue:[
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForMethodCategory:aMethod category:aString to:aStream.
+	].
 
 	"this test allows a smalltalk without Projects/ChangeSets"
 	Project notNil ifTrue:[
@@ -1094,65 +1109,57 @@
 addChangeRecordForClass:aClass
     "add a class-definition-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClass:aClass to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClass:to: with:aClass.
 !
 
 addChangeRecordForClassInstvars:aClass
     "add a class-instvars-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassInstvars:aClass to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClassInstvars:to: with:aClass.
 !
 
 addChangeRecordForClassComment:aClass
     "add a class-comment-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassComment:aClass to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClassComment:to: with:aClass.
 !
 
 addChangeRecordForClassRename:oldName to:newName
     "add a class-rename-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassRename:oldName to:newName to:aStream
+    UpdatingChanges ifTrue:[
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForClassRename:oldName to:newName to:aStream
+	]
     ]
 !
 
 addChangeRecordForClassRemove:oldName
     "add a class-remove-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassRemove:oldName to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClassRemove:to: with:oldName.
 !
 
 addChangeRecordForRenameCategory:oldCategory to:newCategory
     "add a category-rename record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForRenameCategory:oldCategory to:newCategory to:aStream.
+    UpdatingChanges ifTrue:[
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForRenameCategory:oldCategory to:newCategory to:aStream.
+	]
     ]
 !
 
 addChangeRecordForChangeCategory
     "add a category change record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForChangeCategoryTo:aStream.
-    ]
+    self writingChangePerform:#addChangeRecordForChangeCategory:to: with:category.
 !
 
 addInfoRecord:aMessage
     "add an info-record (snapshot, class fileOut etc.) to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addInfoRecord:aMessage to:aStream 
-    ]
+    self writingChangePerform:#addInfoRecord:to: with:aMessage.
 !
 
 addChangeRecordForSnapshot:aFileName
--- a/Coll.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Coll.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/Coll.st,v 1.25 1995-03-06 19:15:31 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Coll.st,v 1.26 1995-03-08 23:37:32 claus Exp $
 '!
 
 !Collection class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/Coll.st,v 1.25 1995-03-06 19:15:31 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Coll.st,v 1.26 1995-03-08 23:37:32 claus Exp $
 "
 !
 
@@ -64,13 +64,13 @@
     "setup the signal"
 
     InvalidKeySignal isNil ifTrue:[
-	super initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	InvalidKeySignal := Object errorSignal newSignalMayProceed:true.
+	InvalidKeySignal := ErrorSignal newSignalMayProceed:true.
 	InvalidKeySignal nameClass:self message:#invalidKeySignal.
 	InvalidKeySignal notifierString:'invalid key'.
 
-	EmptyCollectionSignal := Object errorSignal newSignalMayProceed:true.
+	EmptyCollectionSignal := ErrorSignal newSignalMayProceed:true.
 	EmptyCollectionSignal nameClass:self message:#emptyCollectionSignal.
 	EmptyCollectionSignal notifierString:'operation not allowed for empty collections'.
     ]
--- a/Collection.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Collection.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.25 1995-03-06 19:15:31 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.26 1995-03-08 23:37:32 claus Exp $
 '!
 
 !Collection class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.25 1995-03-06 19:15:31 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.26 1995-03-08 23:37:32 claus Exp $
 "
 !
 
@@ -64,13 +64,13 @@
     "setup the signal"
 
     InvalidKeySignal isNil ifTrue:[
-	super initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	InvalidKeySignal := Object errorSignal newSignalMayProceed:true.
+	InvalidKeySignal := ErrorSignal newSignalMayProceed:true.
 	InvalidKeySignal nameClass:self message:#invalidKeySignal.
 	InvalidKeySignal notifierString:'invalid key'.
 
-	EmptyCollectionSignal := Object errorSignal newSignalMayProceed:true.
+	EmptyCollectionSignal := ErrorSignal newSignalMayProceed:true.
 	EmptyCollectionSignal nameClass:self message:#emptyCollectionSignal.
 	EmptyCollectionSignal notifierString:'operation not allowed for empty collections'.
     ]
--- a/CompCode.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/CompCode.st	Thu Mar 09 00:40:27 1995 +0100
@@ -23,7 +23,7 @@
 COPYRIGHT (c) 1994 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/CompCode.st,v 1.9 1995-02-16 02:58:53 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/CompCode.st,v 1.10 1995-03-08 23:37:38 claus Exp $
 '!
 
 !CompiledCode class methodsFor:'documentation'!
@@ -44,7 +44,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/CompCode.st,v 1.9 1995-02-16 02:58:53 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/CompCode.st,v 1.10 1995-03-08 23:37:38 claus Exp $
 "
 !
 
@@ -79,7 +79,7 @@
 
 initialize
     NoByteCodeSignal isNil ifTrue:[
-	ExecutableFunction initialize.
+	ExecutionErrorSignal isNil ifTrue:[super initialize].
 
 	NoByteCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
 	NoByteCodeSignal nameClass:self message:#noByteCodeSignal.
--- a/CompiledCode.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/CompiledCode.st	Thu Mar 09 00:40:27 1995 +0100
@@ -23,7 +23,7 @@
 COPYRIGHT (c) 1994 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.9 1995-02-16 02:58:53 claus Exp $
+$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.10 1995-03-08 23:37:38 claus Exp $
 '!
 
 !CompiledCode class methodsFor:'documentation'!
@@ -44,7 +44,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.9 1995-02-16 02:58:53 claus Exp $
+$Header: /cvs/stx/stx/libbasic/CompiledCode.st,v 1.10 1995-03-08 23:37:38 claus Exp $
 "
 !
 
@@ -79,7 +79,7 @@
 
 initialize
     NoByteCodeSignal isNil ifTrue:[
-	ExecutableFunction initialize.
+	ExecutionErrorSignal isNil ifTrue:[super initialize].
 
 	NoByteCodeSignal := ExecutionErrorSignal newSignalMayProceed:true.
 	NoByteCodeSignal nameClass:self message:#noByteCodeSignal.
--- a/Context.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Context.st	Thu Mar 09 00:40:27 1995 +0100
@@ -22,7 +22,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Context.st,v 1.25 1995-03-06 19:15:38 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Context.st,v 1.26 1995-03-08 23:37:48 claus Exp $
 '!
 
 !Context class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Context.st,v 1.25 1995-03-06 19:15:38 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Context.st,v 1.26 1995-03-08 23:37:48 claus Exp $
 "
 !
 
@@ -128,9 +128,9 @@
 
 initialize
     InvalidReturnSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[Object initialize].
 
-	InvalidReturnSignal := Object errorSignal newSignalMayProceed:true.
+	InvalidReturnSignal := ErrorSignal newSignalMayProceed:true.
 	InvalidReturnSignal nameClass:self message:#invalidReturnSignal.
 	InvalidReturnSignal notifierString:'invalid return; method cannot return twice'.
     ]
--- a/Dict.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Dict.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/Dict.st,v 1.18 1995-03-06 19:15:52 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Dict.st,v 1.19 1995-03-08 23:37:55 claus Exp $
 '!
 
 !Dictionary class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/Dict.st,v 1.18 1995-03-06 19:15:52 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/Dict.st,v 1.19 1995-03-08 23:37:55 claus Exp $
 "
 !
 
@@ -372,8 +372,15 @@
 
 !Dictionary methodsFor:'enumerating'!
 
+keysDo:aBlock
+    "perform the block for all keys in the collection."
+
+    ^ super do:aBlock
+!
+
 allKeysDo:aBlock
-    "perform the block for all keys in the collection."
+    "perform the block for all keys in the collection.
+     Obsolete: use keysDo: for ST-80 compatibility."
 
     ^ super do:aBlock
 !
--- a/Dictionary.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Dictionary.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.18 1995-03-06 19:15:52 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.19 1995-03-08 23:37:55 claus Exp $
 '!
 
 !Dictionary class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.18 1995-03-06 19:15:52 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Dictionary.st,v 1.19 1995-03-08 23:37:55 claus Exp $
 "
 !
 
@@ -372,8 +372,15 @@
 
 !Dictionary methodsFor:'enumerating'!
 
+keysDo:aBlock
+    "perform the block for all keys in the collection."
+
+    ^ super do:aBlock
+!
+
 allKeysDo:aBlock
-    "perform the block for all keys in the collection."
+    "perform the block for all keys in the collection.
+     Obsolete: use keysDo: for ST-80 compatibility."
 
     ^ super do:aBlock
 !
--- a/Exception.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Exception.st	Thu Mar 09 00:40:27 1995 +0100
@@ -24,7 +24,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.17 1995-02-16 02:58:46 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.18 1995-03-08 23:38:01 claus Exp $
 '!
 
 !Exception class methodsFor:'documentation'!
@@ -45,7 +45,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.17 1995-02-16 02:58:46 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.18 1995-03-08 23:38:01 claus Exp $
 "
 !
 
@@ -123,9 +123,9 @@
     "setup the signal used to handle unhandled signals"
 
     RecursiveExceptionSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	RecursiveExceptionSignal := Object errorSignal newSignalMayProceed:false.
+	RecursiveExceptionSignal := ErrorSignal newSignalMayProceed:false.
 	RecursiveExceptionSignal nameClass:self message:#recursiveExceptionSignal.
 	RecursiveExceptionSignal notifierString:'recursive signal raise in handler'
     ]
--- a/ExecFunc.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ExecFunc.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1994 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/ExecFunc.st,v 1.8 1995-02-15 10:21:51 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ExecFunc.st,v 1.9 1995-03-08 23:38:07 claus Exp $
 '!
 
 !ExecutableFunction class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/ExecFunc.st,v 1.8 1995-02-15 10:21:51 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ExecFunc.st,v 1.9 1995-03-08 23:38:07 claus Exp $
 "
 !
 
@@ -82,7 +82,7 @@
 
 initialize
     InvalidCodeSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[Object initialize].
 
 	ExecutionErrorSignal := ErrorSignal newSignalMayProceed:true.
 	ExecutionErrorSignal nameClass:self message:#executionErrorSignal.
--- a/ExecutableFunction.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ExecutableFunction.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1994 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.8 1995-02-15 10:21:51 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.9 1995-03-08 23:38:07 claus Exp $
 '!
 
 !ExecutableFunction class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.8 1995-02-15 10:21:51 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ExecutableFunction.st,v 1.9 1995-03-08 23:38:07 claus Exp $
 "
 !
 
@@ -82,7 +82,7 @@
 
 initialize
     InvalidCodeSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[Object initialize].
 
 	ExecutionErrorSignal := ErrorSignal newSignalMayProceed:true.
 	ExecutionErrorSignal nameClass:self message:#executionErrorSignal.
--- a/ExtStream.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ExtStream.st	Thu Mar 09 00:40:27 1995 +0100
@@ -24,7 +24,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.30 1995-03-07 21:54:32 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.31 1995-03-08 23:38:13 claus Exp $
 '!
 
 !ExternalStream primitiveDefinitions!
@@ -87,7 +87,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.30 1995-03-07 21:54:32 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.31 1995-03-08 23:38:13 claus Exp $
 "
 !
 
@@ -178,9 +178,9 @@
 
 initialize
     StreamErrorSignal isNil ifTrue:[
-	super initialize.
-
-	StreamErrorSignal := Object errorSignal newSignalMayProceed:false.
+	ErrorSignal isNil ifTrue:[super initialize].
+
+	StreamErrorSignal := ErrorSignal newSignalMayProceed:false.
 	StreamErrorSignal nameClass:self message:#streamErrorSignal.
 	StreamErrorSignal notifierString:'I/O error'.
 
--- a/ExternalStream.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ExternalStream.st	Thu Mar 09 00:40:27 1995 +0100
@@ -24,7 +24,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.30 1995-03-07 21:54:32 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.31 1995-03-08 23:38:13 claus Exp $
 '!
 
 !ExternalStream primitiveDefinitions!
@@ -87,7 +87,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.30 1995-03-07 21:54:32 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ExternalStream.st,v 1.31 1995-03-08 23:38:13 claus Exp $
 "
 !
 
@@ -178,9 +178,9 @@
 
 initialize
     StreamErrorSignal isNil ifTrue:[
-	super initialize.
-
-	StreamErrorSignal := Object errorSignal newSignalMayProceed:false.
+	ErrorSignal isNil ifTrue:[super initialize].
+
+	StreamErrorSignal := ErrorSignal newSignalMayProceed:false.
 	StreamErrorSignal nameClass:self message:#streamErrorSignal.
 	StreamErrorSignal notifierString:'I/O error'.
 
--- a/Fraction.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Fraction.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.14 1995-03-06 19:16:09 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.15 1995-03-08 23:38:25 claus Exp $
 '!
 
 !Fraction class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.14 1995-03-06 19:16:09 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Fraction.st,v 1.15 1995-03-08 23:38:25 claus Exp $
 "
 !
 
@@ -58,8 +58,10 @@
 !Fraction class methodsFor:'initialization'!
 
 initialize
-    FractionZero := self numerator:0 denominator:1.
-    FractionOne := self numerator:1 denominator:1
+    FractionZero isNil ifTrue:[
+	FractionZero := self numerator:0 denominator:1.
+	FractionOne := self numerator:1 denominator:1
+    ]
 ! !
 
 !Fraction class methodsFor:'constants'!
--- a/Method.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Method.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Method.st,v 1.28 1995-02-21 01:05:49 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Method.st,v 1.29 1995-03-08 23:38:42 claus Exp $
 '!
 
 !Method class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Method.st,v 1.28 1995-02-21 01:05:49 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Method.st,v 1.29 1995-03-08 23:38:42 claus Exp $
 "
 !
 
@@ -127,7 +127,7 @@
 
 initialize
     PrivateMethodSignal isNil ifTrue:[
-	CompiledCode initialize.
+	ExecutionErrorSignal isNil ifTrue:[super initialize].
 
 	"EXPERIMENTAL"
 	PrivateMethodSignal := ExecutionErrorSignal newSignalMayProceed:true.
--- a/ObjMem.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ObjMem.st	Thu Mar 09 00:40:27 1995 +0100
@@ -33,7 +33,7 @@
 COPYRIGHT (c) 1992 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/ObjMem.st,v 1.29 1995-03-06 19:17:00 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ObjMem.st,v 1.30 1995-03-08 23:38:52 claus Exp $
 '!
 
 !ObjectMemory class methodsFor:'documentation'!
@@ -54,7 +54,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/ObjMem.st,v 1.29 1995-03-06 19:17:00 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ObjMem.st,v 1.30 1995-03-08 23:38:52 claus Exp $
 "
 !
 
@@ -403,9 +403,9 @@
     "initialize the class"
 
     AllocationFailureSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	AllocationFailureSignal := Object errorSignal newSignalMayProceed:true.
+	AllocationFailureSignal := ErrorSignal newSignalMayProceed:true.
 	AllocationFailureSignal nameClass:self message:#allocationFailureSignal.
 	AllocationFailureSignal notifierString:'allocation failure'.
 
--- a/ObjectMemory.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ObjectMemory.st	Thu Mar 09 00:40:27 1995 +0100
@@ -33,7 +33,7 @@
 COPYRIGHT (c) 1992 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.29 1995-03-06 19:17:00 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.30 1995-03-08 23:38:52 claus Exp $
 '!
 
 !ObjectMemory class methodsFor:'documentation'!
@@ -54,7 +54,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.29 1995-03-06 19:17:00 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ObjectMemory.st,v 1.30 1995-03-08 23:38:52 claus Exp $
 "
 !
 
@@ -403,9 +403,9 @@
     "initialize the class"
 
     AllocationFailureSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	AllocationFailureSignal := Object errorSignal newSignalMayProceed:true.
+	AllocationFailureSignal := ErrorSignal newSignalMayProceed:true.
 	AllocationFailureSignal nameClass:self message:#allocationFailureSignal.
 	AllocationFailureSignal notifierString:'allocation failure'.
 
--- a/PipeStr.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/PipeStr.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/PipeStr.st,v 1.19 1995-02-18 18:29:48 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/PipeStr.st,v 1.20 1995-03-08 23:39:02 claus Exp $
 '!
 
 !PipeStream class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/PipeStr.st,v 1.19 1995-02-18 18:29:48 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/PipeStr.st,v 1.20 1995-03-08 23:39:02 claus Exp $
 "
 !
 
@@ -108,9 +108,9 @@
     "setup the signal"
 
     BrokenPipeSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	BrokenPipeSignal := Object errorSignal newSignalMayProceed:true.
+	BrokenPipeSignal := ErrorSignal newSignalMayProceed:true.
 	BrokenPipeSignal nameClass:self message:#brokenPipeSignal.
 	BrokenPipeSignal notifierString:'write on a pipe with no one to read'.
     ]
--- a/PipeStream.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/PipeStream.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.19 1995-02-18 18:29:48 claus Exp $
+$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.20 1995-03-08 23:39:02 claus Exp $
 '!
 
 !PipeStream class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.19 1995-02-18 18:29:48 claus Exp $
+$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.20 1995-03-08 23:39:02 claus Exp $
 "
 !
 
@@ -108,9 +108,9 @@
     "setup the signal"
 
     BrokenPipeSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	BrokenPipeSignal := Object errorSignal newSignalMayProceed:true.
+	BrokenPipeSignal := ErrorSignal newSignalMayProceed:true.
 	BrokenPipeSignal nameClass:self message:#brokenPipeSignal.
 	BrokenPipeSignal notifierString:'write on a pipe with no one to read'.
     ]
--- a/Point.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Point.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Point.st,v 1.17 1995-03-06 19:17:33 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Point.st,v 1.18 1995-03-08 23:39:08 claus Exp $
 '!
 
 !Point class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Point.st,v 1.17 1995-03-06 19:17:33 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Point.st,v 1.18 1995-03-08 23:39:08 claus Exp $
 "
 !
 
@@ -64,8 +64,10 @@
 !Point class methodsFor:'initialization'!
 
 initialize
-    PointZero := 0 @ 0.
-    PointOne  := 1 @ 1
+    PointZero isNil ifTrue:[
+	PointZero := 0 @ 0.
+	PointOne  := 1 @ 1
+    ]
 ! !
 
 !Point class methodsFor:'constants'!
--- a/PosStream.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/PosStream.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/PosStream.st,v 1.22 1995-02-26 18:13:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/PosStream.st,v 1.23 1995-03-08 23:39:14 claus Exp $
 '!
 
 !PositionableStream class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/PosStream.st,v 1.22 1995-02-26 18:13:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/PosStream.st,v 1.23 1995-03-08 23:39:14 claus Exp $
 "
 !
 
@@ -61,9 +61,9 @@
     "setup the signal used to handle errors during fileIn"
 
     ErrorDuringFileInSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	ErrorDuringFileInSignal := Object errorSignal newSignalMayProceed:true.
+	ErrorDuringFileInSignal := ErrorSignal newSignalMayProceed:true.
 	ErrorDuringFileInSignal nameClass:self message:#errorDuringFileInSignal.
 	ErrorDuringFileInSignal notifierString:'error during fileIn'.
 
--- a/PositionableStream.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/PositionableStream.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.22 1995-02-26 18:13:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.23 1995-03-08 23:39:14 claus Exp $
 '!
 
 !PositionableStream class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.22 1995-02-26 18:13:54 claus Exp $
+$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.23 1995-03-08 23:39:14 claus Exp $
 "
 !
 
@@ -61,9 +61,9 @@
     "setup the signal used to handle errors during fileIn"
 
     ErrorDuringFileInSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	ErrorDuringFileInSignal := Object errorSignal newSignalMayProceed:true.
+	ErrorDuringFileInSignal := ErrorSignal newSignalMayProceed:true.
 	ErrorDuringFileInSignal nameClass:self message:#errorDuringFileInSignal.
 	ErrorDuringFileInSignal notifierString:'error during fileIn'.
 
--- a/ProcSched.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ProcSched.st	Thu Mar 09 00:40:27 1995 +0100
@@ -17,7 +17,8 @@
 				readFdArray readSemaphoreArray readCheckArray
 				writeFdArray writeSemaphoreArray
 				timeoutArray timeoutActionArray timeoutProcessArray timeoutSemaphoreArray
-				idleActions anyTimeouts dispatching interruptedProcess'
+				idleActions anyTimeouts dispatching interruptedProcess
+				useIOInterrupts'
 	 classVariableNames:'KnownProcesses KnownProcessIds
 			     PureEventDriven
 			     UserSchedulingPriority 
@@ -33,7 +34,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/ProcSched.st,v 1.31 1995-02-19 16:14:17 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ProcSched.st,v 1.32 1995-03-08 23:39:20 claus Exp $
 '!
 
 Smalltalk at:#Processor put:nil!
@@ -56,7 +57,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/ProcSched.st,v 1.31 1995-02-19 16:14:17 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/ProcSched.st,v 1.32 1995-03-08 23:39:20 claus Exp $
 "
 !
 
@@ -86,7 +87,8 @@
     system, where either a process is forked, or a timeout is used instead 
     (for examples, see ProcessMonitor or MemoryMonitor).
 
-    This pure-event mode may not be supported in the future.
+    This pure-event mode may not be supported in the future (actually, it is no longer
+    maintained in places where was present).
 
     class variables:
 
@@ -457,6 +459,7 @@
     timeoutProcessArray := Array with:nil.
     anyTimeouts := false.
     dispatching := false.
+    useIOInterrupts := OperatingSystem supportsIOInterrupts.
 
     "
      handcraft the first (dispatcher-) process - this one will never
@@ -1053,8 +1056,8 @@
     ].
 
     "first do a quick check for semaphores using checkActions - this is needed for
-     devices like X-connection, where some events might be in the event
-     queue. Without these, a select might block even though there is work to do
+     devices like the X-connection, where some events might be in the event
+     queue. Without these checks, a select might block even though there is work to do
     "
     any := false.
     nActions := readCheckArray size.
@@ -1083,18 +1086,21 @@
 
     pri := p priority.
 
-    "want to give control to the process p.
+    "
+     want to give control to the process p.
      If the switched-to processes priority is lower than the
      userSchedulingPriority, we have to make certain, that the 
      next input or timer will bring us back for a reschedule.
      This is done by enabling ioInterrupts for all file descriptors.
-     If ioInterrupts are not available, we schedule a timer interrupt 
-     to interrupt us after 1/20s of a second - effectively polling 
-     the filedescriptors. - which is very bad, since low prio processes
-     will be hurt in performance 
-     - dont let benchmarks run with low prio ...
+     If ioInterrupts are not available (OS does not support them), 
+     we schedule a timer interrupt to interrupt us after 1/20s of a second
+     - effectively polling the filedescriptors 20 times a second.
+     (which is bad, since low prio processes will be hurt in performance)
+     Therefore, dont let benchmarks run with low prio ...
+
      Higher prio processes must be suspended, 
-     same prio ones must yield or suspend to get back control"
+     same prio ones must yield or suspend to get back control
+    "
 
 "
  uncommenting this will make timeouts interrupt the current process
@@ -1115,7 +1121,7 @@
 
     "
      if the process to run has a lower than UserInterruptPriority,
-     arrange for an interrupt to occur on IO.
+     arrange for an interrupt to occur on I/O.
      This is done by enabling IO-signals (if the OS supports them)
      or by installing a poll-interrupt after 50ms (if the OS does not).
     "
@@ -1128,7 +1134,7 @@
 	].
 "---"
 
-	OperatingSystem supportsIOInterrupts ifTrue:[
+	useIOInterrupts ifTrue:[
 	    readFdArray do:[:fd |
 		fd notNil ifTrue:[
 		    OperatingSystem enableIOInterruptsOn:fd
@@ -1187,7 +1193,7 @@
     |aTime now delta minDelta n "{ Class: SmallInteger }"|
 
     "find next timeout. since there are usually not many, just search.
-     If there where many, the list should be kept sorted ... keeping deltas
+     If there were many, the list should be kept sorted ... keeping deltas
      to next (as in Unix kernel)"
 
     n := timeoutArray size.
--- a/Process.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Process.st	Thu Mar 09 00:40:27 1995 +0100
@@ -15,7 +15,7 @@
 				restartable interruptActions 
 				exitAction exitSemaphore suspendSemaphore 
 				singleStepping emergencySignalHandler'
-	 classVariableNames:'TerminateSignal'
+	 classVariableNames:'TerminateSignal CoughtSignals'
 	 poolDictionaries:''
 	 category:'Kernel-Processes'
 !
@@ -24,7 +24,7 @@
 COPYRIGHT (c) 1992 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Process.st,v 1.20 1995-02-15 10:24:43 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Process.st,v 1.21 1995-03-08 23:39:27 claus Exp $
 '!
 
 !Process class methodsFor:'documentation'!
@@ -45,7 +45,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Process.st,v 1.20 1995-02-15 10:24:43 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Process.st,v 1.21 1995-03-08 23:39:27 claus Exp $
 "
 !
 
@@ -198,9 +198,13 @@
 
 initialize
     TerminateSignal isNil ifTrue:[
+	AbortSignal isNil ifTrue:[super initialize].
+
 	TerminateSignal := Signal new mayProceed:true.
 	TerminateSignal nameClass:self message:#terminateSignal.
 	TerminateSignal notifierString:'unhandled process termination'.
+
+	CoughtSignals := SignalSet with:AbortSignal with:TerminateSignal.
     ]
 ! !
 
@@ -508,8 +512,7 @@
 	    name := '(' , startBlock displayString , ')'
 	].
 	startBlock := nil.
-	(SignalSet with:TerminateSignal with:AbortSignal)
-	handle:[:ex |
+	CoughtSignals handle:[:ex |
 	    ex return
 	] do:block.
 
--- a/ProcessorScheduler.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/ProcessorScheduler.st	Thu Mar 09 00:40:27 1995 +0100
@@ -17,7 +17,8 @@
 				readFdArray readSemaphoreArray readCheckArray
 				writeFdArray writeSemaphoreArray
 				timeoutArray timeoutActionArray timeoutProcessArray timeoutSemaphoreArray
-				idleActions anyTimeouts dispatching interruptedProcess'
+				idleActions anyTimeouts dispatching interruptedProcess
+				useIOInterrupts'
 	 classVariableNames:'KnownProcesses KnownProcessIds
 			     PureEventDriven
 			     UserSchedulingPriority 
@@ -33,7 +34,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.31 1995-02-19 16:14:17 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.32 1995-03-08 23:39:20 claus Exp $
 '!
 
 Smalltalk at:#Processor put:nil!
@@ -56,7 +57,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.31 1995-02-19 16:14:17 claus Exp $
+$Header: /cvs/stx/stx/libbasic/ProcessorScheduler.st,v 1.32 1995-03-08 23:39:20 claus Exp $
 "
 !
 
@@ -86,7 +87,8 @@
     system, where either a process is forked, or a timeout is used instead 
     (for examples, see ProcessMonitor or MemoryMonitor).
 
-    This pure-event mode may not be supported in the future.
+    This pure-event mode may not be supported in the future (actually, it is no longer
+    maintained in places where was present).
 
     class variables:
 
@@ -457,6 +459,7 @@
     timeoutProcessArray := Array with:nil.
     anyTimeouts := false.
     dispatching := false.
+    useIOInterrupts := OperatingSystem supportsIOInterrupts.
 
     "
      handcraft the first (dispatcher-) process - this one will never
@@ -1053,8 +1056,8 @@
     ].
 
     "first do a quick check for semaphores using checkActions - this is needed for
-     devices like X-connection, where some events might be in the event
-     queue. Without these, a select might block even though there is work to do
+     devices like the X-connection, where some events might be in the event
+     queue. Without these checks, a select might block even though there is work to do
     "
     any := false.
     nActions := readCheckArray size.
@@ -1083,18 +1086,21 @@
 
     pri := p priority.
 
-    "want to give control to the process p.
+    "
+     want to give control to the process p.
      If the switched-to processes priority is lower than the
      userSchedulingPriority, we have to make certain, that the 
      next input or timer will bring us back for a reschedule.
      This is done by enabling ioInterrupts for all file descriptors.
-     If ioInterrupts are not available, we schedule a timer interrupt 
-     to interrupt us after 1/20s of a second - effectively polling 
-     the filedescriptors. - which is very bad, since low prio processes
-     will be hurt in performance 
-     - dont let benchmarks run with low prio ...
+     If ioInterrupts are not available (OS does not support them), 
+     we schedule a timer interrupt to interrupt us after 1/20s of a second
+     - effectively polling the filedescriptors 20 times a second.
+     (which is bad, since low prio processes will be hurt in performance)
+     Therefore, dont let benchmarks run with low prio ...
+
      Higher prio processes must be suspended, 
-     same prio ones must yield or suspend to get back control"
+     same prio ones must yield or suspend to get back control
+    "
 
 "
  uncommenting this will make timeouts interrupt the current process
@@ -1115,7 +1121,7 @@
 
     "
      if the process to run has a lower than UserInterruptPriority,
-     arrange for an interrupt to occur on IO.
+     arrange for an interrupt to occur on I/O.
      This is done by enabling IO-signals (if the OS supports them)
      or by installing a poll-interrupt after 50ms (if the OS does not).
     "
@@ -1128,7 +1134,7 @@
 	].
 "---"
 
-	OperatingSystem supportsIOInterrupts ifTrue:[
+	useIOInterrupts ifTrue:[
 	    readFdArray do:[:fd |
 		fd notNil ifTrue:[
 		    OperatingSystem enableIOInterruptsOn:fd
@@ -1187,7 +1193,7 @@
     |aTime now delta minDelta n "{ Class: SmallInteger }"|
 
     "find next timeout. since there are usually not many, just search.
-     If there where many, the list should be kept sorted ... keeping deltas
+     If there were many, the list should be kept sorted ... keeping deltas
      to next (as in Unix kernel)"
 
     n := timeoutArray size.
--- a/Registry.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Registry.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Registry.st,v 1.12 1995-03-07 21:55:20 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Registry.st,v 1.13 1995-03-08 23:39:36 claus Exp $
 '!
 
 !Registry class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Registry.st,v 1.12 1995-03-07 21:55:20 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Registry.st,v 1.13 1995-03-08 23:39:36 claus Exp $
 "
 !
 
@@ -100,9 +100,7 @@
     "evaluate aBlock for each registered object"
 
     registeredObjects notNil ifTrue:[
-	registeredObjects nonNilElementsDo:[:o |
-	    aBlock value:o
-	]
+	registeredObjects nonNilElementsDo:aBlock
     ]
 ! !
 
--- a/Semaphore.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Semaphore.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Semaphore.st,v 1.15 1995-02-18 18:30:02 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Semaphore.st,v 1.16 1995-03-08 23:39:40 claus Exp $
 '!
 
 !Semaphore class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Semaphore.st,v 1.15 1995-02-18 18:30:02 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Semaphore.st,v 1.16 1995-03-08 23:39:40 claus Exp $
 "
 !
 
@@ -122,16 +122,9 @@
 	^ self
     ].
 
-    wasBlocked := OperatingSystem blockInterrupts.
+    current := Processor activeProcess.
 
-    current := Processor activeProcess.
-    waitingProcesses isNil ifTrue:[
-	waitingProcesses := OrderedCollection with:current
-    ] ifFalse:[
-	waitingProcesses add:current
-    ].
-"/        self add:current.
-
+    wasBlocked := OperatingSystem blockInterrupts.
     "
      need a while-loop here, since more than one process may
      wait for it and another one may also wake up.
@@ -139,6 +132,12 @@
      suspend.
     "
     [count == 0] whileTrue:[
+	waitingProcesses isNil ifTrue:[
+	    waitingProcesses := OrderedCollection with:current
+	] ifFalse:[
+	    waitingProcesses add:current
+	].
+"/        self add:current.
 	"
 	 for some more descriptive info in processMonitor ...
 	 (notice that state could already be #ioWait, #timeWait or anything else)
@@ -176,6 +175,8 @@
 	^ false
     ].
 
+    current := Processor activeProcess.
+
     wasBlocked := OperatingSystem blockInterrupts.
 
     "
@@ -184,14 +185,6 @@
     now := OperatingSystem getMillisecondTime.
     endTime := OperatingSystem millisecondTimeAdd:now and:(seconds * 1000).
 
-    current := Processor activeProcess.
-    waitingProcesses isNil ifTrue:[
-	waitingProcesses := OrderedCollection with:current
-    ] ifFalse:[
-	waitingProcesses add:current
-    ].
-"/    self add:current.
-
     unblock := [timeoutOccured := true. Processor resume:current].
     Processor addTimedBlock:unblock for:current atMilliseconds:endTime.
 
@@ -202,6 +195,13 @@
      suspend.
     "
     [count == 0] whileTrue:[
+	waitingProcesses isNil ifTrue:[
+	    waitingProcesses := OrderedCollection with:current
+	] ifFalse:[
+	    waitingProcesses add:current
+	].
+"/        self add:current.
+
 	"
 	 for some more descriptive info in processMonitor ...
 	 (notice that state could already be #ioWait or #timeWait)
--- a/SeqColl.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/SeqColl.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/SeqColl.st,v 1.25 1995-03-06 19:17:49 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/SeqColl.st,v 1.26 1995-03-08 23:39:46 claus Exp $
 '!
 
 !SequenceableCollection class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/SeqColl.st,v 1.25 1995-03-06 19:17:49 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/SeqColl.st,v 1.26 1995-03-08 23:39:46 claus Exp $
 "
 !
 
@@ -85,7 +85,11 @@
 at:index ifAbsent:exceptionBlock
     "return the element at index if valid. 
      If the index is invalid, return the result of evaluating 
-     the exceptionblock."
+     the exceptionblock.
+     NOTICE: 
+	in ST-80, this message is only defined for Dictionaries,
+	however, having a common protocol with indexed collections
+	often simplifies things."
 
     ((index < 1) or:[index > self size]) ifTrue:[
 	^ exceptionBlock value
@@ -94,6 +98,8 @@
 
     "
      #(1 2 3) at:4 ifAbsent:['no such index']
+     #(1 2 3) asOrderedCollection at:4 ifAbsent:['no such index'] 
+
      (Dictionary with:(#foo -> #bar)
 		 with:(#frob -> #baz)) 
 	 at:#foobar ifAbsent:['no such index']
--- a/SequenceableCollection.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/SequenceableCollection.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.25 1995-03-06 19:17:49 claus Exp $
+$Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.26 1995-03-08 23:39:46 claus Exp $
 '!
 
 !SequenceableCollection class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.25 1995-03-06 19:17:49 claus Exp $
+$Header: /cvs/stx/stx/libbasic/SequenceableCollection.st,v 1.26 1995-03-08 23:39:46 claus Exp $
 "
 !
 
@@ -85,7 +85,11 @@
 at:index ifAbsent:exceptionBlock
     "return the element at index if valid. 
      If the index is invalid, return the result of evaluating 
-     the exceptionblock."
+     the exceptionblock.
+     NOTICE: 
+	in ST-80, this message is only defined for Dictionaries,
+	however, having a common protocol with indexed collections
+	often simplifies things."
 
     ((index < 1) or:[index > self size]) ifTrue:[
 	^ exceptionBlock value
@@ -94,6 +98,8 @@
 
     "
      #(1 2 3) at:4 ifAbsent:['no such index']
+     #(1 2 3) asOrderedCollection at:4 ifAbsent:['no such index'] 
+
      (Dictionary with:(#foo -> #bar)
 		 with:(#frob -> #baz)) 
 	 at:#foobar ifAbsent:['no such index']
--- a/Set.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Set.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Set.st,v 1.14 1995-02-15 10:24:56 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Set.st,v 1.15 1995-03-08 23:39:52 claus Exp $
 '!
 
 !Set class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Set.st,v 1.14 1995-02-15 10:24:56 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Set.st,v 1.15 1995-03-08 23:39:52 claus Exp $
 "
 !
 
@@ -112,20 +112,24 @@
     "return a good array size for the given argument.
      Returns the next prime after arg, since prime sizes are good for hashing."
 
+    |n|
+
     arg <= 11 ifTrue:[^ 11].
 
+    n := arg * 3 // 2.
+
     "
      mhmh - this returns good numbers for collections with up-to about
      500k elements; if you have bigger ones, add some more primes here ...
     "
-    arg <= 524288 ifTrue:[
+    n <= 524288 ifTrue:[
 	   "2  4  8  16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288"
-	^ #(11 11 11 17 37 67 131 257 521 1031 2053 4099 8209 16411 32771 65537 131101 262147 524309) at:(arg highBit)
+	^ #(11 11 11 17 37 67 131 257 521 1031 2053 4099 8209 16411 32771 65537 131101 262147 524309) at:(n highBit)
     ].
     "
      make it odd - at least
     "
-    ^ arg bitOr:1
+    ^ n bitOr:1
 ! !
 
 !Set methodsFor:'copying'!
--- a/Signal.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Signal.st	Thu Mar 09 00:40:27 1995 +0100
@@ -22,7 +22,7 @@
 COPYRIGHT (c) 1993 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Signal.st,v 1.18 1995-02-16 16:24:46 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Signal.st,v 1.19 1995-03-08 23:39:56 claus Exp $
 '!
 
 !Signal class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Signal.st,v 1.18 1995-02-16 16:24:46 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Signal.st,v 1.19 1995-03-08 23:39:56 claus Exp $
 "
 !
 
@@ -137,12 +137,11 @@
     "setup the signal used to handle unhandled signals"
 
     NoHandlerSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	NoHandlerSignal := Object errorSignal newSignalMayProceed:true.
+	NoHandlerSignal := ErrorSignal newSignalMayProceed:true.
 	NoHandlerSignal nameClass:self message:#noHandlerSignal.
 	NoHandlerSignal notifierString:'unhandled exception'.
-
     ]
 ! !
 
--- a/Smalltalk.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Smalltalk.st	Thu Mar 09 00:40:27 1995 +0100
@@ -26,7 +26,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.35 1995-03-01 01:42:40 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.36 1995-03-08 23:40:04 claus Exp $
 '!
 
 "
@@ -55,7 +55,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.35 1995-03-01 01:42:40 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.36 1995-03-08 23:40:04 claus Exp $
 "
 !
 
@@ -131,7 +131,7 @@
     "return the revision number.
      Incremented for releases which fix bugs/add features."
 
-    ^ 4
+    ^ 5
 
     " 
      Smalltalk revision
@@ -761,7 +761,7 @@
 keyAtValue:anObject
     "return the symbol under which anObject is stored - or nil"
 
-    self allKeysDo:[:aKey |
+    self keysDo:[:aKey |
 	(self at:aKey) == anObject ifTrue:[^ aKey]
     ]
 
@@ -774,7 +774,7 @@
     |keys|
 
     keys := IdentitySet new.
-    self allKeysDo:[:k | keys add:k].
+    self keysDo:[:k | keys add:k].
     ^ keys
 ! !
 
@@ -980,18 +980,24 @@
 %}
 !
 
-allKeysDo:aBlock
+keysDo:aBlock
     "evaluate the argument, aBlock for all keys in the Smalltalk dictionary"
 %{
     _GLOBALKEYS_DO(&aBlock COMMA_CON);
 %}
 !
 
+allKeysDo:aBlock
+    "evaluate the argument, aBlock for all keys in the Smalltalk dictionary"
+
+    ^ self keysDo:aBlock
+!
+
 associationsDo:aBlock
     "evaluate the argument, aBlock for all key/value pairs 
      in the Smalltalk dictionary"
 
-    self allKeysDo:[:aKey |
+    self keysDo:[:aKey |
 	aBlock value:(aKey -> (self at:aKey))
     ]
 
@@ -1001,7 +1007,7 @@
 keysAndValuesDo:aBlock
     "evaluate the two-arg block, aBlock for all keys and values"
 
-    self allKeysDo:[:aKey |
+    self keysDo:[:aKey |
 	aBlock value:aKey value:(self at:aKey)
     ]
 !
--- a/String.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/String.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1988 by Claus Gittinger
 	     All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/String.st,v 1.31 1995-03-07 19:45:41 claus Exp $
+$Header: /cvs/stx/stx/libbasic/String.st,v 1.32 1995-03-08 23:40:12 claus Exp $
 '!
 
 !String class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/String.st,v 1.31 1995-03-07 19:45:41 claus Exp $
+$Header: /cvs/stx/stx/libbasic/String.st,v 1.32 1995-03-08 23:40:12 claus Exp $
 "
 !
 
@@ -72,8 +72,17 @@
 #include <ctype.h>
 #ifdef LINUX
 # include <linux/string.h>
+#else
+  extern char *strchr();
 #endif
 
+#ifdef SYSV
+# define INDEX strchr
+#else
+# define INDEX index
+#endif
+extern char *INDEX();
+
 /*
  * old st/x creates strings with spaces in it;
  * new st/x will fill it with zeros (for st-80 compatibility)
@@ -724,7 +733,6 @@
 
     REGISTER unsigned char *cp;
     REGISTER int byteValue;
-    extern char *strchr();
     OBJ cls;
 
     if (__isCharacter(aCharacter)) {
@@ -767,12 +775,6 @@
 
     REGISTER unsigned char *cp;
     REGISTER unsigned char *matchP;
-#ifdef SYSV
-# define INDEX strchr
-#else
-# define INDEX index
-#endif
-    extern char *INDEX();
     OBJ cls;
 
     if (__isString(aCollection)) {
--- a/WeakArr.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/WeakArr.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.9 1995-02-28 20:54:39 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.10 1995-03-08 23:40:27 claus Exp $
 '!
 
 !WeakArray class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.9 1995-02-28 20:54:39 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Attic/WeakArr.st,v 1.10 1995-03-08 23:40:27 claus Exp $
 "
 !
 
@@ -112,9 +112,9 @@
     "setup the private signal"
 
     RegistrationFailedSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	RegistrationFailedSignal := Object errorSignal newSignalMayProceed:true.
+	RegistrationFailedSignal := ErrorSignal newSignalMayProceed:true.
 	RegistrationFailedSignal nameClass:self message:#registrationFailedSignal.
 	RegistrationFailedSignal notifierString:'weakArray registration failed'.
     ]
--- a/WeakArray.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/WeakArray.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1991 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.9 1995-02-28 20:54:39 claus Exp $
+$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.10 1995-03-08 23:40:27 claus Exp $
 '!
 
 !WeakArray class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.9 1995-02-28 20:54:39 claus Exp $
+$Header: /cvs/stx/stx/libbasic/WeakArray.st,v 1.10 1995-03-08 23:40:27 claus Exp $
 "
 !
 
@@ -112,9 +112,9 @@
     "setup the private signal"
 
     RegistrationFailedSignal isNil ifTrue:[
-	Object initialize.
+	ErrorSignal isNil ifTrue:[super initialize].
 
-	RegistrationFailedSignal := Object errorSignal newSignalMayProceed:true.
+	RegistrationFailedSignal := ErrorSignal newSignalMayProceed:true.
 	RegistrationFailedSignal nameClass:self message:#registrationFailedSignal.
 	RegistrationFailedSignal notifierString:'weakArray registration failed'.
     ]