The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

10.05.2016 11:11  Релиз языка программирования Perl 5.24.0

После года разработки состоялся релиз новой стабильной ветки языка программирования Perl - 5.24. При подготовке нового выпуска было изменено около 360 тыс. строк кода, изменения затронули 1800 файлов, в разработке приняли участие 77 разработчиков.

Ветка 5.24 выпущена в соответствии с утверждённым пять лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.24.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.24.0. Одновременно с выходом Perl 5.24 прекращена поддержка ветки 5.20, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.25, на базе которой в мае 2017 года будет сформирован стабильный релиз Perl 5.26.

Ключевые изменения:

  • В разряд стабильных возможностей переведена операция постфиксного разыменования (postderef), которая ранее поставлялась в числе экспериментальных функций и требовала активации специального флага "use feature postderef". Операция постфиксного разыменования "$sref->$*" эквивалентна "${ $sref }", "$aref->@*" эквивалентна "@{ $aref }", а "$href->%{ ... }" - "%$href{ ... }";
  • Добавлена поддержка Unicode 8.0;
  • Реализована генерация ошибки в случае неудачного закрытия выходного файла. Ранее сбой при закрытии выходного файла мог привести к проблемам, например, при выполнении операции фильтрации входного файла с его последующим удалением;
  • В регулярных выражениях появился новый оператор "\b{lb}", определяющий место в Unicode-строке, в котором последовательность символов может быть разорвана для того, чтобы вывод уместился в заданную ширину экрана. Ранее возможность поставлялась в виде модуля Unicode::LineBreak;
  • Скобки "qr/(?[ ])/" c расширенными условиями определения классов символов теперь применимы для включенных через "use locale" локалей UTF-8. Задаваемые в скобках шаблоны преобразуются в штатные правила Unicode;
  • Более явно определены операции сдвига целых чисел ("<<" и ">>"), которые теперь не зависят от поведения реализации на Си. Например, точно определено поведение при сдвиге отрицательных чисел и при переполнении числа. Сдвиг отрицательного числа определён как операция сдвига в обратную сторону (операция сдвига отрицательного числа влево приведёт к выполнению сдвига вправо и наоборот). Выходящие за границы сдвигаемые биты воспринимаются как ноль;
  • В printf и sprintf добавлена возможность применения обратного порядка указания аргументов настройки точности, например, вызов "sprintf '|%.*2$d|', 2, 3" вернёт "|002|";
  • Расширено число полей, передаваемых в callback-обработчик sigaction, вызванный с флагом SA_SIGINFO. В число таких полей теперь входят errno, status, uid, pid, addr и band;
  • Расширены правила передачи скрипта в другой интерпретатор. Ранее передача осуществлялась если в заголовке скрипта отсутствовало слово "perl" (например, "#!/bin/sh"). Для улучшения совместимости с Perl 6 теперь проброс также осуществляется и при наличии слова perl6;
  • Несовместимые изменения:
    • Прекращена поддержка экспериментальной переменной "my $_" и функции авторазыменования (autoderef), которые признаны неудачными нововведениями. Переменная "my $_" была добавлена в Perl 5.10 и вызывала больше путаницы, чем пользы. Механизм autoderef позволяющий выполнить push/pop/... для каждого скалярного аргумента также не получил распространения;
    • Прекращена поддержка вложенных выражений определения переменных. Блоки my, our и state теперь не могут пересекаться, например, выражение "my ($x, my($y))" является недопустимым;
    • Некоторые шаблоны регулярных выражений, приводящие к ошибкам во время выполнения, теперь приводят к выводу ошибки во время компиляции выражения (т.е. ошибка выводится сразу, а не через какое-то время работы программы). Например, добавлены предварительные проверки корректности использования шаблонов \p{} и \P{};
    • Ничего не делающее выражение "qr/\N{}/" (пустой "\N{}") теперь недопустимо в режиме "strict";
    • Прекращена поддержка класса символов "/\C/", для оценки отдельных байтов строки UTF8 рекомендуется использовать utf8::encode();
    • Вызов chdir('') теперь не приводит к смене текущего пути на домашнюю директорию, вместо него следует использовать chdir();
    • Все ASCII-символы, используемые в именах переменных, должны быть видимыми;
    • В категорию устаревших возможностей переведено использование функций sysread(), syswrite(), recv() и send() с обработчиками :utf8;
  • Производительность:
    • Сокращены накладные расходы при входе и выходе из области видимости, что привело к ускорению вызова подпрограмм, циклов и базовых блоков. Например, вызов пустой функции "sub f{} f()" теперь занимает на треть меньше времени;
    • На платформах с поддержкой оптимизированных реализаций memchr() в libc значительно ускорено выполнение операций с шаблонами, в которых используются фиксированные строки. Например, при наличии в системе memchr() с оптимизациями для современных x86_64 CPU выражения $s = "a" x 1000 . "wxyz" и $s =~ /wxyz/ for 1..30000 выполняются в 7 раз быстрее, чем при использовании универсального варианта memchr(). Отмечаются и регрессии для достаточно нетипичных применений, например, "ab" x 1000 =~ /aa/ выполняется в 1.5 раза медленнее;
    • Ускорены операции сложения, деления и умножения 64-разрядных целых чисел за счёт оптимизации проверки пограничных условий;
    • Ускорены операции инкремента и декремента (++i, i++, --i, i--) за счёт выноса обработчиков разных условий в разные функции;
    • Значительно ускорены операции присвоения списку единственного аргумента, например "($x) = (...)" или "(...) = ($x)";
    • Снижено пиковое потребление памяти, наблюдаемое в моменты компиляции шаблонов регулярных выражений;
  • Безопасность:
    • Изменено поведение установки маски прав доступа при создании временных файлов. В 5.22 маска устанавливалась в 0600 до вызова mkstemp(3) и восстанавливалась после вызова, что приводило к появлению файлов с правами 0066 (доступ на запись и чтение) на системах с применяемой по умолчанию маской 0666. В новой версии в качестве значения umask используется 0177;
    • Решены проблемы (CVE-2015-8608) с доступом к областям вне границы буфера в коде обработки файловых путей на платформе Win32;
    • Уязвимость в XS File::Spec::canonpath (CVE-2015-8607);
    • Добавлены дополнительные проверки для защиты от обращения к неинициализированной памяти при вызове функции crypt() на платформе Win32. В том числе добавлена проверка на использование слишком коротких значений salt или указания некорректных символов в salt;
    • Обеспечено удаление дубликатов переменных окружения в хэше %ENV. Ранее сохранялся последний из дубликатов, в то время как getenv() возвращал первый, теперь поведение унифицировано. Дубликаты также удалены из environ[], что прикрыло возможные способы атаки (CVE-2016-2381);
  • Обновлены версии модулей, входящих в базовую поставку.
  • В состав возвращён порт для платформы AmigaOS. Во FreeBSD задействована функция fdclose(). Включена большая порция изменений, связанных с поддержкой работы на платформе Win32.


  1. Главная ссылка к новости (http://perlnews.org/2016/05/pe...)
  2. OpenNews: Состоялся рождественский релиз Perl 6
  3. OpenNews: Архиву Perl-модулей CPAN исполнилось 20 лет
  4. OpenNews: Увидел свет RPerl 1.0, компилятор кода Perl5
  5. OpenNews: Релиз языка программирования Perl 5.22.0
  6. OpenNews: Релиз интерпретатора языка программирования Perl 5.20
Лицензия: CC-BY
Тип: Программы
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Вовик_Путтин, 12:01, 10/05/2016 [ответить] [смотреть все]
  • +30 +/
    Лучший скриптовый язык. Неосиляторы, минусуйте!
     
     
  • 2.3, Crazy Alex, 12:18, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +4 +/
    Согласен Именно как скриптовый в оригинальном понимании - быстро накидать авто... весь текст скрыт [показать] [показать ветку]
     
  • 2.4, Какаянахренразница, 12:20, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +9 +/
    Неосилятор, но минусовать не буду. Буду плюсовать и завидовать.
     
  • 2.5, grec, 12:21, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –7 +/
    Только вот встречаются не редко проекты по типу начали писать на perl Ой фак ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.19, Crazy Alex, 14:48, 10/05/2016 [^] [ответить] [смотреть все]  
  • –5 +/
    Да, для проектов его сейчас применять не стоит.
     
     
  • 4.37, Wtf, 19:09, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Можно узнать, почему?
     
     
  • 5.40, коро, 19:30, 10/05/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Наверное, собеседник не до конца правильно выразился В принципе, если есть слаж... весь текст скрыт [показать]
     
     
  • 6.48, rshadow, 21:08, 10/05/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    На перле как правило спецы работают На фронтенд перловиков сажать реально не ну... весь текст скрыт [показать]
     
     
  • 7.50, коро, 22:02, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Почему же на фронтэнд На сколько я в курсе текущей ситуации а я могу быть совс... весь текст скрыт [показать]
     
  • 6.58, Crazy Alex, 10:50, 11/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Я выразился ровно так, как и хотел Учитывая, что моим основным языком был перл ... весь текст скрыт [показать]
     
  • 2.6, IMHO, 12:21, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Лучший скриптовый язык это тот на котором пишешь, а так нету времени учить мне в... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.8, Аноним, 12:30, 10/05/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Так разберись с Perl и появится время на другие языки или что-нибудь еще. :)
     
     
  • 4.22, Аноним, 15:36, 10/05/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    действительно, если вместо работы учить перл - много времени может высвободиться... весь текст скрыт [показать]
     
     
  • 5.25, Аноним, 16:46, 10/05/2016 [^] [ответить] [смотреть все]  
  • +6 +/
    > ... авиадиспетчером или хирургом.

    Слабак! Я вот бывало прибегу после смены авиадиспетчером в поликлинику и по 10 операций за ночь. А после поликлиники еще и таксовал, а пока клиентов ждал перл учил с планшета.

    В принципе я еще и на машинке вышивать умею.

     
     
  • 6.56, Аноним, 00:47, 11/05/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Операции ночью в поликлинике Вы там органы вырезали что-ли Кошмар Вот какие... весь текст скрыт [показать]
     
     
  • 7.76, Аноним, 16:01, 12/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Ващщета, травмпункты работают круглосуточно...
     
  • 2.36, user455, 18:17, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    сколько скриптовых языков ты знаешь ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.67, Аноним, 23:32, 11/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Он знает один, разумеется И это не баш ... весь текст скрыт [показать]
     
  • 2.61, Аноним, 18:54, 11/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    а когда он сдохнет из-за несовместимости версий не подскажете?
     
  • 1.7, Stax, 12:26, 10/05/2016 [ответить] [смотреть все]  
  • +/
    Призываю в тред ненавистников проверенных стабильных версий, пусть популярно объяснят народу, что Perl 5 давно пора похоронить и прекратить поддерживать, а нынче писать можно только на Perl 6 (да-да, тех самых из соседнего треда, кто агитировал за Python 3 и не понимал, почему в реальности все продолжают писать на Python 2).
     
     
  • 2.12, Аноним, 12:54, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –5 +/
    зачем хоронить - пусть чернь поддерживает легаси проекты на perl а мы будем пис... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.30, _, 17:47, 10/05/2016 [^] [ответить] [смотреть все]  
  • +3 +/
    Писать на языке бояр - не значит быть боярином Так смердом и закончишь ... весь текст скрыт [показать]
     
     
  • 4.69, Аноним, 23:32, 11/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Кто из грязи вышел в князи - тот не человек с Русская поговорка, кстати ... весь текст скрыт [показать]
     
  • 2.31, _, 17:50, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    У тебя задержка развития Жалость то какая Ну ничего, лет ещё чере 10 до тебя... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.45, Stax, 20:19, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Да мне, в общем, без разницы просто несколько смешно читать комментарии людей, ... весь текст скрыт [показать]
     
     
  • 4.46, angra, 20:42, 10/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    У perl6, в отличии от python3, нет пригодных к использованию реализаций Какая р... весь текст скрыт [показать]
     
     
  • 5.70, Аноним, 23:33, 11/05/2016 [^] [ответить] [смотреть все]  
  • +/
    На баше пиши И будет щастье ... весь текст скрыт [показать]
     
     ....нить скрыта, показать (7)

  • 1.9, агент малдер, 12:34, 10/05/2016 [ответить] [смотреть все]  
  • –3 +/
    много ли вакансий вы выдели за последние пару лет для перла?
     
     
  • 2.18, _KUL, 13:58, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Но если в резюме увидят опыт работы с perl, написание многопоточной системы или ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, PowerStyle, 16:24, 10/05/2016 [^] [ответить] [смотреть все]  
  • –3 +/
    А семью свою вы этим приливом уважения накормите ... весь текст скрыт [показать]
     
     
  • 4.32, _, 17:52, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Хм Знакомые перловщики голодными и затравленными не выглядят Шифруются ... весь текст скрыт [показать]
     
     
  • 5.44, PowerStyle, 20:13, 10/05/2016 [^] [ответить] [смотреть все]  
  • –4 +/
    Массовую статистику и перспективу для освоения ЯП предъявите Как ни крути, но е... весь текст скрыт [показать]
     
     
  • 6.53, _, 22:23, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Зачем Ресурсов с подобным в сети 1 - иди да смотри Но как это отменит зе... весь текст скрыт [показать]
     
  • 6.54, Аноним, 22:53, 10/05/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Ну вот вам очередной смотрикакяумею code def unique _, __ type ... весь текст скрыт [показать]
     
  • 6.55, anonimous, 23:02, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    С документацией более удобно читать код на любом языке Почему то, не учитывают,... весь текст скрыт [показать]
     
  • 2.24, nuclight, 16:39, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Вполне.
     
  • 2.59, 1, 12:09, 11/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    http://www.raidix.ru/vacancy/team-lead-perl/
     
  • 1.11, Аноним, 12:38, 10/05/2016 [ответить] [смотреть все]  
  • +1 +/
    не распарсил... весь текст скрыт [показать]
     
     
  • 2.15, Аноним, 13:00, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    man perlrun ... весь текст скрыт [показать] [показать ветку]
     
  • 1.14, Аноним, 13:00, 10/05/2016 [ответить] [смотреть все]  
  • +/
    Питон и перл - основа современных linux дистрибутивов Только пакеты питона в уб... весь текст скрыт [показать]
     
     
  • 2.17, Kibo, 13:27, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Например, CentOS 7 Minimal уже идёт без предустановленного Perl.
     
     
  • 3.26, freehck, 17:30, 10/05/2016 [^] [ответить] [смотреть все]  
  • +7 +/
    А ещё, CentOS 7 Minimal идёт с предустановленным systemd.
     
  • 1.16, Нанобот, 13:14, 10/05/2016 [ответить] [смотреть все]  
  • –1 +/
    >Все ASCII-символы, используемые в именах переменных, должны быть видимыми

    кэп, не могли бы вы разъяснить это нововведение? интересуют невидимые ASCII-символы

     
     
  • 2.20, Аноним, 14:51, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Названия переменных могли содержать управляющие сивмолы Например переменную X... весь текст скрыт [показать] [показать ветку]
     
  • 2.21, anonymous, 14:57, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    \b & friends?
     
  • 1.28, Аноним, 17:33, 10/05/2016 [ответить] [смотреть все]  
  • –2 +/
    Пошёл стирать пыль с АМИГИ....
     
  • 1.33, ALex_hha, 18:00, 10/05/2016 [ответить] [смотреть все]  
  • –1 +/
    честно, я пытался, два раза осилить сабж, но не осилил. В итоге ушел на python.
     
     
  • 2.34, Led, 18:14, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Молодец Куда послали - туда и пошёл ... весь текст скрыт [показать] [показать ветку]
     
  • 2.42, angra, 19:36, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Я бы на твоем месте постеснялся публично расписываться в ниасиляторстве Тем бол... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.71, Аноним, 23:35, 11/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Сисадмин не синоним слова идиoт Для сисадминства достаточно шеллов Выше кр... весь текст скрыт [показать]
     
  • 2.57, Аноним, 06:55, 11/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Эх ты Даже девчонки смогли Perl осилить https www youtube com watch v lhiyx_... весь текст скрыт [показать] [показать ветку]
     
  • 1.35, chinarulezzz, 18:16, 10/05/2016 [ответить] [смотреть все]  
  • +1 +/
    Ура, лучший скриптовый язык с лучшей инфраструктурой!

    Максим, принимай исправление новости. Coro нуждается в упоминании. Это важно.

     
     
  • 2.38, коро, 19:26, 10/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А что там с коро? Поменялось разве что-то?
     
     
  • 3.41, chinarulezzz, 19:32, 10/05/2016 [^] [ответить] [смотреть все]  
  • +4 +/
    В тот момент, когда перед выпуском Perl 5 24 остались считанные дни, в рассылке ... весь текст скрыт [показать]
     
     
  • 4.43, коро, 19:38, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Это я читал уже пару дней назад, но на сколько я понял в 5 24 всё осталось по ст... весь текст скрыт [показать]
     
     
  • 5.47, chinarulezzz, 21:08, 10/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Прочитал это http blogs perl org users aristotle 2016 05 coro-vs-5022 html Чщо... весь текст скрыт [показать]
     
     
  • 6.51, коро, 22:07, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    О Спасибо, что напомнили про этот линк, а то я отложил это в закладки и уже заб... весь текст скрыт [показать]
     
     
  • 7.52, chinarulezzz, 22:17, 10/05/2016 [^] [ответить] [смотреть все]  
  • +/
    Открыл для себя фичу metacpan https metacpan org diff file target RURBAN 2FCo... весь текст скрыт [показать]
     
     
  • 8.62, Andrey Mitrofanov, 20:06, 11/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Какой уродливый D git log --decorate -p -1 -stat Прямо вебдваноль какой-то Та... весь текст скрыт [показать]
     
  • 1.49, chinarulezzz, 21:18, 10/05/2016 [ответить] [смотреть все]  
  • +3 +/
    Кстати, у какого языка еще есть такая документация?

    [code]
    $ perl --help
    ...
    Run 'perldoc perl' for more help with Perl.
    $ perldoc perl
    [/code]
    и понеслась)

     
  • 1.63, solomon243, 23:13, 11/05/2016 [ответить] [смотреть все]  
  • +2 +/
    блестяще документирован. Работает быстро. Скриптуемость "на коленке" - отличная.

    Недавно получил сертификат "Base Python" однако этим языком пользоваться не тороплюсь

     
     
  • 2.73, Аноним, 23:36, 11/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Понты не колоти Напиши на чем угодно расшифровщик урлов ютуба, например ... весь текст скрыт [показать] [показать ветку]
     
  • 1.75, ALex_hha, 10:10, 12/05/2016 [ответить] [смотреть все]  
  • –4 +/
    дело не в базовом уровне, а в удобстве работы с языком Не знаю, может я странны... весь текст скрыт [показать]
     
     
  • 2.77, Crazy Alex, 19:21, 12/05/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Мне вот питон не правильный Точнее, слишком правильный - примерно как если бы... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.78, chinarulezzz, 22:14, 12/05/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Что мне нравится в perl, так это то, что можно в зависимости от общества , выра... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor