<div dir="ltr">cool, thanks! :)<div>(will continue tomorrow with this)</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 15, 2014 at 8:43 PM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Eliot Miranda uploaded a new version of Cog to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/Cog-eem.210.mcz" target="_blank">http://source.squeak.org/VMMaker/Cog-eem.210.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Cog-eem.210<br>
Author: eem<br>
Time: 15 October 2014, 11:42:52.194 am<br>
UUID: 8ffc4e21-a5b2-4526-abec-324772d765d7<br>
Ancestors: Cog-eem.209<br>
<br>
Fix bootstrap given addition of remapBuffer assert<br>
check in slowPrmitiveResponse in VMMaker.oscog-eem.897.<br>
<br>
=============== Diff against Cog-eem.209 ===============<br>
<br>
Item was changed:<br>
  ----- Method: SimulatorHarness&gt;&gt;withExecutableInterpreter:do: (in category &#39;bootstrap methods&#39;) -----<br>
  withExecutableInterpreter: sim do: aBlock<br>
        &quot;With the oldInterpreter ready to execute code, evaluate aBlock,<br>
         then return the interpreter (and the heap) to the ``just snapshotted&#39;&#39; state.&quot;<br>
+       | savedpc savedfp initialContext finalContext |<br>
-       | savedpc initialContext finalContext |<br>
        sim<br>
                initStackPages;<br>
                loadInitialContext;<br>
                internalizeIPandSP.<br>
-       initialContext := sim frameContext: sim localFP.<br>
        savedpc := sim localIP.<br>
+       savedfp := sim localFP.<br>
-       sim objectMemory hasSpurMemoryManagerAPI ifFalse:<br>
-               [sim objectMemory pushRemappableOop: initialContext].<br>
        &quot;sim printHeadFrame.&quot;<br>
        aBlock value.<br>
        &quot;sim printHeadFrame.&quot;<br>
        sim<br>
                internalPush: sim localIP;<br>
                externalizeIPandSP.<br>
        &quot;now undo the execution state&quot;<br>
+       self assert: sim localFP = savedfp.<br>
+       initialContext := sim frameContext: savedfp.<br>
        finalContext := sim voidVMStateForSnapshotFlushingExternalPrimitivesIf: false.<br>
-       sim objectMemory hasSpurMemoryManagerAPI ifFalse:<br>
-               [initialContext := sim objectMemory popRemappableOop].<br>
        self assert: initialContext = finalContext.<br>
        self assert: sim localIP = savedpc.<br>
        sim objectMemory<br>
                storePointer: SuspendedContextIndex<br>
                ofObject: sim activeProcess<br>
                withValue: finalContext!<br>
<br>
Item was changed:<br>
  ----- Method: SpurBootstrap&gt;&gt;allocateClassTable (in category &#39;bootstrap image&#39;) -----<br>
  allocateClassTable<br>
        &quot;Allocate the root of the classTable plus enough pages to accomodate all classes in<br>
         the classToIndex map.  Don&#39;t fill in the entries yet; the classes have yet to be cloned.&quot;<br>
        | tableRoot page maxSize numPages |<br>
        tableRoot := newHeap<br>
                                        allocateSlots: newHeap classTableRootSlots + newHeap hiddenRootSlots<br>
                                        format: newHeap arrayFormat<br>
                                        classIndex: newHeap arrayClassIndexPun.<br>
        self assert: (newHeap numSlotsOf: tableRoot) = (newHeap classTableRootSlots + newHeap hiddenRootSlots).<br>
        self assert: (newHeap formatOf: tableRoot) = newHeap arrayFormat.<br>
        self assert: (newHeap classIndexOf: tableRoot) = newHeap arrayClassIndexPun.<br>
        newHeap nilFieldsOf: tableRoot.<br>
        &quot;first page is strong&quot;<br>
        page := newHeap<br>
                                        allocateSlots: newHeap classTablePageSize<br>
                                        format: newHeap arrayFormat<br>
                                        classIndex: newHeap arrayClassIndexPun.<br>
        self assert: (newHeap numSlotsOf: page) = newHeap classTablePageSize.<br>
        self assert: (newHeap formatOf: tableRoot) = newHeap arrayFormat.<br>
        self assert: (newHeap classIndexOf: tableRoot) = newHeap arrayClassIndexPun.<br>
        self assert: (newHeap objectAfter: tableRoot limit: newHeap freeStart) = page.<br>
        lastClassTablePage := page.<br>
        newHeap nilFieldsOf: page.<br>
        newHeap storePointer: 0 ofObject: tableRoot withValue: page.<br>
+       newHeap setHiddenRootsObj: tableRoot.<br>
-       newHeap hiddenRootsObj: tableRoot.<br>
        maxSize := classToIndex inject: 0 into: [:a :b| a max: b].<br>
        numPages := (maxSize + newHeap classTableMinorIndexMask / newHeap classTablePageSize) truncated.<br>
        2 to: numPages do:<br>
                [:i|<br>
                page := newHeap<br>
                                        allocateSlots: newHeap classTablePageSize<br>
                                        format: newHeap arrayFormat<br>
                                        classIndex: newHeap arrayClassIndexPun.<br>
                self assert: (newHeap numSlotsOf: page) = newHeap classTablePageSize.<br>
                self assert: (newHeap formatOf: page) = newHeap arrayFormat.<br>
                self assert: (newHeap classIndexOf: page) = newHeap arrayClassIndexPun.<br>
                newHeap fillObj: page numSlots: newHeap classTablePageSize with: newHeap nilObject.<br>
                newHeap storePointer: i - 1 ofObject: tableRoot withValue: page.<br>
                self assert: (newHeap objectAfter: (newHeap fetchPointer: i - 2 ofObject: tableRoot)  limit: newHeap freeStart) = page.<br>
                lastClassTablePage := page].<br>
        &quot;and once again to recompute numClassTablePages post building the class table.&quot;<br>
        newHeap instVarNamed: &#39;numClassTablePages&#39; put: nil.<br>
+       newHeap setHiddenRootsObj: tableRoot!<br>
-       newHeap hiddenRootsObj: tableRoot!<br>
<br>
</blockquote></div><br></div>