OpenSmalltalk
/
opensmalltalk-vm
|
Cog
|
18 mins and 17 secs
|
Eliot Miranda
|
CogVM source as per VMMaker.oscog-eem.2824
Cog: Fix the crash when running tests in ImageSegmentTest>>#testContextsShouldBeWritableToaFile (see http://forum.world.st/corruption-of-PC-in-context-objects-or-not-tt5121662.html#none). In mapping a machine code pc, a code compaction may occur. In this case return through machine code is impossible without updating a C call stack return address, since the machine code method that invoked this primitive could have moved. So if this happens, map to an interpreter frame and return to the interpreter.
Refactor CoInterpreter>>ceSendMustBeBooleanTo:interpretingAtDelta: to extract CoInterpreter>>convertToInterpreterFrame:, Have CoInterpreterPrimitives>> primitiveClone, primitiveInstVarAt, primitiveSlotAt monitor newMethod's header and return to the interpreter if it has changed, indicating that a reclamation affecting newMethod has occurred. In V3 make sure that newMethod is set in jitted shallowCopy, instvarAt, slotAt: (newMethod is assigned by default in Spur).
Again the split JIT/CoInterpreter design comes to the rescue in fixing a very tricky issue, code moving underneath one. Being able to simply continue in the interpreter (impossible in e.g. HPS) means the solution is relatively straight-forward, and requires very little set-up.
|
|
|
Would you like to stay up-to-date with the upcoming Travis CI build environment updates? We set up a mailing list for you!
SIGN UP HERE
|
|
|
|
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"action": {
"@type": "ViewAction",
"url": "https://travis-ci.org/github/OpenSmalltalk/opensmalltalk-vm/builds/730579245?utm_medium=notification&utm_source=email",
"name": "View Build"
},
"description": "View Build #2210 on Travis CI"
}
</script>