The OpenNET Project / Index page

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

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

10.05.2016 11:11

После года разработки состоялся релиз новой стабильной ветки языка программирования 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 3.0
Короткая ссылка: https://opennet.ru/44394-perl
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (65) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Вовик_Путтин (?), 12:01, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +30 +/
    Лучший скриптовый язык. Неосиляторы, минусуйте!
     
     
  • 2.3, Crazy Alex (ok), 12:18, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Согласен. Именно как скриптовый в оригинальном понимании - "быстро накидать автоматизацию для себя, часто - на один раз" перл даже сравнить особенно не с чем.
     
  • 2.4, Какаянахренразница (ok), 12:20, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Неосилятор, но минусовать не буду. Буду плюсовать и завидовать.
     
  • 2.5, grec (?), 12:21, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Только вот встречаются не редко проекты по типу "начали писать на perl. Ой фак. Переписали на python. Полет нормальный".

    PS Не фанат python.

     
     
  • 3.19, Crazy Alex (ok), 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 (ok), 21:08, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На перле как правило спецы работают. На фронтенд перловиков сажать реально не нужно и дорого.
     
     
  • 7.50, коро (?), 22:02, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Почему же на фронтэнд? На сколько я в курсе текущей ситуации (а я могу быть совсем не в курсе), то всё указанное выше сейчас прекрасно работает бекендах.

    А по поводу спецов — всё верно. На перле либо только-только начавшие учить язык, либо спецы, которые за среднюю зарплату не пойдут пилить проекты. Уверенных середнячков на перле найти сложно, куда проще на других популярных языках.

     
  • 6.58, Crazy Alex (ok), 10:50, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я выразился ровно так, как и хотел. Учитывая, что моим основным языком был перл не один год - я знаю, о чём говорю. То, что нужно поддерживать/расширять, лучше писать на рубях/питонах/Go/D/ещё чём-то. И дело в чисто технических недостатках. Одного отсутствия нормальных прототипов и проблем с юникодом хватит. Причём юникод там так хитро поломан, что если для конкретного случая можно подкостылить, то наваять какой-то общий подход довольно проблематично - слишком много вариантов, особенно у модулей. А принципиальных преимуществ для написания софта нет по сравнению с конкурентами. Ну и скорость у него так себе, если не считать процессинг текста. Особенно если об ООП речь идёт.

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

     
  • 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, Аноним (61), 18:54, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    а когда он сдохнет из-за несовместимости версий не подскажете?
     

  • 1.7, Stax (ok), 12:26, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Призываю в тред ненавистников проверенных стабильных версий, пусть популярно объяснят народу, что Perl 5 давно пора похоронить и прекратить поддерживать, а нынче писать можно только на Perl 6 (да-да, тех самых из соседнего треда, кто агитировал за Python 3 и не понимал, почему в реальности все продолжают писать на Python 2).
     
     
  • 2.12, Аноним (12), 12:54, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    зачем хоронить - пусть чернь поддерживает легаси проекты на perl.
    а мы будем писать на языке бояр - Go.
     
     
  • 3.30, _ (??), 17:47, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > а мы будем писать на языке бояр - Go.

    Писать на языке бояр - не значит быть боярином! Так смердом и закончишь :)))

     
     
  • 4.69, Аноним (-), 23:32, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> а мы будем писать на языке бояр - Go.
    > Писать на языке бояр - не значит быть боярином! Так смердом и
    > закончишь :)))

    Кто из грязи вышел в князи - тот не человек (с) Русская поговорка, кстати.

     
  • 2.31, _ (??), 17:50, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Perl 5 давно пора похоронить и прекратить поддерживать, а нынче писать можно только на Perl 6

    У тебя задержка развития? Жалость то какая :( Ну ничего, лет ещё чере 10 до тебя тоже дойдёт что это два разных языка. Как С и С++.

    > соседнего треда, кто агитировал за Python 3 и не понимал, почему в реальности все продолжают писать на Python 2).

    В какой реальности? Поставь бубунту - там тольуо третий питон уже. Второй - если нуже - надо ставить руками. И так - везде.

     
     
  • 3.45, Stax (ok), 20:19, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да мне, в общем, без разницы просто несколько смешно читать комментарии людей, ... большой текст свёрнут, показать
     
     
  • 4.46, angra (ok), 20:42, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У perl6, в отличии от python3, нет пригодных к использованию реализаций. Какая разница насколько хорош perl6, если он работает в 40 раз медленее perl5. Также я бы отметил, что Ларри, в отличии от Гвидо, не призывает к переходу на perl6.
     
     
  • 5.70, Аноним (-), 23:33, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > У perl6, в отличии от python3, нет пригодных к использованию реализаций. Какая
    > разница насколько хорош perl6, если он работает в 40 раз медленее
    > perl5. Также я бы отметил, что Ларри, в отличии от Гвидо,
    > не призывает к переходу на perl6.

    На баше пиши. И будет щастье.

     

  • 1.9, агент малдер (?), 12:34, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    много ли вакансий вы выдели за последние пару лет для перла?
     
     
  • 2.18, _KUL (ok), 13:58, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но если в резюме увидят опыт работы с perl, написание многопоточной системы или обёртки на Plack, то у взорслых ИТ-шников сразу будет неосознанный прилив уважения в вашу сторону. Знает перл, значит смог в этих сумбурных хитросплетениях разобраться, значит не глупый человек.
     
     
  • 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 +/
    Массовую статистику и перспективу для освоения ЯП предъявите?

    Как ни крути, но если ЯП позволяет незатейливо выражаться
    по принципу "Смотри как я умею!", то абсолютно нулёво,
    что ты будешь соблюдать при написании своих скриптов.
    Ты не один. А значит будешь тратить время на расшифровку
    очередного смотрикакяумею стиля.
    Наверно поэтому, очень желательно иметь ТЗ(а не сам Perl код)
    и переписать всё по своему смотрикакяумею.
    Именно в этом проблема, и в Perl она выраженна наиболее показательно.

     
     
  • 6.53, _ (??), 22:23, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Массовую статистику и перспективу для освоения ЯП предъявите?

    Зачем? Ресурсов с подобным в сети >> 1 - иди да смотри ...

    Но как это отменит зе факт о котором я писал? Не голодают сволочи! :)

    И ещё - твой успех в последнюю очередь будет зависеть от языка который ты выучил ... вот такая вот фигня! :)

     
  • 6.54, Аноним (-), 22:53, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Как ни крути, но если ЯП позволяет незатейливо выражаться
    > по принципу "Смотри как я умею!", то абсолютно нулёво,
    > что ты будешь соблюдать при написании своих скриптов.

    Ну вот вам очередной смотрикакяумею:



    def unique(_, __ = type({( )})):
        __ = type("""
                          .-=-.          .--.
              __        .'     '.       /  " )
      _     .'  '.     /   .-.   \     /  .-'\
    ( \   / .-.  \   /   /   \   \   /  /    ^
      \ '-' /   \  '-'   /     \   '-'  /
    jgs'-.-'     '.____.'       '.____.'""", (__,),
    {'_' : __.__dict__[filter(lambda _: '_' not in _,
                        sorted(__.__dict__))[::-1].pop()]})( {( )} )
        return [_ for _ in _ if _ not in __ and not __._(_)]



    И как, от того, что это питон, легче читается?

     
  • 6.55, anonimous (?), 23:02, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С документацией более удобно читать код на любом языке.
    Почему то, не учитывают, что Ларри лингвист. И он создал язык программирования более близкий к языку человека. Человек может описывать одно и то же разными словами и это же характерно для PERL.
    И не надо смешивать в одну кучу стиль оформления кода, особенности кодирования и возможности языка. Это не правильно.
    Есть разные задачи для которых более подходящим являются те или иные языки. Есть задачи для PERL, и их в общем числе задач стало относительно меньше, но они никуда не делись, о них стали меньше болтать. Примерно такая же ситуация с фортраном кода много, он используется, а болтавни фактически нет.
     
  • 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 +/
    > Ранее передача осуществлялась если в заголовке скрипта отсутствовало слово "perl" (например, "#!/bin/sh").

    не распарсил

     
     
  • 2.15, Аноним (-), 13:00, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Ранее передача осуществлялась если в заголовке скрипта отсутствовало слово "perl" (например, "#!/bin/sh").
    > не распарсил

    man perlrun

     

  • 1.14, Аноним (-), 13:00, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Питон и перл - основа современных linux дистрибутивов. Только пакеты питона в убунте занимают 413 мегов. Это ценнейшая фишка! Если удалить - ничего не останется, нечему будет лагать, тормозить и забивать память. А так не интересно.
     
     
  • 2.17, Kibo (?), 13:27, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Например, CentOS 7 Minimal уже идёт без предустановленного Perl.
     
     
  • 3.26, freehck (ok), 17:30, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    А ещё, CentOS 7 Minimal идёт с предустановленным systemd.
     

  • 1.16, Нанобот (ok), 13:14, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Все ASCII-символы, используемые в именах переменных, должны быть видимыми

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

     
     
  • 2.20, Аноним (-), 14:51, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Названия переменных могли содержать управляющие сивмолы. Например переменную $^X - путь к текущему интерпретатору, можно было писать в виде $^X, где ^X - один символ, в vim-е можно ввести через CTRL_V CTRL_X в режиме вставки. Не бог весть какая фича, но кому она мешала, непонятно. В 5.22 вроде повесили варнинг на такие имена, что поломало например AnyEvent::Fork
     
  • 2.21, anonymous (??), 14:57, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    \b & friends?
     

  • 1.28, Аноним (-), 17:33, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Пошёл стирать пыль с АМИГИ....
     
  • 1.33, ALex_hha (ok), 18:00, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    честно, я пытался, два раза осилить сабж, но не осилил. В итоге ушел на python.
     
     
  • 2.34, Led (ok), 18:14, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > честно, я пытался, два раза осилить сабж, но не осилил. В итоге
    > ушел на python.

    Молодец. Куда послали - туда и пошёл.

     
  • 2.42, angra (ok), 19:36, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Я бы на твоем месте постеснялся публично расписываться в ниасиляторстве. Тем более, что на базовом уровне perl осваивали все быдлокодеры допыховой эпохи, да и среди сисадминов это довольно распространенный навык.
     
     
  • 3.71, Аноним (-), 23:35, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Я бы на твоем месте постеснялся публично расписываться в ниасиляторстве. Тем более,
    > что на базовом уровне perl осваивали все быдлoкодеры допыховой эпохи, да
    > и среди сисадминов это довольно распространенный навык.

    "Сисадмин" не синоним слова "идиoт". Для сисадминства достаточно шеллов. Выше крыши.

     
  • 2.57, Аноним (-), 06:55, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Эх ты! Даже девчонки смогли Perl осилить!

    https://www.youtube.com/watch?v=lhiyx_90_00
    https://www.youtube.com/watch?v=zlf63A-lYaI
    https://www.youtube.com/watch?v=dlIlp5nwuwo

     

  • 1.35, chinarulezzz (ok), 18:16, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ура, лучший скриптовый язык с лучшей инфраструктурой!

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

     
     
  • 2.38, коро (?), 19:26, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что там с коро? Поменялось разве что-то?
     
     
  • 3.41, chinarulezzz (ok), 19:32, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > А что там с коро? Поменялось разве что-то?

    В тот момент, когда перед выпуском Perl 5.24 остались считанные дни, в рассылке perl5-porters внезапно вспомнили, что в новом Perl по-прежнему остаётся сломанным модуль Coro Марка Леманна. Одна из проблем была связана с тем, что в Perl 5.22 структура MGVTBL (магическая виртуальная таблица), формирующаяся во время компиляции perl, стала константной. Coro делал переопределение в таблице, поэтому и не мог работать с новым Perl 5.22. Было предложено откатить это изменение до выхода Perl 5.24.

    Вносить подобные изменения в последние дни перед выпуском слишком рискованно, поэтому произошёл спонтанный мозговой штурм проблемы, в результате которого удалось выяснить очень много интересных деталей. Оказалось, что переопределение MGVTBL требовалось Coro только для того, чтобы переопределить работу с хендлерами сигналов __DIE__ и __WARN__ для магического хеша %SIG, что в свою очередь было сделано из-за бага Perl, когда присутствует рассинхронизация в PL_warnhook и $SIG{__WARN__}. Теоретически оба должны ссылаться на хендлер обработки предупреждений, но некоторые кривые XS-программы, в том числе входящие в базовый Perl (например, find в PerlIO::Layer), могут изменить только PL_warnhook, забыв про $SIG{__WARN__}. То есть это был банальный костыль в Coro для обхода реальной проблемы в Perl. Эта проблема была зафиксирована в баге #125349,

    Более того, оказалось, что Coro можно было приспособить для работы с константной MGVTBL, Dave Mitchell и Father Chrysostomos продемонстрировали патч, который позволяет Coro работать без проблем на Perl 5.22.

    Очевидно, что если бы этот мозговой штурм прошёл год назад, проблема была бы решена раньше и не возникло бы таких явлений как stableperl. Вероятно штурм бы и не потребовался, если бы Марк сообщил о проблеме в Perl, когда столкнулся с ней впервые.

    P.S. Спасибо perlnews.ru за инсайдерские скандалы, интриги, расследования)

     
     
  • 4.43, коро (?), 19:38, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это я читал уже пару дней назад, но на сколько я понял в 5.24 всё осталось по старому. Да и баг 125349 всё ещё открыт.
    Здесь в irc народ пишет, что RURBAN запилил патч для coro и выпустил свою версию (https://metacpan.org/release/RURBAN/Coro-6.4801), которая, вроде, полностью рабочая.
     
     
  • 5.47, chinarulezzz (ok), 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 [^] [^^] [^^^] [ответить]  
  • +/
    > Прочитал это http://blogs.perl.org/users/aristotle/2016/05/coro-vs-5022.html

    О! Спасибо, что напомнили про этот линк, а то я отложил это в закладки и уже забыл про него)

     
     
  • 7.52, chinarulezzz (ok), 22:17, 10/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Открыл для себя фичу metacpan:

    https://metacpan.org/diff/file?target=RURBAN%2FCoro-6.4801%2F&source

     
     
  • 8.62, Andrey Mitrofanov (?), 20:06, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какой уродливый D git log --decorate -p -1 -stat Прямо вебдваноль какой-то Та... текст свёрнут, показать
     

  • 1.49, chinarulezzz (ok), 21:18, 10/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Кстати, у какого языка еще есть такая документация?




    $ perl --help
    ...
    Run 'perldoc perl' for more help with Perl.
    $ perldoc perl



    и понеслась)

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

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

     
     
  • 2.73, Аноним (-), 23:36, 11/05/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > блестяще документирован. Работает быстро. Скриптуемость "на коленке" - отличная.
    > Недавно получил сертификат "Base Python" однако этим языком пользоваться не тороплюсь

    Понты не колоти. Напиши на чем угодно расшифровщик урлов ютуба, например.

     

  • 1.75, ALex_hha (ok), 10:10, 12/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Тем более, что на базовом уровне perl осваивали все быдлокодеры допыховой эпохи, да и среди сисадминов это довольно распространенный навык.

    дело не в базовом уровне, а в удобстве работы с языком. Не знаю, может я странный, но не могу я принять синтаксис perl, какой то он "не правильный" :)

    В python по начаду было не привычно из-за пробелов/табуляции, но к этому быстро привыкаешь. Ну и плюс, что python идет по дефолту в том же centos, а вот perl надо ставить дополнительно. Мелочь, а приятно

    P.S.
    Просто оставлю это здесь

    http://bleaklow.com/images/2003/p6_cover_big.gif

     
     
  • 2.77, Crazy Alex (ok), 19:21, 12/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне вот питон "не правильный". Точнее, слишком правильный - примерно как если бы, напоминая кому-то про незакрытую дверь, я вместо того, чтобы сказать "эй, дверь!" начал бы "Уважаемый господин, обратите внимание, что дверь, которую принято закрывать, осталась закрытой. Пожалуйста, закройте её плотно".

    А насчёт дефолтов - в моих дебиане с гентой перл из коробки. Питон, кажется, тоже, не интересовался.

    А вообще - питонщикам пора на Go гнать, скорее всего именно он питон сменит.

     
     
  • 3.78, chinarulezzz (ok), 22:14, 12/05/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >примерно как если бы, напоминая кому-то про незакрытую дверь, я вместо того, чтобы сказать "эй, дверь!" начал бы "Уважаемый господин, обратите внимание, что дверь, которую принято закрывать, осталась закрытой. Пожалуйста, закройте её плотно".

    Что мне нравится в perl, так это то, что можно в зависимости от "общества", выражаться то "эй, дверь!" - в делах сисадминских, или "уважаемый господин, ..." если в делах библиотечных. Все таки, это язык общего назначения. По крайней мере у меня.

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру