I have been concerned with the current parrot design for some time.
I don't see the clear direction for parrot.

If a vm is designed for JIT, it can be very simple on opcode system.
To real compilers, there is no difference between opcodes and regular 
function calls. The compiler can inline the code anyway. But we do
need type system for variables, so compiler can generate integer
addition without worry about overflow or convert result into BigInt.

If a vm is design for interpretion, the type system must be very
simple, and the vm must be able to handle built-in types very
efficiently, plus a fast C library, something like Perl 5.

I am not sure how well the parrot register work in practice. If you
have expression "a + b", the vm normally use PMC to deal with it,
unless you have a strong typed variable system. In that case, the
vm can use int or float register to handle it.

Take Python as example, (since Perl 6 is not final), how much python
code can be compiled to take advantage of the register system.
Because python has unified int/long and dynamic variable/field,
the chances are not good.

Hong

Reply via email to