David T. Lewis uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-dtl.299.mcz
==================== Summary ====================
Name: Tools-dtl.299
Author: dtl
Time: 28 February 2011, 8:36:01.274 pm
UUID: 13232cf5-1034-4124-8b1f-973a69f5c085
Ancestors: Tools-nice.298
Evaluating #halt in MVC can result in an extra debugger scheduled for opening in the previous Morphic project. Clean up debugger open by eliminating #isMorphic test from Debugger class>>openOn:context:label:contents:fullView: and replacing with method dispatch to the appropriate MVC or Morphic method. The MVC method no longer schedules an extra open in someone else's world.
This fixes some scheduling issues with opening an MVC debugger. However, some additional ToolBuilder support is needed for the MVC debugger, and other scheduling issues may remain (not sure if the problems are due to missing buttons etc, or to some other MVC scheduling issue).
=============== Diff against Tools-nice.298 ===============
Item was changed:
----- Method: Debugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----
openOn: process context: context label: title contents: contentsStringOrNil fullView: bool
+ "Open a notifier in response to an error, halt, or notify. A notifier view just shows a short
+ view of the sender stack and provides a menu that lets the user open a full debugger.
+ Dispatch the request to a method appropriate for the active project."
- "Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
+ ^ Project current
+ dispatchTo: self
+ addPrefixAndSend: #OpenOn:context:label:contents:fullView:
+ withArguments: { process . context . title . contentsStringOrNil . bool }
- | controller errorWasInUIProcess debugger |
- Smalltalk isMorphic
- ifTrue: [errorWasInUIProcess := Project spawnNewProcessIfThisIsUI: process]
- ifFalse: [
- controller := ScheduledControllers activeControllerProcess == process
- ifTrue: [ScheduledControllers activeController].
- [
- debugger := self new process: process controller: controller context: context.
- bool
- ifTrue: [debugger openFullNoSuspendLabel: title]
- ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
- Preferences logDebuggerStackToFile ifTrue: [
- Smalltalk logSqueakError: title inContext: context].
- ] on: Error do: [:ex |
- self primitiveError:
- 'Orginal error: ',
- title asString, '.
- Debugger error: ',
- ([ex description] on: Error do: ['a ', ex class printString]), ':'
- ]].
- WorldState addDeferredUIMessage: [
- "schedule debugger in deferred UI message to address redraw
- problems after opening a debugger e.g. from the testrunner."
- [
- debugger := self new process: process controller: nil context: context.
- bool
- ifTrue: [debugger openFullNoSuspendLabel: title]
- ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
- debugger errorWasInUIProcess: errorWasInUIProcess.
- Preferences logDebuggerStackToFile ifTrue: [
- Smalltalk logSqueakError: title inContext: context].
- ] on: Error do: [:ex |
- self primitiveError:
- 'Orginal error: ',
- title asString, '.
- Debugger error: ',
- ([ex description] on: Error do: ['a ', ex class printString]), ':'
- ]
- ].
- process suspend.
!
David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-dtl.125.mcz
==================== Summary ====================
Name: ST80-dtl.125
Author: dtl
Time: 28 February 2011, 8:33:38.792 pm
UUID: 4e3f6978-87b4-4996-b710-b2bd7993f0bf
Ancestors: ST80-nice.124
Add Debugger class>>mvcOpenOn:context:label:contents:fullView: as dispatch target for opening a debugger in MVC.
=============== Diff against ST80-nice.124 ===============
Item was added:
+ ----- Method: Debugger class>>mvcOpenOn:context:label:contents:fullView: (in category '*ST80-opening') -----
+ mvcOpenOn: process context: context label: title contents: contentsStringOrNil fullView: bool
+ "Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
+
+ | controller debugger |
+ controller := ScheduledControllers activeControllerProcess == process
+ ifTrue: [ScheduledControllers activeController].
+ [debugger := self new
+ process: process
+ controller: controller
+ context: context.
+ bool
+ ifTrue: [debugger openFullNoSuspendLabel: title]
+ ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
+ Preferences logDebuggerStackToFile
+ ifTrue: [Smalltalk logSqueakError: title inContext: context]
+ ] on: Error do: [:ex |
+ self primitiveError: 'Original error: ' , title asString , '.
+ Debugger error: ' , ([ex description]
+ on: Error
+ do: ['a ' , ex class printString]) , ':'].
+ process suspend!
David T. Lewis uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-dtl.522.mcz
==================== Summary ====================
Name: Morphic-dtl.522
Author: dtl
Time: 28 February 2011, 8:31:43.924 pm
UUID: b029c657-a64b-4ee8-8f7b-c93a2e4847a8
Ancestors: Morphic-mtf.521
Add Debugger class>>morphicOpenOn:context:label:contents:fullView: as dispatch target for opening a debugger in Morphic.
=============== Diff against Morphic-mtf.521 ===============
Item was added:
+ ----- Method: Debugger class>>morphicOpenOn:context:label:contents:fullView: (in category '*Morphic-opening') -----
+ morphicOpenOn: process context: context label: title contents: contentsStringOrNil fullView: bool
+ "Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
+
+ | errorWasInUIProcess debugger |
+ errorWasInUIProcess := Project spawnNewProcessIfThisIsUI: process.
+ WorldState addDeferredUIMessage: [
+ "schedule debugger in deferred UI message to address redraw
+ problems after opening a debugger e.g. from the testrunner."
+ [
+ debugger := self new process: process controller: nil context: context.
+ bool
+ ifTrue: [debugger openFullNoSuspendLabel: title]
+ ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
+ debugger errorWasInUIProcess: errorWasInUIProcess.
+ Preferences logDebuggerStackToFile ifTrue: [
+ Smalltalk logSqueakError: title inContext: context].
+ ] on: Error do: [:ex |
+ self primitiveError:
+ 'Original error: ',
+ title asString, '.
+ Debugger error: ',
+ ([ex description] on: Error do: ['a ', ex class printString]), ':'
+ ]
+ ].
+ process suspend.
+ !