24 Ноября 2024, 21:05

Perl

Автор Script, 22 Мая 2008, 14:56

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Script

22 Мая 2008, 14:56 Последнее редактирование: 15 Мая 2011, 23:53 от Zhek@Ch
[size="3"]Perl 6 получает финансирование[/size]

Свершилось! Разработчики этого замечательного языка программирования, героически выстояв голодные и опальные годы, наконец-то дождались инвестиций. The Perl Foundation получила 200 000 долларов от Яна Хага (Ian Hague) -- сооснователя Firebird Management LLC. Половину этой суммы фонд направит на развитие Perl 6. Также известно, что в ближайшее время разработку Perl 6 собирается спонсировать одна из российских компаний.
"Ubuntu" is an ancient African word, meaning "I can't configure Gentoo" © Davidov                   -----     фриЛСДшник

turbo

04 Декабря 2008, 18:42 #1 Последнее редактирование: 16 Мая 2011, 02:31 от Zhek@Ch
[size="3"]Размышления o будущем языка Perl 5[/size]

В преддверии выпуска Perl 5.12 разработчики обсуждают перспективы этой технологии. Так, в приведённой статистике отмечено сокращение за год базы пользователей на 0.86%. И несмотря на ряд исторических примеров, когда побеждённые конкурентами проекты ПО восставали, вследствие "почивания на лаврах" победителей, существуют причины, по которым Perl5 будет сложно это сделать: отсутствие маркетинга, проблемы с привлечением молодых новичков, накопленный багаж кода и застарелость навыков (отсутствие стремления к восприятию изменений в современном Web ) пользователей Perl5.

С другой стороны, существует и другая статистика, которая показывает небольшой рост базы пользователей, но в абсолютном выражении. В целом участники дискуссии сходятся во мнении о том, что Perl испытывает серьёзную конкуренцию со стороны PHP, Python, Ruby.

Управленцы компаний и учреждений, использующих данную технологию, в свою очередь, начинают полагать, что Perl может обернуться для них такой же обузой, как в своё время COBOL в период упадка мейнфреймов. В свою очередь, конкурирующие языки, достигнув необходимой фазы развития, взяли курс на более агрессивное продвижение на рынке, предлагая подчас развитые "с нуля" и уже объективно превосходящие по использованию решения и для широкого круга потребления, и для узкой предметной специализации, относя зрелость нижележащей технологии к вопросу, решаемому со временем.

В то же время свободное ПО, написанное на Perl, начинает испытывает существенные проблемы, связанные с развитием конкурентного фона, в отношении и качества кода, улучшить который будет уже сложно в силу основанности на его конкретных недостатках массы других модулей, и с качеством документации, направленной в первую очередь на уже занятых разработкой, а не на просто заинтересовавшихся. В сопряжении с нижележащими застарелыми ошибками проектирования, связанными, с одной стороны, с некогда проявленной небрежностью, а с другой стороны, с изменением со временем принятых в индустрии подходов разработки (моделей приложений, методологий разработки), уже задействованный и отлаженный код входит в противоречие с догматом о том, что он сам по себе является лучшей документацией.

Сконцентрированное на разработке сообщество разработчиков и пользователей Perl прилагает некие усилия по просвещению заинтересовавшихся в своей точке зрения на происходящее. Так, отмечено, что тренды конкурентов более нестабильны, а база существующего свободного кода превосходит не только объёмом, но и темпами роста.

Но менее вовлечённые уверяют, что исторический момент, когда ситуацию можно было переломить без существенных усилий и для технологии, и для сопряжённого с ней сообщества, упущен примерно на этапе выпуска Perl 5.8 . Поэтому сейчас уже неизбежны существенные изменения и в том, и в другом.

В то же время, момент для применения классического метода, применяемого при разработке свободного ПО для инноваций - выпуск следующей стабильной версии - также, возможно, упущен, поскольку к анонсам Perl6 на протяжении прошедшего десятилетия доверие уже утеряно. Впрочем, это может служить и подтверждением минувшего успеха ветки Perl5.
http://www.opennet.r...shtml?num=19221

turbo

10 Декабря 2008, 21:57 #2 Последнее редактирование: 16 Мая 2011, 02:25 от Zhek@Ch
[size="3"]Открыт доступ к книге "Higher-Order Perl"[/size]

