Suggest Deprecating Current JIT System

Andrew Whitworth wknight8111 at gmail.com
Mon Aug 31 14:05:43 UTC 2009


I would like to suggest that we deprecate the majority of the current
JIT system and put in a notice that it can be removed by 2.0. Some
points:

1) The JIT system we have now only works on some i386 systems, so we
don't really "have JIT" on all our current target platforms now
anyway.
2) The system as it exists is very poorly documented and making more
then extremely minor changes can produce unwanted sideeffects.
3) We currently have no developers who are both willing and able to
make more then occasional minor fixes to the existing system. We have
no developers who are able and who have expressed any interest (that I
am aware of) in porting the current JIT system to other platforms as
well.
4) The current JIT system does not provide any measurable increase in
performance (that I have ever seen in any benchmarks) over the Fast
Core, and furthermore would be extremely difficult (if not impossible)
to add any amount of optimization to it.
5) Because changes to core systems require matching changes in the JIT
system, JIT has proven to be a significant damping force to
improvement of these core systems (again, because we don't have
developers willing and able to make the necessary fixes).

We do need to keep the JIT-based NCI call frame generator, but I would
suggest that even this mechanism is not ideal and should be replaced
eventually too. That portion of the JIT system is specifically omitted
from this deprecation suggestion.

I would like to put in the deprecation notice soon and as a community
start seriously looking for alternatives. We should make a concerted
effort to either utilize an existing JIT solution (LLVM, libJIT) or
develop our own sane alternative.

--Andrew Whitworth


More information about the parrot-dev mailing list