Projekt Pyston, oferujący Pythona z kompilatorem JIT, powrócił do otwartego modelu rozwoju

Twórcy projektu Pyston, który oferuje wysokowydajną implementację języka Python z wykorzystaniem nowoczesnych technologii kompilacji JIT, zaprezentowali nową wersję Pyston 2.2 i ogłosili powrót projektu do open source. Wdrożenie ma na celu osiągnięcie wysokiej wydajności zbliżonej do tradycyjnych języków systemowych takich jak C++. Kod gałęzi Pyston 2 jest publikowany na GitHubie na licencji PSFL (Python Software Foundation License), podobnej do licencji CPython.

Przypomnijmy, że projekt Pyston był wcześniej nadzorowany przez Dropbox, który w 2017 roku przestał finansować rozwój. Twórcy Pyston założyli swoją firmę i wypuścili znacząco przeprojektowaną gałąź Pyston 2, która została uznana za stabilną i gotową do powszechnego użycia. W tym samym czasie programiści zaprzestali publikowania kodu źródłowego i przeszli na dostarczanie wyłącznie zespołów binarnych. Teraz podjęto decyzję o ponownym uczynieniu Pyston projektem open source i przeniesieniu firmy na model biznesowy związany z rozwojem oprogramowania open source. Ponadto rozważana jest możliwość przeniesienia optymalizacji z Pyston do standardowego CPythona.

Należy zauważyć, że Pyston 2.2 jest o 30% szybszy niż standardowy Python w testach wydajności, które oceniają obciążenia nieodłącznie związane z aplikacjami serwerów WWW. Nastąpił także znaczny wzrost wydajności w Pyston 2.2 w porównaniu do poprzednich wydań, co osiągnięto głównie poprzez dodanie optymalizacji dla nowych obszarów, a także ulepszenia mechanizmów JIT i buforowania.

Oprócz optymalizacji wydajności, nowe wydanie jest również interesujące, ponieważ przenosi zmiany z gałęzi CPython 3.8.8. Jeśli chodzi o kompatybilność z natywnym językiem Python, projekt Pyston jest reklamowany jako najbardziej kompatybilna z alternatywną implementacją CPython, ponieważ Pyston jest rozwidleniem głównej bazy kodu CPython. Pyston obsługuje wszystkie funkcje CPythona, w tym API C do tworzenia rozszerzeń w języku C. Do głównych różnic między Pyston i CPython należy wykorzystanie DynASM JIT, wbudowanego buforowania i ogólnych optymalizacji.

Wśród zmian w Pyston 2.2 wspomniano także o oczyszczeniu bazy kodu z wielu funkcji debugowania CPythona, które negatywnie wpływają na wydajność, ale prawie nie są poszukiwane przez programistów. Podane są statystyki, według których usunięcie narzędzi do debugowania powoduje przyspieszenie o 2%, mimo że tylko około 2% programistów korzysta z tych funkcji.

Źródło: opennet.ru

Dodaj komentarz