[squeak-dev] The Trunk: System-mt.1382.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jan 18 15:52:14 UTC 2023


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

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

Name: System-mt.1382
Author: mt
Time: 18 January 2023, 4:52:12.391866 pm
UUID: 13ab9e16-a00e-4a4c-a572-4f039c386451
Ancestors: System-mt.1381

*** Debugger Refactoring - Step 1 of 2 ***

We want to get rid of MorphicDebugger and MVCDebugger variations while keeping Debugger as simple as possible. So, we move GUI-framework-specific (scheduling) code to MorphicProject and MVCProject.

In this first step, we set up the new hooks for Morphic and MVC:

#debugProcess:inWindow:
   #prepareProcessForDebugger:
   #openDebuggerWindow:
   #suspendProcessSafely:
#resumeProcessSafely:

Thanks to Christoph (ct) for the idea and constant reminding that I should finally review and commit this. :-) Note that I feel responsible for any bad naming as I decided to rewrite some parts of the interface between Debugger and Project. ;-)

Note that SavedExtent is not available anymore in Debugger but will be back soon. Sorry for any inconvenience.

=============== Diff against System-mt.1381 ===============

Item was changed:
  ----- Method: Process>>clearErrorRecursionFlag (in category '*System-debugging support') -----
  clearErrorRecursionFlag
  
+ 	self environmentRemoveKey: #errorRecursionFlag ifAbsent: nil.!
- 	self environmentAt: #errorRecursionFlag put: false.!

Item was added:
+ ----- Method: Project>>debugProcess:inWindow: (in category 'scheduling & debugging') -----
+ debugProcess: processToDebug inWindow: aViewOrModel
+ 	"Safely open a 'debugger tool' (here: aViewOrModel) on processToDebug. Projects can customize prepare-open-suspend hooks to keep the UI (and system) responsive. Also see #resumeProcessSafely:. There should be no need to overwrite this method in subclasses but only the hooks."
+ 
+ 	self
+ 		prepareProcessForDebugger: processToDebug;
+ 		openDebuggerWindow: aViewOrModel;
+ 		suspendProcessSafely: processToDebug.!

Item was added:
+ ----- Method: Project>>openDebuggerWindow: (in category 'scheduling & debugging') -----
+ openDebuggerWindow: aViewOrModel
+ 	"Build an interactive view in the current GUI framework."
+ 
+ 	self uiManager toolBuilder open: aViewOrModel.!

Item was added:
+ ----- Method: Project>>prepareProcessForDebugger: (in category 'scheduling & debugging') -----
+ prepareProcessForDebugger: processToDebug
+ 
+ 	EventSensor default flushEvents.
+ 	Cursor normal show.	
+ !

Item was added:
+ ----- Method: Project>>resumeProcessSafely: (in category 'scheduling & debugging') -----
+ resumeProcessSafely: aProcess
+ 	"A debugger wants to resume the process it is debugging. Custom projects can refine this hook to take precautions so that the UI stays responsive."
+ 	
+ 	aProcess resume.!

Item was added:
+ ----- Method: Project>>suspendProcessSafely: (in category 'scheduling & debugging') -----
+ suspendProcessSafely: processToDebug
+ 	"Suspend processToDebug. Note that if that process is the active process, no further code will be executed in the sender."
+ 	
+ 	processToDebug suspend.!



More information about the Squeak-dev mailing list