http://perlbuzz.com/...e-download.html
По специальному соглашению с издательством открыт бесплатный доступ к полному тексту книги "Higher-Order Perl". Книга доступна в двух форматах - в PDF и в MOD, пригодном для использования в качестве внутренней документации Perl (модифицированный POD).

Автор книги - Марк Джейсон Доминус (Mark Jason Dominus), редактор сайта perl.com, автор многочисленных Perl модулей, среди которых Async, Tie::File, Text::Template и Memoize.
http://www.opennet.r...shtml?num=19311

turbo

15 Декабря 2008, 18:57 #3 Последнее редактирование: 16 Мая 2011, 02:21 от Zhek@Ch
[size="3"]Ларри Уолл об этапах становления языка Perl[/size]

Интернет издание Computerworld в серии своих статей посвященных языкам программирования, опубликовало интервью с создателем языка Perl Ларри Уоллом. Лингвист по образованию, Ларри написал первую версию языка в 1987 году, когда в результате необходимости генерации множества текстовых отчетов понял, что скриптовые shell-языки и Си плохо подходят для этой работы.

С того времени Perl получил широкую известность и признание в основном благодаря росту популярности интернета и развитию динамически создаваемого web-контента. Помимо этого Perl нашел применение и в более специализированных отраслях: он используется и на полярных станциях, и в генетических лабораториях.

Доказательством удачного дизайна Perl можно считать то, что в некоторых случаях он применяется для выполнения задач, на которые он никогда не был ориентирован, и прекрасно справляется с ними. Когда компания Clearcase проектировала автомобильную систему заднего обозрения, драйвера для нее были написаны как на Си, так и на Perl. К удивлению создателей Perl-версия не только работала, но и в 10 раз превосходила Си-вариант по скорости выполнения.

Говоря о Perl нельзя не упомянуть огромный репозитарий готовых Perl-модулей - CPAN. В нем находятся более 13500 пакетов, в написании которых занято более 6.5 тыс. разработчиков. И если даже принять, что 90% этих модулей - это узкоспециализированные и для широкого круга пользователей бесполезные решения, то оставшиеся 10% все равно представляют достаточно значимое число.

Последнее время ведется активная работа по созданию Perl 6 - полностью переработанной версии языка, в основу которого положен предварительно разработанный стандарт. Говоря о дате финального релиза, Ларри Уолл в шутку заметил, что она давно известна - это канун Рождества. В тайне пока остается только год этого события.
http://www.opennet.r...shtml?num=19366

turbo

17 Декабря 2008, 19:29 #4 Последнее редактирование: 16 Мая 2011, 02:19 от Zhek@Ch
[size="3"]Выпуск Perl 5.8.9[/size]

Анонсирован выход Perl 5.8.9, спустя почти три года с момента выпуска Perl 5.8.8. Призывая мигрировать на ветку 5.10 (выпуск 5.10.1 обещан в близком будущем), разработчики завершают развитие Perl серии 5.8. В дальнейшем обещаны только исправления уязвимостей и проблем сборки.

Основные новшества Perl 5.8.9:

 * Обновлённая база символов Unicode 5.1.0, улучшение внутреннего кэширования при работе с utf-8 и ускорение работы regexp в этой кодировке;
 * Возможность назначать во время запуска каталоги, в которых ищутся модули, относительно каталога, в котором размещён в данный момент сам интерпретатор - как предваряя каждый из них в @INC приставкой '.../', так и с помощью параметра -Duserelocatableinc для ./Configure;
 * Улучшение работы отладчика;
 * Поддержка платформ: DragonFlyBSD, MidnightBSD, MirOS BSD, RISC OS, Cray XT4/Catamount;
 * XS-модули можно теперь собирать компилятором C++ без участия компилятора C. Введён новый макрос XSPROTO, который теперь должны использовать модули вместо XS. Как следствие, модули, собранные C++, должны быть собраны заново с учётом этого изменения. И хотя модули, использующие XS через C, можно не перебирать, для них этот макрос также рекомендован.
 * Многочисленные улучшения производительности, улучшения документации (новые PODs: perlreguts, perlthanks ), замещаемость встроенной функции readpipe, включая другие её формы: qx и ``, возможность назначать ссылки на исполняемый код константам и многое другое;
 * В состав включены модули: Module::Pluggable, Module::CoreList, Win32API::File, Devel::InnerPackage. Обновлены версии ранее включенных в базовую поставку модулей.
http://www.opennet.r...shtml?num=19419

turbo

