Perl 7 плавно продолжит развитие Perl 5 без нарушения обратной совместиости
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Управляющий совет проекта 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
===========
Похожие новости
- Главная ссылка к новости (http://blogs.perl.org/users/ps...)
- OpenNews: Анонсирован Perl 7
- OpenNews: Анализ рисков при воплощении в жизнь инициативы Perl 7
- OpenNews: Сообщество разработчиков Perl покинул один из лидеров проекта
- OpenNews: Релиз языка программирования Perl 5.34.0
- OpenNews: Язык Perl 6 переименован в Raku
Похожие новости:
- Релиз компилятора Rakudo 2022.02 для языка программирования Raku (бывший Perl 6)
- Релиз компилятора Rakudo 2021.12 для языка программирования Raku (бывший Perl 6)
- Релиз компилятора Rakudo 2021.10 для языка программирования Raku (бывший Perl 6)
- Руководство Perl приостановило работу команды, следящей за соблюдением кодекса поведения
- [Perl, Сетевое оборудование] SNMP MIB браузер(продолжение)
- [Perl, Сетевое оборудование] SNMP MIB браузер на Perl и JavaScript
- [Сетевое оборудование] Быстрый SNMP опрос сетевых устройств
- [Perl, Стандарты связи] Пишем PBX на Perl для Yate
- [Perl, Ruby, PHP, Python, JavaScript] Насколько вам наплевать на фичи последней версии языка?
- Релиз языка программирования Perl 5.34.0
Теги для поиска: #_perl
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 01:53
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Управляющий совет проекта 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 =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 01:53
Часовой пояс: UTC + 5