Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.632.mcz
==================== Summary ====================
Name: Tools-mt.632
Author: mt
Time: 25 August 2015, 2:57:23.277 pm
UUID: 32a964b7-b4b9-8347-b230-278e62d7db33
Ancestors: Tools-eem.631
Removes the hack for the debugger's notifier window because it is not necessary anymore. Warnings work fine now.
=============== Diff against Tools-eem.631 ===============
Item was changed:
----- Method: Debugger>>openNotifierContents:label: (in category 'initialize') -----
openNotifierContents: msgString label: label
"Create, schedule and answer a notifier view with the given label and message. A notifier view shows just the message or the first several lines of the stack, with a menu that allows the user to open a full debugger if so desired."
"NOTE: When this method returns, a new process has been scheduled to run the windows, and thus this notifier, but the previous active process has not been suspended. The sender will do this."
| msg builder spec |
Sensor flushKeyboard.
savedCursor := Cursor currentCursor.
Cursor currentCursor: Cursor normal.
msg := (label beginsWith: 'Space is low')
ifTrue: [self lowSpaceChoices, (msgString ifNil: [String empty])]
ifFalse: [msgString].
builder := ToolBuilder default.
+ spec := self buildNotifierWith: builder label: label message: msg.
- spec := self buildNotifierWith: builder label: label message: (msg ifNil: [label]).
self expandStack.
^[builder openDebugger: spec] ensure:
[errorWasInUIProcess := Project current spawnNewProcessIfThisIsUI: interruptedProcess]
!
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.632.mcz
==================== Summary ====================
Name: Tools-mt.632
Author: mt
Time: 25 August 2015, 2:57:23.277 pm
UUID: 32a964b7-b4b9-8347-b230-278e62d7db33
Ancestors: Tools-eem.631
Removes the hack for the debugger's notifier window because it is not necessary anymore. Warnings work fine now.
=============== Diff against Tools-eem.631 ===============
Item was changed:
----- Method: Debugger>>openNotifierContents:label: (in category 'initialize') -----
openNotifierContents: msgString label: label
"Create, schedule and answer a notifier view with the given label and message. A notifier view shows just the message or the first several lines of the stack, with a menu that allows the user to open a full debugger if so desired."
"NOTE: When this method returns, a new process has been scheduled to run the windows, and thus this notifier, but the previous active process has not been suspended. The sender will do this."
| msg builder spec |
Sensor flushKeyboard.
savedCursor := Cursor currentCursor.
Cursor currentCursor: Cursor normal.
msg := (label beginsWith: 'Space is low')
ifTrue: [self lowSpaceChoices, (msgString ifNil: [String empty])]
ifFalse: [msgString].
builder := ToolBuilder default.
+ spec := self buildNotifierWith: builder label: label message: msg.
- spec := self buildNotifierWith: builder label: label message: (msg ifNil: [label]).
self expandStack.
^[builder openDebugger: spec] ensure:
[errorWasInUIProcess := Project current spawnNewProcessIfThisIsUI: interruptedProcess]
!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.759.mcz
==================== Summary ====================
Name: System-mt.759
Author: mt
Time: 25 August 2015, 2:55:00.96 pm
UUID: 4ebb649f-f70f-c042-9719-f1bd01f6245e
Ancestors: System-eem.758
Adds support for unhandled warnings.
=============== Diff against System-eem.758 ===============
Item was changed:
----- Method: UnhandledError>>defaultAction (in category '*System-priv handling') -----
defaultAction
"The current computation is terminated. The cause of the error should be logged or reported to the user. If the program is operating in an interactive debugging environment the computation should be suspended and the debugger activated."
+ ^ToolSet debugError: self exception!
- ^ToolSet debugError: exception.!
Item was added:
+ ----- Method: UnhandledWarning>>defaultAction (in category '*System-priv handling') -----
+ defaultAction
+
+ ^ ToolSet
+ debugContext: self exception signalerContext
+ label: 'Warning'
+ contents: self exception messageText , '\\Select Proceed to continue, or close this window to cancel the operation.' withCRs!
Item was changed:
----- Method: Warning>>defaultAction (in category '*System-exceptionDescription') -----
defaultAction
"Inform the user of a Warning, giving them the choice of ignoring the warning (proceeding), debugging, or terminating the computation."
+ UnhandledWarning signalForException: self!
- UnhandledError signalForException: self!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.759.mcz
==================== Summary ====================
Name: System-mt.759
Author: mt
Time: 25 August 2015, 2:55:00.96 pm
UUID: 4ebb649f-f70f-c042-9719-f1bd01f6245e
Ancestors: System-eem.758
Adds support for unhandled warnings.
=============== Diff against System-eem.758 ===============
Item was changed:
----- Method: UnhandledError>>defaultAction (in category '*System-priv handling') -----
defaultAction
"The current computation is terminated. The cause of the error should be logged or reported to the user. If the program is operating in an interactive debugging environment the computation should be suspended and the debugger activated."
+ ^ToolSet debugError: self exception!
- ^ToolSet debugError: exception.!
Item was added:
+ ----- Method: UnhandledWarning>>defaultAction (in category '*System-priv handling') -----
+ defaultAction
+
+ ^ ToolSet
+ debugContext: self exception signalerContext
+ label: 'Warning'
+ contents: self exception messageText , '\\Select Proceed to continue, or close this window to cancel the operation.' withCRs!
Item was changed:
----- Method: Warning>>defaultAction (in category '*System-exceptionDescription') -----
defaultAction
"Inform the user of a Warning, giving them the choice of ignoring the warning (proceeding), debugging, or terminating the computation."
+ UnhandledWarning signalForException: self!
- UnhandledError signalForException: self!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.945.mcz
==================== Summary ====================
Name: Kernel-mt.945
Author: mt
Time: 25 August 2015, 2:54:06.221 pm
UUID: 4f53691a-f79e-4e40-b46d-33a647b642dd
Ancestors: Kernel-eem.944
Adds support for process stepping to watch out for other unhandled things. Adds a class for unhandled warnings.
=============== Diff against Kernel-eem.944 ===============
Item was changed:
----- Method: Process>>stepToHome: (in category 'changing suspended state') -----
stepToHome: aContext
"Resume self until the home of top context is aContext. Top context may be a block context.
Catch any UnhandledErrors that are created while stepping, answering the relevant signalerContext
if so. Note that this will cause weird effects if using through to step through UnhandledError
code, but as the doctor ordered, don't do that; use over or into instead."
^Processor activeProcess
evaluate:
[| home anError |
home := aContext home.
[suspendedContext := suspendedContext step.
home == suspendedContext home or: [home isDead]] whileFalse:
[(suspendedContext selector == #signalForException:
+ and: [(suspendedContext receiver isBehavior and: [
+ suspendedContext receiver includesBehavior: UnhandledError])
- and: [suspendedContext receiver == UnhandledError
and: [anError := suspendedContext tempAt: 1.
((suspendedContext objectClass: anError) includesBehavior: Exception)
and: [anError canSearchForSignalerContext]]]) ifTrue:
[anError signalerContext ifNotNil:
[:unhandledErrorSignalerContext|
[unhandledErrorSignalerContext == suspendedContext] whileFalse:
[self completeStep: suspendedContext].
"Give a debugger a chance to update its title to reflect the new exception"
Notification new
tag: {unhandledErrorSignalerContext. anError};
signal.
^unhandledErrorSignalerContext]]].
suspendedContext]
onBehalfOf: self!
Item was changed:
Exception subclass: #UnhandledError
instanceVariableNames: 'exception'
classVariableNames: ''
poolDictionaries: ''
category: 'Kernel-Exceptions'!
+
+ !UnhandledError commentStamp: 'mt 8/25/2015 14:42' prior: 0!
+ This is a wrapper for an unhandled error. Having this, process stepping is able to correctly fire other unhandled errors. See Process >> #stepToHome: for further explanations.!
Item was changed:
----- Method: UnhandledError class>>signalForException: (in category 'as yet unclassified') -----
signalForException: anError
+ "Very important entry point for analysis stack when stepping in a debugging session. See Process >> #stepToHome: for further explanations."
+
-
^ self new
exception: anError;
signal!
Item was changed:
+ ----- Method: UnhandledError>>exception (in category 'accessing') -----
- ----- Method: UnhandledError>>exception (in category 'as yet unclassified') -----
exception
^ exception!
Item was changed:
+ ----- Method: UnhandledError>>exception: (in category 'accessing') -----
- ----- Method: UnhandledError>>exception: (in category 'as yet unclassified') -----
exception: anError
exception := anError!
Item was added:
+ UnhandledError subclass: #UnhandledWarning
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Kernel-Exceptions'!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.945.mcz
==================== Summary ====================
Name: Kernel-mt.945
Author: mt
Time: 25 August 2015, 2:54:06.221 pm
UUID: 4f53691a-f79e-4e40-b46d-33a647b642dd
Ancestors: Kernel-eem.944
Adds support for process stepping to watch out for other unhandled things. Adds a class for unhandled warnings.
=============== Diff against Kernel-eem.944 ===============
Item was changed:
----- Method: Process>>stepToHome: (in category 'changing suspended state') -----
stepToHome: aContext
"Resume self until the home of top context is aContext. Top context may be a block context.
Catch any UnhandledErrors that are created while stepping, answering the relevant signalerContext
if so. Note that this will cause weird effects if using through to step through UnhandledError
code, but as the doctor ordered, don't do that; use over or into instead."
^Processor activeProcess
evaluate:
[| home anError |
home := aContext home.
[suspendedContext := suspendedContext step.
home == suspendedContext home or: [home isDead]] whileFalse:
[(suspendedContext selector == #signalForException:
+ and: [(suspendedContext receiver isBehavior and: [
+ suspendedContext receiver includesBehavior: UnhandledError])
- and: [suspendedContext receiver == UnhandledError
and: [anError := suspendedContext tempAt: 1.
((suspendedContext objectClass: anError) includesBehavior: Exception)
and: [anError canSearchForSignalerContext]]]) ifTrue:
[anError signalerContext ifNotNil:
[:unhandledErrorSignalerContext|
[unhandledErrorSignalerContext == suspendedContext] whileFalse:
[self completeStep: suspendedContext].
"Give a debugger a chance to update its title to reflect the new exception"
Notification new
tag: {unhandledErrorSignalerContext. anError};
signal.
^unhandledErrorSignalerContext]]].
suspendedContext]
onBehalfOf: self!
Item was changed:
Exception subclass: #UnhandledError
instanceVariableNames: 'exception'
classVariableNames: ''
poolDictionaries: ''
category: 'Kernel-Exceptions'!
+
+ !UnhandledError commentStamp: 'mt 8/25/2015 14:42' prior: 0!
+ This is a wrapper for an unhandled error. Having this, process stepping is able to correctly fire other unhandled errors. See Process >> #stepToHome: for further explanations.!
Item was changed:
----- Method: UnhandledError class>>signalForException: (in category 'as yet unclassified') -----
signalForException: anError
+ "Very important entry point for analysis stack when stepping in a debugging session. See Process >> #stepToHome: for further explanations."
+
-
^ self new
exception: anError;
signal!
Item was changed:
+ ----- Method: UnhandledError>>exception (in category 'accessing') -----
- ----- Method: UnhandledError>>exception (in category 'as yet unclassified') -----
exception
^ exception!
Item was changed:
+ ----- Method: UnhandledError>>exception: (in category 'accessing') -----
- ----- Method: UnhandledError>>exception: (in category 'as yet unclassified') -----
exception: anError
exception := anError!
Item was added:
+ UnhandledError subclass: #UnhandledWarning
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Kernel-Exceptions'!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.999.mcz
==================== Summary ====================
Name: Morphic-mt.999
Author: mt
Time: 25 August 2015, 11:51:57.2 am
UUID: 342432f2-3b6b-3a42-8c0e-3f58305354ad
Ancestors: Morphic-mt.998
Fixes a bug with wrong Z order of morphs in system windows. There is no need to update pane order because retractable scroll bars got fixed.
=============== Diff against Morphic-mt.998 ===============
Item was changed:
----- Method: SystemWindow>>addMorph:fullFrame: (in category 'panes') -----
addMorph: aMorph fullFrame: aLayoutFrame
"Add aMorph according to aLayoutFrame."
super addMorph: aMorph fullFrame: aLayoutFrame.
paneMorphs := paneMorphs copyReplaceFrom: 1 to: 0 with: (Array with: aMorph).
+ aMorph isImageMorph ifFalse: [aMorph adoptPaneColor: self paneColor].!
- aMorph isImageMorph ifFalse: [aMorph adoptPaneColor: self paneColor].
- Preferences scrollBarsOnRight ifTrue:"reorder panes so flop-out right-side scrollbar is visible"
- [self addMorphBack: aMorph].!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.999.mcz
==================== Summary ====================
Name: Morphic-mt.999
Author: mt
Time: 25 August 2015, 11:51:57.2 am
UUID: 342432f2-3b6b-3a42-8c0e-3f58305354ad
Ancestors: Morphic-mt.998
Fixes a bug with wrong Z order of morphs in system windows. There is no need to update pane order because retractable scroll bars got fixed.
=============== Diff against Morphic-mt.998 ===============
Item was changed:
----- Method: SystemWindow>>addMorph:fullFrame: (in category 'panes') -----
addMorph: aMorph fullFrame: aLayoutFrame
"Add aMorph according to aLayoutFrame."
super addMorph: aMorph fullFrame: aLayoutFrame.
paneMorphs := paneMorphs copyReplaceFrom: 1 to: 0 with: (Array with: aMorph).
+ aMorph isImageMorph ifFalse: [aMorph adoptPaneColor: self paneColor].!
- aMorph isImageMorph ifFalse: [aMorph adoptPaneColor: self paneColor].
- Preferences scrollBarsOnRight ifTrue:"reorder panes so flop-out right-side scrollbar is visible"
- [self addMorphBack: aMorph].!