CCP рассказала 25 августа, из чего эта работа состоит. Кодовая база — 2,4 млн строк Python примерно в 20 тысячах файлов, поверх 23 лет данных живых игроков: персонажи, навыки, имущество, ISK. Часть кода написана по правилам Python 2.3 и 2.5, которые тройка уже не принимает.
Первый этап — сделать код совместимым сразу с обеими версиями, продолжая запускаться на 2.7; помогают
python-future и 2to3. При компиляции обоими интерпретаторами 95,9% файлов собрались сразу. Осталось около 3300 строк с явными несовместимостями: примерно 1500 старых print, 800 литералов вида 123L, 600 старых форм except и 50 операторов <>.Опаснее другое: нашлось около 20 тысяч строк, синтаксически корректных в обеих версиях, но работающих по-разному. Классика —
1 / 2, которое даёт 0 в Python 2 и 0.5 в Python 3.Отдельное ограничение — сервер Tranquility должен оставаться доступным 23,75 часа из каждых 24.
@zen_of_python