Марк Леманн создал форк Perl: «stableperl»

Темы:

Марк Леманн, также известный как schmorp, создатель библиотеки libev, AnyEvent и Coro, объявил о создании форка Perl под названием «stableperl».

Как известно, Марк постоянно конфликтовал с разработчиками Perl5 из-за регулярных нарушений обратной совместимости в новых релизах, а релиз Perl 5.22.0, который привёл к неработоспособности Coro, очевидно, стал последней каплей.

По словам Марка, Stableperl — это попытка восстановления стабильности и совместимости до уровня, о котором говорит официальная документация Perl. Сам форк рассматривается как замена стандартному Perl, который будет поддерживаться и после окончания обычного времени поддержки. В нём исправлены наиболее заметные ошибки, которые текущие разработчики Perl5 «отказываются» исправлять: в первую очередь производительность хеша и порча данных в фазе глобального деструктора. Также stableperl рассматривается как защита от дальнейших поломок, которые могут допустить текущие разработчики Perl5.

Установив stableperl можно продолжать использовать CPAN, а также использовать модули, которые будут специально разработаны под stableperl. Форк не будет принимать патчи, которые нарушают обратную совместимость, т.е. там не будет новых возможностей и фич, основная цель — совместимость со стандартным Perl.

Первый релиз stableperl-5.22.0-1.001.

Его основные отличия от Perl 5.22:

  • Удалены изменения, которые запрещают модификацию публичных структур Perl (EXT_MGVTBL и PadlistNAMES). Они использовались в модуле Coro.
  • Функция хеша заменена на FNV-1A. Это достаточно простой и быстрый алгоритм для функции хеширования и даёт прирост ~40%.
  • Удалён флаг -fstack-protect, который невозможно было переопределить пользователю. Он работает не на всех платформах и может создать проблемы.