LINUX.ORG.RU

Perl


107

8

Всего сообщений: 104

Rakudo Star 2015.06

Группа Open Source

После трёх месяцев разработки представлен очередной релиз наиболее полной на сегодняшний день реализации языка Perl 6 — Rakudo Star 2015.06. Помимо компилятора Rakudo, виртуальной машины MoarVM и базового окружения nqp (Not Quite Perl) пакет программ Rakudo Star содержит набор модулей, портированных на Perl 6, и полностью пригоден как для знакомства с языком, так и для разработки приложений.

Наиболее значимые изменения:

  • улучшенная поддержка Unicode (NFC, NFD, NFG, Uni);
  • значительное ускорение: до 25% для строковых операций Str.codes/chars/uc/lc/tc/tclc/ord/flip;
  • добавлены нативные массивы целых чисел и типы bit и byte.

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

Напомним, релиз Perl 6 ожидается в конце текущего года.

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

 , ,

d
()

(PragmaticPerl) Выпуск 28

Группа Документация

Выпуск 28

В этом номере:

 

mul4
()

Представлен форк Perl: «stableperl»

Группа Open Source

Марк Леманн, также известный как schmorp, создатель библиотеки libev, AnyEvent и Coro, объявил о создании форка Perl под названием «stableperl».

Как известно, Марк постоянно конфликтовал с разработчиками Perl5 из-за регулярных нарушений обратной совместимости в новых релизах, а релиз Perl 5.22.0, который привёл к неработоспособности Coro, очевидно, стал последней каплей.

По словам Марка, Stableperl — это попытка восстановления стабильности и совместимости до уровня, о котором говорит официальная документация Perl. Сам форк рассматривается как замена стандартному Perl, который будет поддерживаться и после окончания обычного времени поддержки. В нём исправлены наиболее заметные ошибки, которые текущие разработчики Perl5 «отказываются» исправлять: в первую очередь производительность хеша и порча данных в фазе глобального деструктора. Также stableperl рассматривается как защита от дальнейших поломок, которые могут допустить текущие разработчики Perl5.

Установив stableperl можно продолжать использовать CPAN, а также использовать модули, которые будут специально разработаны под stableperl. Форк не будет принимать патчи, которые нарушают обратную совместимость, т.е. там не будет новых возможностей и фич, основная цель — совместимость со стандартным Perl.

Первый релиз stableperl-5.22.0-1.001.

Его основные отличия от Perl 5.22:

  • Удалены изменения, которые запрещают модификацию публичных структур Perl (EXT_MGVTBL и PadlistNAMES). Они использовались в модуле Coro.
  • Функция хеша заменена на FNV-1A. Это достаточно простой и быстрый алгоритм для функции хеширования и даёт прирост ~40%.
  • Удалён флаг -fstack-protect, который невозможно было переопределить пользователю. Он не работает на всех платформах и может создать проблемы.

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

 

Deleted
()

Perl 5.22.0

Группа Open Source

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

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

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

 

svobodka_fighter
()

(PragmaticPerl) Выпуск 27

Группа Документация

Выпуск 27

В этом номере:

  • От редактора, Вячеслав Тихановский.
  • Отладка приложений на AnyEvent, Владимир Леттиев.
    Отладка асинхронных приложений часто затруднена из-за нелинейного характера выполняемого кода, когда ошибки проявляются под нагрузкой или в каких-то исключительных трудновоспроизводимых ситуациях. Привычные инструменты могут быть неудобны и неинформативны. Если приложение построено на основе AnyEvent, то для него уже существуют готовые рецепты отладки.
  • Операторы Perl 6. Часть 1, Андрей Шитов.
    Обзор префиксных, постфиксных и инфиксных операторов Perl 6
  • Метаоператоры в Perl 6, Андрей Шитов.
    Рассмотрены доступные в языке метаоператоры — операторы, расширяющие синтаксические возможности языка, используя другие операторы
  • Обзор CPAN за апрель 2015 г., Владимир Леттиев.
    Рубрика с обзором интересных новинок CPAN за прошедший месяц.
  • Интервью с Сюзанной Шмидт , Вячеслав Тихановский.
    Сюзанна Шмидт (sushee) — политолог, которая стала Perl-программистом.

 

mul4
()

(PragmaticPerl) Выпуск 26

Группа Документация

Выпуск 26

В этом номере:

- От редактора, Вячеслав Тихановский

- Анонс конференции YAPC::Russia 2015, YAPC::Russia — ежегодная конференция, посвященная языку программирования Perl и его сообществу, которая проводится в Москве (под названием May Perl), Киеве (під назвою Perl Mova) и Санкт-Петербурге.

- Работа с WebSocket в Perl, Вячеслав Тихановский
Рассмотрены несколько подоходов при работе с технологией WebSocket из Perl

