<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</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></p>
<p style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
Hi Marcel,</p>
<p style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</p>
<p style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
these are interesting concepts though hard to evaluate without real-world examples, I guess. But it does seem to be a crucial core concept to me. Maybe this would better fit into the System package? I'd like to keep the Kernel package as small as possible and
 this one is rather advanced stuff ... <span>😊</span></p>
<div><br>
</div>
<div id="Signature" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;">
<div name="divtagdefaultwrapper" style="font-family: Calibri, Arial, Helvetica, sans-serif; margin: 0px;">
<div></div>
</div>
</div>
</div>
<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">Best,
<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">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" target="_blank" rel="noopener noreferrer" id="LPNoLP"><font size="2"><span id="LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
<div class="_rp_T4" id="Item.MessagePartBody">Christoph</div>
</div>
<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, 19. April 2021 17:50:02<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Kernel-mt.1390.mcz</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Here are the two options in an exapmle:
<div><br>
</div>
<div><img id="9489427d-726d-412f-9850-6c2ec62bc9c8" width="706" height="451" src="cid:96ea598e-8551-44ae-8472-e87b1efbb447"><!-- </img> --><br>
</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 19.04.2021 17:48:03 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">A new version of Kernel was added to project The Inbox:<br>
http://source.squeak.org/inbox/Kernel-mt.1390.mcz<br>
<br>
==================== Summary ====================<br>
<br>
Name: Kernel-mt.1390<br>
Author: mt<br>
Time: 19 April 2021, 5:47:51.865053 pm<br>
UUID: c36ac126-16de-3d41-be90-6b7fd46bc0c7<br>
Ancestors: Kernel-nice.1389<br>
<br>
Proposal. Better support for hot code updates by restarting from a denoted (i.e. domain-specific) context (or active method). For example, this could be used to better update the McmUpdater as soon as a code change in itself is detected. Two options: either
 mark the restart context with an on:do: handler or process a query to look up that context such as by package name.<br>
<br>
=============== Diff against Kernel-nice.1389 ===============<br>
<br>
Item was added:<br>
+ Notification subclass: #RestartContextRequest<br>
+ instanceVariableNames: ''<br>
+ classVariableNames: ''<br>
+ poolDictionaries: ''<br>
+ category: 'Kernel-Exceptions'!<br>
<br>
Item was added:<br>
+ ----- Method: RestartContextRequest class>>fromContextSuchThat: (in category 'as yet unclassified') -----<br>
+ fromContextSuchThat: block<br>
+ "Use this to restart from an arbitrary context on the stack."<br>
+ <br>
+ | context |<br>
+ context := thisContext sender.<br>
+ [context notNil] whileTrue: [<br>
+ (block value: context) ifTrue: [<br>
+ ^ self new restartFrom: context].<br>
+ context := context sender].<br>
+ self error: 'No context found!!'.!<br>
<br>
Item was added:<br>
+ ----- Method: RestartContextRequest>>restartFrom: (in category 'as yet unclassified') -----<br>
+ restartFrom: aContext<br>
+ <br>
+ | process actualContext unwindError |<br>
+ aContext ifNil: [^ self error: 'No context to restart!!'].<br>
+ <br>
+ process := Processor activeProcess.<br>
+ <br>
+ [actualContext := process popTo: aContext.<br>
+ unwindError := actualContext ~= aContext.<br>
+ unwindError<br>
+ ifTrue: [process resume]<br>
+ ifFalse: [process restartTop; stepToSendOrReturn; resume]<br>
+ ] fork.<br>
+ <br>
+ process suspend.!<br>
<br>
Item was added:<br>
+ ----- Method: RestartContextRequest>>restartFromHere (in category 'as yet unclassified') -----<br>
+ restartFromHere<br>
+ "Use this to restart from an exception handler."<br>
+ self restartFrom: handlerContext.!<br>
<br>
<br>
</div>
</blockquote>
</div>
</div>
</body>
</html>