On 03/22/2011 04:52 PM, Alexandre Bergel wrote:
I am not saying that this is feasible with the current VM. But I am doubtful
that the bytecode verification can only be done in the VM. If something get
wrong, why not to raise a primitiveFailed, as 1/0 will do?
Because checking all these things at runtime will make interpretation slow.
But could not it be at compile time?
I am not expert in VM. But something that I learnt from all over these years,
is that if we copy what other people do, then we will just have a pale copy.
Innovation begins by doing what other think it is impossible to do. Smalltalk
has classes as object, whereas Java and C++ took a different stance. Smalltalk
has the debugger and the profiler in the image; again, java people have a
different opinion. Now, if someone say that bytecode verification can only be
done in the VM, I am skeptic.
Ok, I very much understand this point of view. That's exactly why I
started Pinocchio.
I'm currently building my 4rd iteration. I started building a Smalltalk
by having AST evaluation (actually I started out with self-evaluating
AST objects that got evaluated by sending message... :D) . Then moved on
to stack-based bytecodes. Then moved on to registered-based bytecodes
(where I am now). All of my progress has been made by careful
scrutinizing of the problems at hand. I did reevaluate and question all
steps; and I'm a bit sad that I ended up doing it this way... But then I
guess there is some inevitability in it.
For example the register-based bytecodes, I had no idea that what I was
doing were register-based bytecodes until I read the Lua VM description
and noticed that it was exactly the same.
However I do think that I learned a lot by doing it. I made the
trade-offs myself and understand them a lot better than I did before.
What I'm defending in this discussion isn't based on estimates but
experience from building it from the ground up.
And this is where I welcome everyone to do the same! It took me 2 years
to get to where I am now, but maybe it goes faster for you ;) It is
definitely a very worthwhile exercise. And I think because of it I'm
finally at the point where I can contribute something...
cheers,
Toon