Eliot Miranda uploaded a new version of Cog to project VM Maker:
http://source.squeak.org/VMMaker/Cog-eem.226.mcz
==================== Summary ====================
Name: Cog-eem.226
Author: eem
Time: 1 December 2014, 2:37:45.387 pm
UUID: c30f1c01-ee25-4738-b82f-fef59c42de24
Ancestors: Cog-eem.225
Spur Bootstrap:
Provide missing SmallFloat64 clone override and
provide a consistent comment for SmallInteger's.
Provide an Object>>clone that copes with need to
GC when memory is low.
=============== Diff against Cog-eem.225 ===============
Item was added:
+ ----- Method: SpurBootstrapPrototypes>>BehaviorPROTOTYPEisCompiledMethodClass (in category 'method prototypes') -----
+ BehaviorPROTOTYPEisCompiledMethodClass
+ "Answer whether the receiver has compiled method instances that mix pointers and bytes."
+ ^self instSpec >= 24!
Item was added:
+ ----- Method: SpurBootstrapPrototypes>>ObjectPROTOTYPEclone (in category 'method prototypes') -----
+ ObjectPROTOTYPEclone
+ "Answer a shallow copy of the receiver."
+ <primitive: 148 error: ec>
+ | class newObject |
+ ec == #'insufficient object memory' ifFalse:
+ [^self primitiveFailed].
+ "If the primitive fails due to insufficient memory, instantiate via basicNew: to invoke
+ the garbage collector before retrying, and use copyFrom: to copy state."
+ newObject := (class := self class) isVariable
+ ifTrue:
+ [class isCompiledMethodClass
+ ifTrue:
+ [class newMethod: self basicSize - self initialPC + 1 header: self header]
+ ifFalse:
+ [class basicNew: self basicSize]]
+ ifFalse:
+ [class basicNew].
+ ^newObject copyFrom: self!
Item was added:
+ ----- Method: SpurBootstrapPrototypes>>SmallFloat64PROTOTYPEclone (in category 'method prototypes') -----
+ SmallFloat64PROTOTYPEclone
+ "Answer the receiver, because SmallFloat64s are unique."
+ ^self!
Item was added:
+ ----- Method: SpurBootstrapSqueakPrototypes>>SmallIntegerPROTOTYPEclone (in category 'method prototypes') -----
+ SmallIntegerPROTOTYPEclone
+ "Answer the receiver, because SmallIntegers are unique."
+ ^self!
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.958.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.958
Author: eem
Time: 1 December 2014, 10:14:44.613 am
UUID: a63f2901-77e4-4db7-a6d2-16f121e54bac
Ancestors: VMMaker.oscog-eem.957
Fix simulation of sizeof: in InterpreterPlugins
=============== Diff against VMMaker.oscog-eem.957 ===============
Item was changed:
----- Method: InterpreterPlugin>>sizeof: (in category 'simulation support') -----
sizeof: objectSymbolOrClass
<doNotGenerate>
+ objectSymbolOrClass isInteger ifTrue:
+ [^interpreterProxy wordSize].
+ "In the simulator file handles are just integer indices into openFiles and so need
+ only be BytesPerWord big. But in the actual VM they are at least 5 words long."
- "In the simulator file handles are just integer indices into openFiles and so need only be BytesPerWord big.
- But in the actual VM they are 5 words long. We assume the file offset type is always 64-bit"
objectSymbolOrClass == #SQFile ifTrue:
[^interpreterProxy wordSize * 5].
+ "We assume the file offset type is always 64-bits."
objectSymbolOrClass == #squeakFileOffsetType ifTrue:
[^8].
^super sizeof: objectSymbolOrClass!