23 Декабря 2008, 17:33 #5 Последнее редактирование: 16 Мая 2011, 02:17 от Zhek@Ch
[size="3"]Разработка языка Perl 5 переведена на систему управления исходными текстами Git[/size]

Разработчики языка Perl сообщили о завершении миграции проекта на распределенную систему управления исходными текстами Git. Ранее, с 1997 года, в проекте использовалась коммерческая система управления версиями Perforce, распространяемая только в бинарном виде. Для Open Source продуктов лицензии на Perforce распространяются бесплатно, но требует подписания с разработчиком особого соглашения.

Причины миграции на Git: желание предоставить разработчикам больше свободы, переход на распределенный механизм работы с репозиторием, поддержка online и offline режимов работы, упрощение внесения экспериментальных изменений, уменьшение административной нагрузки с основных коммитеров по принятию сторонних патчей. Так как git является более привычным для свободных проектов, можно рассчитывать на привлечение к работе над Perl новых разработчиков. Процесс создания единого унифицированного Git репозитория для Perl 5 и всех предыдущих выпусков Perl занял около года.
http://www.opennet.r...shtml?num=19507

ping_Win

19 Марта 2009, 14:14 #6 Последнее редактирование: 16 Мая 2011, 02:15 от Zhek@Ch
[size="3"]Выпуск Parrot 1.0, виртуальной машины для Perl 6[/size]

Увидел свет первый стабильный выпуск Parrot, виртуальной машины для исполнения программ, написанных на динамических языках. Parrot в первую очередь используется в проекте Rakudo Perl 6. Также в разработке находится поддержка выполнения в Parrot байткода языков Ruby, Tcl, Javascript, Lua, Scheme, PHP, Python, APL и .Net. Несмотря на то, что многие из вовлечённых в разработку рассматривают данный выпуск как очередной, остальные, такие как разработчики Rakudo, считают, что сделан серьёзный шаг.

К новшествам, относительно версии 0.9.1, относятся:

 * Стабилизирован программный интерфейс, API без лишнего повода теперь меняться не будет;
 * Улучшение документации;
 * Изменена поддержка ряда новых языков: Pynie, Cardinal и APL выделены из Parrot в отдельные проекты; ABC, Squaak, и Befunge перемещены в examples/, все остальные в svn.parrot.org;
 * Поддержка сборки языков из установленного Parrot;
 * Расширен языковой генератор для новых языков;
 * Инструмент учёта ошибок parrotbug привязан к интерфейсу системы Trac;
 * Удалены устаревшие внутренние "классы" Tqueue и Closure, также переведён ряд классов с использования устаревшего UnionVal на объявленные атрибуты (ATTR).

Следующий выпуск запланирован на 21 апреля 2009 г.

turbo

15 Апреля 2009, 21:45 #7 Последнее редактирование: 16 Мая 2011, 02:13 от Zhek@Ch
[size="3"]Организация Perl Foundation начала прием заявок на распределение грантов[/size]

Организация Perl Foundation начала прием заявок на финансирование проектов по улучшению языка Perl. Заявки будут приниматься до 31 мая, наиболее интересные проекты получат гранты в размере от 500 до 3000 долларов.

Ранее, при финансировании Perl Foundation, были созданы такие проекты, как PPI (модуль для парсинга, анализа и манипулирования perl кодом), Strawberry, Perl on a Stick (сборки Perl для Windows), pVoice (интерфейс для голосовой навигации для слепых), Perl::Critic (пакет для проверки и автоформатирования perl-кода).

В настоящее время находятся в разработке, следующие получившие гранты проекты:

 * Создание Perl аналога Python модуля PyYAML;
 * Исправление ошибок в модуле Archive::Zip;
 * Расширение возможностей модуля BSDPAN, ориентированного на интеграцию CPAN с системами управления пакетами в UNIX;
 * Разработка второй ветки развития модуля Test::Builder, имеющей принципиально новую архитектуру;
 * Улучшение кросскомпиляции Perl для мобильных платформ linux (например для планшетных ПК Nokia) и wince (PerlCE устарел);
 * Разработка, основанного на Tk, графического интерфейса для Rakudo, компилятора Perl 6 на виртуальной машине Parrot;
 * Создание ресурса perlsurvey.org - проведение опросов Perl комьюнити;
 * Написание документации для web-фреймворка Mojo;
 * Проект по созданию библиотеки LibPerl++, позволяющей в упрощенном виде добавлять в C++ код inline вставки на языке Perl;
 * Написание документации для Moose и Class::MOP, нового подхода для создания объектно-ориентированных программ на perl;
 * Разработка легковесного web-фреймворка для Perl6;
 * Переработка сайта learn.perl.org

