A series of step-by-step tutorials of CPython customizing. Each focuses on understanding CPython internals, and highlights different parts of the interpreter.
We will add an |> operator to the CPython interpreter to perform bash-like chain calls.
>>> [1, 2] |> map(lambda x: x * 2) |> list() [2, 4]
The tutorial covers python grammar, parsing and compilation to bytecode.
The goal is to implement tail-call optimization in the python interpreter.
>>> def u(i): if i == 0: return 'a' return u(i - 1) >>> u(10000) 'a'
The tutorial covers creation a of new bytecode, flowgraph optimization, and evaluation of Python programs.
Pavel Kolchanov, 2024