>>>>> "KF" == Ken Fox <[EMAIL PROTECTED]> writes:

  KF> JITs help when the VM is focused on lots of small instructions
  KF> with well-known, static semantics. Perl's use of Parrot is going
  KF> to be focused almost completely on PMC vtable ops. A JIT has
  KF> no advantage over a threaded interpreter.

there is also TIL code which is a way to remove the dispatch loop and
make that happen as in line machine code. we generate machine code calls
to each op instead of the op code loop calling them. the calls will
still be made through vtables but the overhead of the dispatcher will be
gone. if the vtable code is of decent speed, a TIL system could get nice
results. maybe some of the vtable access and handling could also be
optimized at machine level as well.

a full JIT would require the same info that dan says we won't have for
the optimizer. you have to guarantee that none of those sneaky and
powerful backdoor tricks (like string eval, tying, %MY::, etc) are being
done before you can generate pure machine code. that is one major win
and loss with highly dynamic languages like perl - runtime and compile
time can affect each other so much.

uri

-- 
Uri Guttman  ------  [EMAIL PROTECTED]  -------- http://www.stemsystems.com
-- Stem is an Open Source Network Development Toolkit and Application Suite -
----- Stem and Perl Development, Systems Architecture, Design and Coding ----
Search or Offer Perl Jobs  ----------------------------  http://jobs.perl.org

Reply via email to