http://www.opennet.r...shtml?num=21273

turbo

21 Июля 2009, 18:36 #8 Последнее редактирование: 16 Мая 2011, 02:11 от Zhek@Ch
[size="3"]Microsoft заинтересовалась языком Perl и открыла Hyper-v драйвер для Linux-ядра[/size]

В конце прошлого года Adam Kennedy рассказал, что компании Microsoft и Strawberry Perl заключили соглашение, целью которого являлись улучшение работы глобального репозитория Perl-модулей CPAN и поддержка разработчиков. И вот, через пол-года, преодолев все юридические и технические трудности, проект Microsoft Open Source Network CPAN Author Lab открыт для публичного доступа.

Цель проекта: обеспечить «каждому автору CPAN возможность свободного доступа к централизованной системе виртуальных машин, на которых запущены все версии Windows». Первоначально работают семь виртуальных машин, на которых установлены Windows XP Professional, Server 2003 (32/64 bit), Server 2008 (32/64 bit), Vista Ultimate и Windows 7 beta. Оборудование развернуто на базе австралийского хостинга Emantra.

Adam Kennedy, затеявший этот проект, работает администратором CPAN и сам является автором приблизительно 200 CPAN модулей. Им также разработан Perl on a Stick, полностью работоспособная Perl-cреда, запускаемая с USB накопителя. Другим его увлечением является свободный дистрибутив Perl для Windows - Strawberry Perl.

Так же в списках рассылки разработчиков драйверов для Linux ядра появилась информация, что Microsoft стала одним из контрибьюторов ядра Linux, согласившись добавить в него драйверы для гипервизора Hyper-V. Выпущенные под лицензией GPLv2, они улучшают работу ОС Linux, запущенной в качестве гостя на Hyper-V системе. Проект находится на начальном этапе разработки и пока планируется к внесению в тестовое "staging" дерево ядра.

http://www.opennet.r...shtml?num=22661

turbo

08 Августа 2009, 17:45 #9 Последнее редактирование: 16 Мая 2011, 02:08 от Zhek@Ch
[size="3"]Perl 6 планируется выпустить в апреле следующего года[/size]

Первую пригодную для широкого использования реализацию языка Perl 6 для виртуальной машины Parrot планируется выпустить весной следующего года - в качестве приблизительного ориентира указан апрель. Так как проект Perl 6 находится в разработке уже около 9 лет и нереализованных планов еще много, команда разработчиков решила пойти на компромисс и выпустить версию с реализацией не всех возможностей, заложенных в спецификации Perl 6, но достаточно стабильную для начала разработки полноценных приложений. Релизу решено не присваивать определенный номер версии, а выпустить его как "Rakudo *", так как 1.0 подразумевает законченность релиза, а 0.x может быть воспринята как непригодность к полноценному использованию.

В дальнейшем код будет дорабатываться в плане более полной поддержки всех задуманных возможностей в более поздних выпусках. По мнению разработчиков, заложенной в первый релиз функциональности должно хватить для знакомства с языком не вовлеченных непосредственно в разработку perl 6 программистов и начала создания первых серьезных проектов на Perl 6.

http://www.opennet.r...shtml?num=22934

turbo

24 Августа 2009, 17:48 #10 Последнее редактирование: 16 Мая 2011, 02:06 от Zhek@Ch
[size="3"]Доступен релиз Perl 5.10.1[/size]

Официально представлен релиз Perl 5.10.1, выпущенный спустя почти два года с момента выпуска Perl 5.10.0.

