use genericSignal as parent of ErrorSignal.
--- a/Object.st Wed Oct 08 12:59:02 1997 +0200
+++ b/Object.st Wed Oct 08 13:00:08 1997 +0200
@@ -170,97 +170,104 @@
"called only once - initialize signals"
ErrorSignal isNil ifTrue:[
- ErrorSignal := (Signal new) mayProceed:true.
- ErrorSignal nameClass:self message:#errorSignal.
- ErrorSignal notifierString:'error encountered'.
-
- HaltSignal := ErrorSignal newSignalMayProceed:true.
- HaltSignal nameClass:self message:#haltSignal.
- HaltSignal notifierString:'halt encountered'.
-
- MessageNotUnderstoodSignal := ErrorSignal newSignalMayProceed:true.
- MessageNotUnderstoodSignal nameClass:self message:#messageNotUnderstoodSignal.
- MessageNotUnderstoodSignal notifierString:'message not understood'.
-
- PrimitiveFailureSignal := ErrorSignal newSignalMayProceed:true.
- PrimitiveFailureSignal nameClass:self message:#primitiveFailureSignal.
- PrimitiveFailureSignal notifierString:'primitive failed'.
-
- InternalErrorSignal := ErrorSignal newSignalMayProceed:false.
- InternalErrorSignal nameClass:self message:#internalError.
- InternalErrorSignal notifierString:'VM internal error: '.
+ "/ have a chicken & egg problem here;
+ "/ signal wants object to be initialized,
+ "/ Object needs the genericSignal from Signal.
+ "/ So, make certain that on exists here.
+
+ Signal initGenericSignal.
+
+ ErrorSignal := (Signal genericSignal) mayProceed:true.
+ ErrorSignal nameClass:self message:#errorSignal.
+ ErrorSignal notifierString:'error encountered'.
+
+ HaltSignal := ErrorSignal newSignalMayProceed:true.
+ HaltSignal nameClass:self message:#haltSignal.
+ HaltSignal notifierString:'halt encountered'.
+
+ MessageNotUnderstoodSignal := ErrorSignal newSignalMayProceed:true.
+ MessageNotUnderstoodSignal nameClass:self message:#messageNotUnderstoodSignal.
+ MessageNotUnderstoodSignal notifierString:'message not understood'.
+
+ PrimitiveFailureSignal := ErrorSignal newSignalMayProceed:true.
+ PrimitiveFailureSignal nameClass:self message:#primitiveFailureSignal.
+ PrimitiveFailureSignal notifierString:'primitive failed'.
+
+ InternalErrorSignal := ErrorSignal newSignalMayProceed:false.
+ InternalErrorSignal nameClass:self message:#internalError.
+ InternalErrorSignal notifierString:'VM internal error: '.
"/ UserInterruptSignal := ErrorSignal newSignalMayProceed:true.
- UserInterruptSignal := (Signal new) mayProceed:true.
- UserInterruptSignal nameClass:self message:#userInterruptSignal.
- UserInterruptSignal notifierString:'user Interrupt'.
+ UserInterruptSignal := (Signal new) mayProceed:true.
+ UserInterruptSignal nameClass:self message:#userInterruptSignal.
+ UserInterruptSignal notifierString:'user Interrupt'.
"/ RecursionInterruptSignal := ErrorSignal newSignalMayProceed:false.
- RecursionInterruptSignal := (Signal new) mayProceed:true.
- RecursionInterruptSignal nameClass:self message:#recursionInterruptSignal.
- RecursionInterruptSignal notifierString:'recursion limit reached'.
-
- ExceptionInterruptSignal := ErrorSignal newSignalMayProceed:true.
- ExceptionInterruptSignal nameClass:self message:#exceptionInterruptSignal.
- ExceptionInterruptSignal notifierString:'exception Interrupt'.
-
- SubscriptOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
- SubscriptOutOfBoundsSignal nameClass:self message:#subscriptOutOfBoundsSignal.
- SubscriptOutOfBoundsSignal notifierString:'subscript out of bounds: '.
-
- ElementOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
- ElementOutOfBoundsSignal nameClass:self message:#elementOutOfBoundsSignal.
- ElementOutOfBoundsSignal notifierString:'element not appropriate or out of bounds'.
-
- NotFoundSignal := ErrorSignal newSignalMayProceed:true.
- NotFoundSignal nameClass:self message:#notFoundSignal.
- NotFoundSignal notifierString:'no such element'.
-
- KeyNotFoundSignal := ErrorSignal newSignalMayProceed:true.
- KeyNotFoundSignal nameClass:self message:#keyNotFoundSignal.
- KeyNotFoundSignal notifierString:'no such key: '.
-
- NonIntegerIndexSignal := ErrorSignal newSignalMayProceed:false.
- NonIntegerIndexSignal nameClass:self message:#nonIntegerIndexSignal.
- NonIntegerIndexSignal notifierString:'index must be integer'.
-
- UserNotificationSignal := QuerySignal new.
- UserNotificationSignal nameClass:self message:#userNotificationSignal.
- UserNotificationSignal notifierString:'user notifiaction wanted'.
-
- InformationSignal := UserNotificationSignal newSignalMayProceed:true.
- InformationSignal nameClass:self message:#informationSignal.
- InformationSignal notifierString:'information'.
-
- WarningSignal := UserNotificationSignal newSignalMayProceed:true.
- WarningSignal nameClass:self message:#warnungSignal.
- WarningSignal notifierString:'warning'.
-
- ActivityNotificationSignal := UserNotificationSignal newSignalMayProceed:true.
- ActivityNotificationSignal nameClass:self message:#activityNotificationSignal.
- ActivityNotificationSignal notifierString:'activity'.
-
- DeepCopyErrorSignal := ErrorSignal newSignalMayProceed:true.
- DeepCopyErrorSignal nameClass:self message:#deepCopyErrorSignal.
- DeepCopyErrorSignal notifierString:'object cannot be deepCopy-ed'.
-
- "
- AbortSignal is not a child of ErrorSignal -
- this would complicate abort from within a signal handler
- "
- AbortSignal := Signal new mayProceed:true.
- AbortSignal nameClass:self message:#abortSignal.
- AbortSignal notifierString:'unhandled abort signal'.
-
- Dependencies isNil ifTrue:[
- Dependencies := WeakDependencyDictionary new.
- ].
- NonWeakDependencies isNil ifTrue:[
- NonWeakDependencies := IdentityDictionary new.
- ].
- SynchronizationSemaphores isNil ifTrue:[
- SynchronizationSemaphores := WeakIdentityDictionary new.
- ].
+ RecursionInterruptSignal := (Signal new) mayProceed:true.
+ RecursionInterruptSignal nameClass:self message:#recursionInterruptSignal.
+ RecursionInterruptSignal notifierString:'recursion limit reached'.
+
+ ExceptionInterruptSignal := ErrorSignal newSignalMayProceed:true.
+ ExceptionInterruptSignal nameClass:self message:#exceptionInterruptSignal.
+ ExceptionInterruptSignal notifierString:'exception Interrupt'.
+
+ SubscriptOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
+ SubscriptOutOfBoundsSignal nameClass:self message:#subscriptOutOfBoundsSignal.
+ SubscriptOutOfBoundsSignal notifierString:'subscript out of bounds: '.
+
+ ElementOutOfBoundsSignal := ErrorSignal newSignalMayProceed:false.
+ ElementOutOfBoundsSignal nameClass:self message:#elementOutOfBoundsSignal.
+ ElementOutOfBoundsSignal notifierString:'element not appropriate or out of bounds'.
+
+ NotFoundSignal := ErrorSignal newSignalMayProceed:true.
+ NotFoundSignal nameClass:self message:#notFoundSignal.
+ NotFoundSignal notifierString:'no such element'.
+
+ KeyNotFoundSignal := ErrorSignal newSignalMayProceed:true.
+ KeyNotFoundSignal nameClass:self message:#keyNotFoundSignal.
+ KeyNotFoundSignal notifierString:'no such key: '.
+
+ NonIntegerIndexSignal := ErrorSignal newSignalMayProceed:false.
+ NonIntegerIndexSignal nameClass:self message:#nonIntegerIndexSignal.
+ NonIntegerIndexSignal notifierString:'index must be integer'.
+
+ UserNotificationSignal := QuerySignal new.
+ UserNotificationSignal nameClass:self message:#userNotificationSignal.
+ UserNotificationSignal notifierString:'user notifiaction wanted'.
+
+ InformationSignal := UserNotificationSignal newSignalMayProceed:true.
+ InformationSignal nameClass:self message:#informationSignal.
+ InformationSignal notifierString:'information'.
+
+ WarningSignal := UserNotificationSignal newSignalMayProceed:true.
+ WarningSignal nameClass:self message:#warnungSignal.
+ WarningSignal notifierString:'warning'.
+
+ ActivityNotificationSignal := UserNotificationSignal newSignalMayProceed:true.
+ ActivityNotificationSignal nameClass:self message:#activityNotificationSignal.
+ ActivityNotificationSignal notifierString:'activity'.
+
+ DeepCopyErrorSignal := ErrorSignal newSignalMayProceed:true.
+ DeepCopyErrorSignal nameClass:self message:#deepCopyErrorSignal.
+ DeepCopyErrorSignal notifierString:'object cannot be deepCopy-ed'.
+
+ "
+ AbortSignal is not a child of ErrorSignal -
+ this would complicate abort from within a signal handler
+ "
+ AbortSignal := Signal genericSignal newSignalMayProceed:true.
+ AbortSignal nameClass:self message:#abortSignal.
+ AbortSignal notifierString:'unhandled abort signal'.
+
+ Dependencies isNil ifTrue:[
+ Dependencies := WeakDependencyDictionary new.
+ ].
+ NonWeakDependencies isNil ifTrue:[
+ NonWeakDependencies := IdentityDictionary new.
+ ].
+ SynchronizationSemaphores isNil ifTrue:[
+ SynchronizationSemaphores := WeakIdentityDictionary new.
+ ].
].
"/ initialize InfoPrinting to the VM's infoPrint setting
@@ -269,8 +276,8 @@
"Object initialize"
- "Modified: 9.1.1997 / 00:28:38 / cg"
"Modified: 28.1.1997 / 19:38:58 / stefan"
+ "Modified: 8.10.1997 / 11:50:40 / cg"
! !
!Object class methodsFor:'Signal constants'!
@@ -6180,6 +6187,6 @@
!Object class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.205 1997-09-03 12:53:30 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.206 1997-10-08 11:00:08 cg Exp $'
! !
Object initialize!