CPython should get a tracing JIT that turns slow bytecode into fast
bytecode.
A JIT doesn't have to produce machine code. bytecode-to-bytecode
compilation is still compilation. bytecode-to-bytecode compilation works
on iOS, and doesn't require deviating from C.
(This "internal bytecode" should do things like know that 2 variables
necessarily hold integers, doing just "x = y + z" in C in an IADD
instruction as opposed to all those middle-of-function typechecks and
overhead. You can typecheck once at the start of the function and run
separate traces on that. Since this "internal bytecode" is extremely
unsafe, it should be considered an implementation detail and never
exposed to external code.)
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/