...at http://www.mirandabanda.org/files/Cog/VM/VM.r3120/. These contain a few important bug fixes to Spur which will increase stability. CogVM binaries as per VMMaker.oscog-eem.916 Spur: Reimplement deriving the accessorDepth and retrying primitives on primitive failure machinery. Always take the primitive index from newMethod (setting newMethod to a SmallInteger for primitiveDoPrimitiveWithArgs. Have the Cogit always set primitiveFunctionPointer and newMethod for the retry. Add isNonInteger(Non)Immediate: and use it in several of the integer conversion routines that were missing code to exclude Character immediates, with fatal consequences. With these changes the Pharo 4 test suite runs without crashing on the latest Pharo Spur boot image. Fix processWeakSurvivor: so that it answers whether a weak object refers to a young object. The old version only scanned weak fields, ignoring refs to young objs from strong fields. Move check for valid classes from findClassOfMethod: forReceiver: into findClassContainingMethod:startingAt:, hence making findClassOfMethod:forReceiver: et al more robust. Implement safe access to contexts and methods when creating image segments (since internally married contexts and jitted methods have hidden state encoded in odd ways). As a result: Fix baaad bug in SpurMemoryManager>>lastPointerOf: for contexts, caused by transcription from (New)ObjectMemory where the method works on a wing and a prayer because BaseHeaderSize = BytesPerOop. And I can't be arsed to fix it. Fix baaad bug in accessibleObjectAfter: and add an assert to primitiveNextObject to catch similar bugs. Can now enumerate objects in new space, which will sort-of work, but code should really use allObjects. Will fix at the image level as time allows. Eliminate isInSurvivorSpace: in favour of the identical isInPastSpace:. All: Refactor decoding of context instruction pointers so there is only one copy of the code. -- best, Eliot