LINUX.ORG.RU

Perl 5.22.0

 


0

4

Вышла новая значительная версия популярного языка программирования Perl. Основные изменения:

  • Модули CGI и Module::Build убраны из стандартной поставки.
  • Новые битовые операторы для работы со строками: &. |. ^. ~. &= |= ^= &.= |.= ^.=
  • Новый оператор <<>>, работающий как <>, но не обрабатывающий спецсимволы в именах файлов.
  • Новый модификатор регулярных выражений: /n, не позволяющий заполнение скаляров $1, $2 и т.д. для групп метасимволов:
    "hello" =~ /(hi|hello)/;   # $1 is "hello"
    "hello" =~ /(hi|hello)/n;  # $1 is undef
    
  • Новый оператор регулярных выражений: \b
  • Добавлена директива use re 'strict', включающая «строгий» режим для регулярных выражений.
  • Добавлена поддержка Unicode 7.0
  • Вызов prototype() без аргумента теперь использует $_
  • fileno теперь работает с дескрипторами директорий.
  • Новый атрибут :const для анонимных функций.
  • Теперь Perl по умолчанию собирается с -fstack-protector-strong и -D_FORTIFY_SOURCE=2
  • Конвертирование бесконечных чисел и NaN в символы (с помощью pack, «chr» и printf «%c») теперь невозможно.
  • Модуль Safe обновлён до версии 2.38 с исправлением критической уязвимости.
  • Пустой срез списка отныне будет возвращён только в том случае, если список был пустым.
  • Числа с плавающей точкой отныне могут содержать бесконечность (как отрицательную, так и положительную) и NaN.
  • Добавлена поддержка шестнадцатеричныхлитералов с плавающей точкой (например, 0x1.23p-4).
  • Действие прагмы use encoding теперь ограничено лексической областью.
  • Импортирование функций через use UNIVERSAL '...' теперь приводит к ошибке.
  • Многочисленные улучшения производительности, обновления входящих в стандартную поставку модулей и многое другое.

>>> Подробности



Проверено: fallout4all ()
Последнее исправление: cetjs2 (всего исправлений: 5)

Ответ на: комментарий от anonymous

Хипсторам он не интересен, а школьник выше - уныл до безобразия. Некому срач разводить же!

anonymous
()
Ответ на: комментарий от soko1

Теперь Perl по умолчанию собирается с -fstack-protector-strong и -D_FORTIFY_SOURCE=2

Собирается где? В каком из дистрибутивов? Или эта опция включается вне зависимости от того какие опции выбраны?

Что за глупая школота на ЛОР-е. Ах да, каникулы жеж..

Собирается где?

Очевидно же что на компьютере где запущена сборка.

В каком из дистрибутивов?

Ни в каком - об этом речи не было. Да и причем тут дистрибутив? Что за каша в голове у вас? Очевидно же что майнтайнеры дистрибутива могут собрать с любыми флагами как им понадобится.

Или эта опция включается вне зависимости от того какие опции выбраны?

Совсем с головой проблемы? Как можно было такую глупость написать еще и напроч игнорируя написанно: написано же что ПО УМОЛЧАНИЮ.

Да и если бы вы были хоть как-то знакомы с программированием и с процессом сборки программ, то были бы в курсе что скрипты-конфигураторы могут быть выполнены с параметрами по умолчанию. Соответсвенно, конфигуратор сборки perl аналогичным образом может быть запущен с параметрами по умолчанию (вызов ./Configure -des). В этом случае и будет задействовано то что упомянуто как «по умолчанию». Именно об этом было отчетливо сказано. У кого интеллекта хватило - тот за буквами понял смысл, но не вы. Вам это ни о чем не говорит, поэтому и задали свои глупые вопросы.

Я вам больше скажу: обычно скрипты конфигураторы работают с параметрами по умолчанию анализируя как переменные окружения, так и параметры командной строки. И если, к примеру, во флагах уже определена константа -D_FORTIFY_SOURCE=1, то она не будет переопределена в -D_FORTIFY_SOURCE=2.

