EVE Online:Python 3 への移行が始まりました!
20年以上にわたり、EVE Online は Python を大規模に活用している事例の中でも、特に興味深いケーススタディの一つであり続けています。
2003年のサービス開始以来、EVE Online は Stackless Python 上で動作してきました。前回の大規模なアップグレードは16年前のことで、2010年に Stackless Python 2.7 へ移行しています。
Python 3 への移行では、まず futurize スクリプトを使って240万行のコードを処理します。その後、Python 2 と Python 3 の動作に違いがある約20,000か所について、慎重に手作業で確認を行う予定です。たとえば、1 / 2 の結果は Python 2 では 0 ですが、Python 3 では 0.5 になります。
発表では、Stackless をどのように置き換える予定なのかについては触れられていません。ただし、昨年の開発者カンファレンスでは、より新しいゲーム EVE Frontier の Carbon エンジンで Stackless を置き換えた方法について、「Carbonにおけるスケジューリング:Stackless Pythonに別れを告げる(Scheduling in Carbon: Leaving Stackless Python Behind)」と題して紹介しています。その際には、現在オープンソースとして公開されている carbonengine/scheduler ライブラリが使用されています。