[Vm-dev] VM Maker: VMMaker.oscog-eem.1624.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Jan 9 18:40:49 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1624.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1624
Author: eem
Time: 9 January 2016, 10:39:04.496004 am
UUID: 9899b029-c39d-4da7-8c5b-b318c79fdbf8
Ancestors: VMMaker.oscog-eem.1623
Fix SmallFloat primitive inclusion
=============== Diff against VMMaker.oscog-eem.1623 ===============
Item was changed:
----- Method: SpurMemoryManager class>>initializeWithOptions: (in category 'class initialization') -----
initializeWithOptions: optionsDictionary
"SpurMemoryManager initializeWithOptions: Dictionary new"
{self}, (self ancilliaryClasses: optionsDictionary) do:
[:aSuperclass|
aSuperclass withAllSubclasses do:
[:class| class initializationOptions: optionsDictionary]].
super initializeWithOptions: optionsDictionary.
+ initializationOptions
+ at: #Spur32BitMemoryManager ifAbsentPut: false;
+ at: #Spur64BitMemoryManager ifAbsentPut: false.
self initialize.
self initBytesPerWord: (self == SpurMemoryManager
ifTrue: [optionsDictionary at: #BytesPerWord ifAbsent: [4]]
ifFalse: [self wordSize]).
self initializeObjectHeaderConstants. "Initializes BaseHeaderSize so do early"
self initializeSpurObjectRepresentationConstants.
self initializeSpecialObjectIndices.
self initializeCompactClassIndices.
self initializePrimitiveErrorCodes.
SpurGenerationScavenger initialize!
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"
ifAbsentPut: (omc
ifNil: [true]
ifNotNil: [(Smalltalk at: omc) includesBehavior: ObjectMemory]);
at: #SpurObjectMemory "the new contender"
ifAbsentPut: (omc
ifNil: [false]
+ ifNotNil: [(Smalltalk at: omc) includesBehavior: SpurMemoryManager]).
- ifNotNil: [(Smalltalk at: omc) includesBehavior: SpurMemoryManager]);
- at: #Spur32BitMemoryManager put: false;
- at: #Spur64BitMemoryManager put: false.
"Use ifAbsentPut: so that they will get copied back to the
VMMaker's options and dead code will likely be eliminated."
PharoVM := initializationOptions at: #PharoVM ifAbsentPut: [false].
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