Вот же расплодились ламерки и виндузатники ни чуть не думающие своей головой.

anonymous
()
Ответ на: комментарий от anonymous

На слэшдоте перловый говнокод дремучей версии говнокодом погоняющий. Форк его для soylentnews уже больше года разгребает. Уже заработал юникод, лол.

И снова одно и то же. Я думал уже все понимают что на любом ЯП можно наговнокодить. Кроме того, код пишет программист и если результат его работы является «говнокодом», то perl тут не виноват. Говнокод пишут говнокодеры.

Вы вероятно просто никогда не видели говнокод на Java, C++, Python и Си - а я видел. Особенно много говнокода видел на PHP и JavaScript. Кроме всего, я много работал (и работаю) с хорошо структурированным кодом написанном на perl. Вам вероятно просто из этого ничего не знакомо, поэтому вы не понимаете что качество кода зависит от способностей программиста.

anonymous
()
Ответ на: комментарий от anonymous

Мы, вероятно, просто хотим сказать, что лучше не жрать говно если есть такая возможность.

anonymous
()

Модули CGI и Module::Build убраны из стандартной поставки

Традиционный вопрос: кому они мешали? Особенно CGI.

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Видишь ли, Перл - язык, который может помочь быстро решить сиюминутную и простую проблему. Беда в том, что когда решение простой проблемы нужно дополнить чем-то более сложным, то начинаются ступоры. И бедный перл программист сидит и думает: «ну вот, ещё вот здесь преодолею сложность, а потом легче будет». Только легче не становится, а наоборот, чем дальше в лес, тем больше дров, а в итоге получается фэйл. :-) Кстати, перл в этом плане похож на цепепе :-)

anonymous
()

Ну выглядит разумно. Может кому и пригодится.

gns ★★★★★
()
Ответ на: комментарий от hobbit

Никому не мешали. Просто стали не нужны, видимо. Или нужны, но существенно не всем.

gns ★★★★★
()
Ответ на: комментарий от anonymous

Мы, вероятно, просто хотим сказать, что лучше не жрать говно если есть такая возможность.

Именно поэтому я отказался от использования Java и Python в пользу perl. Меня сильно ущемляет топорность этих языков, а perl дает достаточно свободы. Но как всегда, свобода - это ответственность.

anonymous
()
Ответ на: комментарий от hobbit

Традиционный вопрос: кому они мешали?

CGI один из самых одиозных в перле. Тяжелый, чудовищно написан, много багов, не поддерживался длительное время (сейчас сменился автор, но как-то плохо с поддержкой).

Скорее всего хотят чтобы этот модуль забыли. Поэтому модуль придется ставить с CPAN'а, не хотят чтобы он был частью языка. Есть легковесные альтернативы, есть фреймворки с поддержкой CGI-деплоймента.

outtaspace ★★★
()
Ответ на: комментарий от anonymous

И бедный перл программист сидит и думает

В этом аспекте (управление сложностью) перл от других соплеменников не отличается.

outtaspace ★★★
()
Ответ на: комментарий от anonymous

Видишь ли, Перл - язык, который может помочь быстро решить сиюминутную и простую проблему. Беда в том, что когда решение простой проблемы нужно дополнить чем-то более сложным, то начинаются ступоры. И бедный перл программист сидит и думает: «ну вот, ещё вот здесь преодолею сложность, а потом легче будет». Только легче не становится, а наоборот, чем дальше в лес, тем больше дров, а в итоге получается фэйл. :-) Кстати, перл в этом плане похож на цепепе :-)

