<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hi Marcel, thanks for your reply!</p>
<p><br>
</p>
<p>> <span style="font-size: 12pt;">Agreed. The current state is only intermediate to improve the previous implementation, which mixed up state between MVC and Morphic. Next step would be to make MorphicDebugger and MVCDebugger "empty" again. :-) At least we
 can track progress now through those subclasses. Baby steps, you know.</span></p>
<div><br>
</div>
<div>That sounds great! In face of "baby steps," maybe we should document this progress in the class comments? Minimizing the risks that someone relies on the existence of these classes ...</div>
<div><br>
</div>
<div>> <span style="font-size: 12pt;">Hmm... the debugger has a tricky role in the system. Debugger invocation should only concern ToolSet (first dispatch after unhandled exception) and Project (for framework-based process handling), not the UIManager. We can
 talk about this more, if you are interested in this topic. :-)</span>
<div><br>
</div>
<div>Good to know: Project, not UIManager. Makes sense :) I will keep it mind - currently, I'm still working on the Inspectors, but this might be a potential project after Christmas :-)</div>
</div>
<div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
<p></p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 16. Dezember 2019 19:30:34<br>
<b>An:</b> John Pfersich via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Morphic-ct.1610.mcz</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
Hi Christoph.
<div><br>
</div>
<div>> <span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">I would generally like to get rid of the separate Debugger subclasses.</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Agreed. The current state is only intermediate to improve the previous implementation, which mixed up state between MVC and Morphic. Next step would be to make MorphicDebugger and
 MVCDebugger "empty" again. :-) At least we can track progress now through those subclasses. Baby steps, you know.</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">> </span><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">I think it could be good to revise the method composition here.</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Make sure that all DebuggerTests pass. Add new ones. I still need to document more thoughts on this because I think the reasons for the current architecture are not clear enough
 to other developers. We can talk about this, if you want to brainstorm on the topic. Keeping the image responsive is really tricky. In the past, the Emergency Evaluator (before 4.6) popped up way too often. We are in a better state now, I think. But there
 is still more to do.</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">> </span><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">And maybe outsource some UI specific things to the current UIManager ...</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Hmm... the debugger has a tricky role in the system. Debugger invocation should only concern ToolSet (first dispatch after unhandled exception) and Project (for framework-based process
 handling), not the UIManager. We can talk about this more, if you are interested in this topic. :-)</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Best,</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px">Marcel</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif;font-size: 16px"><br>
</span></div>
<div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 16.12.2019 15:01:16 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div id="divtagdefaultwrapper" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<p>Hi Marcel!</p>
<p><br>
</p>
<p>2.: As mentioned in the past, I would generally like to get rid of the separate Debugger subclasses (keep dimension of inheritance free for real features instead of implementation issues).</p>
<p>All the #<span>openOn:context:label:contents:fullView: implementations share some duplication:</span></p>
<p><span><img size="34622" contenttype="image/png" id="img902202" style="max-width: 99.9%; user-select: none;" contextid="img608136" tabindex="0" src="cid:9e5cc07a-790d-434d-ac5f-6f8c33fbc150"><!-- </img> --><br>
</span></p>
<p><span><img size="54317" contenttype="image/png" id="img49800" style="max-width: 99.9%; user-select: none;" contextid="img221685" tabindex="0" src="cid:f85fdc00-a30a-4c55-8b40-6255d5176a9a"><!-- </img> --><br>
</span></p>
<p>I think it could be good to revise the method composition here. Ideally, we could have a separate method that only performs the opening itself, and we could wrap it into #<span>setErrorRecursionFlagDuring: by the superclass.</span></p>
<p>And maybe outsource some UI specific things to the current UIManager ...</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: rgb(0, 0, 0);font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols">
<div name="divtagdefaultwrapper" style="font-family: Calibri,Arial,Helvetica,sans-serif;font-size: ;margin: 0">
<div>
<div class="_rp_T4" id="Item.MessagePartBody">
<div class="_rp_U4 ms-font-weight-regular ms-font-color-neutralDark rpHighlightAllClass rpHighlightBodyClass" id="Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="divtagdefaultwrapper"><span style="font-family: Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"></font></div>
</div>
</span></div>
</div>
</div>
</div>
</div>
<div><span style="font-size: 10pt;color: #808080"></span></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 16. Dezember 2019 14:32:05<br>
<b>An:</b> John Pfersich via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Morphic-ct.1610.mcz</span>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
Hi Christoph,
<div><br>
</div>
<div>hmm... I would rather not spread that recursion flag to outside Debugger class >> #openOn:... I will look into it. Thanks for those two bug reports that cause endless debuggers:</div>
<div><br>
</div>
<div>1. Generator step-over</div>
<div>Generator on: [:g | g yield: #foo].</div>
<div><br>
</div>
<div>2. Error in a debugger's build-with method.</div>
<div><br>
</div>
<div>Best,</div>
<div>Marcel</div>
<div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 16.12.2019 11:53:21 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">A new version of Morphic was added to project The Inbox:<br>
http://source.squeak.org/inbox/Morphic-ct.1610.mcz<br>
<br>
==================== Summary ====================<br>
<br>
Name: Morphic-ct.1610<br>
Author: ct<br>
Time: 16 December 2019, 11:52:56.435097 am<br>
UUID: 37c022c9-73a9-0648-ba0a-2b1fe98f86ad<br>
Ancestors: Morphic-mt.1608<br>
<br>
Prevent infinite debugger chains in case of a failure while building the predebugger window. Complements System-ct.1130.<br>
<br>
To reproduce, insert an error like "1/0" into Debugger >> #buildNotifierWith:label:message:.<br>
<br>
=============== Diff against Morphic-mt.1608 ===============<br>
<br>
Item was changed:<br>
----- Method: MorphicDebugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----<br>
openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full
<br>
<br>
| debugger uiBlock |<br>
debugger := self new<br>
process: processToDebug context: context;<br>
errorWasInUIProcess: (Project current spawnNewProcessIfThisIsUI: processToDebug).<br>
<br>
uiBlock := [<br>
full<br>
ifTrue: [debugger openFullNoSuspendLabel: title]<br>
ifFalse: [debugger openNotifierNoSuspendContents: contentsStringOrNil label: title].<br>
<br>
"Try drawing the debugger tool at least once to avoid freeze."<br>
debugger topView ifNotNil: [:window | window world displayWorld. "Not safely!!"].<br>
].<br>
<br>
"Schedule debugging in a deferred UI message if necessary. Note that only the ui process should execute ui code."<br>
(Project current uiProcess isActiveProcess not or: [processToDebug isActiveProcess])<br>
+ ifTrue: [Project current addDeferredUIMessage: [<br>
+ Processor activeProcess setErrorRecursionFlagDuring: uiBlock]]<br>
- ifTrue: [Project current addDeferredUIMessage: uiBlock]<br>
ifFalse: uiBlock.<br>
<br>
processToDebug suspend.<br>
<br>
"Get here only if active process is not the process-to-debug. So in tests, use a helper process if you want to access this return value."<br>
^ debugger!<br>
<br>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>