- Промисы в Perl 6, Андрей Шитов
Вторая часть обзора возможностей Perl 6 для параллельных и конкуррентных вычислений

- Грамматики в Perl 6, Андрей Шитов
В этой статье рассказано об одной из наиболее мощных возможностей Perl 6 — грамматиках

- Обзор CPAN за март 2015 г., Владимир Леттиев
Рубрика с обзором интересных новинок CPAN за прошедший месяц.

- Интервью с Виктором Турским, Вячеслав Тихановский
Виктор Турский (koorchik) — украинский Perl-программист, сооснователь компании WebbyLab

 

mul4
()

24-й выпуск журнала Pragmatic Perl

Группа Документация

Вышел 24-й выпуск журнала о современном Perl. В этом выпуске:

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

 , , pragmaticperl

pragmaticperl
()

23-й выпуск журнала Pragmatic Perl

Группа Документация

Вышел 23-й выпуск журнала о современном Perl. В этом выпуске:

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

 ,

pragmaticperl
()

22-й выпуск журнала Pragmatic Perl

Группа Документация

Вышел 22-й выпуск журнала о современном Perl. В этом выпуске:

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

 , ,

pragmaticperl
()

Perl 5.20

Группа Open Source

Несколько часов назад состоялся релиз новой мажорной версии языка программирования Perl. Разработка Perl 5.20.0 заняла примерно 12 месяцев с момента выпуска Perl 5.18.0 и содержит около 470 000 строк изменений в 2 900 файлах от 124 авторов.

В этой версии достаточно много новшеств:

  • Subroutine signatures
    То, чего многие так ждали, а другие возражали привычным «ненужно»
    sub foo($bar, $baz) {
      print "\$bar=$bar, \$baz=$baz"
    }
    
    Таким образом теперь можно определять параметры функции в скобках после её имени. Есть и возможность задать значение по умолчанию
    sub bar($foo, $baz=10) {
      print '$foo+$baz=', $foo+$baz
    }
    
    О других особенностях новой экспериментальной возможности можно прочитать в perldoc perlsub. Стоит отметить, что старый механизм получения параметров функции из @_ также остаётся в силе.
  • Новый синтаксис для получения среза ключей-значений/индексов-значений для хешей/массивов
    %hash{...} и %array[...] соответственно
    %h = (blonk => 2, foo => 3, squink => 5, bar => 8);
    %subset = %h{'foo', 'bar'}; # срез ключ-значения для хеша
    # %subset теперь (foo => 3, bar => 8)
    
    @a = "a".."z";
    @list = %a[3,4,6]; # срез индекс-значения для массива
    # @list теперь (3, "d", 4, "e", 6, "g")
    
  • Постфиксное разыменовывание
    К старому доброму разыменовыванию ссылок, навроде @$foo и %$bar, был добавлен вариант постфиксного разыменовывания: $foo->@* и $bar->%* соответственно. Синтаксис для других типов ссылок можно посмотреть в perldoc perlref
  • Механизм копирования при записи (copy-on-write) для строк
    Теперь при присвоении переменной значения другой строковой переменной не создаётся копии буфера вплоть до тех пор, пока значение одной из переменных не будет изменено. Это увеличивает скорость присвоения и снижает потребление памяти. Теперь не потребуется передавать в функцию строковую переменную по ссылке, чтобы увеличить производительность.

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

 ,

Olegymous
()

pfm 2.12.3 — консольный файловый менеджер на Perl

Группа Open Source

pfm — консольный (curses) файловый менеджер, написан на языке Perl и основан на PFM.COM для MS-DOS (созданный Paul Culley и Henk de Heer).
Разрешение на использование названия было любезно предоставлено авторами PFM.COM.
Распространяется под лицензией GPLv2.

Особенности данного файлового менеджера:

  • Вызов команд одним или двумя нажатиями на клавиши.
  • Цветные имена файлов в соответствии с их расширением или типом.
  • Режим выбора одного и нескольких файлов.
  • Многоуровневая сортировка.
  • Использование старых меток и новых меток для выполнения нескольких команд в той же группе файлов.
  • Поддержка закладок для каталогов.
  • Можно как угодно настроить менеджер через его конфигурационный файл.
  • Поддерживает историю командной строки и автозавершение команд посредством использования библиотеки readline.
  • Интеграция с инструментами: Subversion, CVS, Bazaar, Mercurial and git.

Список изменений:

  • Поддержка многоуровневой файловой системы aufs.
  • Поддержка новых версий Subversion
  • Поддержка MIME-типов для .xz и .txz.
  • Добавлено отображение списков файлов в лестничном порядке при (C)opy, (R)ename, (L)ink, tar(G)et и (P)rint.
  • Добавлена горячая клавиша Shift-F8 для легкого удаления старых и новых меток.
  • Множество различных исправлений.

