Переписали виртуальную машину
Раньше виртуальная машина была написана в одном файле ceval.c почти на 8 000 строк. Это делало работу с опкодами довольно сложной, особенно если нужно было провести эксперименты.
В Python 3.12 ее переписали на новый DSL. И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.
В качестве примера, можно посмотреть на попытку добавления register-based интерпретатора. Другой пример, что часто два опкода идут вместе и выполняются последовательно большую часть времени. Например, LOAD_CONST
Читать полностью »