Perl 7 плавно продолжит развитие Perl 5 без нарушения обратной совместиости

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
27-Май-2022 00:30

Управляющий совет проекта Perl обобщил планы по дальнейшему развитию ветки Perl 5 и созданию ветки Perl 7. В ходе дискуссий управляющий совет согласился, что недопустимо нарушать совместимость с уже написанным для Perl 5 кодом, за исключением
случаев, когда нарушение совместимости необходимо для устранения уязвимостей. Совет также пришёл к выводу, что язык должен развиваться и следует более интенсивно продвигать новые возможности, упростив при этом доступ к появляющимся новшествам и стимулируя их внедрение.
В отличие от изначальных намерений, допускающих включение по умолчанию в ветке Perl 7 изменений, нарушающих обратную совместимость, новый план подразумевает постепенное превращение ветки Perl 5 в Perl 7 без нарушения обратной совместимости с уже существующим кодом. Выпуск Perl 7.0 концептуально не будет отличаться от очередной ветки Perl 5.xx.
Разработка новых выпусков Perl 5 продолжится в прежнем виде - добавляемые в ветку новые возможности, несовместимые со старым кодом, как и раньше будут включаться только при явном указании в коде прагмы "use версия" или "use feature возможность". Например, в версии Perl 5.010 было представлено новое ключевое слово "say", но так как в существующем коде могли использоваться функции с именем "say", поддержка нового ключевого слова включалась только при явном указании прагмы "use feature 'say'".
Добавляемый в язык новый синтаксис, который при обработке в прошлых выпусках приводил к выводу ошибки, становится доступен сразу без необходимости указания специальных прагм. Например, в Perl 5.36 появится упрощённый синтаксис единовременной обработки нескольких значений списка ("foreach my ($key, $value) (%hash) {"), который будет доступен сразу, даже в коде без прагмы "use v5.36".
В текущем виде в Perl 5.36 при использовании прагмы "use v5.36" активируется 13 нарушающих совместимость возможностей ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa', 'bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' и 'unicode_strings'), включаются по умолчанию режимы "use strict" и "use warnings" и отключается поддержка устаревшей косвенной нотации вызова объектов (когда вместо "->" используется пробел) и многомерных массивов и хэшей в стиле Perl 4 ("$hash{1, 2}").
Когда изменений накопится достаточно много вместо очередного выпуска Perl 5.x будет сформирована версия Perl 7.0, которая станет своеобразным срезом состояния, но останется полностью обратно совместимой с Perl 5. Для включения нарушающих совместимость изменений и настроек потребуется явное добавление в код прагмы "use v7". Т.е. код с прагмой "use v7" можно трактовать как "современный Perl", в котором доступны нарушающие совместимость изменения языка, а без - "консервативный Perl", который останется полностью обратно совместим с прошлыми выпусками.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_perl
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 08:55
Часовой пояс: UTC + 5