Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.76.mcz
==================== Summary ====================
Name: Cog-eem.76
Author: eem
Time: 7 September 2013, 1:25:36.672 pm
UUID: b037d52a-2e90-453d-9e0a-73358bdbd71c
Ancestors: Cog-eem.75
Update SpurBootstrap class comment.
Document idea of having prototype methods for different
Squeak/Pharo versions.
=============== Diff against Cog-eem.75 ===============
Item was changed:
Object subclass: #SpurBootstrap
instanceVariableNames: 'oldHeap newHeap map reverseMap classToIndex oldInterpreter lastClassTablePage symbolMap methodClasses'
classVariableNames: ''
poolDictionaries: 'VMObjectIndices'
category: 'Cog-Bootstrapping'!
+ !SpurBootstrap commentStamp: 'eem 9/7/2013 13:23' prior: 0!
+ SpurBootstrap bootstraps an image in SpurMemoryManager format from a Squeak V3 + closures format.
- !SpurBootstrap commentStamp: 'eem 9/2/2013 13:26' prior: 0!
- SpurBootstrap bootstraps an image in CogMemoryManager format from a Squeak V3 + closures format.
e.g.
(SpurBootstrap32 new on: '/Users/eliot/Cog/startreader.image')
transform;
launch
Instance Variables
+ classToIndex: <Dictionary>
+ lastClassTablePage: <Integer>
+ map: <Dictionary>
+ methodClasses: <Set>
+ newHeap: <SpurMemoryManager>
+ oldHeap: <NewObjectMemory>
+ oldInterpreter: <StackInterpreterSimulator>
+ reverseMap: <Dictionary>
+ symbolMap: <Dictionary>
- classToIndex: <Dictionary>
- map: <Dictionary>
- newHeap: <CogMemoryManager>
- oldHeap: <NewObjectMemory>
- oldInterpreter: <StackInterpreterSimulator>
classToIndex
- oldClass to new classIndex map
+ lastClassTablePage
+ - oop in newHeap of last classTable page. U<sed in validation to filter-out class table.
+
+ methodClasses
+ - cache of methodClassAssociations for classes in which modified methods are installed
+
map
- oldObject to newObject map
newHeap
- the output, bootstrapped image
oldHeap
- the input, image
oldInterpreter
- the interpreter associated with oldHeap, needed for a hack to grab WeakArray
+
+ reverseMap
+ - newObject to oldObject map
+
+ symbolMap
+ - symbol toi symbol oop in oldHeap, used to map prototype methdos to methods in oldHeap!
- !
Item was changed:
----- Method: SpurBootstrap>>prototypeClassNameMetaSelectorMethodDo: (in category 'method prototypes') -----
prototypeClassNameMetaSelectorMethodDo: quaternaryBlock
+ "Evaluate aBlock with class name, class is meta, method and selector.
+ For now find methods in class-side category #'method prototypes'.
+ Scheme could be extended to have different protocols for different
+ Squeak/Pharo versions."
- "Evaluate aBlock with class name, class is meta, method and selector."
(SpurBootstrap class organization listAtCategoryNamed: #'method prototypes') do:
[:protoSelector| | method className isMeta |
method := SpurBootstrap class >> protoSelector.
className := self classNameForPrototypeMethod: method.
(isMeta := className endsWith: 'class') ifTrue:
[className := (className allButLast: 5) asSymbol].
quaternaryBlock
value: className
value: isMeta
value: (self selectorForPrototypeMethod: method)
value: method]!
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.352.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.352
Author: eem
Time: 6 September 2013, 10:45:51.056 am
UUID: 9830d0ef-017d-4e8a-b370-2cd26c4b911d
Ancestors: VMMaker.oscog-eem.351
Update SpurMemoryManager's class comment. Improve write-up of
lazy become. Add a sketch of a possible incremental compaction
algorithm. Add a sketch of a possible segmentation scheme that
appears not to have any segments.
=============== Diff against VMMaker.oscog-eem.351 ===============
Item was changed:
CogClass subclass: #SpurMemoryManager
(excessive size, no diff calculated)