The OpenNET Project / Index page

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

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

20.05.2013 11:38

После года разработки представлена новая стабильная ветка языка программирования - Perl 5.18. В рамках подготовки нового выпуска было изменено около 400 тыс. строк кода, изменения затронули 2100 файлов, в разработке приняли участие 113 разработчиков.

Ветка 5.18 выпущена в соответствии с утверждённым три года назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. 20 июня планируется выпустить первый корректирующий релиз Perl 5.18.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.18.0. Одновременно с выходом Perl 5.18 прекращена поддержка ветки 5.14, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.19, на базе которой в мае 2014 года будет сформирован стабильный релиз Perl 5.20.

Ключевые улучшения, добавленные в Perl 5.18:

  • Переработанная реализация хэшей. Одним из самых заметных изменений является обеспечение рандомизации в используемых хэш-функциях, что положительно влияет на безопасность (например, защитит от DoS-атак через манипуляции с коллизиями хэшей), но приводит к непредсказуемому порядку вывода элементов функциями keys(), values() и each(). Данное изменение может повлиять на работу приложений, пользующихся недокументированным свойством сохранения порядка записей в разных хэшах (в официальной документации хэши позиционируется как неупорядоченные структуры). Отныне порядок следования идентичных записей в разных хэшах и в одних и тех же хэшах при разных запусках скрипта будут отличаться. Уровень рандомизации может быть настроен через переменную окружения PERL_PERTURB_KEYS (при присвоении значения 0 рандомизация ключей отключается и поведение perl становится как в прошлых выпусках).

    Из других изменений можно отметить реализацию возможности использования альтернативных хэш-функций. В качестве алгоритма хэширования по умолчанию задействован ONE_AT_A_TIME_HARD. Кроме того, в состав включено несколько альтернативных алгоритмов, но они, кроме SIPHASH, который считается безопасным, рекомендуются пока только для экспериментов, так как содержат определённые проблемы с безопасностью;

  • Новый механизм для активации экспериментальных возможностей и новая категория предупреждений "experimental", управляющая выводом уведомлений для тестовой функциональности. Например, для включения новых экспериментальных возможностей и скрытия связанных с ними предупреждений следует указывать директивы:
    
       no warnings "experimental::feature_name";
       use feature "feature_name"; 
    
  • Поддержка экспериментального расширения в системе регулярных выражений, позволяющего осуществлять сопоставления с использованием расширенных правил пересечения, исключения и объединения множеств символов. Например, '[A-Z - W]' - символы от A до Z за исключением W. Более сложный пример формирования множества символов: '[\\p{Latin} & \\p{L&} - A-Z]'. Функциональность совпадает по возможностям с модулем Unicode::Regex::Set;
  • Экспериментальная поддержка лексических подпрограмм ("lexical_subs"), позволяющая определять при помощи выражения "state sub" подпрограммы, видимые только в области лексической видимости блока в котором подпрограмма была создана. В отличие от "my sub" процедуры "state sub" работают заметно быстрее, так как они не создаются при каждом входе в блок и совместно используются между вызовами других подпрограмм;
  • Возможность использования в операторах next, last и redo динамически вычисляемых меток, формируемых в процессе выполнения скрипта на основе произвольного выражения. Ранее любые отличные от константы аргументы next, last и redo воспринимались как пустая строка;
  • В пространство имён "CORE::" включены функции defined, delete, exists, glob, pos, prototytpe, scalar, split, study и undef, т.е. теперь их можно переопределять стандартным способом без дополнительных ухищрений;
  • Поддержка Unicode 6.2 и реализация возможности определения собственных имён символов для использования в \\N{...}, charnames::vianame() и т.п. При задании имён могут быть задействованы знаки из диапазона Unicode, т.е. имена символов теперь можно определить не только на английском языке. Использование неизвестных имён символов в \\N{...} теперь приводит к ошибке, вместо предупреждения. Указание $/ = \\N для функции readline() теперь приводит к чтению N-символов, а не N-байт. Проведены заметные оптимизации скорости работы регулярных выражений в которых присутствуют Unicode символы, например, скорость выполнения операции \\X увеличилась на 35-40%;
  • Интеграция новых контрольных точек для использования в системе динамической отладки DTrace: op-entry, loading-file, loaded-file;
  • Добавлена новая служебная переменная ${^LAST_FH} для доступа к последнему прочитанному файловому дескриптору;
  • Вертикальная табуляция (\\cK) теперь отнесена к множеству символов пробела (\\s).
  • Обновлены версии большого числа входящих в базовую поставку модулей;
  • Объявлены устаревшими модули: encoding, Archive::Extract, B::Lint*, Devel::InnerPackage, Log::Message*, Module::Pluggable*, Object::Accessor, Pod::LaTeX, Term::UI*. Прекращена поддержка напрямую вызываемых из системной библиотеки функций для проверки класса символов, например, is_uni_alnum и т.п.; Прекращается поддержка платформ Windows CE, z/OS, DG/UX и NeXT;
  • В документацию по использованию модуля Storable добавлен пункт, предупреждающий о недопустимости десериализации данных, полученных из недоверительных внешних источников, так как в процессе подобной обработки можно организовать выполнение perl-кода и загрузку модулей;


  1. Главная ссылка к новости (http://www.nntp.perl.org/group...)
  2. OpenNews: Языку Perl исполнилось 25 лет
  3. OpenNews: Доступен интерпретатор языка программирования Perl 5.16
  4. OpenNews: Архиву Perl-модулей CPAN исполнилось 16 лет
  5. OpenNews: Релиз Perl 5.14
Лицензия: CC-BY
Тип: Программы
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (108) Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, noize (ok), 12:35, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]
  • +2 +/
    В тред призываются "хоронители" перла. А я запасаюсь попкорном)
     
     
  • 2.13, arisu (ok), 13:20, 20/05/2013 [^] [ответить]    [к модератору]
  • –19 +/
    > В тред призываются "хоронители" перла. А я запасаюсь попкорном)

    ну, вот он я. где же хвалёный пёрл6? когда же уже прекратят насиловать труп и осилят?

     
     
  • 3.15, sanchous (?), 13:25, 20/05/2013 [^] [ответить]    [к модератору]
  • +1 +/
    надо было подготовиться хоть как-то
    про перл6 шутка не модная и давно заезженная
    здесь разговор про перл5 сейчас
     
     
  • 4.16, arisu (ok), 13:33, 20/05/2013 [^] [ответить]    [к модератору]
  • –16 +/
    а я и не шучу, собственно. понятно, что у перлоидов от упоминания перл6 поппеншмерц. но я всё равно не шучу.
     
     
  • 5.20, noize (ok), 13:37, 20/05/2013 [^] [ответить]    [к модератору]
  • +9 +/
    Я не знаю, мне перл6 не очень-то нужен. Выпустят, посмотрим, что за зверь.
    Сейчас пишу на перле 5, мне его хватает с головой.
    Про "недостатки" знаю, 100500 раз уже обсасывалось. Повторюсь, меня всё устраивает. Менять на другой скриптовый язык в ближайшее время не планирую, параллельно изучаю C и C++
     
  • 5.41, sanchous (?), 15:44, 20/05/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    упоминание перл6 доставляет только тролям навроде вас
    кому нужен язык для работы, просто используют перл5
    перл6 нет, и, видимо, не будет
    и что характерно, не сильно-то и надо

    > а я и не шучу, собственно. понятно, что у перлоидов от упоминания
    > перл6 поппеншмерц. но я всё равно не шучу.

     
     
  • 6.49, Аноним (-), 17:16, 20/05/2013 [^] [ответить]    [к модератору]  
  • +4 +/
    > упоминание перл6 доставляет только тролям навроде вас
    > кому нужен язык для работы, просто используют перл5
    > перл6 нет, и, видимо, не будет
    > и что характерно, не сильно-то и надо
    >> а я и не шучу, собственно. понятно, что у перлоидов от упоминания
    >> перл6 поппеншмерц. но я всё равно не шучу.

    Для новичков не очевидно с чего этого перл6, автор которого ЛариВолл, не является следующей версией после перл5, автор которой всё тот же.
    Настанет момент когда он скажет что перл5 уродливый троль - деприкатед, и чё будем делать!??

     
     
  • 7.107, 80е (?), 00:23, 21/05/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    >> деприкатед, и
    > чё будем делать!??

    Вы - делайте, что хотите.
    Нам на вас.

     
  • 3.22, Аноним (-), 13:42, 20/05/2013 [^] [ответить]    [к модератору]  
  • +9 +/
    > ну, вот он я. где же хвалёный пёрл6? когда же уже прекратят насиловать труп и осилят?

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

     
     
  • 4.71, arisu (ok), 18:42, 20/05/2013 [^] [ответить]    [к модератору]  
  • –5 +/
    > Perl6 — это совершенно другой язык, не имеющий никакого отношения к теме
    > обсуждения.

    а я вижу в сочетаниях «perl5» и «perl6» четыре совпадающих символа из пяти.

    впрочем, это в стиле перлистов: чем бредовей всё, тем лучше. подумаешь, другой язык… а назовём-ка мы его тоже перл! чтобы, когда у нас спрашивают: «а где ваш brave new perl6?!» — можно было хитро отвечать: «а перл6 — это другой язык, не продолжение перла5 вообще. как мы вас всех срезали?!»

     
     
  • 5.90, rshadow (ok), 20:16, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    Все очень просто. Perl6 взялись писать тролли. Из лучших побуждений наверно, но все же ничего хорошего не выходит. Только на форумах троллить могут.

    Так что все кто работают на перле ждут perl7.

     
  • 3.39, Anton (??), 15:41, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    perl6 это новый язык, а не следующая после perl5 версия perl.
     
     
     
     
     
    Часть нити удалена модератором

  • 7.97, nagual (ok), 20:30, 20/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    > волосы на ладонях от гвидобейсика растут. всем известно. а голых баб лучше
    > живьем щупать, нежели в тырнетах смотреть

    Ему еще рано, мама не разрешает.

     
  • 6.96, nagual (ok), 20:28, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > не путаю. мне просто ассемблером заниматься мама запрещает. говорит, что от этого
    > волосы на ладонях растут, и пусть я лучше голых баб в
    > интернетах смотрю.

    Ты до сих пор живешь с мамой ? 8)

     
     
  • 7.100, arisu (ok), 20:35, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > Ты до сих пор живешь с мамой ? 8)

    и собираюсь продолжать это делать. можешь завидовать.

     
  • 4.94, AlexAT (ok), 20:27, 20/05/2013 [^] [ответить]     [к модератору]  
  • +1 +/
    air hosting uname -a Linux hosting 2 6 32-358 6 2 el6 x86_64 1 SMP Thu May... текст скрыт, показать
     
     
  • 5.118, pro100master (ok), 10:14, 21/05/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    >x86_64 x86_64 x86_64 GNU/Linux

    а почему только 3 раза?)

     
     
  • 6.119, sokoloff (??), 10:58, 21/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    >>x86_64 x86_64 x86_64 GNU/Linux
    > а почему только 3 раза?)

    Потому что архитектура i386, это 3 раза по 86

     
     
  • 7.120, pro100master (ok), 11:19, 21/05/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    >>>x86_64 x86_64 x86_64 GNU/Linux
    >> а почему только 3 раза?)
    > Потому что архитектура i386, это 3 раза по 86

    да нет, чтобы из i386 получить x86_64 надо начертить круг, встать в его центр и 4 раза произнести "x86_64" ))

     
  • 1.3, 1 (??), 12:56, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +2 +/
    Хммм ... а z/OS то, почему выпилили ?
     
  • 1.4, Аноним (-), 12:57, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • –5 +/
    Когда уже допилят этот несчастный Regex до полноценного языка программирования высокого уровня?
     
     
  • 2.5, Аноним (-), 12:59, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    чтобы любой текстушный бред на входе компилировал в бинарь, делающий что-то осмысленное и полезное.
     
     
  • 3.104, anonymous (??), 21:17, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > чтобы любой текстушный бред на входе компилировал в бинарь, делающий что-то осмысленное
    > и полезное.

    Fortran?

     
  • 2.9, Ag (ok), 13:07, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    Грамматики Perl6 ждут вас. :)
     
  • 2.95, rshadow (ok), 20:28, 20/05/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    Баттхерт при виде регулярного выражения? Хочется немедленно удалить строку и расписать нормальным алгоритмом строк на 100? Попробуйте сменить профессию...
     
     
     
    Часть нити удалена модератором

  • 4.98, rshadow (ok), 20:31, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    Жрать кактусы отнюдь не в духе перловиков. Ведь их зарплаты выше чем си, питон, пхп,...
     
  • 3.99, arisu (ok), 20:34, 20/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    > Баттхерт при виде регулярного выражения? Хочется немедленно удалить строку и расписать
    > нормальным алгоритмом строк на 100? Попробуйте сменить профессию…

    батхёрт при виде того, как регулярки пытаются использовать для парзинга.

     
  • 1.7, codejumper (?), 13:01, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • –3 +/
    > приводит к непредсказуемому порядку вывода элементов функциями keys(), values() и each()

    давно обещали, наконец сделали
    теперь куча кода, которая полагалось на одинаковый порядок keys() и values() будет вести себя непредсказуемо

    > Возможность использования в операторах next, last и redo динамически вычисляемых меток

    welcome to spagetti code

    > Добавлена новая служебная переменная ${^LAST_FH}

    ещё одна возможность написать непонятный код
    возможно, пригодится при написании тестов к legacy-модулям

    а так молодцы

     
     
  • 2.11, Ag (ok), 13:11, 20/05/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    >> приводит к непредсказуемому порядку вывода элементов функциями keys(), values() и each()
    > давно обещали, наконец сделали
    > теперь куча кода, которая полагалось на одинаковый порядок keys() и values() будет
    > вести себя непредсказуемо

    А нефиг полагаться на особенности реализации. В документации про это
    было явно сказано.
    Хотя видел тексты одного "индийского" дятла (на PL/SQL) где гражданин
    полагался на определенный порядок строк в результате SELECT-а
    без указания сортировки.
    Почти полгода процедура работала "правильно".


     
     
  • 3.117, oleg (??), 09:57, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    К сожалению я тоже такое выдел.
     
  • 2.35, НуфНуф (?), 15:37, 20/05/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    В первом же абзаце perldata:
    Hashes are unordered collections of scalar values indexed by their associated string key.

    Они по-определению неупорядочены.

    Так что, если кто-то писал кучу кода, "которая полагалось на одинаковый порядок keys() и values()", то этот кто-то - дурак, не читающий доков.

     
     
  • 3.75, arisu (ok), 18:53, 20/05/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    как показывает практика, доки мало кто читает. одно из самых красивых доказательств тому — не столь давнее изменение поведения memcpy(). стандарт не нарушен, man остался такой же — а у СуперПрограммеров дупы повыворачивало.
     
     
  • 4.127, НуфНуф (?), 17:05, 21/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    В Перл таких не берут.
     
     
  • 5.131, arisu (ok), 19:08, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > В Перл таких не берут.

    их там разводят?

     
     
  • 6.136, nagual (ok), 21:49, 21/05/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    >> В Перл таких не берут.
    > их там разводят?

    Ну откуда у вас в лексиконе такие слова ? Перлом пользуются высокообразованные люди которые пишут пограммы а не разводят бабушек на выборы гречкой.

     
     
  • 7.137, arisu (ok), 21:57, 21/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    а мне намного более удивительно, что может знать о культуре и высокообразованности человек, которому при виде слова «разводят» первым делом приходит в голову жаргонное значение слова, а не конвенциально-словарное.
     
     
  • 8.139, nagual (ok), 23:57, 21/05/2013 [^] [ответить]    [к модератору]  
  • –3 +/
    > а мне намного более удивительно, что может знать о культуре и высокообразованности
    > человек, которому при виде слова «разводят» первым делом приходит в голову
    > жаргонное значение слова, а не конвенциально-словарное.

    Не судите по себе всех ...

     
     
  • 9.140, arisu (ok), 00:55, 22/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    да я не о всех, а о тебе. и не по себе — это же не мне в голову приходит первым делом сленговое толкование.
     
  • 1.8, Ag (ok), 13:04, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Радуют.
    А вот с z/OS - неприятный сюрприз.
    Хоть и не часто, но требуется мне там Perl.
     
     
  • 2.10, noize (ok), 13:08, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    Подскажите, где используется данная система?
     
     
  • 3.12, Ag (ok), 13:13, 20/05/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    > Подскажите, где используется данная система?

    На IBM mainframe - System/z.

     
     
  • 4.26, Аноним (-), 14:01, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    Статуя Капитана Очевидности из чистого серебра в полный рост :D
     
  • 3.14, arisu (ok), 13:23, 20/05/2013 [^] [ответить]    [к модератору]  
  • –5 +/
    > Подскажите, где используется данная система?

    в Кровавом Интырпрайзе. Кровавый Интырпрайз любит только зарабатывать, а потратить немного заработанного на модернизацию — не любит. удавится скорее.

     
     
  • 4.24, Аноним (-), 13:44, 20/05/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    > в Кровавом Интырпрайзе. Кровавый Интырпрайз любит только зарабатывать, а потратить немного заработанного на модернизацию — не любит. удавится скорее.

    Сменить мейнфрейм на старый пенек, чтобы админам локалхостов не так завидно было?
    Действительно, и я бы пожадничал. Пусть локалхосты и дальше завидуют! :D

     
     
  • 5.73, arisu (ok), 18:46, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    тихо, что ты контору палишь? всю еду распугаешь!
     
  • 2.18, Фигов (?), 13:35, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    use Perl5.16, Perl5.14 ...

    Welcome!

     
  • 2.68, ACCA (ok), 18:20, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > А вот с z/OS - неприятный сюрприз.
    > Хоть и не часто, но требуется мне там Perl.

    Там как был 5.6, так и остался. Даже в z/Linux тоже 5.6.

     
  • 1.17, лох (?), 13:34, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • –2 +/
    > Объявлены устаревшими модули
    > Прекращена поддержка

    теперь хотелось бы услышать перловодов, которые обвиняли питон в отсутствии обратной совместимости, приводя в контрпример перл.

     
     
  • 2.25, Аноним (-), 13:47, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > теперь хотелось бы услышать перловодов, которые обвиняли питон в отсутствии обратной совместимости, приводя в контрпример перл.

    По сравнению с питоном - практически у любого языка хорошая обратная совместимость. В том числе и у перла.

     
     
  • 3.28, имя (?), 14:07, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    И эти люди идут потом в новости про PHP кричать, что он уродливый в том числе оттого, что из него кучу legacy всё никак не выкинут.
     
     
  • 4.51, Аноним (-), 17:18, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > И эти люди идут потом в новости про PHP кричать, что он
    > уродливый в том числе оттого, что из него кучу legacy всё
    > никак не выкинут.

    Набралась куча легаси - замути новый язык, а старый не трожь.

     
     
  • 5.143, Мяут (ok), 09:15, 22/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    Ну Python2 и Python3 тоже как бы разные ветки языка. :)
     
  • 2.27, nagual (ok), 14:01, 20/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    >> Объявлены устаревшими модули
    >> Прекращена поддержка
    > теперь хотелось бы услышать перловодов, которые обвиняли питон в отсутствии обратной совместимости,
    > приводя в контрпример перл.

    А что у вас не работает ? Пример кода напишите.

     
  • 2.29, Crazy Alex (ok), 15:16, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    В перле поддержка прекращается того, что либо некому поддерживать,либо того, что по факту сто лет как не используется. По "идеологическим" причинам ничего не выбрасывается.
     
  • 2.43, НуфНуф (?), 15:51, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > теперь хотелось бы услышать перловодов, которые обвиняли питон в отсутствии обратной совместимости,
    > приводя в контрпример перл.

    Боюсь в этом споре ничего не изменилось: в питоне действительно отсутствует обратная совместимость между версиями. В перле она есть. Если вы потрудитесь перечитать новость - поймете сами.

     
     
  • 3.50, Аноним (-), 17:17, 20/05/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    > Если вы потрудитесь перечитать новость - поймете сами.

    Читать новость - значит отступать от юникс-вея (который описывается принципом "не читал, но осуждаю").

     
  • 3.59, ДругойАноним (?), 17:41, 20/05/2013 [^] [ответить]    [к модератору]  
  • –5 +/
    >> теперь хотелось бы услышать перловодов, которые обвиняли питон в отсутствии обратной совместимости,
    >> приводя в контрпример перл.
    > Боюсь в этом споре ничего не изменилось: в питоне действительно отсутствует обратная
    > совместимость между версиями. В перле она есть. Если вы потрудитесь перечитать
    > новость - поймете сами.

    ну-ну. перечитываю новость:

    """
    ...Использование неизвестных имён символов в \N{...} теперь приводит к ошибке, вместо предупреждения. Указание $/ = \N для функции readline() теперь приводит к чтению N-символов, а не N-байт...
    """

    опять "перл самый лучший"?! фанатики такие фанатики))

     
     
  • 4.63, Аноним (-), 18:01, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > """
    > ...Использование неизвестных имён символов в \N{...} теперь приводит к ошибке, вместо предупреждения.
    > Указание $/ = \N для функции readline() теперь приводит к чтению
    > N-символов, а не N-байт...
    > """

    А теперь сравните это со списком изменений python2 -> python3. Только сковородку подложите, чтобы стул не прожечь =)

     
     
  • 5.74, arisu (ok), 18:48, 20/05/2013 [^] [ответить]    [к модератору]  
  • –6 +/
    > А теперь сравните это со списком изменений python2 -> python3.

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

     
     
  • 6.76, Чтец (?), 19:02, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    Пытаюсь понять почему вы пишете о вещах, о которых не имеете бледного понятия. Perl6 - именно, что другой язык, отличающийся от классического Перла ОЧЕНЬ сильно. Между версиями Питона ничего принципиального не менялось. Если не считать поломаной совместимости, конечно :)
     
     
  • 7.81, arisu (ok), 19:24, 20/05/2013 [^] [ответить]    [к модератору]  
  • –3 +/
    может, потому, что у меня не «бледное» понятие.
     
  • 2.46, Grammar (?), 16:32, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > теперь хотелось бы услышать перловодов, которые обвиняли питон в отсутствии обратной совместимости, приводя в контрпример перл.

    PERL_PERTURB_KEYS (при присвоении значения 0 рандомизация ключей отключается и поведение perl становится как в прошлых выпусках).

    Теперь, питоновод, объясни как в питоне вернуть старое поведение хоть для чего-нибудь?

     
     
  • 3.47, Аноним (-), 17:03, 20/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    если совместимость python2 и 3, то "six"

    если о возможностях в новых версиях:
    from __future__ import ...


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

     
     
  • 4.60, www2 (ok), 17:43, 20/05/2013 [^] [ответить]    [к модератору]  
  • +4 +/
    >определенная вещь решается оптимизированно и определенно

    И что это за такая тавтологически определённая вещь?

    В Советском Союзе тоже всё было во имя и на благо человека. Некоторые даже догадывались, о каком именно человеке шла речь.

     
     
  • 5.88, nagual (ok), 20:12, 20/05/2013 [^] [ответить]    [к модератору]  
  • –4 +/
    >>определенная вещь решается оптимизированно и определенно
    > И что это за такая тавтологически определённая вещь?
    > В Советском Союзе тоже всё было во имя и на благо человека.
    > Некоторые даже догадывались, о каком именно человеке шла речь.

    Тонкий вброс расчитанный на школоту ? Форумом не ошиблись ?

     
     
  • 6.103, rshadow (ok), 20:48, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    Он не может ошибиться форумом. Для этого нужно понимать о чем говоришь.
     
  • 4.102, rshadow (ok), 20:47, 20/05/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    > from __future__ import ...

    Так значит они додумались сделать как в перле

       use feature ...

    еще бы так же лаконично смотрелось как в перле

     
     
  • 5.105, ragus (ok), 21:35, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    >еще бы так же лаконично смотрелось как в перле

    кстати, о импортах.

    возможна ли в perl конструкция вида import foo as bar

    например, заменить штатные регекспы альтернативной версией(например, гугловский re2)?

     
     
  • 6.106, noize (ok), 22:25, 20/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    В перле регэкспы встроены в ядро. Менять их ни на что не нужно.
     
     
  • 7.110, ragus (ok), 07:25, 21/05/2013 [^] [ответить]     [к модератору]  
  • +1 +/
    ну-ну смотрим http snowplow org martin rebench CODE bench perl rebench... текст скрыт, показать
     
     
  • 8.111, arisu (ok), 07:37, 21/05/2013 [^] [ответить]    [к модератору]  
  • +3 +/
    сравнивать pcre и re2 как минимум некорректно: они не полностью взаимозаменяемы.

    (офф) впрочем, тут видно общую беду всех бектрэкинговых движков. к сожалению, регулярки у перла требуют бэктрекинга. хотя tre, например, пытается сочетать приятное из обоих миров.

     
     
  • 9.112, ragus (ok), 07:52, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > сравнивать pcre и re2 как минимум некорректно: они не полностью взаимозаменяемы.

    да, я в курсе :) и лишь хотел показать пример зачем вообще это нужно и как легко это может быть. т.е. если в решамой задаче такая замена допустим - why not?
    как альтернатива, можно звать на помощь jit:

    http://morepypy.blogspot.ru/2010/06/jit-for-regular-expression-matching.html

     
     
  • 10.113, arisu (ok), 07:56, 21/05/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    дык в перле, в принципе, никто не мешает использовать другие движки. но обычно всем просто лень, потому что патологические случаи научились «нюхом чуять».
     
  • 8.114, noize (ok), 09:06, 21/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    " This test was performed using stock cygwin installs of perl 5.8.7, python 2.4.1, and ruby 1.8.4 on a 1.2 GHz laptop with 512MB of installed physical memory. Just for fun, I also compiled perl 5.9.3 on cygwin with defaults (except with -O3, since the stock perl had that) and tested that too. In a further fit of insanity, on 2006-03-01 I grabbed the latest bleadperl, (compiled as 5.9.3) and tested that too. "

    Вы бы ещё тесты двадцатилетней давности представили.

     
     
  • 9.115, ragus (ok), 09:09, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > " This test was performed using stock cygwin installs of perl 5.8.7,
    > python 2.4.1, and ruby 1.8.4 on a 1.2 GHz laptop with
    > 512MB of installed physical memory. Just for fun, I also compiled
    > perl 5.9.3 on cygwin with defaults (except with -O3, since the
    > stock perl had that) and tested that too. In a further
    > fit of insanity, on 2006-03-01 I grabbed the latest bleadperl, (compiled
    > as 5.9.3) and tested that too. "
    > Вы бы ещё тесты двадцатилетней давности представили.

    выше цифры тестов, запущенные на моем десктопе. core i7 3770/32Gb ram, с выключенным энергосбережением.

    perl v5.14.2, Python 2.7.4, linux 3.9.2, x86_64

     
     
  • 10.122, noize (ok), 11:49, 21/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    эмм...подскажите, а где взять эти re2 и regexp ? Хочу протестировать
     
     
  • 11.128, ragus (ok), 17:39, 21/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    > эмм...подскажите, а где взять эти re2 и regexp ? Хочу протестировать

    pip install regex
    pip install re2

     
     
  • 12.134, noize (ok), 21:34, 21/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    regex однако впечатлил. Поставить re2 мне не удалось, так как требуется тянуть библиотеку с code.google
    Но всё-равно, разрабы молодцы.
     
  • 10.125, VVM (ok), 13:28, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > выше цифры тестов,
    > perl v5.14.2, . . . , linux 3.9.2, x86_64

    Ядро предпоследнее -- актуально v3.9.3 2013-05-19

    Perl 5.14.X -- специально?  

    ( Заодно: почему .2 ? v5.14.2 ? Даже у ActivePerl -- v5.14.4.1405 )

    уже года два 5.16 , интересно было бы посмотреть цифры для новейшего 5.18


    Итого: Perl часть теста -- практически не очень актуальна

    Кстати, делали ли reboot системы imm.before/перед запуском теста?

     
  • 9.116, arisu (ok), 09:14, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > Вы бы ещё тесты двадцатилетней давности представили.

    да хоть столетней — бэктрекинговые движки просто в силу алгоритма будут тормознее, непредсказуемей и с завидной радостью заваливающиеся в «тёмные углы». универсальней, с большим количеством фич — и тормознее. если только это не «комбинированый» движок, который в бэктрекинг «сваливается» только по необходимости.

    но демонстрация-то была даже не этого, а того, что в перле есть Единственно Верный Движок, увы, который так просто на другой не заменишь. такой дизайн. кисмет.

     
     
  • 10.123, noize (ok), 12:01, 21/05/2013 [^] [ответить]     [к модератору]  
  • +2 +/
    прежде чем сказать глупость, проверили бы сами Я не поленился и тоже скачал скр... текст скрыт, показать
     
     
  • 11.124, arisu (ok), 12:04, 21/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    (вздыхает) я вообще не считаю Новый Whitespace нормальным языком. и речь я вёл вовсе не о нём. но это всё в принципе не важно, потому что нет у меня сегодня ни настроения ругаться, ни настроения что-либо растолковывать. муть это всё бессмысленная.
     
  • 11.129, ragus (ok), 17:50, 21/05/2013 [^] [ответить]     [к модератору]  
  • –1 +/
    всё это есть в тестах выше но я уже писал, что import regex as re и с LOOPS 10... текст скрыт, показать
     
     
  • 12.135, noize (ok), 21:38, 21/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    > у них главная беда в том, что они write-only.

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

    my $var = "this is text";
    if ($var =~ qr/^(this).+(text)$/) {
        print "$1\t$2\n";
    }

    напечатает "this text".
    Возможно, использование регулярок в питоне связано с тем, что они не вписываются в общую концепцию языка и питонщики ими редко пользуются. Но перловики их(регэкспы) используют в полный рост, главное - не перебарщивать.

     
     
  • 13.141, ragus (ok), 06:48, 22/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    >> у них главная беда в том, что они write-only.
    > возможно. Но в перле регулярки использовать удобно. Повторюсь, они встроены в ядро
    > языка и позволяют делать различные плюшки вида

    смысл практический в этом? hardcoded pattern'ы?

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

    нет смысла в регекспах внутри языка. совсем. да, ими можно парсить json/html/xml и чёрта в ступе. но в самом языке они не нужны.

    >Но перловики
    > их(регэкспы) используют в полный рост, главное - не перебарщивать.

    для чего? они вам не помогут работать с бинарными данными или же алгоритмах.

    вот если вам надо ускорить кусок кода на perl, что вы будете делать?

     
     
  • 14.142, noize (ok), 09:03, 22/05/2013 [^] [ответить]    [к модератору]  
  • +2 +/
    > смысл практический в этом? hardcoded pattern'ы?

    а в чём вообще смысл использования регулярных выражений?

    > нет смысла в регекспах внутри языка. совсем. да, ими можно парсить json/html/xml и чёрта в ступе. но в самом языке они не нужны.

    никто в здравом уме не будет парсить JSON/XML/HTML с помощью регулярок. Для этого уже сто лет как написаны отдельные модули

    > для чего? они вам не помогут работать с бинарными данными или же алгоритмах.
    > вот если вам надо ускорить кусок кода на perl, что вы будете делать?

    опять таки, для чего нужны регулярные выражения? Мой ответ - для работы с текстом. Для работы с бинарными данными используются другие средства.
    Если надо ускорить кусок перлового кода, то существует ровно 2 способа:
    1. Переписать(отрефакторить) указанный кусок не используя тяжёлые конструкции
    2. Переписать данный код на C и подключить с помощью XS

     
     
  • 15.144, ragus (ok), 09:18, 22/05/2013 [^] [ответить]     [к модератору]  
  • –1 +/
    достаточно редкие ситуации, когда нет желания писать полноценный парсер или же к... текст скрыт, показать
     
     
  • 16.145, noize (ok), 10:07, 22/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > достаточно редкие ситуации, когда нет желания писать полноценный парсер или же какие-то простые случаи.

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

    > в python, например, есть штатный модуль struct.

    в перле не дураки сидят, pack и unpack тоже имеется

    > 3. можно еще распараллелиться

    Это усложняет разработку, но да, согласен. Это вариант.

    > 4. в случае с python есть cython(да, для нормального ускорения нужна статическая типизация).
    > 5. в случае с python есть pypy и его jit. тут переписывать вообще не надо.

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

     
     
  • 17.148, ragus (ok), 01:20, 23/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    > я не знаю как в питоне, но в разработке на перле мне
    > периодически, не так уж и редко приходится сталкиваться с подобными задачами.
    > И под каждую из задач не напишешь парсер.

    например?


    >> 3. можно еще распараллелиться
    > Это усложняет разработку, но да, согласен. Это вариант.

    никакого усложнения. если изначально писать нормально и использовать map.

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

    ну вот там ниже есть пример десятикратного ускорения с переходом на pypy.
    си - это когда уже совсем всё плохо.

    а вот что в перле грустно, так это http://perldoc.perl.org/threads/shared.html#BUGS-AND-LIMITATIONS

     
  • 16.146, angra (ok), 16:39, 22/05/2013 [^] [ответить]     [к модератору]  
  • +2 +/
    Смешно Настолько смешно, что даже объяснять что-либо не хочется Если вы не ум... текст скрыт, показать
     
     
  • 17.147, ragus (ok), 01:01, 23/05/2013 [^] [ответить]     [к модератору]  
  • –1 +/
    еще раз 1 вы переоцениваете важность регекспов 2 пример выше про легкость зам... текст скрыт, показать
     
     
  • 18.151, angra (ok), 08:18, 23/05/2013 [^] [ответить]     [к модератору]  
  • +1 +/
    Стандартное заблуждение тех, кто их толком не освоил Также не исключен вариант,... текст скрыт, показать
     
  • 6.108, rex (??), 00:50, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    можно, но сам не пробовал; задач для которых это критично не было
     
  • 6.121, Фигов (?), 11:34, 21/05/2013 [^] [ответить]    [к модератору]  
  • +4 +/
    http://search.cpan.org/~dgl/re-engine-RE2-0.11/lib/re/engine/RE2.pm

    Наслаждайся.

    ЗЫ
    На YAPC::2012 чувак делал про это движок довольно подробный доклад. Думаю можешь найти в сети.

     
     
  • 7.130, ragus (ok), 17:54, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > http://search.cpan.org/~dgl/re-engine-RE2-0.11/lib/re/engine/RE2.pm
    > Наслаждайся.
    > ЗЫ
    >  На YAPC::2012 чувак делал про это движок довольно подробный доклад. Думаю
    > можешь найти в сети.

    ну хоть один хороший и правильный коммент :))

     
  • 6.138, angra (ok), 22:03, 21/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > возможна ли в perl конструкция вида import foo as bar

    В perl возможно все, чаще всего минимум двумя способами. Спрашивать, есть ли в perl что-то из python, можно только смеху ради. Конкретно эта фича легко реализуется за счет того, что таблицы символов это просто хеши и работает конструкция вида %Bar::=%Foo::

     
     
  • 7.149, ragus (ok), 01:35, 23/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    >> возможна ли в perl конструкция вида import foo as bar
    > В perl возможно все, чаще всего минимум двумя способами. Спрашивать, есть ли
    > в perl что-то из python, можно только смеху ради. Конкретно эта
    > фича легко реализуется за счет того, что таблицы символов это просто
    > хеши и работает конструкция вида %Bar::=%Foo::

    как бы при импорте много чего происходит, а не только модификация таблицы символов.

    [CODE]
    >>> import os
    >>> globals()['oos'] = os
    >>> del globals()['os']
    >>> oos

    <module 'os' from '/usr/lib/python2.7/os.pyc'>
    [/CODE]

    но это всё - игры с внутренними структурами интерпретатора.

    так то я могу взять inspect и в рантайме узнавать кто позвал ту или иную функцию, из какой строчки и какими аргументами. если же совсем извращаться, то можно лазить по стэку вызовов и патчить чужой код.

    так что речь не о хаках, а штатных возможностях языка.

     
     
  • 8.150, arisu (ok), 01:59, 23/05/2013 [^] [ответить]    [к модератору]  
  • +1 +/
    > так что речь не о хаках, а штатных возможностях языка.

    у перла хаки — штатная возможность же.

     
  • 5.109, web (?), 02:55, 21/05/2013 [^] [ответить]    [к модератору]  
  • +/
    такая конструкция в питоне с 2000 года.
     
     ....нить скрыта, показать (51)

  • 1.19, Фигов (?), 13:37, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +3 +/
    Главное достижение - никаких революций, молодцы.

    И это правильно. Работать надо, а не код из-за версий перелопачивать.


     
  • 1.33, Аноним (-), 15:23, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    по мне, так из перла уже ничего делать не нужно, т.к. наворочено не просто много, а ооочень много! куда не плюнь, везде его применять можно, хоть веб, хоть сервер дшспи написать.
     
     
  • 2.34, Аноним (-), 15:31, 20/05/2013 [^] [ответить]    [к модератору]  
  • –1 +/
    вот и суют куда барбос свой хер не совал, почем зря
     
     
  • 3.53, Аноним (-), 17:20, 20/05/2013 [^] [ответить]    [к модератору]  
  • +/
    > вот и суют куда барбос свой хер не совал, почем зря

    Это вы про shell-скрипты?

     
  • 1.40, Anton (??), 15:43, 20/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    Жаль что smartmatch объявили экспериментальным (с выдачей warning при его использовании). Возможность удобная.
     
     
  • 2.52, Аноним (-), 17:19, 20/05/2013 [^] [ответить]    [к модератору]  
  • –2 +/
    > Жаль что smartmatch объявили экспериментальным (с выдачей warning при его использовании).
    > Возможность удобная.

    Ну так присоединитесь к проекту и отладьте ее до стабильного состояния, делов-то.

     
  • 1.126, mahoro (??), 16:25, 21/05/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Он не интерпретатор, а компилятор :)
     
  • 1.152, iZEN (ok), 21:10, 23/09/2013 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Сегодня случайно узнал, оказывается есть версия Perl новее 5.16. Обновил до версии perl-5.18.1_1 и модули p5-*, сейчас пересобираются зависимости. В чём преимущества крайней версии, кто-нибудь ощутил?
     
     
  • 2.153, arisu (ok), 02:46, 24/09/2013 [^] [ответить]    [к модератору]  
  • +/
    > Сегодня случайно узнал, оказывается есть версия Perl новее 5.16.

    brilliant!

     

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


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