[Vm-dev] VM Maker: VMMaker.oscog-eem.956.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Nov 24 20:17:38 UTC 2014
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.956.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.956
Author: eem
Time: 24 November 2014, 12:15:08.31 pm
UUID: c2eb8c1e-ed43-4316-80b4-781c57cf3f1e
Ancestors: VMMaker.oscog-eem.955
Make sure #ObjectMemory option is set in
initializationOptions if defaultObjectMemoryClass exists.
=============== Diff against VMMaker.oscog-eem.955 ===============
Item was changed:
----- Method: VMClass class>>initializeMiscConstants (in category 'initialization') -----
initializeMiscConstants
"Falsify the `what type of VM is this?' flags that are defined in the various interp.h files,
or in the case of VMBIGENDIAN the various sqConfig.h files.
Subclass implementations need to include a super initializeMiscConstants"
| omc |
VMBIGENDIAN class. "Mention this for the benefit of CCodeGenerator>>emitCConstantsOn:"
self isInterpreterClass ifTrue:
[STACKVM := COGVM := COGMTVM := false].
initializationOptions ifNil: [self initializationOptions: Dictionary new].
omc := initializationOptions at: #ObjectMemory ifAbsent: nil.
+ (omc isNil and: [self defaultObjectMemoryClass notNil]) ifTrue:
+ [omc := initializationOptions at: #ObjectMemory put: self defaultObjectMemoryClass name].
initializationOptions
at: #SqueakV3ObjectMemory "the good ole default"
put: (omc
ifNil: [true]
ifNotNil: [(Smalltalk at: omc) includesBehavior: ObjectMemory]);
+ at: #SpurObjectMemory "the new contender"
- at: #SpurObjectMemory "the new condender"
put: (omc
ifNil: [false]
ifNotNil: [(Smalltalk at: omc) includesBehavior: SpurMemoryManager]).
"Use ifAbsentPut: so that they will get copied back to the
VMMaker's options and dead code will likely be eliminated."
NewspeakVM := initializationOptions at: #NewspeakVM ifAbsentPut: [false].
SistaVM := initializationOptions at: #SistaVM ifAbsentPut: [false].
MULTIPLEBYTECODESETS := initializationOptions at: #MULTIPLEBYTECODESETS ifAbsentPut: [false].
"N.B. Not yet implemented."
IMMUTABILITY := initializationOptions at: #IMMUTABILITY ifAbsentPut: [false].
"These for scripts etc... Usually they should get set by an Interpreter class's initializeMiscConstantsWith:"
(initializationOptions includesKey: #STACKVM) ifTrue:
[STACKVM := initializationOptions at: #STACKVM].
(initializationOptions includesKey: #COGVM) ifTrue:
[COGVM := initializationOptions at: #COGVM].
(initializationOptions includesKey: #COGMTVM) ifTrue:
[COGMTVM := initializationOptions at: #COGMTVM]!
More information about the Vm-dev
mailing list