[Vm-dev] VM Maker: Cog-eem.210.mcz
Esteban Lorenzano
estebanlm at gmail.com
Wed Oct 15 18:50:49 UTC 2014
cool, thanks! :)
(will continue tomorrow with this)
On Wed, Oct 15, 2014 at 8:43 PM, <commits at source.squeak.org> wrote:
>
> Eliot Miranda uploaded a new version of Cog to project VM Maker:
> http://source.squeak.org/VMMaker/Cog-eem.210.mcz
>
> ==================== Summary ====================
>
> Name: Cog-eem.210
> Author: eem
> Time: 15 October 2014, 11:42:52.194 am
> UUID: 8ffc4e21-a5b2-4526-abec-324772d765d7
> Ancestors: Cog-eem.209
>
> Fix bootstrap given addition of remapBuffer assert
> check in slowPrmitiveResponse in VMMaker.oscog-eem.897.
>
> =============== Diff against Cog-eem.209 ===============
>
> Item was changed:
> ----- Method: SimulatorHarness>>withExecutableInterpreter:do: (in
> category 'bootstrap methods') -----
> withExecutableInterpreter: sim do: aBlock
> "With the oldInterpreter ready to execute code, evaluate aBlock,
> then return the interpreter (and the heap) to the ``just
> snapshotted'' state."
> + | savedpc savedfp initialContext finalContext |
> - | savedpc initialContext finalContext |
> sim
> initStackPages;
> loadInitialContext;
> internalizeIPandSP.
> - initialContext := sim frameContext: sim localFP.
> savedpc := sim localIP.
> + savedfp := sim localFP.
> - sim objectMemory hasSpurMemoryManagerAPI ifFalse:
> - [sim objectMemory pushRemappableOop: initialContext].
> "sim printHeadFrame."
> aBlock value.
> "sim printHeadFrame."
> sim
> internalPush: sim localIP;
> externalizeIPandSP.
> "now undo the execution state"
> + self assert: sim localFP = savedfp.
> + initialContext := sim frameContext: savedfp.
> finalContext := sim
> voidVMStateForSnapshotFlushingExternalPrimitivesIf: false.
> - sim objectMemory hasSpurMemoryManagerAPI ifFalse:
> - [initialContext := sim objectMemory popRemappableOop].
> self assert: initialContext = finalContext.
> self assert: sim localIP = savedpc.
> sim objectMemory
> storePointer: SuspendedContextIndex
> ofObject: sim activeProcess
> withValue: finalContext!
>
> Item was changed:
> ----- Method: SpurBootstrap>>allocateClassTable (in category 'bootstrap
> image') -----
> allocateClassTable
> "Allocate the root of the classTable plus enough pages to
> accomodate all classes in
> the classToIndex map. Don't fill in the entries yet; the classes
> have yet to be cloned."
> | tableRoot page maxSize numPages |
> tableRoot := newHeap
> allocateSlots: newHeap
> classTableRootSlots + newHeap hiddenRootSlots
> format: newHeap arrayFormat
> classIndex: newHeap
> arrayClassIndexPun.
> self assert: (newHeap numSlotsOf: tableRoot) = (newHeap
> classTableRootSlots + newHeap hiddenRootSlots).
> self assert: (newHeap formatOf: tableRoot) = newHeap arrayFormat.
> self assert: (newHeap classIndexOf: tableRoot) = newHeap
> arrayClassIndexPun.
> newHeap nilFieldsOf: tableRoot.
> "first page is strong"
> page := newHeap
> allocateSlots: newHeap
> classTablePageSize
> format: newHeap arrayFormat
> classIndex: newHeap
> arrayClassIndexPun.
> self assert: (newHeap numSlotsOf: page) = newHeap
> classTablePageSize.
> self assert: (newHeap formatOf: tableRoot) = newHeap arrayFormat.
> self assert: (newHeap classIndexOf: tableRoot) = newHeap
> arrayClassIndexPun.
> self assert: (newHeap objectAfter: tableRoot limit: newHeap
> freeStart) = page.
> lastClassTablePage := page.
> newHeap nilFieldsOf: page.
> newHeap storePointer: 0 ofObject: tableRoot withValue: page.
> + newHeap setHiddenRootsObj: tableRoot.
> - newHeap hiddenRootsObj: tableRoot.
> maxSize := classToIndex inject: 0 into: [:a :b| a max: b].
> numPages := (maxSize + newHeap classTableMinorIndexMask / newHeap
> classTablePageSize) truncated.
> 2 to: numPages do:
> [:i|
> page := newHeap
> allocateSlots: newHeap
> classTablePageSize
> format: newHeap arrayFormat
> classIndex: newHeap
> arrayClassIndexPun.
> self assert: (newHeap numSlotsOf: page) = newHeap
> classTablePageSize.
> self assert: (newHeap formatOf: page) = newHeap
> arrayFormat.
> self assert: (newHeap classIndexOf: page) = newHeap
> arrayClassIndexPun.
> newHeap fillObj: page numSlots: newHeap classTablePageSize
> with: newHeap nilObject.
> newHeap storePointer: i - 1 ofObject: tableRoot withValue:
> page.
> self assert: (newHeap objectAfter: (newHeap fetchPointer:
> i - 2 ofObject: tableRoot) limit: newHeap freeStart) = page.
> lastClassTablePage := page].
> "and once again to recompute numClassTablePages post building the
> class table."
> newHeap instVarNamed: 'numClassTablePages' put: nil.
> + newHeap setHiddenRootsObj: tableRoot!
> - newHeap hiddenRootsObj: tableRoot!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20141015/07cdff5d/attachment-0001.htm
More information about the Vm-dev
mailing list