On Tue, Jul 14, 2009 at 1:38 PM, askoh askoh@askoh.com wrote:
Thanks for the info for developing Cog. Are you using Slang to write the VM?
Yes.
Are you using something like InterpreterSimulator too?
Yes. Except that the generated x86 machine code is executed by a virtual processor packaged as an external plugin built using the Bochs x86 PC simulator written in C++. The generated machine code is written into the same large ByteArray that houses the Smalltalk heap.
There are also a lot more classes involved cogmethod.h: CogBlockMethod/CogMethod - objects representing the headers of machine code methods cointerp.c ObjectMemory/NewObjectMemory/StackInterpreter/CoInterpreter - the interpreter and garbage collector hierarchy CoInterpreterStackPages & CogSimpleStackPage - where stack frames live cogit.c Cogit/SimpleStackBasedCogit - the code generator hierarchy CogObjectRepresentation/CogObjectRepresentationForSqueakV3 - the abstraction of object access so one can plug-in object representations AbstractInstruction/CogIA32Compiler - the back-end hierarchy CogMethodZone - where generated methods live CogBlockStart, CogBytecodeDescriptor, CogBytecodeFixup, CogInstructionAnnotation, CogPrimitiveDescriptor - internal compiler data structures CogRTLOpcodes - a pool of abstract 2-operand opcodes
a few of which have simulation subclasses. So its only a bit like InterpreterSimulator. I expect also to abstract out the garbage collector later this year so that the interpreter has the ObjectMemory as an instance variable so one can plug-in GC & object representation.
Is Cog still written
in Smalltalk, converted to C and compiled into an executable?
Yes.
Thanks, Aik-Siong Koh -- View this message in context: http://www.nabble.com/debugging-plugin-and-virtual-machine-tp22314144p244869... Sent from the Squeak - Dev mailing list archive at Nabble.com.