Скриншоты 1, 2, 3, 4, 5

>>> Список изменений

 , , ,

fallout4all
()

Международная конференция YAPC::Europe 2013 в Киеве!

Группа Конференции и встречи

С 12 по 14 августа 2013 года в Киеве впервые пройдет международная конференция YAPC::Europe, посвященная языку Perl.

YAPC::Europe появилась в 2000 году и до этого проводилась в Лондоне, Амстердаме, Мюнхене, Париже, Белфасте, Браге (Португалия), Бирмингеме, Вене, Копенгагене, Лиссабоне, Пизе, Риге и Франкфурте. В этом году удалось привезти конференцию в Киев.

В конференции принимает участие автор перла Ларри Уолл.

На сегодня зарегистрировалось более 260 участников из 28(!) стран.

Тема конференции — «Будущий перл» (Future Perl), и речь пойдет о том, что ждет Perl в будущем, куда ему развиваться и какие версии ждать пользователям.

Конференция продлится три дня и пройдет в помещении в самом центре Киева. В дополнительной программе — предварительная встреча участников вечером накануне открытия, вечеринка после первого дня и круиз на корабле по Днепру во второй день.

Присоединяйтесь!

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

 , , ,

ashport
()

Perl 5.18

Группа Open Source

Сегодня 05.18 состоялся релиз Perl 5.18. Разработка заняла год с момента выпуска предыдущей стабильной версии, при участии 113 авторов.
Из видимых изменений можно отметить следующие:

  • Новый механизм для экспериментальных возможностей (features)
    Начиная с этого выпуска при использовании какой-либо экспериментальной возможности будет выдаваться предупреждение, избавиться от которого можно с помощью стандартного механизма «no warnings» (для чего была добавлена категория experimental)
    no warnings "experimental::feature_name";
    Также стоит отметить, что некоторые из уже привычных возможностей были перенесены в категорию экспериментальных, например оператор smartmatch. Полный список экспериментальных возможностей можно посмотреть в perlexperiment
  • Более строгая рандомизация хешей
    Отдельное внимание было уделено проблеме. известной как Hash Collision Complexity Attack. Несмотря на то, что возможность данной атаки была сведена к нулю начиная с perl 5.8.1 (25-е сентября 2003-го), разработчики пошли дальше (возможно, в связи с недавними событиями вокруг некоторых известных языков, применяемых в веб-разработке) и усовершенствовали механизм рандомизации хешей. Теперь порядок вывода одного и того же хеша отличается от запуска к запуску. Помимо этого каждый хеш имеет свой собственный порядок итерирования, поэтому порядок вывода двух хешей с одинаковыми значениями может отличаться. Также был добавлен ряд новых хеширующих функций, а выбрать конкретную можно на этапе компиляции интерпретатора perl.
  • Бинарные операции над символьными классами в регулярных выражениях
    Это экспериментальная возможность, позволяющая применять к символьным классам бинарные операторы, такие как: & (пересечение), + или | (объединение), - (вычитание), ^ (симметрическая разность). Так, например, можно получить все цифры Тайского или Лаосского написания:
    /(?[ ( \p{Thai} + \p{Lao} ) & \p{Digit} ])/
    
  • Подпрограммы с лексической областью видимости
    Появилась экспериментальная возможность создавать подпрограммы с лексической областью видимости (my sub foo {} или state sub foo {}) и алиасы с лексической областью видимости на подпрограммы текущего пакета (our sub foo {}).

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

 ,

Olegymous
()

Вышел Mojolicious 4.0

Группа Open Source

Сегодня вышел новый мажорный релиз веб-фреймворка на Perl — Mojolicious. Кодовое имя этого релиза — «Top Hat».

Mojolicious — современный (M)VC веб-фреймворк. В нём отсутствует реализация моделей — выбор библиотеки для взаимодействия с базой данных Себастьян Ридел (Sebastian Riedel — основной разработчик фреймворка) оставил пользователю. Вместо этого он сконцентрировался на поддержке современных протоколов и подходов (подробнее).

Изменения:

  • удалены плагины Mojolicious::Plugin::PoweredBy, Mojolicious::Plugin::RequestTimer;
  • уменьшено время простоя в Mojo::IOLoop, Mojo::Reactor::Poll;
  • удалены устаревшие методы build_form_tx, build_json_tx, post_form, post_json из Mojo::UserAgent, добавлена поддержка работы с данными, сжатыми при помощи gzip;
  • улучшена производительность Mojo::DOM::HTML, Mojo::Util, Mojolicious::Plugin::EPLRenderer;
  • добавлена совместимость с Perl 5.17.11+ (рекомендуется использовать 5.14, поддерживается с 5.10);
  • добавлены модули Mojo::Server::Prefork, Mojolicious::Command::prefork для поддержки prefork-серверов;
  • добавлен перезапуск Morbo (одного из серверов для Mojolicious) без простоя;
  • удалён устаревший метод namespace из Mojolicious::Routes;
  • улучшена документация, добавлены новые тесты, исправлены известные ошибки;
  • многое, многое другое...

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

 , ,

