<div dir="ltr"><br><br><div class="gmail_quote">On Fri, Aug 15, 2008 at 7:20 AM, Colin Putney <span dir="ltr">&lt;<a href="mailto:cputney@wiresong.ca">cputney@wiresong.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d"><br>
On 14-Aug-08, at 6:57 PM, Eliot Miranda wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Does a ChangeSetSlice record the preamble and postscript? &nbsp;Do these get run automaticaly when a ChangeSetSlice is loaded?<br>
</blockquote>
<br></div>
No, that doesn&#39;t really fit with MC&#39;s versioning model.<br>
<br>
Does your closure bootstrap have preamble and postscript? What do they do?</blockquote><div><br></div><div>There are a few. &nbsp;Preamble is essentially commentary so we can ignore it, but it would be great if MC2 supported a per-package or per-slice comment that allowed one to document the purpose, api and authorship et al of a package/slice.</div>
<div><br></div><div>Postscripts do the following:</div><div><br></div><div>compiler preload.cs</div><div>- rename&nbsp;MethodContext&#39;s&nbsp;receiverMap inst var to closureOrNil via</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;MethodContext instVarNames at: 2 put: &#39;closureOrNil&#39;<br>
</div><div>MethodContext can&#39;t be recompiled without brining the system down (infinite loop enumerating contexts for one).<br></div><div><br></div><div>Closure Compiler.cs:</div><div>- remove unused CompiledMethod class vars. &nbsp;CompiledMethod can&#39;t reliably be recompiled because the ClassBuilder restricts it.</div>
<div>- run Smalltalk recreateSpecialObjectsArray to add BlockClosure to the array</div><div><br></div><div>Compile Using Closures.cs</div><div>- recompiles the system (could be done elsewhere in the bootstrap script, but its the kind of thing one needs to do after loading a slice/package that modifies the compiler)</div>
<div><br></div><div>Married Context Management Access.cs<br></div><div>- recompiles ContextPart and subclasses after changing the way inst var access is compiled (use long-form bytecodes instead of short-form, a hack used by the stack vm)</div>
<div><br></div><div>MultiPaneBrowser.cs</div><div>- toggles a preference enabling multi-pane browsing once entire change set has loaded</div><div><br></div><div>So recompilation, running low-level system inits, setting preferences, getting around limitations in the class builder.</div>
<div><br></div><div>HTH</div><div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br><font color="#888888">
<br>
Colin<br>
<br>
</font></blockquote></div><br></div>