Вы глупость пишете. То о чем вы пишете называется «технический долг» и возникнуть может он на любой разработке (не только в perl, да и не только в программировании). Хочет это или нет, понимает это или нет, но программисту придется покрыть этот технический долг. Либо он перекрывает его заранее (когда создает очередное MFC чтобы решить простую, сиюминутную проблему), либо позже когда по требованию. Если программист глуп и недалек то он будет вести себя ровно так как вы описали. Я так себя не веду.

Perl позволяет сдвигать «выплату техническго долга» во времени по требованию. И как вести себя решает программист, понимает он это или нет. Если он не понимает, глуповат и ищет легкие сиюминутные решения - то он поведет себя так как вы описали. Но не все так поведут себя.

Perl очень гибкий и мощный но все же инструмент. И от человека зависит насколько он способен владеть инструментом. Релиз perl 5.22.0 - это событие повествующиее об очередном совершенствовании инструмента.

Странно что мне приходится напоминать об это снова и снова.

anonymous
()
Ответ на: комментарий от anonymous

Сколько букафф ...

А в реальность - всё, повторяю ___ВСЁ___ что сделано на перловке - редкое говно. Перл мёртв, закрывайте трэд.

anonymous
()
Ответ на: комментарий от anonymous

Чувак, остынь, всё ок - побереги свои нервы.

Вообще я бы посоветовал обратиться к врачу, т.к. по всей видимости у тебя проблемы с кратковременной памятью. В одном только сообщении целых:

Что за глупая школота
Что за каша в голове у вас?
Совсем с головой проблемы?
У кого интеллекта хватило - тот за буквами понял смысл, но не вы.
Вам это ни о чем не говорит, поэтому и задали свои глупые вопросы.
Вот же расплодились ламерки и виндузатники ни чуть не думающие своей головой.

Или сюда всё же более применима поговорка «у кого что болит»? :)

soko1 ★★★★★
()
Ответ на: комментарий от anonymous

На самом деле есть задачи, которые на Перл решать можно, а есть задачи, которые на нём решать можно, но не нужно. Для сколь-нибудь серьёзных проектов Перл лучше не трогать.

anonymous
()
Ответ на: комментарий от anonymous

Игрю во фрозен баббл. Спасибо выложившему ссылки за примеры. Ты не прав. Хотя я вообще не знаю что он из себя представляет, но он явно годен. Потому что будь эта игра написана на си она бы уже высыпала кучу артефактов и зависла с длинным гудком. А будь она накалякана на пифоне то сожрала бы всю память и медленно бы замерла в бесконечном фризе.

anonymous
()
Ответ на: комментарий от anonymous

Новые битовые операторы для работы со строками: &. |. ^. ~. &= |= ^= &.= |.= ^.=
Новый оператор <<>>, работающий как <>, но не обрабатывающий спецсимволы в именах файлов.

Больше спецзнаков богу спецзнаков! Перловики продолжают стрелять себе в ногу раз за разом.

anonymous
()
Ответ на: комментарий от anonymous

Если б ведьмак 3 писали бы на перле, он бы вышел в 2025 году, может быть, если бы сильно повезло.

anonymous
()
Ответ на: комментарий от anonymous

Сколько букафф ...

За буквами есть смысл, но не все его найдут.

А в реальность - всё, повторяю ___ВСЁ___ что сделано на перловке - редкое говно. Перл мёртв, закрывайте трэд.

Вот поленились разбираться с буквами и не стали искать смысл и теперь продолжаете писать ерунду. Это вполне ожидаемо и предсказуемо, я бы даже сказал среднестатистически. Не переживайте, я не собираюсь переубеждать вас или ущемлять ваши права оставаться дремучим и шаблонномыслящим. Нет никакого смысла тратить время на ваше образование, думайте как думаете.

anonymous
()
Ответ на: комментарий от timp

mail.ru

Быстро и решительно переползает на питончик.

rambler был целиком на перле, а теперь почти целиком на питончике.

anonymous
()
Ответ на: комментарий от soko1

Чувак, остынь, всё ок - побереги свои нервы.

Я абсолютно спокоен.