Из представленных в новой версии изменений, кроме исправлений ошибок, можно отметить:

 * При подготовке релизов осуществлена миграция с системы контроля версий Perforce на Git;
 * В работе выражений given/when и оператора "~~" отмечены изменения, при определенных условиях, нарушающие совместимость.
 * Включение в состав новых версий модулей Test::Harness и ExtUtils::MakeMaker, привело к удалению модулей Test::Harness::Straps, ExtUtils::MakeMaker::bytes и ExtUtils::MakeMaker::vmsish.
 * Устранены регрессивные изменения в работе выражений подобных '$re = qr/^bar/; "foo\nbar" =~ /$re/m;', которые срабатывали в 5.8.x, но перестали в 5.10.0;
 * БД Unicode символов (Unicode Character Database ) обновлена до версии 5.1;
 * Добавлена поддержка проведения тестовых сценариев в параллельном режиме, определение числа параллельно запущенных заданий определяется через переменную окружения TEST_JOBS;
 * Реализована поддержка технологии динамической трассировки DTrace, разработанной в рамках проекта OpenSolaris;
 * В комплект включены новые модули: autodie (альтернатива модулю Fatal), Compress::Raw::Bzip2 и Parse::CPAN::Meta;
 * В состав добавлена утилита perlthanks, которая является вариантом perlbug, ориентированным для отправки разработчикам сообщений не связанных с ошибками.
 * Обновлены версии более 130 входящих в базовую поставку модулей.

http://www.opennet.r...shtml?num=23131

turbo

05 Октября 2009, 20:37 #11 Последнее редактирование: 16 Мая 2011, 02:02 от Zhek@Ch
[size="3"]Вышел релиз Perl 5.11.0[/size]

После двух лет разработки объявлено о выходе первого релиза в новой экспериментальной ветке Perl 5.11, в рамках которой начата подготовка к стабильной серии Perl 5.12. В анонсе новой версии подчеркивается важность проверки работоспособности кода в экспериментальной ветке. Несмотря на то, что разработчики прилагают огромные усилия к полному обеспечению совместимости, большие изменение в коде при создании новой ветки могут привести к незапланированным нарушениям совместимости. Если такие несовместимости будут найдены после выпуска стабильного выпуска 5.12, то отменить их будет уже невозможно, именно поэтому важно протестировать существующий код, выявить и сообщить о всех аномалиях еще на стадии разработки экспериментальной ветки.

Ветка 5.11 будет развиваться в рамках измененного процесса подготовки релизов - новый выпуск отныне будет выходить раз в месяц, при этом каждый из таких выпусков будет подготовлен разным релиз-инженером: 5.11.1 выйдет 20 октября под контролем Jesse Vincent, 5.11.2 - 20 ноября под контролем Yves Orton, 5.11.3 - 20 декабря под контролем Leon Brocard, 5.11.4 - 20 января под контролем Ricardo Signes. В рамках перехода с системы управления версиями Perforce на Git, разработка Perl 5.11 ведется только в Git репозитории.

Из новшеств Perl 5.11 можно отметить:
Нарушения совместимости:
Изменена Unicode интерпретация спецсимволов \w, \d, \s, и символьных классов POSIX (alpha, upper, word и т.п.). Например, строго соответствуя требованию POSIX, \d более не охватывает все цифры, а \w все буквы, описанные в unicode-стандарте.
В служебном массиве @INC, элементы ARCHLIB и PRIVLIB теперь следуют после определения версий site_perl и vendor_perl;
Аргументы условных операторов given/when теперь интерпретируется в логическом контексте, если между аргументами используются связки ".." или "//". Например, вместо "when (1..10)" теперь нужно писать "when ([1..10])";
Изменено поведение оператора "умного" сопоставления (smart match) "~~", который перестал быть коммутативным;
Метки, используемые в операторах goto, last, next или redo, теперь нельзя использовать в качестве ключевых слов (например, использоваться для именования функции);
Около 15 более мелких и узкоспециализированных нарушений совместимости;
Базовые изменения:
База Unicode-символов обновлена до версии 5.1;
В регулярных выражениях добавлена поддержка последовательности "\N", под которую подпадают все символы, кроме конца строки, независимо от присутствия или отсутствия "/s" ("/s" сводит выборку к одной первой строке);
Использование "use 5.11.0" автоматически включает режим "strict";
Поддержка параллельного выполнения регрессивных тестов, выполняемых на этапе сборки модулей (вместо "make test", можно запустить "TEST_JOBS=3 make test_harness");
Добавлен новый оператор "..." (Yada Yada), для определения кода который будет добавлен позднее;
Интегрирована поддержка системы динамической трассировки DTrace;
Функция "each" отныне может оперировать массивами;
Все функции и структуры связанные со временем защищены от проблемы 2038 года;
Переменная $ теперь тоже может быть переопределена через tie;
Вывод предупреждений (-W) теперь можно включить через определение в переменной окружения PERL5OPT;
"delete local" теперь можно использовать для удаления элементов хэшей;
Для платформы Linux добавлена поддержка абстрактного пространства имен сетевых сокетов (например, в качестве адреса может быть использован массив произвольных символов).
Изменения, связанные с модулями и "pragma":
Модули в базовой поставке разделены на две части: в директории dist/ теперь находятся модули, разработка которых ведется вместе с ядром языка Perl, а в директории cpan/ - модули развиваемые через CPAN;
Прагма autodie в качестве замены модулю Fatal;
Новые модули Compress::Raw::Bzip2 и Parse::CPAN::Meta;
Новые прагмы parent (устанавливает взаимосвязь между ISA и базовыми классами) и overloading (определяет включить или выключить возможность переопределения операторов);
Расширены возможности прагм overloading, attrs, charnames, feature, mro;
Улучшения производительности:
Новый внутренний кэш для ускорения выполнения isa();
Линеризация для классов с единственным наследником выполняется на 40% быстрее;
Связанная с текущей локалью информация теперь кэшируется через специальных хэш;
Пустые DESTROY методы более не вызываются;
Увеличена скорость работы функции Perl_sv_utf8_upgrade();
Увеличена скорость выполнения оператора "keys" для пустых хэшей.

