Eliot Miranda uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-eem.190.mcz
==================== Summary ====================
Name: Cog-eem.190 Author: eem Time: 13 August 2014, 6:44:02.327 am UUID: f2adad4d-3bc8-4fa2-b450-3f1f9a267eec Ancestors: Cog-eem.189
Doh! The newMethod:header: prototypes should be class-side.
=============== Diff against Cog-eem.189 ===============
Item was removed: - ----- Method: SpurBootstrap class>>CompiledMethodPROTOTYPEhandleFailingFailingNewMethod:header: (in category 'method prototypes') ----- - CompiledMethodPROTOTYPEhandleFailingFailingNewMethod: numberOfBytes header: headerWord - "This newMethod:header: gets sent after handleFailingBasicNew: has done a full - garbage collection and possibly grown memory. If this basicNew: fails then the - system really is low on space, so raise the OutOfMemory signal. - - Primitive. Answer an instance of this class with the number of indexable variables - specified by the argument, headerWord, and the number of bytecodes specified - by numberOfBytes. Fail if this if the arguments are not Integers, or if numberOfBytes - is negative, or if the receiver is not a CompiledMethod class, or if there is not enough - memory available. Essential. See Object documentation whatIsAPrimitive." - - <primitive: 79> - "space must be low." - OutOfMemory signal. - "retry if user proceeds" - ^self newMethod: numberOfBytes header: headerWord!
Item was removed: - ----- Method: SpurBootstrap class>>CompiledMethodPROTOTYPEhandleFailingNewMethod:header: (in category 'method prototypes') ----- - CompiledMethodPROTOTYPEhandleFailingNewMethod: numberOfBytes header: headerWord - "This newMethod:header: gets sent after newMethod:header: has failed - and allowed a scavenging garbage collection to occur. The scavenging - collection will have happened as the VM is activating the (failing) basicNew:. - If handleFailingBasicNew: fails then the scavenge failed to reclaim sufficient - space and a global garbage collection is required. Retry after garbage - collecting and growing memory if necessary. - - Primitive. Answer an instance of this class with the number of indexable variables - specified by the argument, headerWord, and the number of bytecodes specified - by numberOfBytes. Fail if this if the arguments are not Integers, or if numberOfBytes - is negative, or if the receiver is not a CompiledMethod class, or if there is not enough - memory available. Essential. See Object documentation whatIsAPrimitive." - - <primitive: 79> - | bytesRequested | - bytesRequested := (headerWord bitAnd: 16rFFFF) + 1 * Smalltalk wordSize + numberOfBytes + 16. - Smalltalk garbageCollect < bytesRequested ifTrue: - [Smalltalk growMemoryByAtLeast: bytesRequested]. - "retry after global garbage collect and possible grow" - ^self handleFailingFailingNewMethod: numberOfBytes header: headerWord!
Item was removed: - ----- Method: SpurBootstrap class>>CompiledMethodPROTOTYPEnewMethod:header: (in category 'method prototypes') ----- - CompiledMethodPROTOTYPEnewMethod: numberOfBytes header: headerWord - "Primitive. Answer an instance of me. The number of literals (and other - information) is specified by the headerWord (see my class comment). - The first argument specifies the number of fields for bytecodes in the - method. Fail if either argument is not a SmallInteger, or if numberOfBytes - is negative, or if memory is low. Once the header of a method is set by - this primitive, it cannot be changed to change the number of literals. - Essential. See Object documentation whatIsAPrimitive." - - <primitive: 79 error: ec> - ec == #'insufficient object memory' ifTrue: - [^self handleFailingNewMethod: numberOfBytes header: headerWord]. - ^self primitiveFailed!
Item was added: + ----- Method: SpurBootstrap class>>CompiledMethodclassPROTOTYPEhandleFailingFailingNewMethod:header: (in category 'method prototypes') ----- + CompiledMethodclassPROTOTYPEhandleFailingFailingNewMethod: numberOfBytes header: headerWord + "This newMethod:header: gets sent after handleFailingBasicNew: has done a full + garbage collection and possibly grown memory. If this basicNew: fails then the + system really is low on space, so raise the OutOfMemory signal. + + Primitive. Answer an instance of this class with the number of indexable variables + specified by the argument, headerWord, and the number of bytecodes specified + by numberOfBytes. Fail if this if the arguments are not Integers, or if numberOfBytes + is negative, or if the receiver is not a CompiledMethod class, or if there is not enough + memory available. Essential. See Object documentation whatIsAPrimitive." + + <primitive: 79> + "space must be low." + OutOfMemory signal. + "retry if user proceeds" + ^self newMethod: numberOfBytes header: headerWord!
Item was added: + ----- Method: SpurBootstrap class>>CompiledMethodclassPROTOTYPEhandleFailingNewMethod:header: (in category 'method prototypes') ----- + CompiledMethodclassPROTOTYPEhandleFailingNewMethod: numberOfBytes header: headerWord + "This newMethod:header: gets sent after newMethod:header: has failed + and allowed a scavenging garbage collection to occur. The scavenging + collection will have happened as the VM is activating the (failing) basicNew:. + If handleFailingBasicNew: fails then the scavenge failed to reclaim sufficient + space and a global garbage collection is required. Retry after garbage + collecting and growing memory if necessary. + + Primitive. Answer an instance of this class with the number of indexable variables + specified by the argument, headerWord, and the number of bytecodes specified + by numberOfBytes. Fail if this if the arguments are not Integers, or if numberOfBytes + is negative, or if the receiver is not a CompiledMethod class, or if there is not enough + memory available. Essential. See Object documentation whatIsAPrimitive." + + <primitive: 79> + | bytesRequested | + bytesRequested := (headerWord bitAnd: 16rFFFF) + 1 * Smalltalk wordSize + numberOfBytes + 16. + Smalltalk garbageCollect < bytesRequested ifTrue: + [Smalltalk growMemoryByAtLeast: bytesRequested]. + "retry after global garbage collect and possible grow" + ^self handleFailingFailingNewMethod: numberOfBytes header: headerWord!
Item was added: + ----- Method: SpurBootstrap class>>CompiledMethodclassPROTOTYPEnewMethod:header: (in category 'method prototypes') ----- + CompiledMethodclassPROTOTYPEnewMethod: numberOfBytes header: headerWord + "Primitive. Answer an instance of me. The number of literals (and other + information) is specified by the headerWord (see my class comment). + The first argument specifies the number of fields for bytecodes in the + method. Fail if either argument is not a SmallInteger, or if numberOfBytes + is negative, or if memory is low. Once the header of a method is set by + this primitive, it cannot be changed to change the number of literals. + Essential. See Object documentation whatIsAPrimitive." + + <primitive: 79 error: ec> + ec == #'insufficient object memory' ifTrue: + [^self handleFailingNewMethod: numberOfBytes header: headerWord]. + ^self primitiveFailed!
vm-dev@lists.squeakfoundation.org