<div dir="ltr">Hi Stéphane,<div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 3, 2018 at 1:41 AM, Stéphane Rollandin <span dir="ltr"><<a href="mailto:lecteur@zogotounga.net" target="_blank">lecteur@zogotounga.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
Eliot Miranda uploaded a new version of Compiler to project The Trunk:<br></span>
...<span class=""><br>
First cut of FullBlockClosure support in the compiler. <br>
</span></blockquote>
What are full block closures?<br></blockquote><div><br></div><div>FullBlockClosure has a separate compiled method from its home; when in use CompiledMethod is the default class for methods; CompiledBlock is the default class for blocks.  This gives faster block activation.  It also means better support for clean blocks (blocks with no home) in that no outer context is needed.  FullBlockClosure is important in Scorch, Clément's adaptive optimizer, in that deoptimization is much simplified.  The old embedded block scheme where the block byte codes are included in the home method, and literals are shared between the two, is compact, but very difficult to interact with when the adaptive optimizer has to (de)optimize a single block or method activation, since the embedding of block byte codes means that the one method is serving several different scopes.</div><div><br></div><div>This year we should install the SistaV1 bytecode set and FullBlockClosures as the default in the Squeak image, hopefully in time for the next full release.  In Pharo, Clément is already preparing to deploy the full Scorch/Sista optimizer.  Hopefully I'll be able to port Scorch to Squeak later this year.</div><div><br></div></div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div></div>