Producing the instruction implementations

John Wood tenshon@msn.com
Sat, 10 May 97 14:06:58 UT


Few more comments..

I believe that the machine code file should just expose interfaces and their 
implementation - the utilisation of this should be defined elsewhere. This 
allows for different program-flow models to be deployed without any "hacky" 
gap-fillers like Windows' WinProc (which emulates an event driven system on a 
linear system). An implementation of a "Startup" interface can provided to the 
system to intitiate flow.

Of course this is independent of any OTs you have - the underlying structure 
of the bytecodes file has to be satisfied, even if it's satisfied indirectly 
(ie. if the format of the bytecode were JVM compatible, it would still have to 
supply objects and classes, and in the same way - even a C program would have 
all its code in a single class, and the "Startup" interface supplied by the 
VM).

Anyone had any thoughts on using existing compiler tools to create the 
in-linable code for the VM?  It's only the in-lining that causes the problem, 
we can't even use .OBJ files to provide extractable in-line code.  So that 
only leaves writing in machine code?!  Hmmm.. Unless someone wants to write a 
tool that extracts in-linable code from binaries given a map file or 
something?  It would be really cool if I could use even Java or Visual Basic 
to produce instruction implementations - and would really help get this VM 
implemented on loads of platforms (anybody would be able to port it).  I think 
the real thing stopping people porting at the moment is that lack of people 
who (a) know enough about the system at a system level (b) know machine code 
well enough and (c) have the time to write stuff in machine code effectively 
from scratch.  Having tools to let people re-use existing code to write a VM 
would *really* help.

John