[squeak-dev] The Trunk: ST80-mt.288.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jan 18 16:08:48 UTC 2023


Marcel Taeumel uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-mt.288.mcz

==================== Summary ====================

Name: ST80-mt.288
Author: mt
Time: 18 January 2023, 5:08:47.318866 pm
UUID: 044ef8f9-ad0a-f240-b695-4015f7ec6a92
Ancestors: ST80-mt.287

*** Debugger Refactoring - Step 3 of 2 ***

Remove and/or deprecate the old interface.

=============== Diff against ST80-mt.287 ===============

Item was removed:
- Debugger subclass: #MVCDebugger
- 	instanceVariableNames: 'interruptedController'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'ST80-Support'!

Item was removed:
- ----- Method: MVCDebugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----
- openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full
- 	"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."
- 
- 	| debugger cm ac acp wasActive |
- 	cm := Project current world. "controller manager"
- 	ac := cm activeController.
- 	acp := cm activeControllerProcess. "the ui process"
- 	wasActive := cm inActiveControllerProcess.
- 	
- 	debugger := self new
- 		process: processToDebug
- 		"Keep track of the controller if it matches."
- 		controller: (acp == processToDebug ifTrue: [ac])
- 		context: context.
- 
- 	full
- 		ifTrue: [debugger openFullNoSuspendLabel: title]
- 		ifFalse: [debugger openNotifierNoSuspendContents: contentsStringOrNil label: title].
- 
- 	"Try drawing the debugger tool at least once to avoid freeze."
- 	Project current restoreDisplay.
- 
- 	"If we are in a helper process, #openNoTerminate WILL NOT activate the debugger's controller. Example: user-interrupt request (cmd+dot)."
- 	(acp == processToDebug and: [wasActive not])
- 		ifTrue: [ [cm searchForActiveController] fork ].
- 	
- 	"Be sure to suspend the process we want to debug now."
- 	processToDebug suspend.
- 
- 	"If we are NOT in a helper process, #openNoTerminate WILL NOT terminate the active controller's process."
- 	(acp ~~ processToDebug and: [wasActive])
- 		ifTrue: [ Processor terminateActive ].
- 	
- 	"Get here only if active process is not the process-to-debug. Use helper process if you want to access this return value."
- 	^ debugger!

Item was removed:
- ----- Method: MVCDebugger>>context: (in category 'initialize') -----
- context: aContext
- 
- 	self
- 		process: Processor activeProcess
- 		controller: (ScheduledControllers inActiveControllerProcess
- 						ifTrue: [ScheduledControllers activeController])
- 		context: aContext.!

Item was removed:
- ----- Method: MVCDebugger>>openFullFromNotifier: (in category 'initialize') -----
- openFullFromNotifier: notifierView
- 	"Create, schedule and answer a full debugger with the given label. Do not terminate the current active process."
- 
- 	| fullView |
- 	super openFullFromNotifier: notifierView.
- 		
- 	fullView := ToolBuilder default build: self.
- 	fullView label: notifierView label. "Keep the label."
- 	fullView controller openNoTerminate.
- 	
- 	notifierView controller closeAndUnscheduleNoTerminate.
- 	Processor terminateActive.!

Item was removed:
- ----- Method: MVCDebugger>>openFullNoSuspendLabel: (in category 'initialize') -----
- openFullNoSuspendLabel: aString
- 	"Create, schedule and answer a full debugger with the given label. Do not terminate the current active process."
- 
- 	| fullView |
- 	super openFullNoSuspendLabel: aString.
- 		
- 	fullView := ToolBuilder default build: self.
- 	fullView label: aString.
- 	fullView controller openNoTerminate.
- 	
- 	^ fullView!

Item was removed:
- ----- Method: MVCDebugger>>openNotifierNoSuspendContents:label: (in category 'initialize') -----
- openNotifierNoSuspendContents: msgString label: label
- 
- 	| builder spec view |
- 	EventSensor default flushEvents.
- 	super openNotifierNoSuspendContents: msgString label: label.
- 	
- 	builder := ToolBuilder default.
- 	spec := self buildNotifierWith: builder label: label message: msgString.
- 	
- 	view := builder build: spec.
- 	view controller openNoTerminate.
- 
- 	^ view!

Item was removed:
- ----- Method: MVCDebugger>>process:controller:context: (in category 'initialize') -----
- process: aProcess controller: aController context: aContext
- 
- 	self process: aProcess context: aContext.
- 	
- 	interruptedController := aController.!

Item was removed:
- ----- Method: MVCDebugger>>resumeProcess: (in category 'private') -----
- resumeProcess: processToResume 
- 	"Finally free the reference to the controller if any. We cannot do this in #windowIsClosing."
- 	
- 	| controllerToReschedule |
- 	controllerToReschedule := interruptedController.
- 	interruptedController := nil.
- 	
- 	ScheduledControllers
- 		activeController: controllerToReschedule
- 		andProcess: processToResume.!

Item was removed:
- ----- Method: MVCProject>>debuggerClass (in category 'scheduling & debugging') -----
- debuggerClass
- 
- 	^ Smalltalk classNamed: #MVCDebugger!

Item was removed:
- ----- Method: MVCProject>>syntaxError: (in category 'scheduling & debugging') -----
- syntaxError: aSyntaxErrorNotification
- 
- 	super syntaxError: aSyntaxErrorNotification.
- 	Cursor normal show.
- 	Processor activeProcess suspend.!



More information about the Squeak-dev mailing list