Вообще я бы посоветовал обратиться к врачу, т.к. по всей видимости у тебя проблемы с кратковременной памятью. В одном только сообщении целых:

...

Или сюда всё же более применима поговорка «у кого что болит»? :)

Это лишь «приправа» к основному содержанию которое вы даже не заметили. Даже забавно от того как легко школьниками манипулировать. Поздравляю с тем что вы публично опростоволосились :).

anonymous
()
Ответ на: комментарий от anonymous

На самом деле есть задачи, которые на Перл решать можно, а есть задачи, которые на нём решать можно, но не нужно. Для сколь-нибудь серьёзных проектов Перл лучше не трогать.

А это кто сказал? Тот кто не умеет использовать perl в серьезный проектах? Может вам идти поучиться вместо того чтобы свое неосиляторство публиковать?

Вот я например использовал и буду использовать как си так и perl в достаточно сложных проектах. У меня не будет проблем в серьезных проектах, так как я немного понимаю вопрос организации проектов и знаю как строить код так чтобы он не «поплыл». Кстати, умение управлять сложными проектами на самом деле слабо связано с ЯП в принципе если понимать модель ООП и ее реализацию. Впрочем, этот вопрос уже не тема для обсуждения со школьниками.

anonymous
()
Ответ на: комментарий от anonymous

А это кто сказал? Тот кто не умеет использовать perl в серьезный проектах? Может вам идти поучиться вместо того чтобы свое неосиляторство публиковать?

Это сказал тот, кому больше по нраву Lisp :-)

Впрочем, этот вопрос уже не тема для обсуждения со школьниками.

Кококо :-)

anonymous
()
Ответ на: комментарий от true_admin

ну давай подумаем вместе

- адъ с perl-core/ как тебе описали
- адъ c LDFLAGS
- адъ с кросскомпиляцией (как всегда)
- адъ с тем что перл срет файлами мимо FHS и ставит много чо налево (да и щас срет, но я этого не говорил, скажи спасибо апстриму).

- множество других болей в области заднего прохода (невыявленных, но очень вероятных).

Zlogene
()
Ответ на: комментарий от anonymous

Зато в одну строчку! Скопипастил в консоль и поиграл. а так пришлось винду ставить. Кстати в таких больших проектах может быть всё что угодно включая перл и js.

anonymous
()
Ответ на: комментарий от Pinkbyte

выгляни в окно там лето, да и домой я нынче поздно прихожу, а вооюще там без меня есть кому заняться, чо я, зря чтоли тиму расширял? А кента я уже пристроил.

Zlogene
()
Ответ на: комментарий от anonymous

Мне кажется у вас слишком много проектов:)

Всякое было. Некоторые мои патчи авторы приняли и применили к своим модулям на CPAN. Моя работа была приянта даже в perl-core. В свое время я занимался вопросами с mod_perl 2.0 (perl-обработчик для apache) и т.д. Сейчас почти не занимаюсь публичными модулями и открытыми проектами, лишь иногда разбираюсь в си-коде интерпретатора perl, т.к. хочу кое-что доработать.

anonymous
()
Ответ на: комментарий от anonymous

Это сказал тот, кому больше по нраву Lisp :-)

Lisp - это очень хорошо, но надо уметь пользоваться. У меня с Lisp не сложилось, т.к. все что нужно я нашел в perl.

Кококо :-)

Как вы точно подметили свой уровень суждении. До этого сообщения я еще немного сомневался в ваших способностях :-)

anonymous
()
Ответ на: комментарий от KUser

Недавно(по сравнению с патчем Бармина конечно) мне доставило аццкое выражение

Для Ъ:

Matthias Weckbecker found that perl -e '/\6666666666/' causes perl (at least 5.8 and 5.10) to segfault on x86_64.

Баг не новый, но тестовый паттерн доставляет по прежнему

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Deleted

Скажем все крупные игры пожалуй. Но я сравнивал с си с плюсами было бы не честно.