http://www.opennet.r...shtml?num=23718

Zhek@Ch

15 Мая 2011, 23:55 #12 Последнее редактирование: 15 Мая 2011, 23:55 от Zhek@Ch
[size="3"]Релиз Perl 5.14 [/size]

После года разработки представлена новая стабильная ветка языка программирования - Perl 5.14. Одновременно объявлено о прекращении поддержки ветки Perl 5.10. В рамках подготовки релиза 5.14 было изменено около 550 тыс. строк кода, в разработке приняли участие 150 разработчиков. Ветка 5.14 выпущена в соответствии с принятым в прошлом году новым фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца.

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

  • Поддержка Unicode 6.0 и реализация значительной порции общих улучшений, связанных с поддержкой Unicode. Например, полностью обеспечена поддержка режима "use feature 'unicode_strings'" при котором все строковые операции и регулярные выражения выполняются с использованием Unicode-семантики. Добавлена категория предупреждений "utf8", позволяющая отключить вывод только предупреждений, связанных с проблемами оформления строк utf-8;
  • Улучшена поддержка IPv6 в модуле Socket, включая добавление поддержки IPv6 в функции Socket::getaddrinfo() и Socket::getnameinfo();
  • Значительно упрощен процесс выполнения автоконфигурации CPAN-клиента (уменьшено число требующих ручных операций диалогов, добавлена поддержка META/MYMETA.json и local::lib, возможность автоматического выбора зеркал);
  • Новый синтаксис для определения модулей "package Foo { }" или "package номер_версии Foo { }", при котором с модулем ассоциируется только блок кода внутри фигурных скобок (ранее можно было использовать не совсем очевидную конструкцию "{ package Foo; ... }");
  • Регулярные выражения:
    • В регулярных выражениях добавлена поддержка флага "/r", при котором операции замены "s///" и трансляции "y///" осуществляются без изменения содержимого рабочей переменной - действие выполняется над копией данных, после чего отдельно возвращается результат. Например, после выполнения "$new = $old =~ s/cat/dog/r;" будет перезаписано только содержимое переменной $new, а переменная $old сохранит прежнее значение;
    • Реализован набор флагов (/d, /l, /u, /a), указывающих на то, как следует интерпретировать участвующие в регулярных выражениях строки - в виде последовательности ASCII или Unicode: "/l" - компилирует регулярное выражение как если бы было указано "use locale", '/u' - как если бы использовалась прагма "unicode_strings", "/d" - включает режим по умолчанию, независимо от ранее используемых настроек, "/a" - привязка к ACSII;
    • Использование внутри регулярного выражения блока "(?^...)" (когда символ "^" указан за "(?"), теперь приводит к использованию для данного блока модификаторов по умолчанию, т.е. если регулярное выражение вызвано с модификатором "/i" (отключение учета регистра символов), то для указанного бока он применяться не будет;
    • Движок выполнения регулярных выражений теперь реентерабелен, т.е. можно без опасения выполнять новые регулярные выражения внутри блоков "(?{...})" и "(??{...})" в другом регулярном выражении;
  • В экспериментальном режиме все оперирующие с массивами и хэшами функции теперь поддерживают указание ссылки на переменную, т.е. если раньше для заданного через ссылку хэша нужно было указывать "keys %$hash_ref", то теперь можно использовать "keys $hash_ref" (для массивов вместо "push @$arrayref, @stuff" можно указывать "push $arrayref, @stuff"). Отдельно отмечено, что в будущих версиях подобное поведение может быть изменено;
  • Возможность переопределения функций tie, tied и untie;
  • Проведена работа по уменьшению потребления памяти и уменьшению нагрузки на CPU в процессе работы. Например, увеличена скорость работы функций shift() и pop(), при их вызове без аргументов (shift() теперь на 5% быстрее, чем shift @_ в однопоточном режиме и на 25% в многопоточном). В движке регулярных выражений увеличена производительность операций сравнения строк и компиляции регулярных выражений. При интенсивном выполнении операций добавления одной строки в конец другой, изменен метод выделения памяти, что например, позволило на платформе Win32 увеличить скорость выполнения данных операций в 100 раз. Увеличена скорость выполнения прямых присвоений значений массивам и хэшам (my @array = ... и my %hash = ...). Уменьшено потребление памяти для автоматически генерируемой для всех функций переменной "@_";
  • В базовую поставку добавлены новые модули: CPAN::Meta::YAML, CPAN::Meta, HTTP::Tiny (простой HTTP-клиент), JSON::PP, Module::Metadata, Perl::OSType;
  • Обновлены версии модулей: Archive::Extract 0.48, Archive::Tar 1.76, Attribute::Handlers 0.89, B 1.29, Benchmark 1.12, Carp 1.20, CGI 3.52, Compress::Raw::Bzip2 2.033, DB_File 1.821, DBM_Filter 0.04, Digest::MD5 2.51, Digest::SHA 5.61, DynaLoader 1.13, Encode 2.42, File::Copy 2.21, File::Basename 2.82, File::CheckTree 4.41, File::Fetch 0.32, File::Find 1.19, GDBM_File 1.14, MIME::Base64 3.13, POSIX 1.24, Socket 1.94, Storable 2.27 и т.д.

