diojit
diojit copied to clipboard
Fully compatible CPython jit compiler. Optimising Dynamic, Interpreted, and Object-oriented(DIO) programs.
https://github.com/markshannon/faster-cpython
1. `@aware` decorator ```python import jit @jit.aware def f(x): return ... ``` 2. specifying optimizable global variables via `__fix__`. so far due to the restriction of python runtime, an embedded...
After generating cython code, the compilation(cythonize + cc compile .c to .pyd) could be proceeded in a separate process. Without this, there will be a notable JIT latency. ```python root_func...
Dynjit inherits the identical semantics from python bytecode, which is using `GET_ITER` and `FOR_ITER` to implement loops: ```python for i in xs: # do some ``` under dynjit, it is...
dynjit can only specialize user defined functions and builtin functions, so that when constructing class objects, `__init__` is invoked in the fixed pure python way and won't use the specialized...
Python's object data model is quite different from JavaScript's, but ICs are still applicable within CPython. A python type is a shape, and methods, class methods and static methods can...
```python F = ... @jit def f(x): return F(x) ``` In order to get extreme performance gain, flags can be set to break CPython semantics so that `F` always referenced...