anonymous
()
Ответ на: комментарий от anonymous

Перловики продолжают стрелять себе в ногу раз за разом.

Ты таки допускаешь, что за 30 лет у них остались ноги?

anonymous
()
Ответ на: комментарий от anonymous

допускаю что это явилось причиной уменьшения популяции даного вида.

anonymous
()
Ответ на: комментарий от Pinkbyte

Pinkbyte

20150603$ perl -e '/\6666666666/' Segmentation fault rgassanov@gru:~/GR/work/20150603$ perl -v

This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi

Я ващь перл тюбетейка шатал! (r) Хорошо что в новых проектах его нет, чуть более чем полностью.

anonymous
()
Ответ на: комментарий от Pinkbyte

Хорошее свидетельство качества языка :)
Интересно, на чём интерпретатор сам написан (вроде бы не на самом себе, т.к. Perl6 на Haskell делался)

KUser
()
Ответ на: комментарий от KUser

P5 написан на c89.

На хаскеле пилили одну из реализаций P6, это было очень давно. С тех пор было много попыток что-то запилить, актуальная версия на MoarVM, тоже на C.

outtaspace ★★★
()
Ответ на: комментарий от anonymous

Как вы точно подметили свой уровень суждении. До этого сообщения я еще немного сомневался в ваших способностях :-)

Сколько пафоса :-) Кококо :-)

anonymous
()
Ответ на: комментарий от Pinkbyte

Баг как баг, ничего тут особенного нет. Люди занимающиеся разработками программного обеспечения осознают что мир не идеален и в современном ПО встречаются всякие проблемы.

Не знаю почему у гентушников все еще статус «IN_PROGRESS», т.к. проблема была закрыта 17 октября 2013 года (http://perl5.git.perl.org/perl.git/commitdiff/0c2990d652e985784f095bba4bc3564...) к выпуску версии 5.19.5 :

author David Mitchell <davem@iabyn.com> Wed, 16 Oct 2013 12:59:12 +0000 (13:59 +0100) committer David Mitchell <davem@iabyn.com> Thu, 17 Oct 2013 09:57:35 +0000 (10:57 +0100) The code that parses regex backrefs (or ambiguous backref/octal) such as \123, did a simple atoi(), which could wrap round to negative values on long digit strings and cause seg faults.

Include a check on the length of the digit string, and if greater than 9 digits, assume it can never be a valid backref (obviating the need for the atoi() call).

I've also simplified the code a bit, putting most of the \g handling code into a single block, rather than doing multiple «if (isg) {...}».

Баг скучный - ничего интересного. Гораздо интереснее вот этот коментарии https://bugs.gentoo.org/show_bug.cgi?id=216671#c11 :

The backport is nontrivial; the patch does not apply. (Yes I tried fixing it, but it's surrounded by rather complex spaghetti code.)

вот эта часть:

Yes I tried fixing it, but it's surrounded by rather complex spaghetti code.

Смотрим на «супер-сложный» патч закрывающий проблему http://perl5.git.perl.org/perl.git/commitdiff/0c2990d652e985784f095bba4bc3564... .

Без коментариев :-)

anonymous
()
Ответ на: комментарий от anonymous

Не знаю почему у гентушников все еще статус «IN_PROGRESS»

Потому что не выпущен GLSA по данной уязвимости. Версии, не подверженные ей уже в главном дереве в stable, но по правилам работы Gentoo Security баг считается закрытым только когда выпущена GLSA(или в случае несерьезной уязвимости - принято решение не выпускать GLSA)

Pinkbyte ★★★★★
()
Ответ на: комментарий от anonymous

Я тебе могу много таких примеров накидать, когда результирующий патч простой, но чтобы до него добраться нужно реально курить код и быть в теме - быть апстримом.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Deleted

5.18.1 не проявляется.

у меня в 5.14.2 тоже не проявляется

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.