Zhek@Ch

18 Июня 2011, 07:37 #13 Последнее редактирование: 18 Июня 2011, 07:37 от Zhek@Ch
[size="3"]Корректирующий релиз Perl 5.14.1[/size]
 
Спустя менее месяца с момента выхода Perl 5.14.0 увидел свет корректирующий релиз Perl 5.14.1, полностью обратно-совместимый с прошлой версией и содержащий только исправление ошибок и улучшение документации. Относительно прошлой версии патч включает исправления от 17 авторов, насчитывает около 3.5 тыс. строк и затрагивает 38 файлов.

Из исправлений можно отметить добавление в модуле ODBM_File некоторых путей к библиотекам, специфичных для Ubuntu 11.04; устранена утечка памяти при использовании в регулярных выражениях идентифицирующих наборы символов масок (например, [\w\s]); устранено зацикливание при выполнении резулярных выражений при достаточно редких обстоятельствах.


Zhek@Ch

18 Октября 2011, 22:26 #14 Последнее редактирование: 18 Октября 2011, 22:26 от Zhek@Ch
[size="3"]Релиз web-фреймворка Mojolicious 2.0, продолжающего развитие Catalyst [/size]

Представлен второй стабильный релиз фреймворка Mojolicious, предназначенного для создания web-приложений на языке Perl с использованием парадигмы MVC (Model-View-Controller). Проект развивается автором популярного фреймворка Catalyst и позиционируется как попытка перевода на новый уровень средств web-разработки для языка Perl, учитывая прошлый опыт и адекватно поддерживая современные тенденции в web-разработке. С одной стороны Mojolicious достаточно прост в освоении (для незамысловатых проектов доступен упрощенный вариант Mojolicious::Lite), а с другой - построен на пике современных технологий, например, поддерживает WebSockets, Ajax, асинхронный ввод/вывод, RESTful-процедуры и т.п.

По заявлению основателя проекта, Mojolicious является попыткой возродить интерес к языку Perl среди разработчиков приложений, как было во времена появления модуля CGI. Пять лет назад в ответ на появление технологии Ajax был создан фреймворк Catalyst, в нынешнее время мир стоит на пороге революции технологий HTML5. Возможности браузеров возросли и ранее реализуемая на стороне сервера логика все больше переносится на клиентскую сторону. Появилось несколько принципиально новых подходов в работе web-приложений, таких как возможность организации полноценного двунаправленного обмена данными с сервером (WebSocket API), поддержка выполнения web-приложений в offline-режиме и более тесная интеграция Javascript.