helios
()

Сегодня языку Perl исполнилось 25 лет!

Группа Open Source

25 лет назад, 18 декабря 1987г., программист и лингвист Ларри Уолл выпустил первую версию языка программирования Perl.

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

 , , ларри уолл

VeroLom
()

Perl 5.16

Группа Open Source

Вечером 20 мая, спустя год после публикации версии 5.14, состоялся релиз Perl версии 5.16.
Из изменений можно отметить следующие:

  • Поддерживаемая версия unicode обновлена до 6.1.
  • use VERSION теперь переводит интерпретатор в режим указанной версии. Например, указав use v5.14 в версии 5.16 мы получим поведение perl 5.14, а все features из других версий будут отключены.
  • Новое ключевое слово __SUB__, с помощью которого можно получить ссылку на текущую подпрограмму в области видимости самой подпрограммы. Теперь написание однострочников стало еще проще:
    # вычислим факториал 10 в одну строку
    my $fact = sub { $_[0]>0 ? $_[0] * __SUB__->($_[0]-1) : 1 }->(10)
    
  • Новая функция fc, производящая unicode casefolding над переданной строкой. Если ранее для сравнения не ASCII строк в разном регистре вы применяли lc() или uc(), то вы делали это неверно. Например слово «Reichwaldstraße» в верхнем регистре записывается, как REICHWALDSTRASSE. Что после перевода в нижний регистр обоих вариантов приведет к сравнению «reichwaldstraße» и «reichwaldstrasse». В итоге сравнение закончится неудачей. Именно эту проблему решает функция fc().

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

 ,

Olegymous
()

Объединенная конференция «Perl Mova» и YAPC::Russia «May Perl» 2012

Группа Конференции и встречи

12–13 мая в Киеве пройдет уже пятая по счету конференция YAPC::Russia — YAPC::Russia 2012 «May Perl + Perl Mova».

Эта конференция особенно привлекательна из-за участия известных Perl-деятелей: Tatsuhiko Miyagawa (Perl-хакер известный в первую очередь как автор спецификации PSGI. Автор более 170 модулей на CPAN) и Gabor Szabo (организатор еженедельных Perl-новостей Perlweekly, тренер Perl курсов, автор Padre).

Для участия в конференции необходимо зарегистрироваться. Участие бесплатное.

Предварительная программа конференции будет свёрстана позднее. Следите за официальным сайтом конференции!

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

 , ,

ymn
()

Parrot VM 4.0.0

Группа Open Source

Увидел свет четвёртый по счёту релиз виртуальной машины для динамических языков Parrot VM.

Согласно плану разработчиков, Parrot 4.0 - новый стабильный релиз, готовый к использованию и включению в дистрибутивы, поэтому основные изменения были направлены на исправление ошибок и улучшение документации.

Из наиболее важного:

  • Чистка API интерпретатора
  • Доработки в легковесных тредах и таймерах; улучшение документации по ним
  • Документация по всем когда-либо выпущенным версиям Parrot теперь доступна на http://parrot.github.com

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

 , , , ,

kranky
()

Perl теперь используется менее чем на 1% веб-серверов

Группа Интернет

По данным последнего исследования, представленного компанией W3Techs, использование Perl на веб-серверах упало ниже отметки одного процента. Когда-то самый популярный скриптовый язык занимает всего лишь пятое место по популярности, с долей в 0,997%.

Места распределились следующим образом:

  • PHP - 77.3%
  • ASP.NET - 21.7%
  • Java - 4.0%
  • ColdFusion - 1.2%
  • Perl - 1.0%
  • Ruby - 0.6%
  • Python - 0.3%

Подробнее про ситуацию с Perl на сайте W3Techs.com

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

 ,

doomgl
()

Yet Another Perl Podcast - выпуск 11

Группа Документация

Стал доступен 11-ый выпуск Yet Another Perl Podcast, подкаста о Perl на русском языке. Темы выпуска:

  • День рождения Ларри Уолла :)
  • Почему Perl?
  • Производительность пакетов ООП в Perl
  • Отчет о конференции BlackPerl 2011
  • Обзор вакансий и интересных CPAN модулей
  • Новая рубрика «Офтопик»

Пара слов о подкасте. Первый (пилотный) выпуск YAPP был залит на rpod 7 марта 2011. С тех пор подкаст выходит примерно раз в месяц. Четкого графика выпусков нет - все сильно зависит от наличия тем для обсуждения, настроения ведущих и других факторов.

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

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

 , , , ,

afiskon
()