VM Maker: Cog-eem.210.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: Cog-eem.210.mcz

commits-2
 
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!

Reply | Threaded
Open this post in threaded view
|

Re: VM Maker: Cog-eem.210.mcz

EstebanLM
 
cool, thanks! :)
(will continue tomorrow with this)

On Wed, Oct 15, 2014 at 8:43 PM, <[hidden email]> 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!