<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p><tab-container class="js-previewable-comment-form previewable-comment-form preview-selected" data-preview-url="/preview?markdown_unsupported=false&repository=187610127&subject=0&subject_type=Issue" style="box-sizing: border-box; display: block; "></p>
<div role="tabpanel" class="js-preview-panel overflow-auto border-bottom mx-0 my-3 mx-md-2 mb-md-2" tabindex="0" style="box-sizing: border-box; border-bottom: 1px solid rgb(225, 228, 232) !important; overflow: auto !important; margin: 16px 8px 8px !important; outline: none; box-shadow: none;">
<div class="comment js-suggested-changes-container" data-thread-side="" style="box-sizing: border-box; border: 0px;">
<div class="comment-body markdown-body js-preview-body" style="box-sizing: border-box; line-height: 1.5; overflow-wrap: break-word; width: 653px; padding: 4px 4px 16px; overflow: visible; background-color: initial; border-bottom: 1px solid rgb(225, 228, 232); min-height: 826px;">
<p style="box-sizing: border-box; margin-bottom: 16px;">Hi all!</p>
<p style="box-sizing: border-box; margin-bottom: 16px;">I rarely discovered that much errors with one single command :-)</p>
<h2 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em; border-bottom: 1px solid rgb(234, 236, 239);">
Steps to reproduce</h2>
<p style="box-sizing: border-box; margin-bottom: 16px;">Print it:</p>
<div class="highlight highlight-source-smalltalk" style="box-sizing: border-box; margin-bottom: 16px; background-color: initial; overflow: visible !important;">
<pre style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; margin-top: 0px; margin-bottom: 0px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; background-color: rgb(246, 248, 250); border-radius: 3px; word-break: normal;">(<span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 92, 197);">ObjectTracer</span> <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 92, 197);">on:</span> <span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 92, 197);">true</span>) <span class="pl-k" style="box-sizing: border-box; color: rgb(215, 58, 73);">ifTrue:</span> [<span class="pl-c1" style="box-sizing: border-box; color: rgb(0, 92, 197);">1</span>]</pre>
</div>
<h2 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em; border-bottom: 1px solid rgb(234, 236, 239);">
Expected behavior</h2>
<p style="box-sizing: border-box; margin-bottom: 16px;">It is printed: <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">1</code></p>
<h2 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em; border-bottom: 1px solid rgb(234, 236, 239);">
Actual behavior</h2>
<p style="box-sizing: border-box; margin-bottom: 16px;">The following tracer notifications appear (proceed them all):</p>
<ol style="box-sizing: border-box; padding-left: 2em; margin-top: 0px; margin-bottom: 16px;">
<li style="box-sizing: border-box;">(3x) <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#printStringLimitedTo:</code>, <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#longPrintOn:limitedTo:indent:</code> and
 again <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#printStringLimitedTo:</code>,
 caused by <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">SmalltalkImage >>
 #logSqueakError:inContext:</code></li><li style="box-sizing: border-box; margin-top: 0.25em;"><code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#mustBeBoolean</code></li><li style="box-sizing: border-box; margin-top: 0.25em;">(3 more print message called by <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#logSqueakError:inContext:</code> again,
 see the next error)</li><li style="box-sizing: border-box; margin-top: 0.25em;"><span style="box-sizing: border-box; font-weight: 600;">Error: Where's the jump?</span><br style="box-sizing: border-box;">
Caused by <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#mustBeBooleanIn:</code>, <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#skipBackBeforeJump</code></li></ol>
<p style="box-sizing: border-box; margin-bottom: 16px;">If you still keep proceeding:</p>
<ol start="5" style="box-sizing: border-box; padding-left: 2em; margin-top: 0px; margin-bottom: 16px;">
<li style="box-sizing: border-box;">(3 more print message called by <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#logSqueakError:inContext:</code> again,
 see the next error)</li><li style="box-sizing: border-box; margin-top: 0.25em;">Finally, the <span style="box-sizing: border-box; font-weight: 600;">NonBooleanReceiver error</span> from 2.</li><li style="box-sizing: border-box; margin-top: 0.25em;">VM crashes.</li></ol>
<h2 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; line-height: 1.25; padding-bottom: 0.3em; border-bottom: 1px solid rgb(234, 236, 239);">
Summarizing the bugs</h2>
<h3 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; font-size: 1.25em; line-height: 1.25;">
ObjectTracer traces too much</h3>
<p style="box-sizing: border-box; margin-bottom: 16px;">The amount of messages printed by the ObjectTracer is an unintended side effect of the way it signals calls via the debugger. The debugger logs this error, including the stack trace. How can we avoid this?
 Should we suppress all further notifications from one ObjectTracer instance during the first one is debugged?</p>
<h3 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; font-size: 1.25em; line-height: 1.25;">
<code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: inherit; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#mustBeBoolean</code> is sent
 to boolean proxy</h3>
<p style="box-sizing: border-box; margin-bottom: 16px;">This is caused by the simulation of the inlined <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#ifTrue:</code> call.<br style="box-sizing: border-box;">
I don't know whether this is worth to be fixed before Scorch?<br style="box-sizing: border-box;">
If yes, I think we would need to disable inlining for this particular selector or make inlining <a href="http://forum.world.st/The-Inbox-HelpSystem-Core-ct-123-mcz-tp5105402p5113636.html" rel="nofollow" style="box-sizing: border-box; background-color: initial; color: rgb(3, 102, 214); text-decoration-line: none;">opt-out-able
 as proposed here (this would probably be way too slow)</a>.</p>
<h3 style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; font-size: 1.25em; line-height: 1.25;">
<code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: inherit; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#mustBoBoolean</code> depends
 on caller chain</h3>
<p style="box-sizing: border-box; margin-bottom: 16px;">It turns out that <code style="box-sizing: border-box; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; font-size: 11.9px; padding: 0.2em 0.4em; margin: 0px; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px;">#mustBeBoolean</code> relies
 on being called from a context that just did a jump. This makes it impossible to forward this message as usual via a transparent proxy/decorator.</p>
<p style="box-sizing: border-box;">We use this pattern in other methods as well. How can we enable transparent wrappers not to collide with method contexts depending on their sender?</p>
<div><br>
</div>
</div>
</div>
</div>
</tab-container>
<div class="px-2" style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px; padding-left: 8px !important; padding-right: 8px !important;">
<div class="position-relative" style="box-sizing: border-box; "></div>
</div>
<div class="flex-items-center flex-justify-end mx-2 mb-2 px-0 d-none d-md-flex" style="box-sizing: border-box; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-size: 14px; justify-content: flex-end !important; align-items: center !important; margin-bottom: 8px !important; margin-right: 8px !important; margin-left: 8px !important; padding-left: 0px !important; padding-right: 0px !important; display: flex !important;">
<div class="d-flex flex-items-center flex-auto" style="box-sizing: border-box; align-items: center !important; flex: 1 1 auto !important; display: flex !important;">
</div>
</div>
Best,
<p></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"><font face="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>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
</body>
</html>