Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3158.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3158 Author: eem Time: 17 February 2022, 10:40:34.464564 am UUID: fb484548-01a4-4d5e-a515-a0baa462be58 Ancestors: VMMaker.oscog-eem.3157
Spur CoInterpreter: minor refactoring eliminates duplication of setting of primCalloutIsExternal.
=============== Diff against VMMaker.oscog-eem.3157 ===============
Item was removed: - ----- Method: CoInterpreter>>augmentPrimitiveCalloutMetadataFlags (in category 'plugin primitive support') ----- - augmentPrimitiveCalloutMetadataFlags - "Find out whether SqueakFFIPrims is internal or external" - <inline: #always> - | index | - primCalloutIsExternal := true. - index := 1. - [(self ioListBuiltinModule: index) - ifNil: [^self] - ifNotNil: - [:moduleName| - (self strcmp: moduleName _: 'SqueakFFIPrims') = 0 ifTrue: - [primCalloutIsExternal := false]]. - index := index + 1. - true] whileTrue!
Item was added: + ----- Method: CoInterpreter>>reloadPrimitiveCalloutPointer (in category 'plugin primitive support') ----- + reloadPrimitiveCalloutPointer + <inline: #never> + | index | + super reloadPrimitiveCalloutPointer. + "Find out whether SqueakFFIPrims is internal or external" + primCalloutIsExternal := true. + index := 1. + [(self ioListBuiltinModule: index) + ifNil: [^self] + ifNotNil: + [:moduleName| + (self strcmp: moduleName _: 'SqueakFFIPrims') = 0 ifTrue: + [primCalloutIsExternal := false]]. + index := index + 1. + true] whileTrue!
Item was removed: - ----- Method: StackInterpreter>>augmentPrimitiveCalloutMetadataFlags (in category 'plugin primitive support') ----- - augmentPrimitiveCalloutMetadataFlags - "noop in the StackInterpreter" - <inline: #always>!
Item was changed: ----- Method: StackInterpreter>>functionForPrimitiveCallout (in category 'plugin primitive support') ----- functionForPrimitiveCallout "Answer the function primitiveCallout from the FFI plugin or nil if it can't be found. Cache it for performance. We use this circumlocution so that Squeak can be deployed without the FFI plugin for security reasons."
<returnTypeC: 'void (*functionForPrimitiveCallout())(void)'> <inline: true> primitiveCalloutPointer asInteger = -1 ifTrue: + [self reloadPrimitiveCalloutPointer]. - [primitiveCalloutPointer := self ioLoadFunction: 'primitiveCallout' From: 'SqueakFFIPrims'. - self augmentPrimitiveCalloutMetadataFlags]. ^self cCoerceSimple: primitiveCalloutPointer to: #'void (*)(void)'!
Item was added: + ----- Method: StackInterpreter>>reloadPrimitiveCalloutPointer (in category 'plugin primitive support') ----- + reloadPrimitiveCalloutPointer + "noop in the StackInterpreter" + <inline: #always> + primitiveCalloutPointer := self ioLoadFunction: 'primitiveCallout' From: 'SqueakFFIPrims'!
vm-dev@lists.squeakfoundation.org