[Vm-dev] VM Maker: VMMaker.oscog-eem.1775.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Apr 7 00:45:56 UTC 2016
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1775.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.1775
Author: eem
Time: 6 April 2016, 5:43:29.382334 pm
UUID: 643dcc90-05cd-4945-9531-0bb9538805e0
Ancestors: VMMaker.oscog-cb.1774
Simulator:
Set SPURVM correctly on initialization. Old code would always set it to false.
=============== Diff against VMMaker.oscog-cb.1774 ===============
Item was changed:
----- Method: SpurMemoryManager class>>initBytesPerWord: (in category 'class initialization') -----
initBytesPerWord: wordSize
BytesPerWord := BytesPerOop := wordSize.
"N.B. This is *not* output when generating the interpreter file.
It is left to the various sqConfig.h files to define correctly."
+ VMBIGENDIAN := Smalltalk endianness == #big.
+ SPURVM := true!
- VMBIGENDIAN := Smalltalk endianness == #big!
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.
Subclass implementations need to include a super initializeMiscConstants"
| omc |
VMBIGENDIAN class. "Mention this for the benefit of CCodeGenerator>>emitCConstantsOn:"
SPURVM := 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]).
"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].
"But not these; they're compile-time"
MULTIPLEBYTECODESETS := initializationOptions at: #MULTIPLEBYTECODESETS ifAbsent: [false].
IMMUTABILITY := initializationOptions at: #IMMUTABILITY ifAbsent: [false].
"These must be set only if specified, not defaulted, because they are set on the command line or in include files."
initializationOptions
at: #VMBIGENDIAN ifPresent: [:value| VMBIGENDIAN := value];
+ at: #ObjectMemory ifPresent: [:value| SPURVM := value beginsWith: 'Spur'];
at: #STACKVM ifPresent: [:value| STACKVM := value];
at: #COGVM ifPresent: [:value| COGVM := initializationOptions at: #COGVM];
at: #COGMTVM ifPresent: [:value| COGMTVM := initializationOptions at: #COGMTVM]!
More information about the Vm-dev
mailing list