[Vm-dev] VM Maker: Cog-eem.226.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Dec 1 22:38:07 UTC 2014


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!



More information about the Vm-dev mailing list