[squeak-dev] New Cog VMs available...
eliot.miranda at gmail.com
Tue Jul 1 17:03:33 UTC 2014
I had *forgotten* to implement following forwarders on primitive failure in
machine code primitives, hence Cog Spur was badly broken. It's now a
little bit better, but I still need to implement this for named primitives.
Real soon now I hope...
CogVM source as per VMMaker.oscog-eem.791/r3024
Implement following forwarders on primitive failure in machine code
primitives (still have to implement this in sideways calls of named
Allow the JIT to not compile primitiveDoNamedPrimitiveWithArgs
to avoid any potential complications.
Rewrite all the semaphore installing primitives to fail if the semaphore
neither a semaphore or nil instead of assuming if its not a semaphore it
nil, so as to fail and retry when semaphores are forwarded (as they are when
Semaphore is redefined).
Implement isSemaphoreOop:/Obj: in the object memories to abstract away the
Base Spur's on the class index of splObj: ClassSemaphore, avoiding the table
lookup to derive the class. Make checkForEventsMayContextSwitch: treat all
Have spur's fetchClassOfNonImm: answer nilObj for
forwarders to avoid assert fails.
On Spur add read barriers to primitiveSuspend and synchronousSignal:'s
access, because the process list manipulation routines do no checking. Add
assert checks for forwarders in the process list manipulation routines.
Fix slip in
that corrupts the methodClassAssociation.
Abstract out the call machinery from
arg:saveRegs:pushLinkReg:resultReg: so it can be used by
maybeCompileRetry:onPrimitiveFail: in implementing following forwarders on
primitive failure in machine code, and the Open PIC miss call.
Have bytecodePCFor:cogMethod:startBcpc: map any pc before the
to the initialPC, which applies to primitives in progress.
Fix assert fails in updateStateOfSpouseContextForFrame:WithSP:
and elsewhere with forwarders.
Fix a latent signed shift bug in cDigitSub:len:with:len:into:
caused by VMMaker.oscog-eem.785's eliminating the
These changes allow Cog Spur to redefine Process and/or Semaphore and not
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev