<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'>Two questions if you have time.<br><br><br>Looking at the VMBasicsConstants, some observations.<br><br><div align="left">We have UPPERCASE and CamelCase values.<br>We have what appear to be<br><u>Directives</u>: GCModeFull, DoAssertionChecks, etc.<br><u>Defines</u>:&nbsp; BaseHeaderSize, ByteXMask, etc.<br><br><b><br>Question 1. </b>are Directives and Defines a correct categorization? and are there categorizations I am missing? <br>(I am sure I could intuit these with time, but knowing this ahead of time would be a time-saver)<br><br><br><br><b>Question 2. </b><br>I would like to verify the heuristics of <br>COGMTVM<br>COGVM<br>STACKVM <br></div><br><br>When I load these into the script to boot the simulator, like this:<br><br>| vm |<br>Transcript clear.<br>vm := StackInterpreterSimulator newWithOptions: #(#COGVM true)."<br>vm openOn: '/home/wm/usr/src/smalltalk/buildCogDevelopmentImageCog.app/Contents/Resources/Squeak4.4.image'.<br>vm openAsMorph; run<br><br><br>I am assuming that I am informing the StackInterpreterSimulator that it is executing on a COGVM image (which I am running) and that if I was<br>running multi-threading enabled cog, I would feed it the #COGMTVM. I am NOT telling the Interpreter that its target is an image that has been<br>'fingerprinted' by being run with those VM's in the past. (I have in mind the early releases of Cog where when you ran an old VM on an image, then switched to Cog it warned you that it was a one-way-street).<br><br>thanks for your time.<br><br>tty.<br><br><br><br><br><br><br><br><br>BaseHeaderSize <br>Byte0Mask <br>Byte0Shift <br>Byte1Mask <br>Byte1Shift <br>Byte1ShiftNegated <br>Byte2Mask <br>Byte2Shift <br>Byte3Mask <br>Byte3Shift <br>Byte3ShiftNegated <br>Byte4Mask <br>Byte4Shift <br>Byte4ShiftNegated <br>Byte5Mask <br>Byte5Shift <br>Byte5ShiftNegated <br>Byte6Mask <br>Byte6Shift <br>Byte7Mask <br>Byte7Shift <br>Byte7ShiftNegated <br>Bytes3to0Mask <br>Bytes7to4Mask <br>BytesPerOop <br>BytesPerWord <br>COGMTVM <br>COGVM <br>DisownVMLockOutFullGC <br>DoAssertionChecks <br>DoExpensiveAssertionChecks <br>GCModeBecome <br>GCModeFull <br>GCModeIncr <br>GCModeScavenge <br>IMMUTABILITY <br>MULTIPLEBYTECODESETS <br>NewspeakVM <br>PrimErrBadArgument <br>PrimErrBadIndex <br>PrimErrBadMethod <br>PrimErrBadNumArgs <br>PrimErrBadReceiver <br>PrimErrGenericFailure <br>PrimErrInappropriate <br>PrimErrLimitExceeded <br>PrimErrNamedInternal <br>PrimErrNoCMemory <br>PrimErrNoMemory <br>PrimErrNoModification <br>PrimErrNotFound <br>PrimErrObjectIsPinned <br>PrimErrObjectMayMove <br>PrimErrUnsupported <br>PrimNoErr <br>STACKVM <br>ShiftForWord <br>VMBIGENDIAN<br><br></div></body></html>