Изменения, отмеченные в версии Mojolicious 2.0:

  • Требования к минимальной версии Perl увеличены с 5.8.7 до 5.10.1. Использование некоторых конструкций, появившихся в новых версиях Perl, позволило заметно увеличить производительность;
  • Morbo - новый вариант встроенного в фреймворк web-сервера, идеально подходящего для использования в процессе разработки и отладки, так как он не требует перезапуска приложения после внесения изменений в код и может работать на любых платформах, включая Windows;
  • Встроенный web-сервер Mojo::Server::Hypnotoad, реализующий prefork-модель обработки запросов и предназначенный для развертывания готовых проектов на Unix-системах, расширен в направлении упрощения настройки и адаптации под свои нужды. Из возможностей Hypnotoad также отмечается поддержка обновления Mojolicious, Perl и системных библиотек на лету, без остановки обслуживания запросов. Кроме того, Hypnotoad может распознавать заголовки X-Forwarded-For, X-Forwarded-Host и X-Forwarded-HTTPS при работе в роли бэкенда;
  • Использование высокопроизводительной библиотеки libev для обеспечения работы модулей обработки цикла событий (Event Loop) EV и AnyEvent;
  • Многие объекты теперь генерируют события, которые могут быть использованы для расширения возможностей Mojolicious;
  • Добавлен плагин Mount plugin для встраивания внешних Mojolicious-приложений в виде обработчиков заданных запросов;
  • Расширены возможности приложений, создаваемых по упрощенной схеме с использованием Mojolicious::Lite. Добавлена поддержка группировки секций (блок group), в зависимости от области их использования (например, можно отделить обработчики для закрытого интерфейса администратора и публично доступных сервисов);
  • Упрощенные средства тестирования приложений, использующих WebSocket.
  • Поддержка коллекций, упрощающих получение и разбор контента с внешних сайтов.
Особенности Mojolicious:

  • Поддержка из коробки: плагинов, шаблонов с возможностью вставки perl-операторов, подписанных cookies, I18N, полная поддержка unicode;
  • Встроенные механизмы управления сессиями;
  • Доступен отдельный фреймворк для тестирования web-приложений;
  • Чистый, легко портируемый и объектно-ориентированный API;
  • Пакет является самодостаточным и не требует для своей работы каких либо зависимостей, кроме Perl 5.10.1 (рекомендуется Perl 5.12+, кроме того некоторые опциональные функции могут потребовать установки дополнительных модулей из CPAN);
  • Встроенная реализация клиента и сервера для HTTP 1.1 и WebSocket, с поддержкой TLS, Bonjour, IDNA, Comet (длительный пулинг), chunking и multipart;
  • Несколько вариантов встроенного web-сервера: для тестирования, для промышленного использования для быстрого развертывания. Сервер поддерживает организацию асинхронного ввода/вывода, epoll, kqueue и UNIX domain sockets. В простейшем случае для развертывания web-проекта на базе Mojolicious достаточно наличия интерпретатора Perl. При этом фреймворк является многоплатформенным и поддерживает не только Unix-подобные ОС, но и Windows;
  • Автоматическое определение доступности режимов CGI, FastCGI и PSGI;
  • Встроенный парсер JSON и XML/HTML5 с поддержкой CSS3 селекторов.

Zhek@Ch

27 Октября 2011, 17:44 #15 Последнее редактирование: 27 Октября 2011, 17:44 от Zhek@Ch
[size="3"]Архиву Perl-модулей CPAN исполнилось 16 лет [/size]

Проект CPAN (Comprehensive Perl Archive Network), в рамках которого поддерживается архив модулей и документации для языка программирования Perl, отметил 16-летие. В настоящее время в CPAN зарегистрировано 23617 пакетов с модулями, в создании которых приняло участие более 9 тыс. разработчиков. Общее число всех представленных в CPAN модулей недавно преодолело стотысячный рубеж.

 Централизованные средства CPAN по поиску, развёртыванию и установке дополнений оказали существенное влияние на рост популярности языка Perl во второй половине позапрошлого десятилетия. Многие каталоги дополнений для других языков программирования, были созданы под впечатлением от CPAN, например, PEAR (PHP Extension and Application Repository), Ruby Gems, PyPI (Python Package Index) и JSAN (Javascript Archive Network), заимствовали некоторые черты и особенности CPAN.